1、 C语言课程设计报告书 姓 名: 班 级: 班级学号: 指导老师: 2 一一 课设题目课设题目 高考招生录取成绩 已知文本文件f1.txt中存放了某个省当年参加高考的1000个考生的数据(考号、姓名、 性别和考试成绩) ,存放格式是每行存放一个考生的数据,每个数据之间用空格隔开。 假定当年该省的招生计划是:一类本科招生计划为10;二类本科招生计划为15;三 类本科招生计划为20;四类高职高专招生计划为25。 请编写程序,实现以下功能: 1.划定各批次录取分数线,结果可屏幕显示,也可存入文件; 2.能够统计各批次中男生,女生的录取比例。统计结果可屏幕显示,也可存入文件; 3.确定每名学生的录取情
2、况及录取批次; 4.考生可以根据考号或姓名(支持重名)查询自己的成绩及录取情况; 5.系统程序要有界面; 6.存入文件的数据,每行存一种数据,每行之间的不同信息用空格分隔。 ) 3 二二 题目分析题目分析 该程序题目已经很清楚的表达出要求编好的程序能够简单的实行高考招生功能, 首先需 要在导入含有一千个考生信息的txt文本,以能达到录取功能。根据该题目我们还可以知道 完成数据输入后, 不仅要有比较整洁的界面, 还要能根据用户要求界面显示出个批次中男女 的比例以及录取线、可供用户查询(根据考生姓名或考号)某考生成绩及录取情况。那么我 们最好设置一个大循环, 使得考生能实现只要不关闭程序或者按指定
3、输入而结束程序就能一 直查询下去,并且能用txt文本将个批次中录取的人的一系列信息从程序中生成出来。 但作为艺术生,我的能力有限,只能从网络上寻找已经编好的程序进行理解,降低理解 题目的难度。 4 三三 设计思路设计思路 要编题目中要求的程序,就必须先将已经写好的一千个学生的信息的文本文件输入程 序。 第一步为定义: #include #include 用结构体的形式将学生的一切信息表达出来: struct DATA int ID; char name4; char sex3; int score; ; 定义各个函数: void paixu(int*,DATA*,int); int sishe
4、wuru(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,“%*nn“) lengt
5、h+;/自动计算考生数量 然后比较大小,将原来一千个人按成绩高低排好顺序: DATA* data=(DATA*)malloc(length*sizeof(DATA); int* pai=(int*)malloc(length*sizeof(int); rewind(file); for(i=0;i=0 fflush(stdin); else break; 实现“各类招生分数线”即“0”指令: getchar(); switch(input) case 0: printf(“n一类本科招生线: %dn二类本科招生线: %dn三类本科招 生线:%d n高职高专招生线:%dn“,yi,er,san,
6、si); printf(“是否打印为文件?(y/n):“); if(getchar()=y) file1=fopen(“各批次录取分数线.txt“,“w“); fprintf(file1,“一类本科招生线:%dn二类本科招生线:%d 6 n 三 类 本 科 招 生 线 : %dn 高 职 高 专 招 生 线:%dn“,yi,er,san,si); fclose(file1); fflush(stdin); break; 实现“各批次男女比例”即“1”指令: case 1: func1(male,female,data,pai,yiben,erben,sanben,dazhuan); printf(“一本类本科招生线男女比 例: %d:%dn“,male0,female0); printf(“二类本科招生线男女比 例: %d:%dn“,male1,female1); printf(“三类本科招生线男女比 例: %d: