当前位置:文档之家› 中国地质大学C语言课程设计题目(附参考代码)

中国地质大学C语言课程设计题目(附参考代码)

C语言课程设计题目选题一(起评分100分)高考招生录取程序已知文本文件f1.txt中存放了某个省当年参加高考的1000个考生的数据(考号、姓名、性别和考试成绩),存放格式是每行存放一个考生的数据,每个数据之间用空格隔开。

假定当年该省的招生计划是:一类本科招生计划为10%;二类本科招生计划为15%;三类本科招生计划为20%;四类高职高专招生计划为25%。

请编写程序,实现以下功能:(1)划定各批次录取分数线,结果可屏幕显示,也可存入文件。

(2)能够统计各批次中男生,女生的录取比例。

统计结果可屏幕显示,也可存入文件。

(3)确定每名学生的录取情况及录取批次。

(4)考生可以根据考号或姓名(支持重名)查询自己的成绩及录取情况;说明:①系统程序要有界面②存入文件的数据,每行存一种数据,每行之间的不同信息用空格分隔。

选题二(起评分85分)《C语言课程设计与学习指导》第4章题目或第5章题目任选其一成绩评定方式平时考勤:20%考试(即程序考核及检查):40%实习报告:40%违规违纪处理出现以下6种情况中的任何一种,整个课程设计的成绩直接认定为不及格:1.考勤抽查出现3次(含)不在的情况;2.上机从事玩游戏、看电影等活动被抓住2次(含)的情况;3.程序检查被认定为抄袭的情况;4.实习报告被认定抄袭或雷同的情况;5.不参加考试(即程序考核及检查)的情况6.不交实习报告的情况。

C语言课程设计报告撰写要求1 内容要求整个报告由六个部分构成:①课设题目②题目分析③设计思路④实现结果⑤课设总结⑥附录(源代码)2 篇幅要求①-⑤合计不低于8页,⑥不低于8页。

篇幅没有上限要求,但原则上要求不超过25页。

标题字体字号格式:宋体,三号,加黑,单倍行距。

正文字体字号格式:宋体或Times New Roman,五号,单倍行距。

3 撰写要求严谨出现抄袭。

严谨出现雷同。

报告出现抄袭或雷同的,整个课程设计成绩一律按不及格论处。

4 其它封面格式附后。

