1、5. 学生成绩管理系统设计一个学生成绩管理系统,对上学期的本班的学习成绩进行管理,可以用数组来设计这个程序,具有查询和检索功能,并且能够对指定文件操作,也可将多个文件组成一个文件。1、设计内容1) 每一条记录包括一个学生的学号、姓名、性别、各门课成绩(上学期的科目)、平均成绩。2) 输入功能:可以一次完成若干条记录的输入。3) 显示功能:完成全部学生记录的显示。4) 查找功能:完成按姓名或学号查找学生记录,并显示。5) 排序功能:按学生平均成绩进行排序。6) 插入功能:按平均成绩高低插入一条学生记录。7) 将学生记录存在文件 student.dat 中。8) 应提供一个界面来调用各个功能,调用
2、界面和各个功能的操作界面应尽可能清晰美观!2、设计要求已知有存储本班学生记录(包括学号、姓名、科目成绩、性别、)的文件student.dat,所有学生以学号从小到大排序(该文件自行建立)。要求编程序实现查询、排序、插入、删除诸功能。具体要求如下:1) 要求显示如下界面a) *a) 1-查询b) 2-排序c) 3-插入d) 4-删除b) *c) 通过选择 1-4 来确定要做哪一个操作。2) 若选 1,则出现如下界面a) *a) 1.1-按学号查询b) 1.2-按姓名查询c) 1.3-按成绩查询b) *c) 通过选择 1.1-1.3 来确定要做哪一个操作,其中:按姓名查询用顺序法实现;按成绩查询实
3、现查询成绩小于 m 分的学生;找到该生将学生记录输出到屏幕,若查无此人,输出相关信息。3) 若选 2,则按成绩从大到小排序,姓名,学号顺序也随之调整。4) 若选 3,将一个新学生记录按学号顺序插入,并把结果保存到文件student.dat 中。5) 若选 4,删除指定学生的记录,并把结果保存到文件 student.dat 中。6) 不同的模块都要有出错处理,并能给出出错提示。如输入数据错误,文件操作错误等等7) 以上各个功能均编写成子函数,由主函数调用实现。8) 利用结构体数组实现学生成绩的数据结构设计;9) 完成设计任务并书写课程设计报告。大神大虾们速度啊 星期 6 之前就要完成上交的呀!其
4、他回答 共 4 条 #include #include #include #include #include #include #include using namespace std;int n=0,k=0;/学生类; class studentpublic: long num;char name20;char sex10;int rank;double score7;static int total;public:void set(long nu,char na,char se,double sc1, double sc2,double sc3,double sc4,double sc5)
5、 num=nu;strcpy(name,na);strcpy(sex,se);score1=sc1;score2=sc2;score3=sc3;score4=sc4;score5=sc5;score0=(score1+score2+score3+score4+score5)/5;score6=score0*5;rank=0;void show()coutnum1na1se1sc1sc2sc3sc4sc5;a.set(num1,na1,se1,sc1,sc2,sc3,sc4,sc5);return a;*/显示函数void putout(student stu) system(“cls“);if
6、(stu0.num=0) cout0)if(stui.score0=stui-1.score0)stui.rank=stui-1.rank; /排名 学号void order1(student stu,int n) order(stu,n);student k;int i; for( i=0;istuj.num)k=stui;stui=stuj;stuj=k; /排名 姓名void order2(student stu,int n) student k;int i;order(stu,n);for( i=0;i0)k=stui;stui=stuj;stuj=k; /排名void order0(
7、student stu) int i;ordermenu(); cini;switch(i) case 1: order1(stu,n);break; case 2: order2(stu,n);break; case 3: order(stu,n);break; case 0: break; coutnu;int m=0;coutna;coutra;int m=0;couti;switch(i) case 1: return search1(stu,n);break; case 2: return search(stu,n) ;break; case 3: return search2(st
8、u,n);break; case 0: student a;a.num=0;return a;break; /删除查询student seek2(student stu) int i;searchmenu2();cini;switch(i) case 1: return search1(stu,n);break; case 2: return search(stu,n) ;break; case 0: student a;a.num=0;return a;break; /增加学生 student add() student a;char num110;char na120;char se110
9、;char sc610;float sc26;long num;/ double sc1; double sc2; double sc3; double sc4; double sc5;coutnum1na1se1sc1sc2sc3sc4sc5;num=atoi(num1);for(int i=1;ii;if(i=1)while(1)for( i=0;inumn;for(int k=0;knum;for(int i=0;istui.numstui.namestui.sexstui.score1stui.score2stui.score3stui.score4stui.score5stui.sc
10、ore0stui.score6stui.rank;fin.close();coutm;switch(m) case 1: long num;cinnum;stu2.num=num;break; case 2: char num210;cinnum2;strcpy(stui.name,num2);break; case 3: char num310;cinnum3;strcpy(stui.sex,num3);break; case 4: double num4;cinnum4;stui.score1=num4;coutnum5;stui.score2=num5;break;case 6: dou
11、ble num6;cinnum6;stui.score3=num6;break; case 7: double num7;cinnum7;stui.score4=num7;break; case 8: double num8;cinnum8;stui.score5=num8;break; case 9: break; coutname;ofstream fout(name);if(!fout)couti;switch(i) case 1: stun=add();order1(stu,n);system(“cls“);break; case 2: a=seek2(stu);change(stu,
12、a);system(“cls“);break; case 3: putout(stu) ;system(“cls“);break; case 4: seek(stu) ; system(“PAUSE“); system(“cls“);break; case 5: student a;a=seek2(stu);dele(stu,a); system(“cls“); break;case 6: order0(stu);putout(stu); system(“cls“); break; case 7: int d;coutd;if(d=1)outfile(stu); system(“cls“); break; case 8: infile(stu) ; break; case 9: newfile(stu);system(“PAUSE“);system(“cls“);break;case 10: m=1;if(k!=0) coutp;if(p=1)outfile(stu);break; if(m=1) bye();cout“ 感谢使用!“endl;break;system(“PAUSE“);return EXIT_SUCCESS;