[毕业论文]研究生初试录取 课程设计实验报告.doc

上传人:laozhun 文档编号:3441064 上传时间:2023-03-13 格式:DOC 页数:45 大小:90KB
返回 下载 相关 举报
[毕业论文]研究生初试录取 课程设计实验报告.doc_第1页
第1页 / 共45页
[毕业论文]研究生初试录取 课程设计实验报告.doc_第2页
第2页 / 共45页
[毕业论文]研究生初试录取 课程设计实验报告.doc_第3页
第3页 / 共45页
[毕业论文]研究生初试录取 课程设计实验报告.doc_第4页
第4页 / 共45页
[毕业论文]研究生初试录取 课程设计实验报告.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《[毕业论文]研究生初试录取 课程设计实验报告.doc》由会员分享,可在线阅读,更多相关《[毕业论文]研究生初试录取 课程设计实验报告.doc(45页珍藏版)》请在三一办公上搜索。

1、课程设计报告 课程设计题目:研究生初试录取 学生姓名: 学 号: 专 业:软件工程(嵌入式) 班 级: 指导教师: 2011年 12 月 01 日 目录1 实验题目-42 功能设计-5 2.1 功能的描述-5 2.2 功能实现概述-53.涉及到的知识点-54 结构分析-5 4.1 系统类的结构分析-7 4.2 主函数结构分析- 4.3 UML图-105 相关代码的实现-22 5.1 各类的定义及其实现-17 5.2 文件的操作-20 5.3冒泡排序法的使用-20 5.4 复试系统人数筛选-226 调试操作与说明-257 实验心得-258 附录(代码)-40一实验题目:研究生初试录取 研究生考试

2、课程为4门,其中数学、外语、政治为统一命题,而专业基础课则根据不同的专业由招生学校自行命题。国家对初试录取分数有总分要求(如某一年要求4门课总分应达到310分),另外还有对每门课的最低分数要求(如总分为100的试卷最低应达到40分,总分为150的试卷最低应达到65分)。编程统计初试合格的人数,并按总分由高到低的顺序输出合格考生的信息。基本要求程序运行时首先要求输入:考生姓名,准考证号,报考专业,是否应届生,4门课程(政治、数学、外语、专业基础课)成绩。这些原始数据应保存到一个文件中。然后输入:录取的总分要求,各课程的最低分数要求。输出要求:过线考生的姓名,准考证号,报考专业,是否应届生,4门课

3、程(政治、数学、外语、专业基础课)成绩及总分,这些信息应存放到另一个文件中。测试数据程序应输入不少于10名考生的信息,其中应届生和历届生分别有若干名,并且都有合格和不合格的情况。实现提示可定义一个考生类存放有关信息和实现相应的操作。分数线数据(总分要求和各门课程的要求)可定义另外的类来存放,但应能被考生类及其派生类直接访问。选做内容初试合格的考生应经过复试才能决定是否录取,复试成绩合格(大于一给定分值)可以录取,否则被淘汰。而录取的顺序假设是按照专业基础课和复试成绩的平均值来确定的(因为这涉及到是计划内还是委培问题)。因此,应首先输入初试合格考生的复试成绩及复试的合格线分数,然后按上面要求排序

4、输出并标明被淘汰的学生。2 功能设计 2.1 功能描述 主要有几大功能: 1 可以根据系统的提示输入考生的相关信息,如姓名,准考证号报考专业,是否应届生,4门课程(政治、数学、外语、专业基础课)成绩; 2.根据系统提示,实现考生人数的输入,并且显示相应的信息,将其保存在一个文件中。 2 可以根据系统的提示输入初试录取的相关要求,如总分,政治、数学、外语、专业基础课的成绩; 3 可以统计录取的人数并按总分由高到低的顺序依次输出考生的信息。 4.可以实现录取信息的输出,并且按照总分以降序的形式将信息保存于文件中。 4.可以根据系统的提示输入复试录取的相关要求,如专业基础课的成绩,复试达标的成绩。

