[毕业论文]研究生初试录取 课程设计实验报告_第1页
[毕业论文]研究生初试录取 课程设计实验报告_第2页
[毕业论文]研究生初试录取 课程设计实验报告_第3页
[毕业论文]研究生初试录取 课程设计实验报告_第4页
[毕业论文]研究生初试录取 课程设计实验报告_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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)setw(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)setiosflags(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)setiosflags(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)setw(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)setw(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)setw(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(严华婷,英语,历

30、届,0921111729,87,80,80,83), student(程烨,日语,应届,1021111730,78,94,95,86), student(刘佳,物流,历届,0921111731,68,64,62,60), student(邹石磊,自动化,应届,1021111732,78,81,82,89), student(陈纬,核工程,历届,0921111733,51,88,87,90) student(谢强,物理,历届,0921111734,43,90,67,79), student(敖翔,室内设计,应届,1021111735,89,93,76,88),student(蔡云婷,韩语,历届,

31、0921111736,90,87,77,89) .请输入录取最低的数学成绩 80 请输入录取最低的英语成绩 75请输入录取最低的政治分数 75请输入录取最低的专业课分数 80最低总分为 310 入取的信息为: 1 吕贤风 计算机 历届 0921111703 88 84 98 87 354 2 敖翔 室内设计 应届 1021111735 89 93 76 88 346 3 章书兴 测绘 历届 0921111727 80 88 87 88 343 4 蔡云婷 韩语 历届 0921111736 90 87 77 89 343 5 严华婷 英语 历届 0921111729 87 80 80 83 33

32、6初试通过人数为:5请输入复试成绩 90 90 87 76 56请输入复试合格成绩: 80被淘汰的人数为: 2姓名 准考证号码 蔡云婷 0921111736严华婷 09211117297. 实现心得: 通过对c+的课程设计,我了解并发现了很多调试程序的方法,而且懂得了如何处理错误的方法。对c+程序设计语言的使用得到了进一步的提高。针对类结构程序,和类成员函数以及类的数据成员调用,类的定义及其实现,默认构造函数和构造函数的使用以及对象数组,文件的操作以及的友元类和友元函数等知识得到了进一步的巩固,还有就是对c语言曾经学过的冒泡排序法有了更深刻的理解。加深了我对c+程序设计语言的认识。 是我懂得了

33、一个道理,那就是清楚程序中每一步的功能,在程序的运行中是十分重要的,一个好的类在运行中能够充分的发挥类的功能。结构设计的合理性决定了这个程序的价值。经历了这次课程设计,不仅对我的学习提供了帮助,而且在意志力方面也得到了锻炼。培养了我学会用足够的耐力和信心坚持去完成自己每一项任务。也是我自己对自己的编程能力有了更加清楚的了解。8相关代码: #include #include #include #include using namespace std; /*定义考生类*/ class student public: /*定义考生类的函数成员*/ student() /无参数的考生类构造函数 stu

34、dent(char *name1,int number,char *course1,char *state1,float ms,float es,float ps,float majs) /带参数的考生类的构造函数 /函数实现 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() /定义求总分的函

35、数 sumscore=mathscore+englishscore+policyscore+majorscore; return sumscore; /*定义考生类的数据成员*/ char name20; /考生姓名 int num; /考生准考证号 char course20; /报考专业 char state10; /应届/历届 float mathscore; /数学分数 float englishscore; /英语分数 float policyscore; /政治分数 float majorscore; /专业课分数 float sumscore; /总分 ; class student1 /初试通过的考生类的定义 public: /*定义初试通过考生类的函数成员*/ student1() /无参数的初试通过的考

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论