中国地质大学(武汉)C语言课程设计报告书姓名:班级:班级学号:指导老师:程序代码#include <stdio.h>#include <string.h>#define N 1000struct student{int number;char name[10];char sex[5];int score;};struct student stu[N];/***************排序模块***************/void sort(){struct student temp;int i,j;for(i=0;i<N;i++){for(j=0;j<N-i;j++)if(stu[j].score<stu[j+1].score){temp=stu[j];stu[j]=stu[j+1];stu[j+1]=temp;}}}/***************主函数*****************/void main(){int i,s,m1=0,w1=0,m2=0,w2=0,m3=0,w3=0,m4=0,w4=0,c,b,f,g;char u[10];FILE *fp,*fp1,*fp2,*fp3,*fp4,*fp5,*fp6,*fp7,*fp8,*fp9;fp=fopen("f1.txt","r");for(i=0;i<N;i++)fscanf(fp,"%d%s%s%d\n",&stu[i].number,stu[i].name,stu[i].sex,&stu[i].score);fclose(fp);sort();fp1=fopen("f2.txt","w");for(i=0;i<N;i++)fprintf(fp1,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp1);fp5=fopen("一本.txt","w");fprintf(fp5,"高考招生一本录取情况\n\n");for(i=0;i<N/10;i++)fprintf(fp5,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp5);fp6=fopen("二本.txt","w");fprintf(fp6,"高考招生二本录取情况\n\n");for(i=N/10;i<N*25/100-1;i++)fprintf(fp6,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp6);fp7=fopen("三本.txt","w");fprintf(fp7,"高考招生三本录取情况\n\n");for(i=N*25/100;i<N*45/100+1;i++)fprintf(fp7,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp7);fp8=fopen("高职.txt","w");fprintf(fp8,"高考招生高职录取情况\n\n");for(i=N*45/100+1;i<N*70/100+2;i++)fprintf(fp8,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp8);fp9=fopen("未被录取.txt","w");fprintf(fp9,"高考招生未被录取录取情况\n\n");for(i=N*70/100+3;i<N;i++)fprintf(fp9,"%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp9);/*********大循环查询模块***********/while(1){loop: printf(" ***********************************\n");printf(" * *\n");printf(" * 主菜单 *\n");printf(" * *\n");printf(" * 查询整体录取情况请输入1 *\n");printf(" * *\n");printf(" * 查询考生个人信息请输入2 *\n");printf(" * *\n");printf(" * 显示具体名单请输入4 *\n");.printf(" * *\n");printf(" * 退出请输入9 *\n");printf(" * *\n");printf(" ***********************************\n");scanf("%d",&s);fp2=fopen("f2.txt","r");switch(s){case 1:{for(i=0;i<N/10-1;i++){if(strcmp(stu[i].sex,"男")==0) m1=m1+1;else w1=w1+1;}for(i=N/10;i<N*25/100-1;i++){if(strcmp(stu[i].sex,"男")==0) m2=m2+1;else w2=w2+1;}for(i=N*25/100;i<N*45/100+1;i++){if(strcmp(stu[i].sex,"男")==0) m3=m3+1;else w3=w3+1;}for(i=N*45/100+1;i<N*70/100+2;i++){if(strcmp(stu[i].sex,"男")==0) m4=m4+1;else w4=w4+1;}while(1){printf(" **********************************\n");printf(" * *\n");printf(" * 菜单 1 *\n");printf(" * *\n");printf(" * 查询录取线请输入1 *\n");printf(" * *\n");printf(" * 查询男女比例请输入2 *\n");printf(" * *\n");printf(" * 返回输入3 *\n");printf(" * *\n");printf(" **********************************\n");scanf("%d",&f);switch(f){case 1:printf("\n一本线%d \n二本线%d \n三本线%d \n高职录取线%d \n",stu[N/10-1].score,stu[N*25/100-1].score,stu[N*45/100+1].score,stu[N*70/100+3]. score);break;case 2:printf("\n男%f,女%f\n男%f,女%f\n男%f,女%f\n男 %f, 女%f\n",(float)m1/100,(float)w1/100,(float)m2/150,(float)w2/150,(float)m3/202,(flo at)w3/202,(float)m4/252,(float)w4/252);}break;case 3:goto loop;}}case 2:{while(1){printf(" ***********************************\n");printf(" * *\n");printf(" * 菜单 2 *\n");printf(" * *\n");printf(" * 按考号查询请输入1 *\n");printf(" * *\n");printf(" * 按姓名查询请输入2 *\n");printf(" * *\n");printf(" * 返回输入3 *\n");printf(" * *\n");printf(" ***********************************\n");scanf("%d",&c);switch(c){case 1:{fp3=fopen("f2.txt","r");for(i=0;i<N;i++)fscanf(fp3,"%d%s%s%d\n",&stu[i].number,stu[i].name,stu[i].sex,&stu[i].score);/ /读取fclose(fp3);printf("\n请输入考生考号:");scanf("%d",&b);for(i=0;i<N;i++){if(b==stu[i].number){if(stu[i].score>=625)printf("\n%d %s %s %d 一本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=518) printf("\n%d %s %s %d 二本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=372)printf("\n%d %s %s %d 三本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=208) printf("\n%d %s %s %d 高职\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else printf("\n抱歉!你未被录取!\n");}}};break;case 2:{fp4=fopen("f2.txt","r");for(i=0;i<N;i++)fscanf(fp4,"%d%s%s%d\n",&stu[i].number,stu[i].name,stu[i].sex,&stu[i].score);fclose(fp4);printf("\n请输入考生姓名:");scanf("%s",&u);for(i=0;i<N;i++){if(strcmp(u,stu[i].name)==0){if(stu[i].score>=625)printf("\n%d %s %s %d 一本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=518) printf("\n%d %s %s %d 二本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=372) printf("\n%d %s %s %d 三本\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else if(stu[i].score>=208) printf("\n%d %s %s %d 高职\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);else printf("\n抱歉!你未被录取!\n");}}};break;case 3:goto loop;default :printf("\n输入错误!请重新输入!\n");}}};break;case 9:goto end;case 4:{while(1){printf(" ************************************\n");printf(" * *\n");printf(" * 菜单 4 *\n");printf(" * *\n");printf(" * 查询一本请输入1 *\n");printf(" * *\n");printf(" * 查询二本请输入2 *\n");printf(" * *\n");printf(" * 查询三本请输入3 *\n");printf(" * *\n");printf(" * 查询高职请输入4 *\n");printf(" * *\n");printf(" * 查询未录取请输入5 *\n");printf(" * *\n");printf(" * 返回输入9 *\n");printf(" * *\n");printf(" ************************************\n");scanf("%d",&g);switch(g){case 1:{fp5=fopen("一本.txt","w");printf(" *********高考招生一本录取情况*********\n");for(i=0;i<N/10;i++)printf("%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp5); break;}case 2:{fp6=fopen("二本.txt","w");printf(" *********高考招生二本录取情况*********\n");for(i=N/10;i<N*25/100-1;i++)printf("%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp6); break;}case 3:{fp7=fopen("三本.txt","w");printf(" *********高考招生三本录取情况*********\n");for(i=N*25/100;i<N*45/100+1;i++)printf("%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp7); break;}case 4:{fp8=fopen("高职.txt","w");printf(" *********高考招生高职录取情况*********\n");for(i=N*45/100+1;i<N*70/100+2;i++)printf("%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp8); break;}case 5:{fp9=fopen("未录取.txt","w");printf(" *********高考招生未录取情况*********\n");for(i=N*70/100+3;i<N;i++)printf("%d %s %s %d\n",stu[i].number,stu[i].name,stu[i].sex,stu[i].score);fclose(fp9); break;}case 9:goto loop;default :printf("\n输入错误!请重新输入!\n");}}}default :printf("\n输入错误!请重新输入!\n");}}end:printf("\n\n 谢谢使用\n");}。

相关主题