版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言课程设计报告C++课程设计报告题目:学生学籍成绩管理系统
目录一设计目的 3二课程设计的内容 3三课程设计的要求与数据 4四课程设计应完成的工作 4五总体设计(包含几大功能模块) 5六详细设计 66.1各个模块的功能和实现 66.2流程图 7(管理员模式流程图) 7七调试分析(各模块测试结果) 97.1源代码 97.2各模块测试结果 24八总结 29九参考资料 30一设计目的通过本课程设计巩固《C++面向对象程序设计是用教程》课程的教学成果,深入理解C++程序设计中的中高级技术,通过课程设计的综合训练,培养学生实际分析问题、编程和动手能力、提高学生利用C++进行程序设计的能力,初步培养良好的编程习惯和编程风格,学习程序的文档的撰写方法。二课程设计的内容通过C++程序系统,设计一个可以对学生的学籍成绩信息进行管理的程序,其中学生的信息可以包括:姓名,性别,学号、各科目的成绩的平均分排序等,其功能可以包括学生成绩的输入、输出、查询、显示,查询,排序、删除、初始化、保存,退出等。三课程设计的要求与数据1、用C++实现系统;2、对学生信息(包括学号、姓名、语文、数学、性别、平均分)进行管理,包括学生成绩的信息输入、输出、查询、删除、排序、统计、退出、显示,以及整个程序的切换登录模式和修改管理员的信息.3、学生信息包括:(1)、每一条记录包括一个学生的学号、姓名、课程成绩、性别(2)、成绩信息录入功能:(成绩信息用文件保存,可以一次完成若干条记录的输入。)(3)、成绩信息显示浏览功能:完成全部学生记录的显示。(4)、查询功能:完成按姓名查找学生记录,并显示。(5)、成绩信息的删除:按学号进行删除某学生的成绩.(6)、排序功能:按学生平均成绩进行排序。(7)、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!四课程设计应完成的工作(1)编写算法;(2)算法测试,并有具体的测试结果和结果分析;(3)撰写课程设计报告。内容包括:封面扉页设计任务书目录总体设计方案(包括流程图)使用说明及运行实例(包括界面)成员设计内容简介项目源程序代码(注意注释的使用)指导教师评语五总体设计(包含几大功能模块)1、成绩录入功能2、成绩输出功能3、成绩显示功能4、成绩查询功能5、删除模块6、排序功能7、初始化功能8、保存功能9、退出系统六详细设计6.1各个模块的功能和实现(1)整个成绩管理系统设计分为9个模块:1.输入学生信息2.添加学生信息3.查询4.删除5.排序6.保存7.显示8.初始化8.退出系统9.修改管理员信息(2)(主要函数的功能)1.主函数void():定义学生结构体数组,调用录入,统计等函数对成绩表进行处理。2.输入数据函数add():输入学号、成绩。3.排序函数paixu():对总成绩或者平均成绩,进行排序,按从高到低或者从低到高。4.显示数据函数xianshi():显示各个学生的总成绩5.新增数据函数tianjia():增加学生学生记录。6.删除数据函数shanchu():由于各种原因,删除某些同学的成绩、学号等。7.查询数据函数chaxun():查询学生的信息。8.保存数据函数baocun():再一次打开界面是,仍有上次所找的讯息。9.退出系统函数tuichu():当要退出整个系统时。6.2流程图(管理员模式流程图)输出菜单
输入根据菜单输入n的值选择程序结束开始保存删除退出初始化排序添加查询显示输出菜单输入根据菜单输入n的值选择程序结束开始保存删除退出初始化排序添加查询显示开始(来宾模式流程图)开始输出菜单输出菜单根据菜单,选择程序根据菜单,选择程序退出程序切换登录排序成绩显示退出程序切换登录排序成绩显示成绩查询成绩结束结束七调试分析(各模块测试结果)7.1源代码#include<iostream>#include<string>#include"fstream"usingnamespacestd;stringa[12]; //科目数目structStudent//声明一个名为student的结构体类型{stringname;//姓名longnumber;//学号stringxingbie;//性别intzf;//总分intpjf;//平均分intchji[12];//成绩};classSYSTEM//声明类system{ public: SYSTEM() //构造函数 { n=0;m=0; } voidchushihua(); //初始化类 voidadd(); //输入科目 voidxinxi(); //添加学生信息 voidxianshi(); //显示信息 voidchaxun(); //查询 voidshanchu(); //删除科目 voidtianjia(); //添加科目 voidpaixu(); //排序 voidbaocun(); //保存结构体信息 private: Studentstu[1000]; //定义一个结构体类型student的变量stu,其最大值为100 intn,m; //n代表科目个数,m代表学生人数};//voidSYSTEM::chushihua()//初始化类{ ifstreamIFSOBJ; IFSOBJ.open("student.dat"); IFSOBJ>>n; IFSOBJ>>m; for(intc=0;c<n;c++) IFSOBJ>>a[c]; for(intd=0;d<m;d++) { IFSOBJ>>stu[d].name; IFSOBJ>>stu[d].number; IFSOBJ>>stu[d].xingbie; stu[d].zf=0; for(inte=0;e<n;e++) { IFSOBJ>>stu[d].chji[e]; stu[d].zf+=stu[d].chji[e]; } stu[d].pjf=stu[d].zf/n; }}voidSYSTEM::add()//输入科目{cout<<"第一次添加的科目数量:"<<endl;cin>>n;cout<<"输入你要添加的科目:"<<endl;for(inti=0;i<n;i++)cin>>a[i];}//voidSYSTEM::xinxi()//添加学生信息{ intmm; cout<<"请输入学生的人数:"<<endl; cin>>m; for(inti=0;i<m;i++) { mm=0; cout<<"输入第"<<i+1<<"个学生的信息"<<endl; cout<<"学号:"; cin>>stu[i].number; cout<<"姓名:"; cin>>stu[i].name; cout<<"性别:"; cin>>stu[i].xingbie; for(intj=0;j<n;j++) { cout<<a[j]<<":"; cin>>stu[i].chji[j]; mm=mm+stu[i].chji[j]; } stu[i].zf=mm; stu[i].pjf=mm/n; }}//voidSYSTEM::xianshi()//显示信息{ cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"\t"<<"性别"<<"\t"; for(inti=0;i<n;i++) cout<<a[i]<<"\t"; cout<<"总分"<<"\t"<<"平均分"<<endl; for(i=0;i<m;i++) { cout<<stu[i].number<<"\t"<<stu[i].name<<"\t"<<"\t"<<stu[i].xingbie<<"\t"; for(intj=0;j<n;j++)cout<<stu[i].chji[j]<<"\t"; cout<<stu[i].zf<<"\t"<<stu[i].pjf<<endl; }}//===================================voidSYSTEM::chaxun()//查询{cout<<"请选择查询方式:"<<endl;cout<<"1.按学号查询"<<endl;cout<<"2.按姓名查询"<<endl; intc,aa; cin>>c; switch(c) { case1://按照学号查询 { longnum; cout<<"请输入要查询的学号:"<<endl; cin>>num; for(aa=0;aa<m;aa++) if(stu[aa].number==num) { cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"\t"<<"性别"<<"\t"; for(inti=0;i<n;i++) cout<<a[i]<<"\t"; cout<<"总分"<<"\t"<<"平均分"<<endl; cout<<stu[aa].number<<"\t"<<stu[aa].name<<"\t"<<"\t"<<stu[aa].xingbie<<"\t"; for(intj=0;j<n;j++) cout<<stu[aa].chji[j]<<"\t"; cout<<stu[aa].zf<<"\t"<<stu[aa].pjf<<"\t"<<endl; break; } if(stu[aa].number!=num) cout<<"未找到该学生信息!!"<<endl; break; } case2://按照姓名查询 { stringname1; cout<<"请输入要查询的姓名:"<<endl; cin>>name1; for(aa=0;aa<m;aa++) if(stu[aa].name==name1) { cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"\t"<<"性别"<<"\t"; for(inti=0;i<n;i++) cout<<a[i]<<"\t"; cout<<"总分"<<"\t"<<"平均分"<<endl; cout<<stu[aa].number<<"\t"<<stu[aa].name<<"\t"<<"\t"<<stu[aa].xingbie<<"\t"; for(intj=0;j<n;j++) cout<<stu[aa].chji[j]<<"\t"; cout<<stu[aa].zf<<"\t"<<stu[aa].pjf<<"\t"<<endl;break;}if(stu[aa].name!=name1)cout<<"未找到该学生信息!!"<<endl;break;}}}//=================================================voidSYSTEM::shanchu()//删除科目{ stringmm; cout<<"输入你要删除的科目:"<<endl; cin>>mm;for(inti=0;i<n;i++){if(a[i]==mm){for(intj=i;j<n-1;j++) { a[j]=a[j+1]; for(intz=0;z<m;z++) { stu[z].zf=stu[z].zf-stu[z].chji[j]; stu[z].chji[j]=stu[z].chji[j+1]; stu[z].pjf=stu[z].zf/(n-1); } } }}n--;}//======================================voidSYSTEM::tianjia()//添加科目{ stringmm; cout<<"输入你要添加的科目:"<<endl; cin>>mm; a[n]=mm; for(inti=0;i<m;i++) { cout<<"添加"<<stu[i].name<<"的"<<mm<<"成绩"<<":"<<endl; cin>>stu[i].chji[n]; stu[i].zf=stu[i].zf+stu[i].chji[n]; stu[i].pjf=stu[i].zf/(n+1); } ++n;}//voidSYSTEM::paixu()//排序{Studentmm; for(inti=0;i<m-1;i++) for(intj=i+1;j<m;j++) if(stu[i].zf<stu[j].zf) {mm=stu[j]; stu[j]=stu[i]; stu[i]=mm; }}//====================================//保存voidSYSTEM::baocun(){ ofstreamOFSOBJ; OFSOBJ.open("student.dat"); OFSOBJ<<dec<<n<<endl; OFSOBJ<<dec<<m<<endl; for(intz=0;z<n;z++) { OFSOBJ<<a[z]<<endl; } for(intx=0;x<m;x++) { OFSOBJ<<stu[x].name<<endl; OFSOBJ<<dec<<stu[x].number<<endl; OFSOBJ<<stu[x].xingbie<<endl; for(inty=0;y<n;y++) { OFSOBJ<<dec<<stu[x].chji[y]<<endl; } }}//====================================voidmain(){SYSTEMperson;intb;do{cout<<"〓〓〓〓〓〓〓〓〓〓☆学生成绩管理系统☆〓〓〓〓〓〓〓〓〓〓"<<endl;cout<<"〓〓〓〓〓〓〓★★★★★★★★★★★★★★★★★〓〓〓〓〓〓〓"<<endl;cout<<"〓〓〓〓〓〓〓〓〓★☆1.输入科目6.添加科目☆★〓〓〓〓〓〓〓〓〓"<<endl;cout<<"〓〓〓〓〓〓〓〓〓★☆2.输入信息7.排序 ☆★〓〓〓〓〓〓〓〓〓"<<endl;cout<<"〓〓〓〓〓〓〓〓〓★☆3.显示8.初始化☆★〓〓〓〓〓〓〓〓〓"<<endl;cout<<"〓〓〓〓〓〓〓〓〓★☆4.查询9.保存☆★〓〓〓〓〓〓〓〓〓"<<endl;cout<<"〓〓〓〓〓〓〓〓〓★☆5.删除科目10.退出☆★〓〓〓〓〓〓〓〓〓"<<endl;cout<<"请请根据你的需要选择(1~10):";cin>>b;switch(b){case1:person.add();break;case2:person.xinxi();break;case3:person.xianshi();break;case4:person.chaxun();break;case5:person.shanchu();break;case6:person.tianjia();break;cas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计算操作基础实践 8
- 2025-2026学年彩虹瀑布美术教案
- 2.2 物质的微观粒子模型 教学设计-浙教版科学八年级下册
- 2025-2026学年春教学设计1课时记录
- 2025-2026学年茶馆舞蹈音乐教案
- 十个题目七个难题及答案
- 2025-2026学年嫁接果树 教学设计方案
- 2025-2026学年教学设计设计意图要写吗
- 2025年中国摩托车链轮市场调查研究报告
- 2025年中国承插式异径管市场调查研究报告
- 食品原料库房管理制度培训
- 2025-2026统编版四年级语文下册第三单元综合素养评价卷(含答案)
- 重症患者压疮体位摆放技术培训方案
- 广西壮族自治区玉林市2025-2026学年高二上学期期末教学质量监测英语试卷
- 机械制造工厂车间主管生产线管理绩效考核表
- 中国制药工业EHS指南(2025版)-中国医药企业管理协会
- 本溪市(2025年)辅警考试真题及答案
- 2024年南京理工大学马克思主义基本原理概论期末考试题及答案1套
- 软件系统部署实施方案范本
- 2025年江苏护理省市统考题目及答案
- 考驾照科目一试题100题科科目一到科目四
评论
0/150
提交评论