5、5.系统还可以实现总分的计算,以及复试成绩贺专业基础科的成绩的平均成绩的计算。 6.系统可以根据输入复试的达标的要求,自动筛选出初试合格的人数与复试达标的人数,并且输出他们相关的信息。2.2 功能实现 定义四个类分别记录考生信息与录取要求,在主函数中通过类的使用实现。第一个类就是考生基本信息类student,还有就是初试录取要求类need,第三个类就是初试通过的学生信息类student1,第四个类就是复试need1.3. 涉及到的知识点 (1).类的定义与引用 (2).构造函数的定义与使用 (3).if判断语句的使用 (4).函数的定义与调用 (5).函数的重载 (6).利用for循环语句进行

6、冒泡排序 (7).文件的打开关闭、输入输出(8).输入输出流的操作(9).插入运算符和操纵符的使用4.结构分析 4.1系统类的结构分析 考生信息Student类的结构分析 (1).定义考生信息(为初试录取要求类的友元类) 数据成员:考生姓名(name),准考证号(num),报考专业(course),状态(应届/历届)(static)数学成绩(mathscore),英语成绩(englishscore)政治成绩(policyscore),专业基础课成绩(majorscore)分(sum) 函数成员:计算总分函数add(),不带参数的构造函数student(),带参数的构造函数student(cha

7、r*name1,int number,char *course1,char *state1,float ms,float es,floatps,float majs) 初试录取要求need类的结构分析 (2).定义初试录取要求 数据成员:数学最低录取分(maths),英语最低录取分(englishs),政治最低录取分(policys),专业基础课最录取分(majors),总分最低录取分(sums) 函数成员:不带参数的构造函数need(),带参数的构造数need(float ms,float es,float ps,float mas) 初试通过学生信息类 (3).定义初试通过并且参加复试的学

8、生信息 数据成员:学生姓名(name),准考证号码(num),报考专业(course),专业基础课分数(majorscore),复试分数(score),专业基础课和复试成绩的平均分(avgscore) 函数成员:求专业基础课和复试成绩的平均分函数avgscore(),不带参数的构造函数student1(),带参数的构造函数student(char *name1,int number,char *course1,char *state1,float majs,float score1)复试录取要求类 (4).定义复试录取要求 数据成员:复试成绩(score),复试合格线(avgscore) 函数

9、成员:不带参数的构造函数need1(),带参数的构造函数need1(float score1,float avgscore1)4.2 主函数结构分析main() (1).首先定义一个考生信息对数 组, 用于保存报考考生的信息。由于题目要求至少测试10名考生,因此可以定义一个含有15个元素的考生类对象数组Student a15。 (2).定义一个静态变量n用于统计初试通过的考生人数。 (3).定义一个静态变量m用于统计复试被淘汰的考生人数。()定义一个文件用于保存考生信息fstream file1。()用冒泡排序法将个考生的成绩按照降序的方法排序。()定义一个文件用于保存初试通过的学生的信息。(

10、)最后根据考生的专业基础课成绩和复试成绩的平均成绩以及复试合格成绩和初试通过学生进行对比,筛选出被淘汰的考生的姓名和准考证号。. 系统的图设计四个类,一个为,一个为,另外两个为和,分别用老表示考生信息类,初试录取要求类,初试通过考生信息类,复试录取要求类。它们的结构用UML类图画出如下: (考生信息)-:数学成绩-:英语成绩-:政治成绩-:专业课程成绩-:总分-:考生姓名-:int准考证号-:char状态-:char报考专业+()不带参数的构造函数+ (char *name1,int number,char *course1,char *state1,float ms,float es,flo

11、at ps,float majs)带参数的构造函数+():求总分的函数(初试录取要求)-:数学最低录取分数-:英语最低录取分数-:政治最低录取分数-:专业课最低录取分数-:总分最低录取分数+()不带参数的构造函数+(float ms,float es,float ps,float mas)带参数的构造函数 (初试通过的考生信息)-:复试成绩-:专业课程成绩-:平均分-:考生姓名-:int准考证号-:char状态-:char报考专业+()不带参数的构造函数+ (char *name1,int number,char *course1,char *state1,float majs,float s

12、core1)带参数的构造函数+():求平均分的函数(复试录取要求)-:复试成绩-:复试合格线+()不带参数的构造函数+(float score1,float avgscore1)带参数的构造函数 注:类是类和类的友元类。. 各阶段的代码的实现 5.1各类的定义及其实现 .考生信息类的定义及其实现class studentpublic: /*定义考生类的函数成员*/ student() /无参数的考生类构造函数 student(char *name1,int number,char *course1,char *state1,float ms,floates,float ps,float maj

13、s) /带参数的考生类的构造函数 /函数实现 strcpy(name,name1); num=number; strcpy(course,course1); strcpy(state,state1); mathscore=ms; englishscore=es; policyscore=ps; majorscore=majs; Sumscore=ms+es+majs+ps;float add() /定义求总分的函数sumscore=mathscore+englishscore+policyscore+majorscore;return sumscore; /*定义考生类的数据成员*/ char

