问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++学生信息管理系统

发布网友 发布时间:2022-04-25 05:37

我来回答

2个回答

热心网友 时间:2023-10-30 18:13

show_Start();
menu_CMD();
return 0;
}

//修改完后还应该显示
void show_Start()
{
//cout<<endl;
cout<<" **************************************** "<<endl;
cout<<" 这是一个 "<<endl;
cout<<" 学生信息管理系统 "<<endl;
cout<<" 可以对学生成绩进行管理 "<<endl;
cout<<" 欢迎大家使用 "<<endl;
cout<<" Made by Jason "<<endl;
cout<<" **************************************** "<<endl;
}

// 显示表头信息,即是 : 学号,姓名,性别,语文,数学,英语.
void show_Table()
{
cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别";
cout<<"\t"<<subject[0]<<"\t"<<subject[1]<<"\t"<<subject[2];
cout<<endl;
}

void menu_CMD()
{
int key;
while (1)
{
cout<<"1. 增加学生信息"<<endl;
cout<<"2. 删除学生信息"<<endl;
cout<<"3. 修改学生信息"<<endl;
cout<<"4. 查询学生信息"<<endl;
cout<<"5. 显示学生信息"<<endl;
cout<<"6. 退出"<<endl;
cout<<"请输入您的选择 : ";
cin>>key;
while (1)
{
if ((key < 1)||(key > 6))
{
int key;
cout<<"您的输入有误,请重新输入!"<<endl;
cout<<"请选(1 - 5) : ";
cin>>key;
}
else
{
break;
}
}
switch (key)
{
case 1:
addRecord();
break;
case 2:
deleteRecord();
break;
case 3:
modifyRecord();
break;
case 4:
queryRecord();
break;
case 5:
display();
break;
case 6:
quit();
break;
}

}
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

//增加学生信息
void addRecord()
{

if (stuNum == 0)
{
cout<<"原来没有记录,现在建立新表!"<<endl;
stuNum++;
}
else
{
cout<<"现在在当前表的末尾添加新的信息!"<<endl;
stuNum++;
}

//如果数组空间不够,重新申请空间
if (stuNum > INIT_SIZE)
{
cout<<"内存空间不够,现在重新申请新的内存空间!"<<endl;
record = (STUDENT*)realloc(record,(INIT_SIZE + INCRE_SIZE)*sizeof(STUDENT));
cout<<"空间申请完成!"<<endl;
}

cout<<"您现在要添加一组新的信息,您确定吗?"<<endl;
cout<<"请输入您的选择(Y/N) : ";
char choi;
cin>>choi;
if ((choi == 'Y')||(choi == 'y'))
{
cout<<"请输入学号 : ";
cin>>record[stuNum].num;
cout<<"请输入姓名 : ";
cin>>record[stuNum].name;
cout<<"请输入性别(M为男,F为女) : ";
cin>>record[stuNum].sex;

int i;
for (i = 0;i < SUBJECT_NUM;i++)
{
cout<<"请输入"<<subject[i]<<"的成绩 : ";
cin>>record[stuNum].score[i];
}
}

if ((choi == 'N')||(choi == 'n'))
{
cout<<"退出添加新学生信息!"<<endl;
cout<<endl;
}

cout<<"现在已经有"<<stuNum<<"条学生的信息了!"<<endl;
cout<<endl;
}

//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//删除信息 晚上完成...

//显示deleteRecord的表头信息
void Info_delete()
{
cout<<"请输入删除方式 : "<<endl;
cout<<"1. 按学号删除"<<endl;
cout<<"2. 按姓名删除"<<endl;
cout<<"3. 退出删除"<<endl;
}

//删除学生的信息,包含两个子函数
void deleteRecord()
{
int key;
cout<<endl;
Info_delete();
cout<<"请输入您的选择 : ";
cin>>key;

if (key == 1)
{
int targetNum;
cout<<"请输入您欲删除学生的学号 : ";
cin>>targetNum;

//按学号删除
delete_Num(targetNum);
cout<<endl;
}

if (key == 2)
{
char targetName[20];
cout<<"请输入您欲删除学生的姓名 : ";
cin>>targetName;

//按姓名删除
delete_Name(targetName);
cout<<endl;
}

if (key == 3)
{
cout<<endl;
while (1)
{
menu_CMD();

}
}
}

//按学号删除学生信息
//只用完成删除操作,而不必输出. 输出的操作可以在主菜单中进行

//删除这里还是有毛病,需要进一步修改.
//明天再进行修改.
void delete_Num(int tarNum)
{
int i;
for (i = 1;i <= stuNum;i++)
{
if (record[i].num == tarNum)
{
//删除还要分两种情况讨论
//1. 欲删除的学生信息是最后一位
//2. 欲删除的学生信息不是最后一位

//第一种情况,欲删除的学生是最后一位
if (i = stuNum)
{
cout<<"您所要删除的学生信息是 : "<<endl;
show_Table();
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"
<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];
cout<<endl;

cout<<endl<<"删除后学生信息表为 : "<<endl;
show_Table();
for (int i = 1;i <= stuNum - 1;i++)
{
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
for (int j = 0;j < SUBJECT_NUM;j++)
{
cout<<"\t"<<record[i].score[j];
}
cout<<endl;
}
/*
stuNum--;
cout<<"现在还剩下"<<stuNum<<"条学生的信息";
cout<<endl<<endl;
*/
}

//2.第二种情况,欲删除的学生不是最后一位
if (i != stuNum)
{

cout<<"您所要删除的学生信息是 : "<<endl;
show_Table();
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"
<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];

for (int j = i+1;j <= stuNum;j++)
{
record[j-1] = record[j];
}

//接着完成输出

cout<<endl;
cout<<"删除后学生信息表为 : "<<endl;
show_Table();
for (int i = 1;i <= stuNum-1;i++)
{
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
for (int j = 0;j < SUBJECT_NUM;j++)
{
cout<<"\t"<<record[i].score[j];
}
cout<<endl;
}
/*
stuNum--;
cout<<"现在还剩下"<<stuNum<<"条学生的信息";
cout<<endl;
*/
}

stuNum--;
cout<<"现在还剩下"<<stuNum<<"条学生的信息";
cout<<endl;

}
}
}
/*

//方法同上
void delete_Name(char tarName[])
{
int i;
for(i = 1;i <= stuNum;i++)
{
if(strcmp(record[i].name,tarName) == 0)
{
//删除还要分两种情况讨论
//1. 欲删除的学生信息是最后一位
//2. 欲删除的学生信息不是最后一位

//第一种情况 : 欲删除学生是最后一位
if(i = stuNum)
{
cout<<"您所要删除的学生信息是 : "<<endl;
show_Table();
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"
<<record[i].score[0]<<record[i].score[1]<<"\t"<<record[i].score[2];
cout<<endl;

cout<<endl<<"删除后学生信息表为 : "<<endl;
show_Table();
for(int i = 1;i <= stuNum - 1;i++)
{
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
for(int j = 0;j < SUBJECT_NUM;j++)
{
cout<<"\t"<<record[i].score[j];
}
cout<<endl;
}
}

//第二种情况 : 欲删除学生不是最后一位
if(i != stuNum)
{

cout<<"您所要删除的学生信信息是 : "<<endl;
show_Table();
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"
<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];

//整体往前 前移一位
for(int j = i+1;j <= stuNum;j++)
{
record[j-1] = record[j];
}
cout<<endl;

//接着完成输出
cout<<"删除后学生信息表为 : "<<endl;
show_Table();
for(int i = 1;i <= stuNum-1;i++)
{
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
for(int j = 0;j < SUBJECT_NUM;j++)
{
cout<<"\t"<<record[i].score[j];
}
cout<<endl;
}

cout<<endl;
}
}

}

}

*/

