c语言课程设计-高考录取分数线.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE PAGE 14 中国地质大学(武汉) C语言课程设计报告书 姓 名: 班 级: 班级学号: 指导老师: 一 课设题目 高考招生录取成绩 已知文本文件f1.txt中存放了某个省当年参加高考的1000个考生的数据(考号、姓名、性别和考试成绩),存放格式是每行存放一个考生的数据,每个数据之间用空格隔开。 假定当年该省的招生计划是:一类本科招生计划为10%;二类本科招生计划为15%;三类本科招生计划为20%;四类高职高专招生计划为25%。 请编写程序,实现以下功能: 1.划定各批次录取分数线,结果可屏幕显示,也可存入文件; 2.能够统计各批次中男生,女生的录取比例。统计结果可屏幕显示,也可存入文件; 3.确定每名学生的录取情况及录取批次; 4.考生可以根据考号或姓名(支持重名)查询自己的成绩及录取情况; 5.系统程序要有界面; 6.存入文件的数据,每行存一种数据,每行之间的不同信息用空格分隔。) 二 题目分析 该程序题目已经很清楚的表达出要求编好的程序能够简单的实行高考招生功能,首先需要在导入含有一千个考生信息的txt文本,以能达到录取功能。根据该题目我们还可以知道完成数据输入后,不仅要有比较整洁的界面,还要能根据用户要求界面显示出个批次中男女的比例以及录取线、可供用户查询(根据考生姓名或考号)某考生成绩及录取情况。那么我们最好设置一个大循环,使得考生能实现只要不关闭程序或者按指定输入而结束程序就能一直查询下去,并且能用txt文本将个批次中录取的人的一系列信息从程序中生成出来。 但作为艺术生,我的能力有限,只能从网络上寻找已经编好的程序进行理解,降低理解题目的难度。 三 设计思路 要编题目中要求的程序,就必须先将已经写好的一千个学生的信息的文本文件输入程序。 第一步为定义: #include stdio.h #include malloc.h 用结构体的形式将学生的一切信息表达出来: struct DATA { int ID; char name[4]; char sex[3]; int score; }; 定义各个函数: void paixu(int*,DATA*,int); int sishewuru(double); void func1(int*,int*,DATA*,int*,int,int,int,int);//统计男女比例 int func2(int*,int,DATA*);//查找考生序号 void print(); void main() 再应该从f1.txt中向程序导入将每一个人的学号、姓名、性别、分数,并自动计算考生数量: FILE* file=fopen(f1.txt,r),*file1; if(file==NULL) { printf(No such file!\n); return; } while(EOF!=fscanf(file,%*[^\n]\n)) length++;//自动计算考生数量 然后比较大小,将原来一千个人按成绩高低排好顺序: DATA* data=(DATA*)malloc(length*sizeof(DATA)); int* pai=(int*)malloc(length*sizeof(int)); rewind(file); for(i=0;ilength;i++) { fscanf(file,%d %s %s %d,data[i].ID,data[i].name,data[i].sex,data[i].score); pai[i]=i; } paixu(pai,data,length);//将1-1000的学生按成绩排序 对1000名学生的成绩分别按比例进行计算并四舍五入为整数,可得出各批次最低成绩,即各批次的录取成绩。要划出各批次的录取成绩,就要将压线的那个分数计算出来。在这里,特别考虑的是:压线分数上人数有多个,所以,我们不能单纯的将N乘以各个批次的百分点。编写程序如下: yiben=sishewuru(length*0.1)-1;//分别按比例进行计算并四舍五入为整数 erben=yiben+sishewuru(length*0.15); sanben=erben+sishewuru(length*0.2); dazhuan=sanben+sishewuru(length*0.25); yi=data[pai[yiben]].score;er=data[pai[erben]].score; san=data[pai[sanben]].score;si=data[pai[dazhuan]].score; 设置界面:将“各类招生分数线”、“ 各批次男女比例”、“ 单个学生录取情况”、

文档评论(0)

ligennv1314 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档