1、c语言课程设计报告成绩管理系统 2课程设计任务书设计题目 成绩管理系统 系 别 计算机工程系 专 业 计算机科学玉技术 班 级 学 号 姓 名 指导教师 设计任务下达日期2011年 12 月 24 日设计时间2011年12月26日 至 2010年12月30日指导教师评语成绩评定:指导教师签字:年月日课程设计任务书一、目的和意义本课程设计是C语言程序设计课程的后继教学环节, 通过研究C语言中图形编程技术或者声音控制等其它方面的多媒体编程技术,一方面拓展学生在这些领域的C语言知识,另一方面使学生在运用所学理论知识进行实践开发,更好的培养学生综合学习能力和实践能力。本次课程设计学生可以根据喜好,可以
2、利用复杂的数据类型实现成绩管理系统等小型的综合应用程序。二、题目(可从下面题目中任选一个) 1、C语言的图形编程应用 设计实现如菜单、图形的显示,再如动画和小游戏。 2、简易电子琴模拟程序的实现 为实现在键盘模拟电子琴设计的程序。由学生自行设计并且实现。 3、成绩管理程序 学生本人设计具体方案,然后改进和编码实现。三、课程设计报告书应包括的主要内容1、介绍概要的思路和设计方案,程序的总体功能和模块划分。2、 主要算法的介绍及流程图,主要功能的实现手段的说明文档。3、 对于有设想但最终未实现的功能的大致编程思路的阐述和设计过程中的启发。四、进度要求1、设计时间: 2011年12月19日至2011
3、年12月25日2、编写课程设计报告书: 2011年12月26日至2011年12月29日3、提交报告及答辩时间: 2011年12月30日 专科四、进度要求1、设计时间: 2011年12月26日至2011年12月28日2、编写课程设计报告书: 2011年12月29日3、提交报告及答辩时间: 2011年12月30日 一、 设计概要;1、 系统结构图: 2、功能说明:进入主界面后有17个选项,1是录入,2是输出,3是查找,4是增加,4是修改,5是修改,6是排序,7是退出。输入每个数字后按回车就进入该菜单,就可以进行各项操作。二、 运行情况:1、主界面 欢迎来到学生信息管理系统 系部: 专业: 姓名:
4、学号: 班内序号: 指导老师: 主菜单 1.录入数据 2.输出数据 3.查找数据 4.增加数据 5.修改数据 6.成绩排序 7.退出系统 2、录入成绩 3、输出成绩4、查找成绩5、修改成绩6、增加成绩7、成绩排序以上这些操作可以通过实际运行来展示三、程序源代码:#include stdio.h#define SIZE 100000#includestring.h#includestdlib.h#includeconio.hstruct student int n; int num; char name10; int C; int Maths; int En; float ave;stuSIZE
5、;/*录入数据(向文件fp中录入信息)*/void finput() FILE *fp; int i,p; fp=fopen(fstu,wb); for(i=0;iSIZE;i+1) printf(i=%d 输入序号i(当输入i=-1时,返回),i=,+i); scanf(%d,&i); if(i=-1) fclose(fp); return; else printf(请输入学号,姓名,C成绩,数学成绩,英语成绩:); scanf(%d%s%d%d%d,&stui.num,stui.name,&stui.C,&stui.Maths,&stui.En); stui.ave=(stui.C+stu
6、i.Maths+stui.En)/3.0; stui.n=i; fwrite(&stui,sizeof(struct student),1,fp); fclose(fp);/*输出文件fp中的数据*/void flist() FILE *fp; int i; fp=fopen(fstu,rb); printf(n); printf( 成绩列表n); printf(-n); printf(序号 学号 姓名 C成绩 数学 英语 平均n); printf(-n); for(i=0;fread(&stui,sizeof(struct student),1,fp)=1;i+) printf(%d%8d%
7、8s%8d%8d%8d%16.2fn,stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave); printf(-nn); printf(n); fclose(fp);/*查找数据*/void fsearch() FILE *fp; int i,num; fp=fopen(fstu,rb); rewind(fp); printf(请输入要查找的学号:); scanf(%d,&num); printf(n); printf( 查询结果n); printf(-n); printf(序号 学号 姓名 C成绩 数学 英语 平均n); p
8、rintf(-n); for(i=0;i=SIZE;i+) if(stui.num=num) printf(%d%8d%8s%8d%8d%8d%16.2fn,stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave); printf(-nn); printf(nnn); fclose(fp);/*增加文件fp中的数据*/void fadden() int i,s; FILE *fp; fp=fopen(fstu,ab+); rewind(fp); printf(n); printf( 成绩列表n); printf(-n); pri
9、ntf(序号 学号 姓名 C成绩 数学 英语 平均n); printf(-n); for(i=0;fread(&stui,sizeof(struct student),1,fp)=1;i+) printf(%d%8d%8s%8d%8d%8d%16.2fn,stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave); printf(n); s=i; for(i=s;iSIZE;i+) printf(i=%d 输入序号i(当输入i=-1时,返回),i=,i+1); scanf(%d,&i); if(i=-1) fclose(fp);
10、return; else printf(请输入学号,姓名,C成绩,数学成绩,英语成绩:); stui.n=i+1; scanf(%d%s%d%d%d,&stui.num,stui.name,&stui.C,&stui.Maths,&stui.En); stui.ave=(stui.C+stui.Maths+stui.En)/3.0; fwrite(&stui,sizeof(struct student),1,fp); fclose(fp);/*修改文件fp中的数据*/void fchange() FILE *fp; int i,num,n; int flag=0; printf(请输入要修改学
11、生的学号:); scanf(%d,&num); for(i=0;i=SIZE;i+) if(stui.num=num) printf(n); printf( 成绩列表n); printf(-n); printf(序号 学号 姓名 C成绩 数学 英语 平均n); printf(-n); printf(%d%8d%8s%8d%8d%8d%16.2fn,stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave); printf(-nn); printf(n); n=i; flag=1; break; if(flag=0) printf(
12、n); printf( 输入错误!n); printf( 请返回!n); printf(n); return; printf(nnn); fp=fopen(fstu,rb+); fseek(fp,n*sizeof(struct student),0); printf(请输入新的学号,姓名,C成绩,数学成绩,英语成绩:); scanf(%d%s%d%d%d,&stui.num,stui.name,&stui.C,&stui.Maths,&stui.En); stui.ave=(stui.C+stui.Maths+stui.En)/3.0; fwrite(&stui,sizeof(struct s
13、tudent),1,fp); fclose(fp); fp=fopen(fstu,rb); printf(n); printf( 成绩列表n); printf(-n); printf(序号 学号 姓名 C成绩 数学 英语 平均n); printf(-n); for(i=0;fread(&stui,sizeof(struct student),1,fp)=1;i+) printf(%d%8d%8s%8d%8d%8d%16.2fn,stui.n,stui.num,stui.name,stui.C,stui.Maths,stui.En,stui.ave); printf(-nn); printf(n
14、); fclose(fp);/*成绩排序*/void ftaxis() int i,j,n; FILE *fp; struct student t; fp=fopen(fstu,rb); printf(n); printf( 成绩列表n); printf(-n); printf(序号 学号 姓名 C成绩 数学 英语 平均n); printf(-n); for(i=0;fread(&stui,sizeof(struct student),1,fp)=1;i+) printf(%d%8d%8s%8d%8d%8d%16.2fn,stui.n,stui.num,stui.name,stui.C,stu
15、i.Maths,stui.En,stui.ave); printf(-nn); printf(n); fclose(fp); n=i; for(i=0;in;i+) for(j=i+1;jn;j+) if(stui.avestuj.ave) t=stui; stui=stuj; stuj=t; fp=fopen(fstus,wb); printf(nnn); printf(n); printf( 成绩列表 n); printf(-n); printf(序号 学号 姓名 C成绩 数学 英语 平均n); printf(-n); for(i=0;i0&n8) switch(n) case 1:fin
16、put();break; case 2:flist();break; case 3:fsearch();break; case 4:fadden();break; case 5:fchange();break; case 6:ftaxis();break; case 7:printf(n); printf( n); printf( 谢谢使用! n); printf( 再见! n); printf( n); printf(n); exit(0); else printf(n); printf( n); printf( 输入错误! n); printf( 请退出! n); printf( n); printf(n); break; 三、 课设心得: 通过课设的学习,更加对c语言程序设计有了进一步的了解,同时也又更深入学到了c语言中的文件操作,对于基础的输入、输出函数,以及if语句都有了更深的体会,在这次编程中没有使用过去的编程软件Tc,Vc主要是机子不兼容的原因,又找了一个新的编程软件不错还c-free,就是在编译中会出错,这个程序在该软件下可以成功运行,本程序参考了东西不少,主要是感觉原来学习的肤浅,不能是自己独自完成。四、 参考资料:C程序设计(第三版,谭浩强.著) XX文库(c语言资料库),使用编程软件c-free。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1