14、 name20; /考生姓名int num; /考生准考证号char course20; /报考专业char state10; /应届/历届float mathscore; /数学分数float englishscore; /英语分数float policyscore; /政治分数float majorscore; /专业课分数loat sumscore; /总分;初试录取要求类的定义及其实现class need /初试录取要求类的定义和实现public: /*定义要求类的函数成员*/need() /无参数的初试录取要求类的构造函数 /无参数的初试录取要求类的构造函数的实现 cout请输入录取

15、最低的数学成绩:maths; cout请输入录取最低的英语成绩:englishs;cout请输入录取最低的政治分数:policys;cout请输入录取最低的专业课分数:majors;cout最低总分为:sums;need(float ms,float es,float ps,float mas) /带参数的初试录取要求类的构造 函数 /带参数的初试录取要 求类的构造函数的实现 maths=ms;englishs=es;policys=ps;majors=mas;sums=ms+es+ps+mas;friend class student; /定义考生类为要求类的 友元类,实现考生类及其派生类直

16、接访问要求类 /*need类数据成员的定义*/float maths; /数学最低分要求loat englishs; /英语最低分要求float policys; /政治最低分要求float majors; /专业课最低分要求float sums; /总分最低要求; 3.初试通过考生类的定义及其实现 class student1 / 初试通过的考生类的定义 public: /*定义初试通过考生类的函数成员*/ student1() /无参数的初试通过的考生 类构造函数 student1(char *name1,int number,char *course1,char *state1,floa

17、tmajs,floatscore1) /带参数 的初试通过的考生类的构造函数 /带参数的初试通过的考生类的构造函数函数实现 strcpy(name,name1); num=number; strcpy(course,course1); strcpy(state,state1); majorscore=majs; score=score1; avgscore=(majorscore+score)/2; float avg() /定义求专业基础课和 复试成绩的平均分的函数 /求专业基础课和复试成绩的平均分的函数实现 avgscore=(majorscore+score)/2; return avg

18、score; /*定义考生类的数据成员*/ char name20; /考生姓名 int num; /考生准考证号 char course20; /报考专业 char state10; /应届/历届 float majorscore; /专业课分数 float score; /复试分数 float avgscore; /专业基础课和复试成绩的平均分 ; 4、复试录取要求类的定义及其实现 Class need1 /复试录取要求类的定义和实现 public: /*定义复试要求的函数成员*/ need1() /无参数的复试录取要求类的构造函数 /无参数的复试录取要求类的构造函数的实现 cout请输入

19、复试成绩:score; cout请输入复试合格线:avgscore; need1(float score1,float avgscore1) /带参数的复试录取要求类的构造函数 /带参数的复试录取要求类的构造函数的实现 score=score1; avgscore=avgscore1; Friend class student; /定义考生类为要求类的友元类,实现考生类及其派生类直 接访问要求类 /*定义录取要求类的数据成员*/ float score; /复试成绩 float avgscore; / 复试合格线 ; 5.2文件的操作 1.创建文件file1用来保存考生基本信息 Fstream

20、 file1; /创建文件1用来保存考生基本信息 file1.open(D:考生信息.txt,ios_base:out|ios_base:binary); file1ttt*考生信息*tttendl; file1endl; file1序号 考生姓名 准考证号 报考专业 数学 外语 状态 政治 专业课 总分tttendl; for(i=0;i15;i+) file1setw(6)i+1setw(12)ai.namesetw(12)ai.numsetw(12)ai.coursesetw(8)ai.statesetw(8)ai.mathscoresetw(8)ai.englishscoresetw(

21、8)ai.policyscoresetw(8)ai.majorscoresetw(8)ai.add()tttendl; coutttt*考生信息*nendl;cout序号 考生姓名 准考证号 报考专业 数学 外语 状态 政治 专业课 总分endl; for(i=0;i15;i+) coutsetiosflags(ios_base:left)setw(6)i+1setiosflags(ios_base:left)setw(11)ai.namesetiosflags(ios_base:left)setw(10)ai.numsetiosflags(ios_base:left)setw(10)ai.c