void delete_Name(char tarName[])
{
int i;
for (i = 1;i <= stuNum;i++)
{

//删除还要分两种情况讨论
//1. 欲删除的学生信息是最后一位
//2. 欲删除的学生信息不是最后一位

//当欲删除的学生是最后一位,直接输出前面LEN-1位学生的信息

if (strcmp(record[i].name,tarName) == 0)
{
if (i == stuNum)
{
cout<<"您所要删除的学生信息是 : "<<endl;
show_Table();
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"
<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];

cout<<endl;

cout<<"删除后学生信息表为 : "<<endl;
show_Table();
for (int i = 1;i <= stuNum-1;i++)
{
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
for (int j = 0;j < SUBJECT_NUM;j++)
{
cout<<"\t"<<record[i].score[j];
}
cout<<endl;
}
stuNum--;
cout<<"现在还剩下"<<stuNum<<"条学生的信息";
cout<<endl;
}

//当欲删的学生不是最后一位,整体往前前移一位
if (i != stuNum)
{
cout<<"您所要删除的学生信息是 : "<<endl;

show_Table();
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t";
cout<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];
cout<<endl;

//整体往前前移一位
for (int j = i+1;j <= stuNum;j++)
{
record[j-1] = record[j];
}

//然后输出
cout<<endl;
cout<<"删除后学生信息表为 : "<<endl;

show_Table();
for (int i = 1;i <= stuNum-1;i++)
{
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
for (int j = 0;j < SUBJECT_NUM;j++)
{
cout<<"\t"<<record[i].score[j];
}
cout<<endl;
}
stuNum--;
cout<<"现在还剩下"<<stuNum<<"条学生的信息";
cout<<endl;
}
}
}
}

