1、学生成绩管理系统,c+版,题目:学生成绩管理系统,主要功能 能按学期、按班级完成对学生成绩的录入、修改。 能按班级统计学生的成绩,求学生的总分及平均分,并能够根据学生的平均成绩进行排序。 能查询学生成绩,不及格科目及学生名单。 能按班级输出学生的成绩单。 界面友好,易于操作,设计流程图:,开始,输入enter值,enter=1,enter=2,enter=3,enter=4,enter=5,enter=6,enter=8,enter=7,输入学生信息,显示学生信息,保存学生信息,读取学生 信息,结束,enter=3,输入enter2值,enter2=1,enter2=2,enter2=3,查询
2、学生成绩,查询不及格学 生名单,enter=4,修改学生信息,enter=5,输入enter1值,enter1=1,enter1=2,enter1=3,按总分给 学生排名,按平均分给 学生排名,一、创建一个学生信息的结构体,struct student char name15; /学生姓名int math; /数学成绩int english; /英语成绩int computer; /计算机成绩 int sum; /总分int year; /学生所在的学期int Class; /学生所在班级float average; /学生平均分 ;,二、构建学生成绩系统类,class sys public:
3、sys()size1=0;size2=0;size3=0;size4=0;s1=0;s2=0;s3=0;s4=0; /构造函数sys() /析构函数void add(); /添加函数void show(); /显示函数void search(); /查找函数void list(); /名单函数void change(); /修改函数void sort1(); /排序函数void sort2(); /排序函数void save(); /保存函数void output(); /读取函数 private:student stu22max; /学生数组int size1,size2,size3,siz
4、e4,s1,s2,s3,s4; /定义数据 ;,成员函数 1. void add();,void sys:add() /按学年、班级一次输入学生成绩信息 int i,j;couti;if(i=2008)i=0;else i=1;coutj;,void sys:add(),if(i=0 /记录学生人数,void sys:add(),if(i=0 ,void sys:add(),if(i=1 ,void sys:add(),if(i=1 ,2. void sys:search(),void sys:search() int num1,num2,size,i=0;char name115; /定义一
5、个字符数组保存名字coutnum1).get();coutnum2).get();cout“请输入要查找的学生的姓名:“;cin.getline(name1,15);/判断学生所属学年和班级if(num1=2008,void sys:search(),cout“学年 班级 姓名 数学 英语 计算机“endl;/根据学生姓名查找学生成绩并且输出for(;isize;i+) if(strcmp(name1,stunum1num2-1i.name)=0)cout“ “stunum1num2-1i.year“ “;cout“ “stunum1num2-1i.Class“ “;cout“ “stunum
6、1num2-1i.name“ “;cout“ “stunum1num2-1i.math“ “;cout“ “stunum1num2-1i.english“ “;cout“ “stunum1num2-puterendl;cout“不及格科目:“;,void sys:search(),/通过if语句判断并输出不及格科目 if(stunum1num2-1i.math60,void sys:search(),/通过if语句判断并输出不及格科目 if(stunum1num2-1i.math60,void sys:search(),cout“1.查询学生成绩 2.查询不及格学生名单 3.退出:“; ,vo
7、id sys:list(),/显示不及格学生名单 int size;cout“学年 班级 姓名“endl;for(int num1=0;num12;num1+)for(int num2=1;num23;num2+)if(num1=0,void sys:list(),/输出不及格学生的信息 for(int k=0;ksize;k+) if(stunum1num2-1k.math60|stunum1num2-1k.english60|stunum1num2-puter60)cout“ “stunum1num2-1k.year“ “endl;cout“ “stunum1num2-1k.Class“
8、“endl;cout“ “stunum1num2-1k.nameendl; else continue; cout“n“;cout“1.查询学生成绩 2.查询不及格学生名单 3.退出:“; ,void sys:change(),/修改学生信息函数 int num1,num2,size,enter;char name115;coutnum1).get();coutnum2).get();cout“请输入要修改的学生的姓名:“;cin.getline(name1,15);if(num1=2008,void sys:change(),for(int i=0;ienter;switch(enter)c
9、ase 1:coutstunum1num2-1i.year;break;case 2:coutstunum1num2-1i.Class;break;case 3:coutstunum1num2-1i.name;break;,void sys:change(),case 4:coutstunum1num2-1i.math;break;case 5:coutstunum1num2-1i.english;break;case 6:coutstunum1num2-puter;break;while(enter7); ,void sys:sort1(),/按照总分排序函数(选择排序法,按平均分的排序方法
10、与之相同,略) student temp1; /创建一个结构体对象,储存要对换的数据int n1,n2,size;coutn1;coutn2;if(n1=2008,void sys:sort1(),/计算每个学生的总分 for(int m=0;msize;m+)stun1n2-1m.sum=stun1n2-1m.math+stun1n2-1m.english+stun1n2-puter;for(int i=0;isize;i+)for(int j=0;jsize-i;j+)if(stun1n2-1j.sumstun1n2-1j+1.sum) 选择排序法 temp1=stun1n2-1j;stu
11、n1n2-1j=stun1n2-1j+1;stun1n2-1j+1=temp1;,void sys:sort1(),/输出成绩 cout“学年 班级 姓名 数学 英语 计算机 总分“endl;for(int k=0;ksize;k+)cout“ “stun1n2-1k.year“ “;cout“ “stun1n2-1k.Class“ “;cout“ “stun1n2-1k.name“ “;cout“ “stun1n2-1k.math“ “;cout“ “stun1n2-1k.english“ “;cout“ “stun1n2-puter“ “;cout“ “stun1n2-1k.sumendl
12、; ,void sys:sort2(),/平均分的排序 student temp2;int n1,n2,size;coutn1;coutn2;if(n1=2008,void sys:sort2(),for(int m=0;msize;m+)stun1n2-1m.average=(stun1n2-1m.math+stun1n2-1m.english+stun1n2-puter)/3.0;for(int i=0;isize;i+)for(int j=0;jsize-i;j+)if(stun1n2-1j.averagestun1n2-1j+1.average)temp2=stun1n2-1j;stu
13、n1n2-1j=stun1n2-1j+1;stun1n2-1j+1=temp2;,void sys:sort2(),cout“学年 班级 姓名 数学 英语 计算机 总分“endl;for(int k=0;ksize;k+)cout“ “stun1n2-1k.year“ “;cout“ “stun1n2-1k.Class“ “;cout“ “stun1n2-1k.name“ “;cout“ “stun1n2-1k.math“ “;cout“ “stun1n2-1k.english“ “;cout“ “stun1n2-puter“ “;cout“ “stun1n2-1k.averageendl;
14、,void sys:save(),/保存函数 int n1,n2,size;coutn1;coutn2;,void sys:save(),/保存文件,以下的皆同此 if(n1=2008 ,void sys:save(),if(n1=2008,void sys:save(),if(n1=2009 ,void sys:save(),if(n1=2009 ,void sys:output(),/读出文件函数 char line101;int n1,n2,size;coutn1;coutn2;,void sys:output(),if(n1=2008,void sys:output(),if(n1=2
15、008,void sys:output(),if(n1=2009,void sys:output(),if(n1=2009 ,void main(),/主函数 void main() sys people; /定义一个对象peopleint enter,enter1,enter2;do coutenter;switch(enter),void main(),case 1: cout“请依次输入学生所在的学年,班级,学生的学号,姓名以及数学、英语、计算机三科成绩:“;people.add();break;case 2: people.show(); break;,void main(),case
16、 3:coutenter2;switch(enter2)case 1:people.search();break;case 2:cout“不及格学生名单:“endl;people.list();break;while(enter23);break;,void main(),case 4:people.change();break;case 5:docoutenter1;switch(enter1)case 1:people.sort1();cout“按总分排名:“endl;break;case 2:people.sort2();cout“按平均分排名:“endl;break;while(enter13);break;,void main(),case 6:people.save();break;case 7:people.output();break;while(enter8); /The end!,运行结果截图,