22、oursesetiosflags(ios_base:left)setw(8)ai.statesetiosflags(ios_base:left)setw(8)ai.mathscoresetiosflags(ios_base:left)setw(8)ai.englishscoresetiosflags(ios_base:left)setw(8)ai.policyscoresetiosflags(ios_base:left)setw(8)ai.majorscoresetiosflags(ios_base:left)setw(8)ai.add()endl; file1.close(); 2.创建文件

23、file2用来保存初试通过的考生信息 fstream file2;file2.open(D:考生初试录取信息.txt,ios:out|ios_base:binary); /将考生的录取信息写入文件中 file2ttt*初试录取结果 *tttendl; file2endl; file2序号 考生姓名 准考证号 报考专业 状态 数学 外语 政治 专业课 总分nendl; coutttt*初试录取结果*endl; cout序号 考生姓名 准考证号 报考专业 状态 数学 外语 政治 专业课 总分endl; for(i=0;i=b.maths & ai.englishscore=b.englishs &

24、 ai.policyscore=b.policys & ai.majorscore=b.majors & ai.sumscore=b.sums) n+; /统计初试合格人数 coutendl;coutsetiosflags(ios_base:left)setw(6)i+1setiosflags(ios_base:left)setw(10)ai.namesetiosflags(ios_base:left)setw(8)ai.numsetiosflags(ios_base:left)setw(10)ai.coursesetiosflags(ios_base:left)setw(8)ai.state

25、setiosflags(ios_base:left)setw(8)ai.mathscoresetiosflags(ios_base:left)setw(8)ai.englishscoresetiosflags(ios_base:left)setw(8)ai.policyscoresetiosflags(ios_base:left)setw(8)ai.majorscoresetiosflags(ios_base:left)setw(8)ai.add()endl; for(i=0;in;i+)file2setw(6)i+1setw(12)ai.namesetw(12)ai.numsetw(12)a

26、i.coursesetw(8)ai.statesetw(8)ai.mathscoresetw(8)ai.englishscoresetw(8)ai.policyscoresetw(8)ai.majorscoresetw(8)ai.add()tttendl; coutendl; cout初试合格的人数总计为:nendl; coutendl; file2初试合格的人数总计为:tttnendl; file2endl; file2.close();5.3冒泡排序法的使用 student t(0,0,0,0,0,0,0,0); for(i=1;i15;i+) /将考生按总分从高到低排序 for(j=0;

27、 j=14-i;j+) if(aj.add()aj+1.add() t=aj; aj=aj+1; aj+1=t; 5.4复试系统人数筛选 coutttt*初试录取结果*endl; cout序号 考生姓名 准考证号 报考专业 状态 复 试 专业课 平均分endl; for(i=0;i=c.avgscore & pi.score=c.score) coutsetw(6)i+1setw(12)ai.namesetw(12)ai.numsetw(12)ai.coursesetw(8)ai.statesetw(8)ai.majorscorepi.avg()endl; coutendl; cout被淘汰的

28、学生为:; coutendl; cout姓名准考证号endl; coutendl; for(i=0;in;i+) if(pi.avg()c.avgscore & pi.scorec.score) m+; coutsetw(12)ai.namesetw(12)ai.numendl; cout复试淘汰的人数总计为:mendl; coutendl; cout研究生录取复试结果到此结束!:endl; coutendl; coutttt*endl;6 调试操作与说明 将下列数据输入请输入考生姓名,准考证号,报考专业,是应届生,4门课程(政治、数学、外语、专业基绩)student(方从阳, 软件,应届 ,

29、1021111701,78,89,84,85),student(吕贤风,计算机,历届,0921111703,88,84,98,87), student(付信文,经管,历届,0921111721,65,64,61,63), student(彭华奎,数信,应届,1021111725,78,79,84,80 ), student(邓松,软件,应届,1021111726,55,89,87,86 ), student(章书兴,测绘,历届,0921111727,80,88,87,88), student(钟飞星,通信,应届,1021111728,55,65,67,58), student(严华婷,英语,历届,0921111729,87,80,80,83), student(程烨,日语,应届,1021111730,78,94,95,86), student(刘佳,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号