研究生初试录取信息管理系统设计说明书.docx
- 文档编号:30144910
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:19
- 大小:237.91KB
研究生初试录取信息管理系统设计说明书.docx
《研究生初试录取信息管理系统设计说明书.docx》由会员分享,可在线阅读,更多相关《研究生初试录取信息管理系统设计说明书.docx(19页珍藏版)》请在冰豆网上搜索。
研究生初试录取信息管理系统设计说明书
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2011年秋季学期
面向对象课程设计
题目:
研究生初试录取信息管理系统
专业班级:
计算机科学与技术四班
*****
学号:
********
******
成绩:
摘要………………………………………………………1
前言………………………………………………………2
一、问题分析……………………………………………3
二、结构分析……………………………………………3
1.系统类结构……………………………………4
2.主函数结构……………………………………4
3.UML图…………………………………………5
三、功能介绍……………………………………………7
四、实验过程…………………………………………8
五、系统调试……………………………………………9
六、使用说明……………………………………………11
七、参考文献.…………………………………………11
八、实验总结……………………………………………11
致谢…………………………………………………12
摘要
经过一个学期对《面向对象程序设计》的学习,我们都认为真正的学到了有用知识,可能有一些人学的不够理想,但无论如何,这些知识都为我们的下一步学习打下了坚实的基础。
做这么一个课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。
本系统是研究生初试录取管理系统,可以利用它来确定所录取的考生。
系统界面清楚明了,操作简单易懂。
该系统主要包含以下几个模块:
考生人数的输入,考生信息的输入,录取条件的输入,录取信息的输出,将信息保存于文件中。
本文首先介绍了该系统的详细设计过程:
问题的分析、结构分析,功能介绍、实现过程,系统的调试过程,以及该系统的使用说明。
最后对在本系统开发过程中的问题进行了总结。
【关键词】C++面向对象研究生初试录取信息系统函数
前言
据京报网2010年01月06号的报道,我国2010年的研究生报考人数达到了140万啦。
这么大的报考人数对初试录取工作是一个巨大的挑战,能不能有一款简便易用的软件来减轻这种压力呢?
这时,用C++设计一款研究生初试录取的程序就是不可避免的啦.
本系统主要有三大功能:
1可以根据系统的提示输入考生的相关信息,如姓名,准考证号等等;
2可以根据系统的提示输入初试录取的相关要求,如总分,数学分数等等;
3可以统计录取的人数并按总分由高到低的顺序依次输出考生的信息。
一、问题分析
1.问题描述
研究生考试课程为4门,其中数学、外语、政治为统一命题,而专业基础课则根据不同的专业由招生学校自行命题。
国家对初试录取分数有总分要求(如某一年要求4门课总分应达到310分),另外还有对每门课的最低分数要求(如总分为100的试卷最低应达到40分,总分为150的试卷最低应达到65分)。
编程统计初试合格的人数,并按总分由高到低的顺序输出合格考生的信息。
2.基本要求
程序运行时首先要求输入:
考生姓名,准考证号,报考专业,是否应届生,4门课程(政治、数学、外语、专业基础课)成绩。
这些原始数据应保存到一个文件中。
然后输入专业要求,各课程的最低分数要求,录取的总分要求。
将符合要求的考生的姓名,准考证号,报考专业,是否应届生,4门课程(政治、数学、外语、专业基础课)成绩及总分,这些信息应存放到另一个文件中。
3.测试数据
程序应输入不少于10名考生的信息,其中应届生和历届生分别有若干名,考生专业不都相同,并且都有合格和不合格的情况。
4.实现方式
定义两个类分别记录考生信息与录取要求,在主函数中通过类的使用实现。
5.所涉及知识点
类的定义与引用;if判断语句的使用;构造函数的定义与使用;函数的定义与调用;函数的重载;利用for循环语句排序;文件的打开关闭、输入输出;
二、结构分析
1.系统类结构
2.主函数结构
3.UML图
三、功能介绍
1.输入报考研究生人数
staticintj=0;//统计录取人数
cout<<"请输入报考研究生人数:
";
intn;
cin>>n;
student*a=newstudent[n];
2.输入各研究生的信息
cout<<"请输入研究生的信息!
"< for(intk=0;k { cout<<"研究生姓名: "; cin>>a[k].name; cout<<"准考证号: "; cin>>a[k].number; cout<<"报考专业: "; cin>>a[k].major; cout<<"应届(Y)/历届(L): "; cin>>a[k].state; cout<<"数学成绩: "; cin>>a[k].mathscore; cout<<"外语成绩: "; cin>>a[k].languagescore; cout<<"政治成绩: "; cin>>a[k].policyscore; cout<<"专业课成绩: "; cin>>a[k].majorscore; cout< } 3.输入录取条件 conditionc; 4.将考生信息输入文件中 file1.open("f: \\考生信息.txt",ios: : out);//将考生信息写入文件中 file1<<"\t\t\t***********考生信息***********"< file1<<"考生姓名准考证号报考专业应届(Y)/历届(L)数学外语政治专业课总分"< for(inti=0;i { file1< } file1.close(); 5.将录取考生信息排序 for(intp=0;p {studentt("0","0","0",0,0,0,0,0); t=a[p]; for(intq=p+1;q<=2;q++) { if(t.add() { a[p]=a[q]; a[q]=t; t=a[p];} } } 6.将录取信息输入文件中 file2.open("f: \\考生录取信息.txt",ios: : out);file2<<"\t\t\t***********录取结果***********"< file2<<"考生姓名准考证号报考专业应届(Y)/历届(L)数学外语政治专业课总分"< cout<<"\t\t\t***********录取结果***********"< cout<<"考生姓名准考证号报考专业应届(Y)/历届(L)数学外语政治专业课总分"< for(i=0;i { if((a[i].major==c.c_maj)&&(a[i].add()>=c.c_sumscore)&&(a[i].mathscore>=c.c_math)&&(a[i].languagescore>=c.c_language)&&(a[i].policyscore>=c.c_policy)&&(a[i].majorscore>=c.c_major)) { j=j+1; cout< file2< } } cout< cout<<"初试合格人数为: "< file2< file2<<"初试合格人数为: "< file2.close();} 四、实验过程 1.输入考生人数 2.输入考生信息 将下列表格中数据输入: 考生姓名 准考证号 报考专业 应届/历届 数学成绩 外语成绩 政治成绩 专业课成绩 Lucy 2010001 Math y 88 81 78 92 Ann 2010002 Software y 78 82 76 75 Jenny 2010003 English l 76 86 86 96 Jack 2010004 Art y 65 82 68 87 Ben 2010005 Math l 71 67 78 81 Mary 2010006 English y 88 96 86 65 Jim 2010007 Math l 93 88 88 86 Leon 2010008 Software y 89 78 67 84 Wendy 2010009 music l 66 89 76 76 Frank 2010010 Math y 67 81 69 73 neko 2010011 Math y 90 77 71 83 输入显示如下: 3.输入录取条件 4.输出录取考生 5.在文件中显示考生信息 6.在文件中显示录取信息 五、系统调试 1.定义普通数组时无法实现人数的控制,只能输入规定的人数,改用动态数组可以通过屏幕输入人数,从而确定数组大小; 2.排序时,无法赋值给变量,定义重载函数重载赋值运算符; 3.Setw()由于记忆错误使用方法,调试代码无法对齐格式,修改后正常进行; 4.使用文件需要在代码头文件处加#include 5.排序时,为了便于比较,需要定义初始变量t("0","0","0",0,0,0,0,0)。 六、使用说明 1.输入考生人数; 2.将考生的信息(考生姓名,准考证号,报考专业,是否应届,数学成绩,外语成绩,政治成绩,专业课成绩)依次输入; 3.按界面提示输入录取要求(录取专业,数学成绩,外语成绩,政治成绩,专业课成绩的最低分数要求); 4.输出结果后,可在相应的文件中查找考生信息和录取信息。 七、参考文献、致谢 [1]陈维兴,林小茶.c++面向对象程序设计教程.北京: 清华大学出版社,1996.2004. [2]张国峰.C++程序设计实用教程.北京: 清华大学出版社,1996. [3]张松梅.C++语言教程.电子科技大学出版社,1993. [4]阎龙.C程序员的C++指南.北京航空航天大学出版社,1992. [5]王博.面向对象的建模、设计技术与方法.北京希望电脑公司,1990. 向以上参考文献的作者致谢。 八、实验总结 通过对C++的课程设计,我了解并发现了很多调试程序的方法,而且懂得了如何处理错误的方法。 对C语言的使用得到了进一步的提高。 针对类结构程序,和类成员函数的调用等知识得到了进一步的巩固,具体化就是加深了我对程序的深层理解,清楚程序中每一步的功能,在程序的运行中是十分重要的,一个好的类在运行中能够充分的发挥类的功能。 结构设计的合理性决定了这个程序的价值。 在今后的学习中我要注意这方面,使得我的编程能力能有进一步的提高。 经历了这次课程设计,不仅对我的学习提供了帮助,而且在意志力方面也得到了锻炼。 没有足够的耐力和信心就很难坚持对课程设计每一步的顺利进行。 致谢 在课程设计过程中,非常感谢朱老师与年老师在理论与实践方面的指导,同时还要感谢与我在讨论技术实现方面提出宝贵建议的同学,在这里对这些人表示衷心的感谢! 附录: 源代码 #include #include #include #include usingnamespacestd; classstudent//考生类 { public: charname[10];//考生姓名 intnumber;//准考证号 stringmajor;//报考专业 charstate[10];//应届/历届 intmathscore;//数学成绩 intlanguagescore;//外语成绩 intpolicyscore;//政治成绩 intmajorscore;//专业课成绩 intsumscore;//总分 student(){}//构造函数 intadd()//定义计算总分的函数 { sumscore=mathscore+languagescore+policyscore+majorscore; returnsumscore; } student(char*name1,stringmaj,char*sta,intnum,intmaths,intlangs,intpolicys,intmajors)//定义带参数构造函数 { strcpy(name,name1); major=maj; strcpy(state,sta); number=num; mathscore=maths; languagescore=langs; policyscore=policys; majorscore=majors; sumscore=maths+langs+policys+majors; } student&student: : operator=(student&s)//对=运算符进行重载 { strcpy(name,s.name); major=s.major; strcpy(state,s.state); number=s.number; mathscore=s.mathscore; languagescore=s.languagescore; policyscore=s.policyscore; majorscore=s.majorscore; sumscore=s.sumscore; return*this; } }; classcondition//录取条件类 { public: stringc_maj; intc_math; intc_language; intc_policy; intc_major; intc_sumscore; condition()//无参的构造函数 { cout<<"请输入录取专业: "; cin>>c_maj; cout<<"请输入录取的数学,外语,政治,专业课及总分要求: "< cout<<"数学: "; cin>>c_math; cout<<"外语: "; cin>>c_language; cout<<"政治: "; cin>>c_policy; cout<<"专业课: "; cin>>c_major; cout<<"总分: "; cin>>c_sumscore; cout< } }; voidmain() { staticintj=0;//统计录取的人数 cout<<"\t\t\t欢迎使用研究生录取系统\n"; cout<<"请输入报考研究生人数: "; intn; cin>>n; student*a=newstudent[n]; cout< cout<<"请输入研究生的信息! "< for(intk=0;k { cout<<"研究生姓名: "; cin>>a[k].name; cout<<"准考证号: "; cin>>a[k].number; cout<<"报考专业: "; cin>>a[k].major; cout<<"应届(Y)/历届(L): "; cin>>a[k].state; cout<<"数学成绩: "; cin>>a[k].mathscore; cout<<"外语成绩: "; cin>>a[k].languagescore; cout<<"政治成绩: "; cin>>a[k].policyscore; cout<<"专业课成绩: "; cin>>a[k].majorscore; cout< } conditionc; fstreamfile1,file2; file1.open("f: \\考生信息.txt",ios: : out);//将考生信息写入文件中 file1<<"\t\t\t***********考生信息***********"< file1<<"考生姓名准考证号报考专业应届(Y)/历届(L)数学外语政治专业课总分"< for(inti=0;i { file1< < < } file1.close(); for(intp=0;p {studentt("0","0","0",0,0,0,0,0); t=a[p]; for(intq=p+1;q<=2;q++) { if(t.add() { a[p]=a[q]; a[q]=t; t=a[p];} } } file2.open("f: \\考生录取信息.txt",ios: : out);//将考生的录取信息写入文件中 file2<<"\t\t\t***********录取结果***********"< file2<<"考生姓名准考证号报考专业应届(Y)/历届(L)数学外语政治专业课总分"< cout<<"\t\t\t***********录取结果***********"< cout<<"考生姓名准考证号报考专业应届(Y)/历届(L)数学外语政治专业课总分"< for(i=0;i { if((a[i].major==c.c_maj)&&(a[i].add()>=c.c_sumscore)&&(a[i].mathscore>=c.c_math)&&(a[i].languagescore>=c.c_language)&&(a[i].policyscore>=c.c_policy)&& (a[i].majorscore>=c.c_major)) { j=j+1; cout< file2< setw(6)< } } cout< cout<<"初试合格人数为: "< file2< file2<<"初试合格人数为: "< file2.close(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 研究生 初试 录取 信息管理 系统 设计 说明书