学生成绩管理系统.docx
- 文档编号:30733283
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:22
- 大小:571.44KB
学生成绩管理系统.docx
《学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统.docx(22页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统
湖南工业职业技术学院
C++程序设计教程
学生成绩管理系统
姓名:
张明
班级:
数控s09-7
学号:
28
任课老师:
刘曼春
2010年下学期
1.程序初始化
2.成绩录入
3.按名字查询
4.增加数据
5.删除成绩
6.修改数据
7.显示所有成绩
8.按总分排名
9.按各个成绩排序
10.程序源代码
#include
#include
#include
classstu
{
charname[20];
doublemath,chinese,english,average,sum;
public:
stu()
{
}
stu(charn[20],doublema,doublechin,doubleeng)
{
strcpy(name,n);
math=ma;
chinese=chin;
english=eng;
}
doublegetsum()
{
sum=chinese+english+math;
returnsum;
}
doublegetaver()
{
average=getsum()/3;
returnaverage;
}
friendvoidmain();
};
voidmain()
{
cout<<"请选择您需要的操作!
"< cout<<"操作: "< cout<<"(0)数据录入"< cout<<" (1)增加人员"< cout<<" (2)删除人员"< cout<<"(3)修改数据"< cout<<"查询: "< cout<<"(4)按总成绩查询"< cout<<"(5)按姓名查询"< cout<<"(6)输出所有学生的数据"< cout<<"成绩名词"< cout<<"(7)按总分查询排名"< cout<<"(8)按语文查询排名"< cout<<"(9)按数学查询排名"< cout<<"(y)按英语查询排名"< cout<<"选择相关操作请输入相对的括号里的阿拉伯数字! "< cout<<"**********************作者(借鉴): 数控7班张明************************"< charp;charw; stu*s[50]; ofstream*file[50]; inti=0; intj=0; boolflag2=0; do { cin>>p; if((p>='0'&&p<='10')) flag2=1; else cout<<"指令错误! 请重新输入: "< }while(flag2==0); do{ switch(p) { case'0': { charc; charname[20];doublemath,chinese,english; do{ cout<<"请输入姓名"< cin>>name; cout<<"请输入数学成绩: "< cin>>math; cout<<"请输入语文成绩: "< cin>>chinese; cout<<"请输入外语成绩: "< cin>>english; file[j]=newofstream("d: \\document",ios: : ate); *file[j]<<"姓名"< j++; s[i]=newstu(name,math,chinese,english); i++; cout<<"数据录入成功,想继续录入吗(y/n)"< cin>>c; flag2=0; do { if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } else flag2=1; }while(flag2==0); }while(c=='y'); break; } case'4': { doublet;charc; do { intflag1=0; cout<<"请输入你要查询学生的总成绩"< cin>>t; for(intq=0;q { if(s[q]->getsum()==t) { flag1=1; cout<<"您要查询的学生是: "<<(*s[q]).name< } } if(flag1==0) cout<<"对不起! 您要查询的学生不存在! "< cout<<"您想继续查询吗? (y/n)"< cin>>c; if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } } while(c=='y'); break; } case'5': { charn[20];intj=0;charc; do{ intflag=0; cout<<"请输入你要查询的学生姓名"< cin>>n; for(intj=0;j { if(strcmp(n,(*s[j]).name)==0) { flag=1; cout<<"您要查询的学生是: "<<(*s[j]).name< cout<<(*s[j]).name<<"的总成绩成绩是"<<(*s[j]).getsum()< "<<(*s[j]).getaver()< } } if(flag==0) cout<<"对不起! 您要查询的学生不存在! "< cout<<"您想继续查询吗? (y/n)"< cin>>c; if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } } while(c=='y'); break; } case'1': { charname[20];doublemath,chinese,english; charc; do { cout<<"请输入您要增加的学生的姓名: "< cin>>name; cout<<"请输入数学成绩: "< cin>>math; cout<<"请输入语文成绩: "< cin>>chinese; cout<<"请输入外语成绩: "< cin>>english; file[j]=newofstream("d: \\document",ios: : ate); *file[j]<<"姓名"< j++; s[i]=newstu(name,math,chinese,english); i++; cout<<"数据录入成功,想继续录入吗(y/n)"< cin>>c; if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } }while(c=='y'); break; } case'2': { charname[20];boolflag3=0;charc; do{ cout<<"请输入您要删除的学生姓名: "< cin>>name; for(inth=0;h { if(strcmp(name,s[h]->name)==0) { flag3=1; i--; do{ s[h]=s[h+1]; h++; }while(h<=i); } } if(flag3==0) cout<<"您要求删除的对象本来就不存在! 请检查输入的正确性! "; cout<<"要继续删除吗? (y/n)"< cin>>c; if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } }while(c=='y'); break; } case'3': { charname[20];doublemat,chin,eng;flag2=0; charc; do { cout<<"请输入您要修改的学生的姓名: "< cin>>name; for(inth=0;h { if(strcmp(name,s[h]->name)==0) { flag2=1; cout<<"请输入新的数学成绩: "< cin>>mat; cout<<"请输入新的语文成绩: "< cin>>chin; cout<<"请输入新的外语成绩: "< cin>>eng; s[h]->chinese=chin; s[h]->math=mat; s[h]->english=eng; cout<<"数据修改成功! "; } } if(flag2==0) { cout<<"您要修改的学生本来就不存在! 请检查重新输入! "< } cout<<"想继续修改吗(y/n)"< cin>>c; if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } }while(c=='y'); break; } case'6': { cout<<"本系统所有学生数据如下: "< if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "< for(intk=0;k { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""<<(*s[k]).getsum() <<"平均分: "<<""<<(*s[k]).getaver()< } break; } case'7': { intt;stub; cout<<"本系统所以学生排名如下: "< for(intx=0;x { t=x; for(inty=x+1;y { if((s[t]->getsum())<(s[y]->getsum())) t=y; if(t! =x) { b=*s[x]; *s[x]=*s[t]; *s[t]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "; for(intk=0;k { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } break; } case'8': { intt;stub; cout<<"本系统所以学生语文排名如下: "< for(intx=0;x { t=x; for(inty=x+1;y { if((s[t]->chinese)<(s[y]->chinese)) t=y; if(t! =x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "; for(intk=0;k { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } break; } case'9': { intt;stub; cout<<"本系统所以学生数学排名如下: "< for(intx=0;x { t=x; for(inty=x+1;y { if((s[t]->math)<(s[y]->math)) t=y; if(t! =x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "; for(intk=0;k { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } break; } case'y': { intt;stub; cout<<"本系统所以学生英语排名如下: "< for(intx=0;x { t=x; for(inty=x+1;y { if((s[t]->english)<(s[y]->english)) t=y; if(t! =x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "; for(intk=0;k { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } } break; } cout<<"您想继续进行其他操作吗? (y/n)"< boolflag4=0; do { cin>>w; if(w! ='y'&&w! ='n') cout<<"指令错误! 请重新输入! "< else flag4=1; }while(flag4==0); if(w=='y') cout<<"请输入操作代码(0录入/4按总分查询/5按姓名查询/1增加人员/2删除人员/3修改数据/6显示所有成员数据/7按总分排名/8按语文排名/9按数学排名/y按英语排名)"< cin>>p; }while(w=='y'); for(intx=0;x { deletes[x]; cout<<"deleteallmembers! "< } } 11.学习心得 通过本学期c++程序设计教程的学习,我对c++有了一定的了解和学习兴趣,想着以后继续学习下去。 记住好的习惯: 1、在比较复杂的代码后面要有注释。 如果光溜溜一堆代码,别人就不可能看懂你的代码,而且也不利于查找错误。 除非你一直编东西给自己看。 能在代码里说明白的就一定要在代码里体现。 比如变量名、函数名,在命名的时候尽量说明是干什么用的。 2、注意语句的嵌套不能过长,一般来说,一段代码里Tab要少于8个。 简单说就是语句最多8个嵌套。 对于新手来说,这个标准还要下降。 有一个好习惯是,把主函数尽量写简短。 经常看到别人的代码是主函数只有几行,几个函数调用,而定义全在主函数外部。 这样一是减少了主函数内部的嵌套,二是比较精简,容易读懂。 3、注意语句的选择。 并不是分支语句就用if循环就用while、for。 在适当的情况下switch和dowhile语句也是要用的。 在某些时候,switch语句比if语句更加精练明了,而dowhile比while少一个循环。 12.参考资料 《c++程序教程》 《XX》name<<chinese<<"数学:mathenglish<<"总分:name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统
![提示](https://static.bdocx.com/images/bang_tan.gif)