c++课程设计报告学生成绩管理系统.doc
《c++课程设计报告学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《c++课程设计报告学生成绩管理系统.doc(21页珍藏版)》请在咨信网上搜索。
. . C++实习报告 一、课程设计目的 1.C++课程设计,使我们能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解, 2.要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。 3.通过课程设计掌握《C++语言程序设计》的编程思想,为后续课程打下基础。 4.培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。 二、课程设计的容 1、课程设计的题目及简介 文本界面为 管理员 1.输入信息 2.保存信息 3.查询信息 4.修改并保存 5.显示全部 6.删除信息 7.退出系统 学生 1信息查询 (1)输入 (2)输入学号 2退出系统 2、设计说明 总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体 结构设计合理。也可根据自己对题目的理解增加新的功能模块。 系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行 (1)首先,看题目要求,每一条记录包括一个学生的、性别、专业、出生日期、家庭住址、英语成绩。同时 ,应具备以下功能:1、输入功能:一次可以完成自定义学生人数的学生成绩记录的输入。 2.保存功能:对指定学生的成绩进行保存 3. 查询功能:选择某种方式并输入该成绩查询符合条件的学生成绩4、修改并保存功能:对指定学生的成绩进行修改保存。 5.显示功能:将以上功能操作后的学生成绩显示出来。 6、删除功能:对指定学生的成绩进行删除。 7. 退出主菜单。 3程序流程图 各功能模块的实现流程图: 1增加学生成绩 调用函数Node* Create()判断gg是否等于一如果是可创建链表输入相应的学生成绩如果不是则需要运用Insert(p)函数插入结点增加学生成绩的,并通过chundang(p)函数进行存档,具体流程如下图所示 判断以前是否存储了学生成绩是新增成绩 退出该功能,返回主菜单,继续选择 流程图 新增学生成绩 按提示:输入学个的各种成绩 按格式显示输入的学生成绩 2删除学生成绩 调用函数Node* Delete(Node* head , int num) 删除学生的成绩则必须对链表结点进行删除意味着将某个要删除结点前后的连续打断,去掉该结点,使前后指针变量重新连接,完成链表结点的删除任务 流程图 输入要删除学生成绩2 退出该功能,返回主菜单,继续选择 输入要删除成绩的编号 该生成绩已删除,显示其他同学的成绩 输出所有学生的成绩 3.导入学生成绩 打开存档文件ifstream Filein("out.txt");输出说存档的学生成绩 导入学生成绩 显示学生的成绩 退出该功能,返回主菜单,继续选择 4、学生成绩的搜索 调用函数Node* sousuo(Node* head , char na[20]) ,按学生的进行搜索 退出该功能,返回主菜单,继续选择 输出所以查询的学生成绩 按照提示输入学生的XX进行搜索 搜索学生成绩 4 流程图: 5成绩的统计 调用函数Node* tongji(Node* head) 运用一个for循环,将输入的相应的学生成绩用strcmp()函数与对应的数组进行比较,然后再进行统计 输出统计的成绩 统计所设定的专业人数和男女性别的人数,计算学生的年龄并统计 成绩的统计:5 退出该功能,返回主菜单,继续选择 。 6、按英语成绩进行排序: 调用函数Node* paixu(Node* head)完成排序功能 它的主要思想的:首先设置英语成绩的最大值100,最小值0(也可以使150或者其他)然后让输入的学生成绩英语成绩一次比较进行比较,(如果有相等的就输出排名1 ,然后排名加1),否则最大值减1,然后再次进行比较( 如果等于99且上次没有等于100的,就输出排名1,然后排名加1,如果上次有等于100的排名为2),如果没有与99相等的.,则继续循环…… 流程图: 输出排序之后的学生成绩 对英语成绩进行排序 退出该功能,返回主菜单,继续选择 按学生成绩进行排序5 总功能模块图: 2、输入要删除的学生的编号,删除学生成绩。 1输入学生的成绩:XX、性别、专业、出生日期、家庭地址、英语成绩 菜单 1. 新增学生成绩 2. 删除学生成绩 3. 导入学生成绩 4. 学生成绩搜索 5. 学生成绩统计 6. 学生成绩保存 7. 退出 5统计各种专业、男女、相应年龄的人数 7保存学生成绩:提示保存成功 4、输入你要查找你学生XX 3、输出学生的编号、XX、性别、专业、出生日期、家庭地址、英语成绩 7、退出系统 学生管理系统 功能模块图 各功能显示效果模块图: 学生和管理员输入 管理员进入界面后 增加学生成绩和导入学生成绩 保存学生成绩 学生进入界面后,按学生查询并输出成绩 4、程序清单 #include <iostream> #include <string> #include <fstream> using namespace std; #define password 123456; //people.h class stupeople //人员类 基类 { public: int getage(); //年龄 char* getname(); // char* getsex(); //性别 void display(); //输出信息 void peosearch(); //查询信息 void peosave(); //保存信息 private: char name[20]; char sex[4]; int age; }; //student.h class stustudent:public stupeople { public: int getnumber();//学号 double getcscore();//语文 double getmscore();//高数 double getescore();//外语 double getpscore();//C++ double getdscore();//数据库 double getsscore();//体育 double getave();//平均成绩 double getsum();//总成绩 void stuenterinfo();//输入信息 void display();//输出信息 void stusearch();//查找信息 void stusave();//保存信息 void stuload();//加载信息 private: int number; double cscore; double mscore; double escore; double dscore; double pscore; double sscore; double sumscore; double avescore; }; //admin.h class stuadmin:public stustudent //派生类 管理员类 { public: void change(); //更改信息 void del(); //删除信息 private: int newage; int newnumber; char newsex; char newname; char changename[20]; double newcscore; double newmscore; double newescore; double newdscore; double newpscore; double newsscore; double newsumscore; double newavescore; }; int i,j,p[6]; char A,B,x; stuadmin sa; struct studentinfo { int number; char name[20]; char sex[4]; int age ; double cscore; double mscore; double escore; double pscore; double dscore; double sscore; double sumscore; double avescore; int flag; }s; //人员类的相关函数的定义 int stupeople::getage() { return age; } char* stupeople::getname() { return name; } char* stupeople::getsex() { return sex; } //学生类的相关函数的定义 int stustudent::getnumber() { return number; } double stustudent::getcscore() { return cscore; } double stustudent::getmscore() { return mscore; } double stustudent::getescore() { return escore; } double stustudent::getpscore() { return pscore; } double stustudent::getdscore() { return dscore; } double stustudent::getsscore() { return sscore; } double stustudent::getsum() { sumscore=cscore+mscore+escore+pscore+dscore+sscore; return sumscore; } double stustudent::getave()//平均成绩 { avescore=sumscore/6; return avescore; } void stustudent::stuenterinfo()//输入信息 { cout<<"请输入学号:"; cin>>s.number; cout<<endl; cout<<"请输入:"; cin>>s.name; cout<<endl; cout<<"请输入性别:"; cin>>s.sex; cout<<endl; cout<<"请输入年龄:"; cin>>s.age; cout<<endl; cout<<"请输入各科成绩:"<<endl; cout<<"语文:"; cin>>s.cscore; cout<<endl; cout<<"高数:"; cin>>s.mscore; cout<<endl; cout<<"外语:"; cin>>s.escore; cout<<endl; cout<<"C++:"; cin>>s.pscore; cout<<endl; cout<<"数据库:"; cin>>s.dscore; cout<<endl; cout<<"体育:"; cin>>s.sscore; cout<<endl; cout<<"信息输入成功!"<<endl; s.flag=0; s.sumscore= s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscore; s.avescore=s.sumscore/6; } void stustudent::stusave()//保存信息 { ofstream out("information.txt",ios::app|ios::binary); if(out) { out.write((char*)&s, sizeof s); cout<<"信息保存成功!"<<endl; } else cout<<"文本为空!"<<endl; out.close(); } void stustudent::display()//显示信息 { ifstream ifile; ifile.open("information.txt",ios::binary); if(ifile) { while(ifile.read((char*)&s,sizeof s)!=0) { if(s.flag==0) { cout<<"学号:"<<s.number<<":"<<s.name<<"性别:"<<s.sex<<"年龄:"<<s.age<<"语文:"<< s.cscore<<"高数:"<<s.mscore<<"外语:"<<s.escore<<"C++:"<<s.pscore<<"数据库:"<<s.dscore <<"体育:"<<s.sscore<<"总分:"<<s.sumscore<<"平均分:"<<s.avescore<<endl; } } } else cout<<"文本为空!"<<endl; ifile.close(); } void stustudent::stusearch()//查询信息 { char stuname[20]; int e=0; cout<<"请输入您要查找的:"; cin>>stuname; ifstream ifile; ifile.open("information.txt",ios::binary); if(ifile) { while(ifile.read((char*)&s,sizeof s)!=0) { if((strcmp(stuname,s.name)==0)&& s.flag==0) { cout<<"学号:"<<s.number<<":"<<s.name<<"性别:"<<s.sex<<"年龄:"<<s.age <<"语文:"<<s.cscore<<"高数:"<<s.mscore<<"外语:"<<s.escore<<"C++:"<<s.pscore<< "数据库:"<<s.dscore<<"体育:"<<s.sscore<<"总分:"<<s.sumscore<<"平均分:"<<s.avescore<<endl; e=1; break; } } } else cout<<"文本未建立!"<<endl; ifile.close(); if(e==0) cout<<"没有相关信息!"<<endl; } //管理员类的相关函数的定义 void stuadmin::change() { char changename[20]; int e; cout<<"请输入您要修改的:"; cin>>changename; fstream ifile("information.txt",ios::in|ios::out); while(ifile.read((char*)&s,sizeof s)!=0) { if((strcmp(changename,s.name)==0)&&s.flag==0) { cout<<"学号:"<<s.number<<":"<<s.name<<"性别:"<<s.sex<<"年龄:"<<s.age<< "语文:"<<s.cscore<<"高数:"<<s.mscore<<"外语:"<<s.escore<<"C++:"<<s.pscore <<"数据库:"<<s.dscore<<"体育:"<<s.sscore<<"总分:"<<s.sumscore<<"平均分:"<<s.avescore<<endl; e=1; break; } } if(e==0) cout<<"没有相关信息!"<<endl; if(e==1) { int choose; cout<<"\t请选择修改方式:"<<endl<<endl; cout<<"1.修改学号:"<<endl; cout<<"2.修改:"<<endl; cout<<"3.修改性别:"<<endl; cout<<"4.修改年龄:"<<endl; cout<<"5.修改语文成绩:"<<endl; cout<<"6.修改高数成绩:"<<endl; cout<<"7.修改外语成绩:"<<endl; cout<<"8.修改C++成绩:"<<endl; cout<<"9.修改数据库成绩:"<<endl; cout<<"10.修改体育成绩:"<<endl; cout<<endl; cout<<"请选择:"<<endl; cin>>choose; switch(choose) { case 1: cout<<"请输入学生学号:"<<endl; cin>>s.number; break; case 2: cout<<"请输入学生:"<<endl; cin>>s.name; break; case 3: cout<<"请输入学生性别<m男 n女>:"<<endl; cin>>s.sex; break; case 4: cout<<"请输入学生年龄:"<<endl; cin>>s.age; break; case 5: cout<<"请输入学生语文成绩:"<<endl; cin>>s.cscore; break; case 6: cout<<"请输入学生高数成绩:"<<endl; cin>>s.mscore; break; case 7: cout<<"请输入学生外语成绩:"<<endl; cin>>s.escore; break; case 8: cout<<"请输入学生C++成绩:"<<endl; cin>>s.pscore; break; case 9: cout<<"请输入数据库成绩:"<<endl; cin>>s.dscore; break; case 10: cout<<"请输入学生体育成绩:"<<endl; cin>>s.sscore; break; /*default: cout<<"\t输入错误,返回主菜单!"<<endl; adminwele();*/ } cout<<"信息输入成功!"<<endl; s.flag=0; s.sumscore= s.cscore+s.mscore+s.escore+s.pscore+s.dscore+s.sscore; s.avescore=s.sumscore/6; ifile.seekp(-(sizeof s),ios::cur); ifile.write((char*)&s,sizeof s); cout<<"信息已修改并保存!"<<endl; } ifile.close(); } void stuadmin::del()//删除信息 { char delname[20]; int e=0; cout<<"请输入您要删除的学生:"<<endl; cin>>delname; fstream ifile; ifile.open("information.txt",ios::in|ios::out); while(ifile.read((char*)&s,sizeof s)!=0) { if((strcmp(delname,s.name)==0)&&s.flag==0) { cout<<"学号:"<<s.number<<":"<<s.name<<"性别:"<<s.sex<<"年龄:"<<s.age<< "语文:"<<s.cscore<<"高数:"<<s.mscore<<"外语:"<<s.escore<<"C++:"<<s.pscore<<"数据库:" <<s.dscore<<"体育:"<<s.sscore<<"总分:"<<s.sumscore<<"平均分:"<<s.avescore<<endl; e=1; break; } } if(e==0) cout<<"没有相关信息!"<<endl; if(e==1) { s.flag=1; ifile.seekp(-(sizeof s),ios::cur); ifile.write((char*)&s,sizeof s); cout<<"信息删除成功!"<<endl; } ifile.close(); } //欢迎界面 void studentwele()//学生欢迎界面 { cout<<"********************************************************************************"<<endl; cout<<"****************************欢迎使用学生信息管理系统****************************"<<endl; cout<<"********************************************************************************"<<endl; cout<<"\t\t 1.查询信息 \t\t 2.退出系统"<<endl; cout<<"********************************************************************************"<<endl; do { cout<<"请输入您要进行的操作编号(1或2):"; cin>>i; cout<<endl; if(i<1||i>2) cout<<"对不起,请输入1或2这两个选择数字!"<<endl; }while (i<1||i>2); switch(i) { case 1: sa.stusearch(); studentwele(); break; case 2:exit(0); break; } } void adminwele()//管理员欢迎界面 { cout<<"********************************************************************************"<<endl; cout<<"****************************欢迎使用学生信息管理系统****************************"<<endl; cout<<"********************************************************************************"<<endl; cout<<"\t1.输入信息 \t2.保存信息 \t3.查询信息 \t4.修改并保存"<<endl; cout<<"\t5.显示全部 \t6.删除信息 \t7.退出系统 "<<endl; cout<<"********************************************************************************"<<endl; do { cout<<"请输入您要进行的操作编号(1--7):"; cin>>j; cout<<endl; if(j<1||j>7) cout<<"对不起,请输入1-7这几个选择数字!"<<endl; } while(j<1||j>7); switch(j) { case 1: sa.stuenterinfo(); adminwele(); break; case 2: sa.stusave(); adminwele(); break; case 3: sa.stusearch(); adminwele(); break; case 4: sa.change(); adminwele(); break; case 5: sa.display(); adminwele(); break; case 6: sa.del(); adminwele(); break; case 7:exit(0); break; } } void main()//主函数 { do { cout<<"********************************************************************************"<<endl; cout<<"****************************欢迎使用学生信息管理系统****************************"<<endl; cout<<"********************************************************************************"<<endl; cout<<"请选择您的登陆身份:"<<endl; cout<<"\t\t A 学生 \t\t B管理员"<<endl; cout<<"选择(A或B):"; cin>>x; if (x=='A') { studentwele(); } else if (x=='B') { cout<<"......正在验证您的身份,请输入指令(6位):"; cin>>p[6]; if(p[6]==123456) { cout<<"身份验证成功!"<<endl; adminwele(); } else { cout<<"您输入的指令错误!"; cout<<"系统将自动返回....."<<endl; main(); } } else if (x!='A'&&x!='B') { cout<<"输入错误!\t系统将返回主界面....."<<endl; cout<<endl; } } while(x!='A'&&x!='B'); } - 优选- 配套讲稿:
如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。
关于本文