//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

//显示modifyRecord的表头信息
void Info_modify()
{
cout<<"请输入修改方式 : "<<endl;
cout<<"1. 按学号修改"<<endl;
cout<<"2. 按姓名修改"<<endl;
cout<<"3. 退出修改"<<endl;
}

//查询学生的成绩,当然里面包括两个子函数
void modifyRecord()
{
int key;
cout<<endl;
Info_modify();
cout<<"请输入您的选择 : ";
cin>>key;

//按学号修改
if (key == 1)
{
int targetNum;
cout<<"请输入您欲修改的学生的学号 : ";
cin>>targetNum;

modify_Num(targetNum);
cout<<endl;

//display();
}

//按姓名修改
if (key == 2)
{
char targetName[20];
cout<<"请输入您欲修改学生的姓名 : ";
cin>>targetName;

modify_Name(targetName);
cout<<endl;

//display();
}

//退出修改
if (key == 3)
{
cout<<endl;
while (1)
{
menu_CMD();
}
}
}

//按学号修改
void modify_Num(int tarNum)
{
int i;
for (i = 1;i <= stuNum;i++)
{
if (record[i].num == tarNum)
{
cout<<endl<<"请修改该学生的信息"<<endl;
cout<<"请输入该学生的学号 : ";
cin>>record[i].num;
cout<<"请输入该学生的姓名 : ";
cin>>record[i].name;
cout<<"请输入该学生的性别(M为男,F为女) : ";
cin>>record[i].sex;
cout<<"请输入"<<subject[0]<<"的成绩 : ";
cin>>record[i].score[0];
cout<<"请输入"<<subject[1]<<"的成绩 : ";
cin>>record[i].score[1];
cout<<"请输入"<<subject[2]<<"的成绩 : ";
cin>>record[i].score[2];
}
//}
cout<<"修改后该学生的信息如下 : "<<endl;
show_Table();
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
cout<<"\t"<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];
cout<<endl;
}
}

//按姓名修改
void modify_Name(char tarName[])
{
int i;
for (i = 1;i <= stuNum;i++)
{
if (strcmp(record[i].name,tarName) == 0)
{
cout<<endl<<"请修改该学生的信息 : "<<endl;
cout<<"请输入该学生的学号 : ";
cin>>record[i].num;
cout<<"请输入该学生的姓名 : ";
cin>>record[i].name;
cout<<"请输入该学生的性别 : ";
cin>>record[i].sex;
cout<<"请输入"<<subject[0]<<"的成绩 : ";
cin>>record[i].score[0];
cout<<"请输入"<<subject[1]<<"的成绩 : ";
cin>>record[i].score[1];
cout<<"请输入"<<subject[2]<<"的成绩 : ";
cin>>record[i].score[2];
}
cout<<"修改后该学生的信息如下 : "<<endl;
show_Table();
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
cout<<"\t"<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];
cout<<endl;

}
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

//显示queryRecord的表头信息
void Info_query()
{
cout<<"请输入查询方式 : "<<endl;
cout<<"1. 按学号查询"<<endl;
cout<<"2. 按姓名查询"<<endl;
cout<<"3. 退出查询"<<endl;
}

//查询学生信息queryRecord
void queryRecord()
{
int key;
cout<<endl;
Info_query();
cout<<"请输入您的选择 : ";
cin>>key;

if (key == 1)
{
int targetNum;
cout<<"请输入您欲查询学生的学号 : ";
cin>>targetNum;

query_Num(targetNum);
cout<<endl;
}

if (key == 2)
{
char targetName[20];
cout<<"请输入您欲查询学生的学号 : ";
cin>>targetName;

query_Name(targetName);
cout<<endl;
}

//退出查询,退回到主菜单吧...
if (key == 3)
{
cout<<endl;
while (1)
{
menu_CMD();
}
}
}

