中国地质大学(武汉)
姓名:王友琪。
专业:地质学。
学号:20131000518
指导老师:王茂才。
1、课设题目简要介绍
已知文本文件中存放了报考某校研究生的考生相关信息(不超过5000人),具体数据及存放格式为:每行存放一个考生的数据,数据之间用空格分隔,共有8项,依次为:考号、姓名、报考专业编号、政治课笔试成绩、英语课笔试成绩、专业课一笔试成绩、专业课二笔试成绩、面试成绩。
文本文件中存放了该校50个专业当年的研究生招生计划,具体数据及存放格式为:每行存放一个专业的数据,数据之间用空格分隔,共有2项,依次为:专业编号、专业招生计划。
其中,考号为5位数字字符;姓名为长度不超过10个的字符;报考专业编号为两位数字字符,编号从01-50;政治课与英语课为0-100的整数;两门专业课为0-150的整数;面试成绩为0-100的整数。
该校的研究生录取标准及政策如下:
录取分数线:根据专业录取计划,分专业划定录取分数线。政治课及英语课,按全校录取计划的200%划定录取分数线,若政治或英语课的录取分数线低于45分,按45分划线;两门专业课,按专业录取计划的150%划定录取分数线,若专业课的录取分数线低于90分,按90分划线;总分,按专业录取计划的150%划定录取分数线,若总分的录取线低于280分,按280分划线。
录取基本条件:四门笔试课程及总分均通过录取分数线,面试成绩及格。
录取政策:在具备录取基本条件的考生中,笔试成绩占70%,面试成绩占30%,综合计算考生的总成绩,按专业排名从高到低录取。
请编写程序,根据文件及中的数据,划定各个专业的录取分数线并存入文件中。存放格式为:每行存放一个专业的录取分数线,数据之间用空格分隔,共有6项,依次为:
专业编号、政治课录取分数线、英语课录取分数线、专业课一录取分数线、专业课二录取分数。
二、总分录取分数线。
根据及中的数据,将被录取考生的信息存入文件中。存放格式为:每行存放一个被录取的考生信息,数据之间用空格分隔,共有10项,依次为:
考号、姓名、报考专业、政治课成绩、英语课成绩、专业课一成绩、专业课二成绩、总分、面试成绩、专业排名。
并实现以下功能:
1) 能够统计没有完成录取计划的所有专业信息。
2) 能够统计录取分数线中有仅仅达标(即公共课分数线为45分,或者专业课分数线为90分,或者总分为280分)的所有专业信息。
3)能够统计所有达到录取分数线,但因为面试成绩不及格没被录取的考生信息。
4)能够根据专业信息查询某个专业的实际录取人数及所有录取考生的信息。
5)考生能够根据自己的考号及姓名查询自己的录取结果,如果输入的考号与姓名不匹配,禁止查询,给出错误提示。
二、题目分析。
首先, 文件一和文件二是题目需要的所有的数据信息,一切处理都围绕文件里的数据展开。文件一中存放的是5000名考生的考号(学号)、姓名、报考专业、政治课成绩、英语课成绩、专业课一成绩、专业课二成绩和面试成绩共9项信息,每个人有且仅有一个考号,且各不相同;文件二存放的是该校50个专业当年的研究生招生计划,包括专业编号和计划招生人数2项,每个专业有且仅有一个专业编号。
政治课及英语课,按全校录取计划的200%划定录取分数线,即按照该校50个专业计划招收人数的总和的2倍划定政治成绩和英语成绩的录取分数线,该分数线不能低于45分,否则按45分划定分数线。两门专业课,按专业录取计划的150%划定录取分数线,例如:专业01计划招收21名研究生,划线的标准是21的1.
5倍,划定的分数线不得低于90分,否则按90分划定分数线。总分是政治成绩、英语成绩、专业课一的成绩和专业课二的成绩的总和,不包括面试成绩,总分的划线也是分专业的,与专业课一和专业课二的划线相同,不同的是划定的分数线不能低于280分,否则按280分划线。所有划定的分数线信息分专业写入文件三。
录取的基本条件有6项,必须全部满足,要求考生的政治成绩不低于划定的政治录取分数线,英语成绩不低于划定的英语分数线,专业课一和专业课二的成绩不低于本专业的专业课一分数线和专业课二分数线,总分不低于本专业总分分数线,面试成绩合格(不低于60分),。
满足基本录取条件的考生才能进入录取阶段,分专业按照总成绩的排名由高到低录取。总成绩有别于总分,总成绩=0.7*(政治成绩+英语成绩+专业课一成绩+专业课二成绩)+0.
3*面试成绩。分专业按照总成绩排名由高到低录取要求最后录取的考生排名不超过该专业本来的计划招生人数,例如:达到专业08基本录取条件的考生,若他的排名在13之后,则不被录取。
录取完成,要把录取的考生的全部信息写入文件四。
统计的内容有3项:
其一要统计没有完成录取计划的所有专业信息,意即文件四中每个专业最终录取到的考生人数少于本专业计划招生人数的专业和缺录的人数。
其二统计分数线中仅仅达标的专业,即政治分数线为45分,或者英语分数线为45分或者专业课分数线为90分,或者总分为280分,4条中满足任何一条即为分数线仅仅达标的专业,满足1条以上也为分数线仅仅达标的专业。
其三统计政治课成绩不低于政治分数线,英语成绩不低于英语分数线,专业课一成绩不低于该专业专业课一分数线,专业课二成绩不低于该专业专业课二分数线,总分不低于该专业总分分数线,唯独面试成绩不合格(低于60分)的所有考生信息,5条必须同时满足。
查询内容有2项:
其一是输入专业编号,得到该专业实际录取的人数和该专业录取到的所有考生信息的反馈。若输入有错也给出输入有错的反馈。
其二是输入个人的考号和姓名,得到个人的所有成绩、总分、专业排名(总成绩排名)的反馈信息,还要看该考生是否在文件四中,即是否最终被录取。是不是被录取都需给出反馈信息。若输入有错也给出输入有错的反馈。
3、设计思路。
依据题目,设计的程序要完成写文件三和文件四的工作以及实现统计和查询的功能。
文件三存放50个专业的专业编号、政治分数线、英语分数线、专业课一分数线、专业课二分数线和总分分数线共6项内容。
2门公共课的分数线和其它3个分数线产生需要不同的函数,因为公共课是在全体考生中划定的,而其它分数线需要分专业划定。
划定分数线之前要完成排序的工作,两种划定方式对应两种排序方式。排序的对象是文件一中的考生,需要定义2个结构体类型的数组,用来读取文件一中的考生信息。文件二中存有50个专业的专业编号和计划招收人数2项内容,定义长度为50的结构体数组存放50个专业的专业信息。
按照从大到小的顺序就政治成绩和英语成绩排序,以计划招生人数总和的2倍为准,与之对应的考生的政治成绩就是政治分数线,英语成绩就是英语分数线。当然,这两个成绩都要与45分作比较,低于45分就以45分划定分数线。
专业课和总分排序前先要把文件一中各考生与文件二中各专业编号逐个比较,同一专业的考生存入第二个数组,再就专业课一成绩、专业课二成绩和总分对数组中的考生从大到小排序。最后以该专业计划招收人数的1.5倍(若为小数则取整)为准,与之对应的考生的专业课一成绩则为该专业的专业课一分数线,与之对应的专业课二成绩则为专业课二分数线,与之对应的总分则为总分分数线。
同理,两个专业课的成绩要与90分作比较,大的作最后划定的分数线,总分要与280分作比较,大的作最后划定的分数线。
划定的政治分数线和英语分数线分别用2个整形变量存放,50个不同的专业的专业课一分数线、专业课二分数线和总分分数线用3个长度为50的整形数组存放。再将这些数据写入文件三。
文件四中存放考号、姓名、报考专业、政治课成绩、英语课成绩、专业课一成绩、专业课二成绩、总分、面试成绩、专业排名共计10项内容,比文件一中的内容多一项专业排名,因此之前定义结构体类型数组时要加上总成绩和专业排名2项内容,即数组中每个个体有总计11项内容,分别是考号、姓名、报考专业、政治课成绩、英语课成绩、专业课一成绩、专业课二成绩、总分、面试成绩、专业排名和总成绩。
因为文件四中存放最终被录取的考生,人数应该少于文件一中存放的考生人数,且为了统计和查询方便,可定义第三个结构体的数组对其先存放。具体方法是把文件一的考生信息读入第一个结构体数组,此时第一个数组中总分、总成绩和专业排名3项还没有初始值,先按要求逐个计算出各自的总分、总成绩和专业排名并存入数组,再逐个判断是否达到录取的所有要求,把达到的考生依次存入第三个结构体数组,最后逐个写入文件四只是写入时剔除总成绩一项,写入其它10项内容。
统计没有完成录取计划的所有专业同时需要文件二和文件四中的信息,计算每个专业实际录取的人数是多少,与计划招收人数作比较,若小于计划招收人数则为未完成录取,用每个计划招收人数减去该专业实际录取人数得缺录人数,然后在屏幕上输出未完成录取计划的专业的专业编号和缺录人数。
统计分数线中仅仅达标的专业需要把文件三中公共课分数线与45分作比较,专业课分数线与90分作比较,总分与280分作比较,若相等则在屏幕上输出该专业以及该专业的各科分数线和总分分数线。
对第一个结构体数组中的政治课成绩、英语课成绩、专业课一和专业课二成绩、总分成绩作判断,符合公共课成绩不低于公共课分数线、专业课成绩不低于该专业专业课分数线、总分不低于该专业总分分数线、、面试成绩不合格(低于60分)的所有考生就是统计内容的第三项,因为该项内容信息较多,可写入文件五而不用在屏幕上输出。
查询函数根据输入的查询信息反馈查询结果。查询时,文件一文件二文件三文件四和文件五都可作为已知,只是根据所需查询的内容读取和分析不同的文件数据即可。其实文件一已存放在第一个结构体数组中,文件二已存放在第二个结构体数组中,文件四已存放在第三个结构体数组中,所以可以省去再一次读取文件的步骤而直接从数组中访问数据。
C语言课程设计报告书
高级语言程序设计 c语言 课程设计。湖南涉外经济学院计算机科学与技术学部。2010年12月。目录。1系统简介 2 2需求分析 2 3概要设计 2 3.1系统功能结构图 2 3.2重要数据的数据结构设计 2 3.3函数设计 3 3.4小组成员分工 4 4 详细设计 4 5 调试分析 7 6 用户手册 ...
C语言课程设计报告书
學院。學院。实验题目学生信息管理系统。一 实验目的 1 本学期我们学习了c语言,由于初接触,学习有一定困难 于是学校给我们提供一次巩固提高的机会 课程设计。该可程设计要求学生既动手又动脑,自学,查资料,独立实践。将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高...
C语言课程设计报告书
课程名称 学生信息管理系统。一 设计目的 1 本学期我们学习了c语言,由于初接触,学习有一定困难 于是学校给我们提供一次巩固提高的机会 课程设计。该可程设计要求学生既动手又动脑,自学,查资料,独立实践。将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实...