C++简单学生成绩管理系统(C++课程设计).doc
《C++简单学生成绩管理系统(C++课程设计).doc》由会员分享,可在线阅读,更多相关《C++简单学生成绩管理系统(C++课程设计).doc(11页珍藏版)》请在咨信网上搜索。
C++学生成绩管理系统 要求用C++语言编写学生成绩管理系统,要求能进行添加删除修改输入输出等的操作,并能使用面相对像原理对此系统进行实现。 学生成绩管理系统分析: 学生成绩管理系统分为8个模块,分别是:添加学生信息,输出学生成绩,查找学生成绩,修改学生成绩,删除学生成绩,学生成绩排序,保存数据到文件和读取文件中学生成绩的模块。 学生成绩管理系统结构: Main()函数 Menu()函数 Student() Add() Output() Find() Modify() Deleted() Sort() Save() Load() 重载符号 Student类 私有成员: char name[20]; char sex[5]; int number; int score[3]; int total; int average; 公有函数 各个子函数功能及其流程: 1. 首先定义一个学生类Class Student;并定义其各个私有变量和公有函数 Class Student load 重载 Class add output find delete modify save 私有变量 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 name[20]; //名字 char sex[5]; //性别 int number; //学号 int score[3]; //分数 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 stu[100]; int n=0; void student::add() //添加函数 { char flag='Y'; while(toupper(flag)=='Y') { cin>>stu[n]; 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 average\n"; cout<<" --------------------------------------------------------------------------- \n"; for(int t=0;t<n;t++) { cout<<stu[t]; } } getch(); } void student::find() //查找函数 { int f3=0; char n1[20]; student temp; cout<<" 输入你要查找的人的姓名: "; cin>>n1; for(int j=0;j<n;j++) { if(strcmp(stu[j].name,n1)==0) { temp=stu[j]; f3=1; } } if(f3==0) cout<<"对不起,没有你要查找的学生成绩"<<endl; else { cout<<" ---------------------------------------------------------------------------\n"; cout<<" number name sex math C++ English total average\n"; cout<<" --------------------------------------------------------------------------- \n"; cout<<" "<<temp.number<<" "<<temp.name<<" "<<temp.sex<<" "<<temp.score[0] <<" "<<temp.score[1]<<" "<<temp.score[2]<<" "<<temp.total<<" "<<temp.average<<endl; } getch(); } void student::modify() //修改函数 { int f4=0; int t; char n2[50]; cout<<" 输入你要修改的人的姓名:"; cin>>n2; for(int j=0;j<n;j++) { if(strcmp(stu[j].name,n2)==0) { t=j; f4=1; } } if(f4==0) cout<<"对不起,没有你要修改的学生成绩"<<endl; else { cout<< "请输入学号: "; cin>>stu[t].number; cout<< " 姓名: "; cin>>stu[t].name; cout<< " 性别 : "; cin>>stu[t].sex; cout<< " 数学成绩: "; cin>>stu[t].score[0]; cout<< " C++成绩: "; cin>>stu[t].score[1]; cout<< " 英语成绩: "; cin>>stu[t].score[2]; stu[t].total=stu[t].score[0]+stu[t].score[1]+stu[t].score[2]; stu[t].average=stu[t].total/3; cout<<" 修改成功 !"<<endl; } getch(); } void student::deleted() //删除函数 { char n3[20]; bool f5=0; char c; do{ cout<<"请输入您要删除的学生姓名:"; cin>>n3; for(int i=0;i<n;i++) { if(strcmp(n3,stu[i].name)==0) { f5=1; n--; do{ stu[i]=stu[i+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(stu[j].average>stu[i].average) k=j; if(k!=i) { s3=stu[i]; stu[i]=stu[k]; stu[k]=s3; } } cout<<"\n\n排序成功!\n\n"; } void student::save() //保存函数 { char filename1[20]; cout<<"请输入文件名: "; cin>>filename1; ofstream fout(filename1,ios::app); if(!fout)cout<<"文件不能打开!"<<endl; else { for(int i=0;i<n;i++) fout<<' '<<stu[i].name<<' '<<stu[i].sex<<' '<<stu[i].number<<' ' <<stu[i].score[0]<<' '<<stu[i].score[1]<<' '<<stu[i].score[2]<<' '<<stu[i].total<<' '<<stu[i].average<<' '; cout<<"保存成功!"<<endl; } fout.close(); getch(); } void student::load() //读取函数 { char filename2[20]; 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>>stu[i].name>>stu[i].sex>>stu[i].number >>stu[i].score[0]>>stu[i].score[1]>>stu[i].score[2]>>stu[i].total>>stu[i].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++)score[i]=T.score[i]; 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.score[0] <<setw(8)<<s2.score[1]<<setw(10)<<s2.score[2]<<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.score[0]; cout<< " \tC++成绩:"; scin>>s1.score[1]; cout<< " \t英语成绩:"; scin>>s1.score[2]; s1.total=s1.score[0]+s1.score[1]+s1.score[2]; s1.average=s1.total/3; return scin; } student::student() //构造函数 { strcpy(name," "); strcpy(sex," "); number=0; for(int i=0;i<3;i++)score[i]=0; total=0; average=0; } void menu() //菜单函数 { cout<<"\n\n\n学生成绩管理系统主菜单 "<<endl; cout<<"\n\n\n1.添加学生信息 "<<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<<"\n\n请选择(1~9)并按回车键确认:"; } 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- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 简单 学生 成绩管理系统 课程设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文