//按学号查询
void query_Num(int tarNum)
{
int i;
for (i = 1;i <= stuNum;i++)
{
if (record[i].num == tarNum)
{
//如果表中有该学生信息的话,仅用输出该学生的信息即可.
//输出该学生的信息
cout<<"该学生的信息如下 : "<<endl;

//显示表头信息
show_Table();

//显示该学生具体的信息
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
cout<<"\t"<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];
cout<<endl;
}
}
}

//按姓名查询
void query_Name(char tarName[])
{
int i;
for (i = 1;i <= stuNum;i++)
{
if (strcmp(record[i].name,tarName) == 0)
{
cout<<"该学生的信息如下 : "<<endl;

show_Table();

cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
cout<<"\t"<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];
cout<<endl;
}
}
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

//先显示所有学生的信息吧
//显示record里所有学生的成绩
void display()
{
int i,j;
for (i = 1;i <= stuNum;i++)
{
//cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别";
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
for (j = 0;j < SUBJECT_NUM;j++)
{
cout<<"\t"<<record[i].score[j];
}
cout<<endl;
}
//cout<<endl;
cout<<"共有"<<stuNum<<"条学生信息!"<<endl;
cout<<endl;
}

//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

//退出
void quit()
{
char choi;
cout<<"您确定要退出吗?"<<endl;
cout<<"请输入您的选择(Y/N) : ";
cin>>choi;
if ((choi == 'Y')||(choi == 'y'))
{
cout<<"下面退出学生信息管理系统!"<<endl;
exit(0);
}
//如果不是退出,则接着退回到主界面
else
{
cout<<endl;
menu_CMD();
}
}

热心网友 时间:2023-10-30 18:13

刚好我也在做这个。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
自由职业有哪些,常见的有语音电台主播、有声书录制等 如何在家当电台主播,首先要选择好平台来做 qq音乐电台主播进公会还是个人? - 知乎 华硕的主板序列号在哪里看啊! 360行车记录仪初始密码 360行车记录仪初始密码忘了 怎么转社保绑定医院 我吃贝瑞左旋整整一瓶了怎么一点也没有减啊,怎么办啊 微量注射泵针管 黄昏不闻人语声的意思是什么 夜久语声绝如闻泣又一的意思 简单的java学生信息管理系统 题目:学生信息管理系统设计 学生信息管理系统c 学生信息管理系统c语言 学生信息管理系统的需求分析 淘宝店铺可以转型么? 就是店铺之前卖一种东西 一段时间后 可以卖另外一种东西吗? 学生信息管理系统 淘宝店能不能转型 学生信息管理系统 (1) 学生基本信息包括: 学号、姓名、性别、出生年月、专业、班级、地址、电话、Email等 请问我的淘宝店怎么转型呢? 学生信息管理系统最简单源代码。 c语言学生信息管理系统 学生信息管理系统代码设计怎么写 已经开了淘宝网店怎么转型 学生信息管理系统的开发背景与意义 淘宝卖家如何把虚拟店转型成实物店,需要有详细流程,最好有截图! 飞科理发器FC59|0与FC5902哪个好? 什么是学生信息管理系统 关于淘宝店铺的:假如在淘宝开了一个卖虚拟的店铺,但是不想做了,想改换成卖其他东西的店铺,可以改的吗? 学生信息管理系统有什么作用? 为什么被踢了还能看到群消息? 苹果手机不越狱怎么改定位 女人不能生孩子会很痛苦吗?难道非要生孩子才算完整吗 什么是遗传、 女人生孩子痛苦。还是不能生孩子痛苦 女人生孩子很痛苦,但是女人不能生孩子更痛苦? 女人不能生孩子怎么办 女人不能生孩子是什么原因 女人不能生孩子,通常都有哪些症状? 女人生孩子真的疼吗,有多痛? 如果女人不能生孩子怎么办 健康管理师考试的难度怎么样? 你能接受女人不能生孩子吗? 女人生孩子都很疼吗 2021年健康管理师考试难度大吗? 健康管理师考试难不难? 女人不能生孩子是不是就代表被打入冷宫了,没有资格提要求了 健康管理师难不难考,学哪些东西? 一个女人自己不能生小孩,大嫂小孩给她会像亲生母亲一样疼小孩吗? 健康管理师考试难度大吗?