C++简单学生成绩管理系统(C++课程设计)(精心整理).doc
-
资源ID:92330359
资源大小:103.40KB
全文页数:11页
- 资源格式: DOC
下载积分:8金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
C++简单学生成绩管理系统(C++课程设计)(精心整理).doc
C+学生成绩管理系统要求用C+语言编写学生成绩管理系统,要求能进行添加删除修改输入输出等的操作,并能使用面相对像原理对此系统进行实现。学生成绩管理系统分析:学生成绩管理系统分为8个模块,分别是:添加学生信息,输出学生成绩,查找学生成绩,修改学生成绩,删除学生成绩,学生成绩排序,保存数据到文件和读取文件中学生成绩的模块。学生成绩管理系统结构: Main()函数Menu()函数Student()Add()Output()Find()Modify()Deleted()Sort()Save()Load()重载符号Student类私有成员:char name20; char sex5; int number; int score3; int total; int average;公有函数各个子函数功能及其流程:1. 首先定义一个学生类Class Student;并定义其各个私有变量和公有函数Class Studentload重载Classaddoutputfinddeletemodifysave私有变量2. Student();构造函数,用于初始化学生类中的各个变量并记录3. Add();函数:用于添加学生信息的函数包括学号姓名成绩等的内容主函数main()菜单函数menu()选择菜单中的选项添加学生信息调用Add()函数调用重载<<并添加信息4. Output();函数:用于输出学生信息,包括学号姓名各科及总分平均成绩主函数main()菜单函数menu()选择菜单中的选项输出学生信息调用Output()函数输出学生信息5. Find();函数:用于查找学生各项信息。主函数main()菜单函数menu()选择菜单中的选项查找学生信息调用find()函数查找并输出学生信息要求输入学生姓名6. modify();函数:用于修改学生各项信息。主函数main()菜单函数menu()选择菜单中的选项修改学生信息调用modify()函数修改并保存学生信息要求输入学生姓名7. delete();函数:用于删除学生信息。主函数main()菜单函数menu()选择菜单中的选项删除学生信息调用delete()函数删除学生信息要求输入学生姓名8.sort();函数:对学生各项信息进行排序操作。主函数main()菜单函数menu()选择菜单中的选项学生信息排序调用Sort()函数完成排序操作8. save()和load();函数:将学生信息保存到文件中,并在需要的时候调用该文件将其中的学生信息显示出来 主函数main()菜单函数menu()选择菜单中的选项选保存或读取调用load()函数文件读取成功调用save()函数按要求输入文件名文件保存成功9.“=”“<<”“>>”符号的重载:在各个函数处理数据过程中对这些的调用处理函数源代码:此函数源代码在VisualC+6.0环境下编译通过。具体如下:#include"iostream.h" #include"conio.h" #include"iomanip.h" #include"stdio.h" #include"string.h" #include"stdlib.h" #include"fstream.h" class student /定义学生类 private:/定义学生类的私有成员char name20; /名字char sex5; /性别int number; /学号int score3; /分数int total; /总分int average; /平均分 public: /公有成员student(); /学生构造函数,用于学生数据的初始化及保存学生数据void add(); /添加学生信息函数void output(); /输出学生信息函数void find(); /查找学生数据函数void modify(); /修改学生信息函数void deleted(); /删除学生信息函数void sort(); /排序函数void save(); /保存学生信息并写入文件函数void load (); /打开写有学生信息的文件的函数student & operator=(student & T); /重载“=”符号friend istream & operator >> (istream & scin, student &s1); /重载“>>”符号friend ostream & operator << (ostream & scout, student &s2); /重载“>>”符号; student stu100; int n=0;void student:add() /添加函数 char flag='Y' while(toupper(flag)='Y') cin>>stun; n+; cout<<" 要继续添加吗(y/n)" cin>>flag; if(toupper(flag)!='Y') if(toupper(flag)='N') break; else cout<<"错误,请重输:" cin>>flag; void student:output() /输出函数 if(n!=0) cout<<" -n" cout<<" number name sex math C+ English total averagen" cout<<" - n" for(int t=0;t<n;t+) cout<<stut; getch(); void student:find() /查找函数 int f3=0; char n120; student temp; cout<<" 输入你要查找的人的姓名: " cin>>n1; for(int j=0;j<n;j+) if(strcmp(stuj.name,n1)=0) temp=stuj; f3=1; if(f3=0) cout<<"对不起,没有你要查找的学生成绩"<<endl; else cout<<" -n" cout<<" number name sex math C+ English total averagen" cout<<" - n" cout<<" "<<temp.number<<" "<<temp.name<<" "<<temp.sex<<" "<<temp.score0 <<" "<<temp.score1<<" "<<temp.score2<<" "<<temp.total<<" "<<temp.average<<endl; getch(); void student:modify() /修改函数 int f4=0; int t; char n250; cout<<" 输入你要修改的人的姓名:" cin>>n2; for(int j=0;j<n;j+) if(strcmp(stuj.name,n2)=0) t=j; f4=1; if(f4=0) cout<<"对不起,没有你要修改的学生成绩"<<endl; else cout<< "请输入学号: " cin>>stut.number; cout<< " 姓名: " cin>>stut.name; cout<< " 性别 : " cin>>stut.sex; cout<< " 数学成绩: " cin>>stut.score0; cout<< " C+成绩: " cin>>stut.score1; cout<< " 英语成绩: " cin>>stut.score2; stut.total=stut.score0+stut.score1+stut.score2; stut.average=stut.total/3; cout<<" 修改成功 !"<<endl; getch(); void student:deleted() /删除函数 char n320; bool f5=0; char c; do cout<<"请输入您要删除的学生姓名:" cin>>n3; for(int i=0;i<n;i+) if(strcmp(n3,stui.name)=0) f5=1; n-; do stui=stui+1; i+; while(i<=n); if(f5=0) cout<<"您要求删除的对象本来就不存在!" cout<<"要继续删除吗?(y/n)"<<endl; cin>>c; if(toupper(c)!='Y'&&toupper(c)!='N') cout<<"输入指令错误!请重新输入Y或N!"<<endl; cin>>c; while(toupper(c)='Y'); getch(); void student:sort() /排序函数 int i,j,k; student s3; for( i=0;i<(n-1);i+) k=i; for(j=i+1;j<n;j+) if(stuj.average>stui.average)k=j; if(k!=i) s3=stui; stui=stuk; stuk=s3; cout<<"nn排序成功!nn" void student:save() /保存函数 char filename120;cout<<"请输入文件名: " cin>>filename1; ofstream fout(filename1,ios:app); if(!fout)cout<<"文件不能打开!"<<endl; else for(int i=0;i<n;i+) fout<<' '<<stui.name<<' '<<stui.sex<<' '<<stui.number<<' ' <<stui.score0<<' '<<stui.score1<<' '<<stui.score2<<' '<<stui.total<<' '<<stui.average<<' ' cout<<"保存成功!"<<endl; fout.close(); getch(); void student:load() /读取函数 char filename220; cout<<"请输入你要读取的文件名: " cin>>filename2; ifstream fin(filename2,ios:in); if(!fin)cout<<"文件打不开 !"<<endl; else for(int i=0;i+,n=i-1) if(fin.eof()break; fin>>stui.name>>stui.sex>>stui.number >>stui.score0>>stui.score1>>stui.score2>>stui.total>>stui.average; cout<<"文件已读取成功!"<<endl; fin.close(); getch(); student & student:operator=(student & T) /重载= strcpy(name,T.name); strcpy(sex,T.sex); number=T.number; for(int i=0;i<3;i+)scorei=T.scorei; total=T.total; average=T.average; return ( * this ); ostream & operator << (ostream & scout, student &s2) /重载<< cout<<setw(6)<<s2.number<<setw(10)<<s2.name<<setw(8)<<s2.sex<<setw(8)<<s2.score0 <<setw(8)<<s2.score1<<setw(10)<<s2.score2<<setw(10)<<s2.total<<setw(8)<<s2.average<<endl; return scout; istream & operator >> (istream & scin,student &s1) /重载>> cout<< " t学号:" scin>>s1.number; cout<< " t姓名:" scin>>s1.name; cout<< " t性别 :" scin>>s1.sex; cout<< " t数学成绩:" scin>>s1.score0; cout<< " tC+成绩:" scin>>s1.score1; cout<< " t英语成绩:" scin>>s1.score2; s1.total=s1.score0+s1.score1+s1.score2; s1.average=s1.total/3; return scin; student:student() /构造函数 strcpy(name," "); strcpy(sex," "); number=0; for(int i=0;i<3;i+)scorei=0; total=0; average=0; void menu() /菜单函数 cout<<"nnn学生成绩管理系统主菜单 "<<endl; cout<<"nnn1.添加学生信息 "<<endl; cout<<"2.输出学生信息 "<<endl; cout<<"3.查找学生信息 "<<endl; cout<<"4.修改学生信息 "<<endl; cout<<"5.删除学生信息 "<<endl; cout<<"6.学生信息排序 "<<endl; cout<<"7.保存数据 "<<endl; cout<<"8.读出数据 "<<endl; cout<<"9.退出系统 "<<endl; cout<<"nn请选择(19)并按回车键确认:" int main() /主函数 int choose; student s; do menu(); cin>>choose; switch(choose) case 1: s.add(); break; case 2: s.output(); break; case 3: s.find(); break; case 4: s.modify(); break; case 5: s.deleted(); break; case 6: s.sort(); break; case 7: s.save(); break; case 8: s.load(); break; default : break; while(choose!=0); 11