- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
“学生成绩管理系统”开发-实验报告
“学生成绩管理系统”开发——实验报告(一)实验目的1.学习c程序设计、算法选择和设计,以及数据类型的选择和数据结构的设计;2.加深对程序设计方法的理解,并运用c程序解决较复杂的问题;3.培养团队协作的精神。(二)实验内容和要求1.实验内容:①开发一个小型的软件系统,以学生成绩管理为背景,系统具有常用的学生成绩管理功能,程序能够运行并演示所有的功能。②学生成绩管理系统的基本功能:成绩输入、查询、打印成绩单、统计分析。③系统约束:系统能够处理n(0n1000)名学生成绩,每名学生选修不得少于m(0m10)门课;每门课成绩由平时成绩、期中成绩和期末成绩三部分组成,所有成绩都为100分制;成绩基本数据以文件方式保存;交互界面要有提示信息。④根据课堂讨论结果,每小组自行定义各自的系统功能、设计和实现方法,并形成书面文档。实验要求:①输入成绩:任课教师通过键盘输入学生成绩,每门的学生成绩由三部分组成:平时成绩、期中成绩和期末成绩。②查询指定学生的成绩;查询指定课程的成绩。③打印个人和班级成绩单:在显示屏上输出个人成绩单和班级成绩单。④成绩排名:按成绩分类输出成绩单。⑤成绩分析报告:至少包含平时成绩、最高成绩、最低成绩、按分数段输入成绩。⑥用文件存储成绩基础数据:基础数据包含:学生姓名、学号、课程名称、平时成绩、期中成绩、期末成绩。成员分工略(四)主要仪器设备仪器:计算机实验环境:Windows:XP/7/8 Dev c++(五)源代码及注释:#includestdio.h#includestdlib.h#includestring.hstruct student{//储存学生信息int id;double usual,mid,final,score,gpa;char name[20];}st[10000];void save(char c[],intn,struct student st[]){//将学生信息保存到文件中inti;FILE *fp;if ( !( fp=fopen(c,wb) ) )//打开或创建文件名为c的文件{//若打开失败printf (\t抱歉,无法建立该文件。请重试!\n);return ;}for (i=0;in;++i)//若打开成功fwrite (st[i],sizeof(struct student),1,fp);fclose (fp);}int comp(const void *a,const void *b){//qsort中的比较函数if ( ( (struct student *)a)-score != ( (struct student *)b)-score )//成绩不同时比较成绩return ( (struct student *)b)-score - ( (struct student *)a)-score;return ( (struct student *)a)-id - ( (struct student *)b)-id;//成绩相同时比较学号}int find(char c[]){//打开相应文件,提取学生信息FILE *fp;inti;if ( !( fp=fopen(c,rb) ) )//打开名为c的文件{//若名为c的文件不存在printf(无法查询到该课程!\n); return -1;} rewind(fp);for(i=0;!feof(fp);++i)//文件存在,读取信息fread (st[i],sizeof(struct student),1,fp);fclose (fp);return i-1;//返回学生人数}double gpa(double score){//计算gpa(成绩统一上取整)if(score=59)return 0;if(score=62)return 1.0;if(score=65)return 1.3;if(score=69)return 1.7;if(score=72)return 2.0;if(score75)return 2.3;if(score=79)return 2.7;if(score=82)return 3.0;if(score=85)return 3.3;if(score=89)return 3.7;return 4.0;}void insert(){//输入学生成绩及信息char c[20];inti,x,y,z;// x、y、z分别表示平时、期中、期末成绩所占比例system(cls);//清屏printf(\t请输入课程名称(如需退出请输stop):);scanf(%s%*c,c);//使用%*c是为了防止对后续输入有影响if ( !strcmp(c,stop) )return ;do{printf(\t平时期中期末所
文档评论(0)