c语言程序设计报告学生成绩管理系统.doc
《c语言程序设计报告学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《c语言程序设计报告学生成绩管理系统.doc(25页珍藏版)》请在三一办公上搜索。
1、课程设计报告书学生成绩管理系统 单 位: 分院班 级: 学 号: 姓 名: 指导老师: 完成日期:2010年7月14日内容摘要摘要:本次课程设计的课题是学生成绩管理系统,本文介绍课程设计课题的选题意义,说明了本系统提供的主要功能,对设计思路、功能模块、流程图、功能模块、中心算法进行了详细的说明,并画出流程框图。本文提供了完整的源程序代码,并展示了系统使用和运行效果。最后给出了在小学期高级语言程序设计过程中的总结,其中包含本程序独特设计,作者的设计收获、设计中遇到的困难和问题,以及作者对设计题目及功能的改进意见,查阅的参考文献等方面的内容。索引关键字关键词:源程序代码,学生成绩管理,流程框图内容
2、目录1 题目要求-41.1 内容要求-41.2 设计要求-42 设计思想-53 功能模块及流程图-54 数据结构-75 中心算法代码说明-76 系统实现-86.1 程序代码-86.2 系统使用-216.3 运行效果说明-217 总结-248 致谢词-259 参考文献-25.正文1题目要求1.1内容要求要求能够实现输入记录、查询记录、更新记录、统计记录、输出记录等功能。1. 输入记录。对每个学生的学号、姓名、班级、数学、英语、计算机成绩进行输入并存储,在程序的运行过程中,数据的存储可以采用结构体数组或者链表,但是最终应该存储在文件中。2. 维护记录。能够实现添加、删除、修改学生记录,但是一定要将
3、最终数据存储到文件中。3. 查询记录。根据班级、学号、科目等查询学生的成绩。如果查询时学生数据并没有读入到结构体数组或者链表中,则应该先从文件中读出数据并存储在结构体数组或者链表中,然后在结构体数组或者链表中查询满足条件的数据。4. 统计记录。完成对各门功课最高分和不及格人数的统计。1.2设计要求各级菜单及功能间必须建立必要的联系,要定义参照完整性规则。使用二进制文件方式存储数据。要求有菜单界面,结果显示时应达到界面友好。将完成的全部内容连编成一个.exe文件。 2设计思想1.在设计时考虑以下几个方面:操作简单。因为使用者多为非计算机专业人员,所以该系统要求设计的界面美观,操作方便。要充分考软
4、件界面友好和操作方便,便愈使用人员快速上手。易于维护。一个软件的好坏,关键在于产品的可靠,稳定,便于维护。2开发语言的选择针对世界上流行的大量软件和开发工具,经过认真分析其优缺点,结合目前的软硬件开发环境,选用微软WINDOWS平台下的Visual C+作为软件开发工具。选用工具有几下几方面优点: C语言简洁、紧凑、使用方便、灵活。有32个关键字。C语言程序比其他许多高级语言简练,源程序短,因此输入程序时工作量小。 运算符丰富。 数据类型丰富,具有现代语言的各种数据结构。 C语言是完全模块化和结构化的语言。用函数作为程序的模块单位,便于实现程序的模块化。 语法限制不太严格,程序设计自由度大。
5、生成目标代码质量高,程序执行效率高。 用C语言编写的程序可移植性好。综上所述,Visual C+可以满足学生成绩管理的要求,所以用来开发学生成绩管理系统是非常合适的。3功能模块及流程图学生成绩管理系统对学校加强学生基本情况及学生成绩管理有着重要的作用。为了能使该系统具有更为广泛的功能:应该将该系统细分为学生操作系统、教师操作系统、教务处操作系统,以满足不同身份的人的需求。总体来说,该系统应分为输入模块、维护模块、查询模块以及统计模块。 由于本软件为学校中多个身份的人的定制开发的。我们经过反复论证,最终确定了学生成绩管理系统的设计方案,主要流程图如下所示:系统主菜单学生操作教师操作教务处操作查询
6、功能 录入功能删除功能修改功能查询功能查询功能统计功能统计功能按班级按学号按科目按班级按学号按科目按班级按学号按科目数学 英语计算机 数学 英语计算机数学英语 计算机通过系统主菜单,可以使学校中不同身份的人选择不同的操作系统,从而合理的使用不同的功能。4数据结构结构体 : 程序设计中用到的结构体类型: 学生信息结构体类型:struct studentint num;char nam20;char clas20;float math;float english;float computer;stuSIZE;5中心算法代码说明说明1. void save() FILE *fp;int j;if(f
7、p=fopen(stu_list,wb)=NULL)printf(cannot open filen);return;for(j=0;jSIZE;j+)if(fwrite(&stuj,sizeof(struct student),1,fp)!=1)printf(file write errorn);fclose(fp);以上代码将数据存入文件中,操作起来避免了直接对内存进行操作,可对文件进行操作。2. for(i=0;iSIZE;i+)for(j=0;jstui+1.math)t=stui.math;stui.math=stui+1.math;stui+1.math=t;for(j=0,i=0
8、;iSIZE;i+)if(stui.math60)j=j+1;统计函数中使用起泡法排序再统计的方法6.系统实现6.1 程序代码代码如下:#include #include #define SIZE 34struct studentint num;char nam20;char clas20;float math;float english;float computer;stuSIZE;void save() /*将数据储存于文件*/FILE *fp;int j;if(fp=fopen(stu_list,wb)=NULL)printf(cannot open filen);return;for(
9、j=0;jSIZE;j+)if(fwrite(&stuj,sizeof(struct student),1,fp)!=1)printf(file write errorn);fclose(fp);search(int n) /*查询学号函数*/ int j; for(j=0;jSIZE) return -1;void function1() /*添加记录*/void xt2();int i;char k;printf( *添加学生信息*n);for(i=0;iSIZE;i+)printf(请输入该生学号:n);scanf(%d,&stui.num);printf(请输入该生姓名:n);scan
10、f(%s,&stui.nam);printf(请输入该生所在班级:n);scanf(%s,&stui.clas);printf(请输入该生数学成绩:n);scanf(%f,&stui.math);printf(请输入该生英语成绩:n);scanf(%f,&stui.english);printf(请输入该生计算机成绩:n);scanf(%f,&puter);getchar(); printf(完成本次操作!n);printf(是否返回上一菜单?y/n:n); k=getchar(); if(k=n)continue; /*判断*/ elsebreak;save();xt2();void fun
11、ction2() /*删除学生记录*/void xt2();int i,j;char a,k;printf( *删除学生信息*n);printf(请输入要删除学生的学号:n);scanf(%d,&i); j=search(i);if(j=-1)loop:printf(该学生不存在,请重新输入!n); printf(输入0退出n); for(j=0;jSIZE;j+) if(j=-1) goto loop; else break; elsefor(i=0;iSIZE;i+)printf(原数据为:n);printf(学号%d,姓名%s,班级%s,数学成绩%4.1f,英语成绩%4.1f,计算机成绩
12、%4.1fn,stuj.num,stuj.nam,stuj.clas,stuj.math,stuj.english,puter);stuj.num=0;stuj.nam20=0;stuj.clas20=0;stuj.math=0;stuj.english=0;puter=0;printf(删除结果为n);printf(学号%d,姓名%s,班级%s,数学成绩%4.1f,英语成绩%4.1f,计算机成绩%4.1fn,stuj.num,stuj.nam,stuj.clas,stuj.math,stuj.english,puter);save(); printf(完成本次操作!n); k=getchar
13、(); if(k=y)continue; /*判断*/ elsebreak;printf(是否返回主菜单y/n:n);scanf(%c,&a);if(a=y)xt2();elsefunction2(); void function3() /*修改*/ char name20,phy10; void xt2();printf(请输入要修改的学生姓名:);scanf(%s,name);printf(n);int i;float t;for(i=0;iSIZE;i+)change:if(strcmp(stui.nam,name)=0)printf(请输入要修改的科目:);scanf(%s,phy);
14、if(strcmp(math,phy)=0)printf(输入成绩:);scanf(%f,&t);stui.math=t;printf(成绩为:%4.2fn,stui.math); else if(strcmp(english,phy)=0)printf(输入成绩:);scanf(%f,&t);stui.english=t;printf(成绩为:%4.2fn,stui.english); else if(strcmp(computer,phy)=0) printf(输入成绩:);scanf(%f,&t);puter=t;printf(成绩为:%4.2fn,puter); elseprintf(
15、错误,请重新输入:); goto change;save();printf(完成本次操作!n);xt2();void way1() /*按班级查询*/void function4();int i;char clas20; char a;loop:printf(请输入要查询学生的班级:n); scanf(%s,clas);for(i=0;iSIZE;i+)if(strcmp(clas,stui.clas)=0)printf(学号%d,姓名%s,班级%s,数学成绩%f,英语成绩%f,计算机成绩%fn,stui.num,stui.nam,stui.clas,stui.math,stui.englis
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 报告 学生 成绩管理系统
链接地址:https://www.31ppt.com/p-2384684.html