您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 学生管理系统————课程设计
1楼学生管理系统(在网上找到一个一摸一样的,怕撞了)使用下面的数据,用C++设计一个简单的学籍管理系统,实现最基本的功能。学生基本信息文件(A.TXT)及其内容:A.TXT文件不需要编程录入数据,可用文本编辑工具直接生成学号姓名性别宿舍号码电话号码01张成成男5018773211102李成华女1018772311203王成凤女1018772311204张明明男5028773433305陈东男5018773211106李果男5028773433307张园园女10287756122……...…………..学生成绩基本信息文件(B.TXT)及其内容:学号课程编号课程名称学分平时成绩实验成绩卷面成绩综合成绩01A01大学物理366788202B03高等数学478-19001B03高等数学445-18802C01VF3657666…….……….....…1、功能要求及说明:(1)数据录入功能:对B.TXT进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据.综合成绩、学分由程序根据条件自动运算。综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70%.(2)查询功能:分为学生基本情况查询和成绩查询两种A:学生基本情况查询:A1----输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。A2---输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。B:成绩查询:B1:输入一个学号时,查询出此生的所有课程情况,格式如下:学号:xx姓名:xxxxx课程编号:xxx课程名称:xxxxx综合成绩:xxxx实得学分:xx课程编号:xxx课程名称:xxxxx综合成绩:xxxx实得学分:xx课程编号:xxx课程名称:xxxxx综合成绩:xxxx实得学分:xx…共修:xx科,实得总学分为:xxx(3)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。(4)排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。2、其它要求:(1)只能使用C++语言,源程序要有适当的注释,使程序容易阅读(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3)学生可自动增加新功能模块(视情况可另外加分)#includeiostream#includestring#includefstream#includeiomanipusingnamespace::std;classstudent{public:student(intn){stunum=;score=0;midscore=0;endscore=0;tolscore=0;next=NULL;}student(){cout输入学生学号:;cinstunum;cout输入平时成绩:;cinscore;cout输入期中考试成绩:;cinmidscore;cout输入期末考试成绩:;cinendscore;tolscore=0.3*score+0.3*midscore+0.4*endscore;if(tolscore=100&&tolscore=90){dj='A';}if(tolscore90&&tolscore=80){dj='B';}if(tolscore80&&tolscore=70){dj='C';}if(tolscore70&&tolscore=60){dj='D';}if(tolscore60){dj='E';}next=NULL;}stringstunum;doublescore;doublemidscore;doubleendscore;doubletolscore;chardj;student*next;};classmarks{public:marks(){head=newstudent(0);n=0;}voidinit();voidIn();voidOut();voidprint();voidComputeZP();voidGetDJ();private:student*head;intn;};voidmarks::In(){ifstreamfin(D:\\note.dat);if(!fin){cout无法打开源文件!endl;return;}intm;student*p=head;finm;n=n+m;while(!fin.eof()){student*t=newstudent(0);fint-stunum;fint-score;fint-midscore;fint-endscore;t-tolscore=0.3*t-score+0.3*t-midscore+0.4*t-endscore;if(t-tolscore=100&&t-tolscore=90){t-dj='A';}if(t-tolscore90&&t-tolscore=80){t-dj='B';}if(t-tolscore80&&t-tolscore=70){t-dj='C';}if(t-tolscore70&&t-tolscore=60){t-dj='D';}if(t-tolscore60){t-dj='E';}t-next=NULL;p-next=t;p=p-next;}fin.close();}voidmarks::Out(){ofstreamfout(D:\\out.dat);if(!fout){cout无法打开!endl;return;}foutnendl;student*p=head-next;while(p!=NULL){foutp-stunum\tp-score\tp-midscore\tp-endscore\tp-tolscore\tp-djendl;p=p-next;}cout写入文件成功endl;fout.close();}voidmarks::print(){student*p=head-next;cout学生学号setw(15)平时成绩setw(12)期中成绩setw(12)期末成绩setw(10)总评成绩setw(12)等级endl;while(p!=NULL){coutp-stunumsetw(12)p-scoresetw(12)p-midscoresetw(12)p-endscoresetw(12)p-tolscoresetw(12)p-djendl;p=p-next;}}voidmarks::ComputeZP(){intn=0;doubleavg=0;student*p=head-next;while(p!=NULL){n++;avg+=p-tolscore;p=p-next;}avg=avg/n;cout平均成绩:avgendl;}voidmarks::GetDJ(){intflag=1;while(flag){student*p=head-next;charc;coutpleaseenterDJ:;cinc;cout学号\t平时成绩\t期中成绩\t期末成绩\t总评成绩\t等级\tendl;while(p!=NULL){if(p-dj==c){coutp-stunum\tp-score\tp-midscore\tp-endscore\tp-tolscore\tp-djendl;}p=p-next;}cout是否继续?(1继续/0返回):;cinflag;}}voidmarks::init(){intflag=1;student*p=head;while(p-next!=NULL){p=p-next;}while(flag){student*t=newstudent();p-next=t;p=p-next;n++;cout是否继续?(1继续/0返回):;cinflag;}}voidmenu(){coutendl;cout欢迎进入学生成绩核算系统endlendl;cout\t1.输入新的学生信息\t\t;cout2.从文件读入学生信息endl;cout\t3.显示已输学生信息\t\t;cout4.计算平均总成绩endl;cout\t5.将学生信息保存到文件;cout\t6.退出系统endl;cout-------------------------------------------------------------------------------endl;}intmain(){marks*m=newmarks();intc;menu();for(;;){cout选择操作(1-6):\n;cinc;switch(c){case1:m-init();menu();break;case3:m-print();menu();break;case4:m-ComputeZP();menu();break;case2:m-In();menu();break;case5:m-Out();menu();break;case6:return0;default:cout输入错误请重新出入!endl;break;}}return0;}
本文标题:学生管理系统————课程设计
链接地址:https://www.777doc.com/doc-7326493 .html