ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:20.62KB ,
资源ID:2432774      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2432774.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生成绩管理系统开发实验.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生成绩管理系统开发实验.docx

1、学生成绩管理系统开发实验“学生成绩管理系统”开发实验报告(一)实验目的1.学习c程序设计、算法选择和设计,以及数据类型的选择和数据结构的设计;2.加深对程序设计方法的理解,并运用c程序解决较复杂的问题;3.培养团队协作的精神。(二)实验内容和要求1.实验内容:开发一个小型的软件系统,以学生成绩管理为背景,系统具有常用的学生成绩管理功能,程序能够运行并演示所有的功能。学生成绩管理系统的基本功能:成绩输入、查询、打印成绩单、统计分析。系统约束:系统能够处理n(0n1000)名学生成绩,每名学生选修不得少于m(0m10)门课;每门课成绩由平时成绩、期中成绩和期末成绩三部分组成,所有成绩都为100分制

2、;成绩基本数据以文件方式保存;交互界面要有提示信息。根据课堂讨论结果,每小组自行定义各自的系统功能、设计和实现方法,并形成书面文档。2.实验要求:输入成绩:任课教师通过键盘输入学生成绩,每门的学生成绩由三部分组成:平时成绩、期中成绩和期末成绩。查询指定学生的成绩;查询指定课程的成绩。打印个人和班级成绩单:在显示屏上输出个人成绩单和班级成绩单。成绩排名:按成绩分类输出成绩单。成绩分析报告:至少包含平时成绩、最高成绩、最低成绩、按分数段输入成绩。用文件存储成绩基础数据:基础数据包含:学生姓名、学号、课程名称、平时成绩、期中成绩、期末成绩。(3)成员分工略(四)主要仪器设备仪器:计算机实验环境:Wi

3、ndows:XP/7/8 Dev c+(五)源代码及注释:#include#include#includestruct student /储存学生信息 int id; double usual,mid,final,score,gpa; char name20;st10000;void save(char c,int n,struct student st) /将学生信息保存到文件中 int i; FILE *fp; if ( !( fp=fopen(c,wb) ) ) /打开或创建文件名为c的文件 /若打开失败 printf (t抱歉,无法建立该文件。请重试!n); return ; for

4、(i=0;iscore != ( (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; int i; if ( !( fp=fopen(c,rb) ) ) /打开名为c的文件 /若名为c的文件不存在 prin

5、tf(无法查询到该课程!n); return -1; rewind(fp); for(i=0;!feof(fp);+i) /文件存在,读取信息 fread (&sti,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)

6、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 c20; int i,x,y,z; / x、y、z分别表示平时、期中、期末成绩所占比例 system(cls); /清屏 printf(t请输入课程名称(如需退出请输stop):); scanf(%s%*c,c); /使用%*c是为了防止对后续输

7、入有影响 if ( !strcmp(c,stop) ) return ; do printf(t平时期中期末所占比例和为100%nn); printf(t请输入平时成绩所占比例(%):); scanf(%d,&x); printf(t请输入期中成绩所占比例(%):); scanf(%d,&y); printf(t请输入期末成绩所占比例(%):); scanf(%d,&z); while ( x+y+z !=100); for (i=0; ;+i) printf (nt请输入学生学号(若结束录入,请输0):); scanf (%d,&sti.id); if ( !(sti.id) break;

8、printf (t请输入学生姓名:); scanf (%s,sti.name); printf (t请输入平时成绩:); scanf (%lf,&sti.usual); printf (t请输入期中成绩:); scanf (%lf,&sti.mid); printf (t请输入期末成绩:); scanf (%lf,&sti.final); sti.score = sti.usual*x/100 + sti.mid*y/100 + sti.final*z/100; sti.gpa = gpa(sti.score); save(c,i,st); /保存 system(pause);void ame

9、nd() /修改学生成绩及信息 int i,n,num,x,y,z; char c20; system(cls); /清屏 for (n=-1;n0;) printf (t请输入课程名(退出请输入stop):); scanf (%s%*c,c); if ( !strcmp(c,stop) ) return; n=find(c); /打开相应文件 do printf(t平时期中期末所占比例和为100%nn); printf(t请输入平时成绩所占比例(%):); scanf(%d,&x); printf(t请输入期中成绩所占比例(%):); scanf(%d,&y); printf(t请输入期末成

10、绩所占比例(%):); scanf(%d,&z); while ( x+y+z !=100); while (1) printf (t请输入需修改学生学号(若结束录入,请输0):); scanf (%d,&num); if (!num) break; for (i=0;in;+i) /依据学号查找此学生 if (sti.id=num) /找到之后,重新输入成绩 printf (t请输入平时成绩:); scanf (%lf,&sti.usual); printf (t请输入期中成绩:); scanf (%lf,&sti.mid); printf (t请输入期末成绩:); scanf (%lf,&

11、sti.final); sti.score = sti.usual*x/100 + sti.mid*y/100 + sti.final*z/100; sti.gpa=gpa(sti.score); break; /成绩更新后停止查找 if(i=n) /查找了所有学号,均不符 printf(t抱歉,查无此人!n); save(c,n,st); /重新保存文件,并覆盖之前的数据 system(pause);void seek() /个人成绩查询 int i,n,num; char c20; system(cls); printf (请输入学生学号:); scanf (%d,&num); while

12、 (1) for (n=-1;n0;) printf (请输入课程名称(结束请输stop):); scanf (%s%*c,c); /c为相应文件名 if ( !strcmp(c,stop) ) return ; n=find(c); /n为学生人数 for (i=0;in;+i) /依据学号查找此学生 if(num=sti.id) /找到之后,输出成绩 printf(t姓名:%st学号:%dnt平时成绩:%6.1lft期中成绩:%6.1lft期末成绩:%6.1lfnt总成绩: %6.1lfttGPA:%6.1lfn,sti.name,sti.id,sti.usual,sti.mid,sti.final,sti.score,sti.gpa); break; if(i=n) /查找了所有学号,均不符 printf(抱歉,查无此人!n); system(pause);void rank() /班级成绩排名 int i,n; char c20; while(1) system(cls); printf (t请输入课程名(如结束请输入stop):); scanf (%s%

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1