365文库
登录
注册
搜索
下载二维码
App功能展示
海量免费资源 海量免费资源
文档在线修改 文档在线修改
图片转文字 图片转文字
限时免广告 限时免广告
多端同步存储 多端同步存储
格式轻松转换 格式轻松转换
用户头像
无法抑制 上传于:2024-06-19
#include #include #include using namespace std; void Return_menu(); //声明返回主菜单函数 void Show_increase_student();//声明显示增加后的成绩表函数 void Show_delete_student();//声明显示删除后的成绩表函数 void Show_change_student();//声明显示修改后的成绩表函数 void Query_name() //按姓名查询学生信息 { string name1,goorstop; cout<<"请输入所查学生姓名:"; cin>>name1; //输入所要查询的学生姓名 int i,k,t=0; struct Student //定义学生结构体 { string name,biaotou[5];//定义biaotou[5]即表头:姓名,学号,语文,数学,英语 int numb; //定义学号 float cj1,cj2,cj3; //定义三科成绩 }stu[10]; //原成绩表共10学生 ifstream in1; //定义文件输出流 in1.open("C:\\成绩表.txt");//打开文件,C盘下成绩表.txt for(k=0;k<5;k++) in1>>stu[0].biaotou[k]; //将成绩表中表头赋值给biaotou[5] for(i=0;i<10;i++) in1>>stu[i].name>>stu[i].numb>>stu[i].cj1>>stu[i].cj2>>stu[i].cj3;//将成绩表中10个学生的信息赋值给结构体中所定义的成员 for(i=0;i<10;i++) { if(name1==stu[i].name)//判断用户所输入的学生姓名与成绩表中的学生姓名是否相同,相同则执行以下程序 { cout<<" "; for(k=0;k<5;k++) cout<>goorstop; if(goorstop=="go")//输入go,则返回主菜单 Return_menu(); else if(goorstop=="stop")//输入stop,则退出系统 cout<<"退出查询系统,谢谢使用"<>goorstop; if(goorstop=="go")//输入go,则修改姓名 Query_name(); else if(goorstop=="stop")//输入stop,则返回主菜单 Return_menu(); else if(goorstop!="go"&&goorstop!="stop")//输入错误时,即输入不是go也不是stop则默认返回主菜单 { cout<<"输入错误,默认返回主菜单,重新输入"<>number1; int i,k,t=0; struct Student { string name,biaotou[5]; int numb; float cj1,cj2,cj3; }stu[10]; ifstream in1; in1.open("C:\\成绩表.txt"); for(k=0;k<5;k++) in1>>stu[0].biaotou[k]; for(i=0;i<10;i++) in1>>stu[i].name>>stu[i].numb>>stu[i].cj1>>stu[i].cj2>>stu[i].cj3; for(i=0;i<10;i++) { if(number1==stu[i].numb) { cout<<" "; for(k=0;k<5;k++) cout<>goorstop; if(goorstop=="go") Return_menu(); else if(goorstop=="stop") cout<<"退出查询系统,谢谢使用"<>goorstop; if(goorstop=="go") Query_numb(); else if(goorstop=="stop") Return_menu(); else if(goorstop!="go"&&goorstop!="stop") { cout<<"输入错误,默认返回主菜单,重新输入"<>stu[0].biaotou[k]; for(i=0;i<10;i++) in1>>stu[i].name>>stu[i].numb>>stu[i].cj1>>stu[i].cj2>>stu[i].cj3; for(t=2;t<5;t++) if(kecheng==stu[0].biaotou[t]) return t; else //课程不相同,m初始值为3,所输入的课程均不同则m加完后为6 m++; return m;//返回6,即用户所输入的课程不在成绩表中 } int Return_name(string name_1)//判断用户所输入的姓名是10个中的哪一个,并返回其在数组中的位置 { int i,t,m=0; struct Student { string name,biaotou[5]; int numb; float cj1,cj2,cj3; }stu[10]; ifstream in1; in1.open("C:\\成绩表.txt"); for(i=0;i<5;i++) in1>>stu[0].biaotou[i]; for(i=0;i<10;i++) in1>>stu[i].name>>stu[i].numb>>stu[i].cj1>>stu[i].cj2>>stu[i].cj3; for(t=0;t<10;t++) if(name_1==stu[t].name) return t; else //姓名不相同,m初始值为0,所输入的姓名均不同则m加完后为10 m++; return m;//返回10,即用户所输入的姓名不在成绩表中 } int Return_num(int num_1)//判断用户所输入的学号是10人中的哪一个,并返回其在数组中的位置 { int i,t,m=0; struct Student { string name,biaotou[5]; int numb; float cj1,cj2,cj3; }stu[10]; ifstream in1; in1.open("C:\\成绩表.txt"); for(i=0;i<5;i++) in1>>stu[0].biaotou[i]; for(i=0;i<10;i++) in1>>stu[i].name>>stu[i].numb>>stu[i].cj1>>stu[i].cj2>>stu[i].cj3; for(t=0;t<10;t++) if(num_1==stu[t].numb) return t; else //学号不相同,m初始值为0,所输入的学号均不同则m加完后为10 m++; return m;//返回10,即用户所输入的学号不在成绩表中 } void Success_statistics()//成绩统计 { int i,k,min,max; string kecheng,goorstop; cout<<"请输入课程:"; cin>>kecheng; cout<<"请输入最低分"<<" "<<"最高分:";//输入分数段 cin>>min>>max; struct Student { string name,biaotou[5]; int numb; float cj1,cj2,cj3; }stu[10]; ifstream in1; in1.open("C:\\成绩表.txt"); for(k=0;k<5;k++) in1>>stu[0].biaotou[k]; for(i=0;i<10;i++) in1>>stu[i].name>>stu[i].numb>>stu[i].cj1>>stu[i].cj2>>stu[i].cj3; if(Return_curriculum(kecheng)==6||min<0||max>100)//课程名或分数段输入错误 { cout<<"课程或分数段输入错误"<>goorstop; if(goorstop=="go") Success_statistics(); else if(goorstop=="stop") Return_menu(); else if(goorstop!="go"&&goorstop!="stop") { cout<<"输入错误,默认返回主菜单,重新输入"<=min&&stu[i].cj1<=max) //学生成绩在用户所输入的分数段内 cout<<" "<>goorstop; if(goorstop=="go") Return_menu(); else if(goorstop=="stop") cout<<"退出查询系统,谢谢使用"<=min&&stu[i].cj2<=max) //学生成绩在用户所输入的分数段内 cout<<" "<>goorstop; if(goorstop=="go") Return_menu(); else if(goorstop=="stop") cout<<"退出查询系统,谢谢使用"<=min&&stu[i].cj3<=max) //学生成绩在用户所输入的分数段内 cout<<" "<>goorstop; if(goorstop=="go") Return_menu(); else if(goorstop=="stop") cout<<"退出查询系统,谢谢使用"<>kecheng; cout<<"输入1-->按成绩升序排列,输入2-->按成绩降序排列"<>next; if(Return_curriculum(kecheng)==6||(next!=1&&next!=2))//输入的课程名或所选择的升降序操作错误 { cout<<"课程名或升降序操作输入错误"<>goorstop; if(goorstop=="go") Curricul_ordination(); else if(goorstop=="stop") Return_menu(); else if(goorstop!="go"&&goorstop!="stop") { cout<<"输入错误,默认返回主菜单,重新输入"<按成绩升序排列";break; case 2:cout<<"您所选择的操作-->按成绩降序排列";break; } cout<>stu[0].biaotou[k]; for(i=0;i<10;i++) in1>>stu[i].name>>stu[i].numb>>stu[i].cj1>>stu[i].cj2>>stu[i].cj3; cout<<" "; for(k=0;k<5;k++) cout<=i;j--) //内不循环,内次少判断1个 { if(stu[j].cj1=i;j--) { if(stu[j].cj2=i;j--) { if(stu[j].cj3>goorstop; if(goorstop=="go") Return_menu(); else if(goorstop=="stop") cout<<"退出查询系统,谢谢使用"<i;j--) { if(stu[j].cj1>stu[j-1].cj1) { iTemp1=stu[j-1].cj1; stu[j-1].cj1=stu[j].cj1; stu[j].cj1=iTemp1; nameTemp=stu[j-1].name; stu[j-1].name=stu[j].name; stu[j].name=nameTemp; numbTemp=stu[j-1].numb; stu[j-1].numb=stu[j].numb; stu[j].numb=numbTemp; iTemp2=stu[j-1].cj2; stu[j-1].cj2=stu[j].cj2; stu[j].cj2=iTemp2; iTemp3=stu[j-1].cj3; stu[j-1].cj3=stu[j].cj3; stu[j].cj3=iTemp3; } } } } else if(Return_curriculum(kecheng)==3)//输入的课程名为数学,按数学成绩降序排列 { for(i=0;i<10;i++) { for(int j=9;j>i;j--) { if(stu[j].cj2>stu[j-1].cj2) { iTemp1=stu[j-1].cj2; stu[j-1].cj2=stu[j].cj2; stu[j].cj2=iTemp1; nameTemp=stu[j-1].name; stu[j-1].name=stu[j].name; stu[j].name=nameTemp; numbTemp=stu[j-1].numb; stu[j-1].numb=stu[j].numb; stu[j].numb=numbTemp; iTemp2=stu[j
tj