2022年学生成绩管理系统源程序C++ .pdf
#include #include #include class stu char name20; double math,chinese,english,average,sum; public: stu() stu(char n20,double ma,double chin,double eng) strcpy(name,n); math=ma; chinese=chin; english=eng; double getsum() sum=chinese+english+math; return sum; double getaver() average=getsum()/3; return average; friend void main(); ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 17 页 - - - - - - - - - void main() cout 请选择您需要的操作!endl; cout 操作: endl; cout(0)数据录入 endl; cout(1)增加人员 endl; cout(2)删除人员 endl; cout(3)修改数据 endl; cout 查询: endl; cout(4)按总成绩查询 endl; cout(5)按姓名查询 endl; cout(6)输出所有学生的数据endl; cout 成绩名词 endl; cout(7)按总分查询排名endl; cout(8)按语文查询排名endl; cout(9)按数学查询排名endl; cout(y)按英语查询排名 endl; cout 选择相关操作请输入相对的括号里的阿拉伯数字!p; if(p=0&p=10) flag2=1; else cout 指令错误!请重新输入:endl; while(flag2=0); do switch(p) case 0: char c; char name20;double math,chinese,english; do cout 请输入姓名 name; cout 请输入数学成绩:math; cout 请输入语文成绩:chinese; cout 请输入外语成绩:english; filej=new ofstream(d:document,ios:ate); *filej姓名name数学成绩 math语文成绩chinese外语成绩 englishendl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 17 页 - - - - - - - - - j+; si=new stu(name, math, chinese, english); i+; cout 数据录入成功,想继续录入吗(y/n)c; flag2=0; do if(c!=y&c!=n) cout 指令错误!请重新输入!c; else flag2=1; while(flag2=0); while(c=y); break; case 4: double t;char c; do int flag1=0; cout 请输入你要查询学生的总成绩t; for(int q=0;qgetsum()=t) flag1=1; cout您要查询的学生是:(*sq).nameendl; if(flag1=0) cout 对不起!您要查询的学生不存在!endl; cout您想继续查询吗 ?(y/n)c; if(c!=y&c!=n) cout 指令错误!请重新输入!c; while(c=y); break; case 5: char n20;int j=0;char c; do int flag=0; cout 请输入你要查询的学生姓名n; for(int j=0;ji;j+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 17 页 - - - - - - - - - if(strcmp(n,(*sj).name)=0) flag=1; cout 您要查询的学生是:(*sj).nameendl; cout(*sj).name的总成绩成绩是(*sj).getsum() endl平均成绩是: (*sj).getaver()endl; if(flag=0) cout对不起 !您要查询的学生不存在!endl; cout 您想继续查询吗 ?(y/n)c; if(c!=y&c!=n) cout 指令错误!请重新输入!c; while(c=y); break; case 1: char name20;double math,chinese,english; char c; do 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 17 页 - - - - - - - - - cout 请输入您要增加的学生的姓名:name; cout 请输入数学成绩:math; cout 请输入语文成绩:chinese; cout 请输入外语成绩:english; filej=new ofstream(d:document,ios:ate); *filej姓名name数学成绩 math语文成绩chinese外语成绩 englishendl; j+; si=new stu(name, math, chinese, english); i+; cout 数据录入成功,想继续录入吗(y/n)c; if(c!=y&c!=n) cout 指令错误!请重新输入!c; while(c=y); break; case 2: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 17 页 - - - - - - - - - char name20;bool flag3=0;char c; do cout 请输入您要删除的学生姓名:name; for(int h=0;hname)=0) flag3=1; i-; do sh=sh+1; h+; while(h=i); if(flag3=0) cout 您要求删除的对象本来就不存在!请检查输入的正确性! ; cout要继续删除吗? (y/n)c; if(c!=y&c!=n) cout 指令错误!请重新输入!c; while(c=y); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 17 页 - - - - - - - - - break; case 3: char name20;double mat,chin,eng;flag2=0; char c; do cout 请输入您要修改的学生的姓名:name; for(int h=0;hname)=0) flag2=1; cout 请输入新的数学成绩:mat; cout 请输入新的语文成绩:chin; cout 请输入新的外语成绩:eng; sh-chinese=chin; sh-math=mat; sh-english=eng; cout 数据修改成功! ; if(flag2=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 17 页 - - - - - - - - - cout您要修改的学生本来就不存在!请检查重新输入!endl; cout想继续修改吗 (y/n)c; if(c!=y&c!=n) cout 指令错误!请重新输入!c; while(c=y); break; case 6: cout本系统所有学生数据如下:endl; if(i=0) cout管理系统中没有录入数据或者数据已经被删除! endl; for(int k=0;ki;k+) coutk+1 姓名: name 语文: chinese数学: math 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 17 页 - - - - - - - - - 外语: english总分: (*sk).getsum() 平均分: (*sk).getaver()endl; break; case 7: int t;stu b; cout本系统所以学生排名如下:endl; for(int x=0;xi-1;x+) t=x; for(int y=x+1;ygetsum()getsum() t=y; if(t!=x) b=*sx; *sx=*st; *st=b; if(i=0) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 17 页 - - - - - - - - - cout管理系统中没有录入数据或者数据已经被删除! ; for(int k=0;ki;k+) coutk+1 姓名: name 语文: chinese数学: math 外语: english总分: getsum() 平均分: getaver()endl; break; case 8: int t;stu b; cout本系统所以学生语文排名如下:endl; for(int x=0;xi-1;x+) t=x; for(int y=x+1;ychinese)chinese) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 17 页 - - - - - - - - - t=y; if(t!=x) b=*st; *st=*sx; *sx=b; if(i=0) cout管理系统中没有录入数据或者数据已经被删除! ; for(int k=0;ki;k+) coutk+1 姓名: name 语文: chinese数学: math 外语: english总分: getsum() 平均分: getaver()endl; break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 17 页 - - - - - - - - - case 9: int t;stu b; cout本系统所以学生数学排名如下:endl; for(int x=0;xi-1;x+) t=x; for(int y=x+1;ymath)math) t=y; if(t!=x) b=*st; *st=*sx; *sx=b; if(i=0) cout管理系统中没有录入数据或者数据已经被删除! ; for(int k=0;ki;k+) coutk+1 姓名: name 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 17 页 - - - - - - - - - 语文: chinese数学: math 外语: english总分: getsum() 平均分: getaver()endl; break; case y: int t;stu b; cout本系统所以学生英语排名如下:endl; for(int x=0;xi-1;x+) t=x; for(int y=x+1;yenglish)english) t=y; if(t!=x) b=*st; *st=*sx; *sx=b; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 17 页 - - - - - - - - - if(i=0) cout管理系统中没有录入数据或者数据已经被删除! ; for(int k=0;ki;k+) coutk+1 姓名: name 语文: chinese数学: math 外语: english总分: getsum() 平均分: getaver()endl; break; cout 您想继续进行其他操作吗?(y/n)w; if(w!=y&w!=n) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 17 页 - - - - - - - - - cout 指令错误!请重新输入!endl; else flag4=1; while(flag4=0); if(w=y) cout 请输入操作代码 (0 录入/4 按总分查询 /5 按姓名查询 /1 增加人员 /2 删除人员 /3 修改数据 /6 显示所有成员数据/7 按总分排名 /8 按语文排名 /9 按数学排名/y 按英语排名)p; while(w=y); for(int x=0;xi;x+) delete sx; coutdelete all members!endl; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 17 页 - - - - - - - - -