




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生成绩管理系统 课程设计实验报告院系:吉林大学通信工程学院班级:2012级15班姓名:李凯华学号:52121510指导教师:张海蓉一设计项目:学生成绩管理系统二系统功能: 1学生基本情况录入。2允许对已经录入的数据进行显示。3允许进行数据的插入。4删除基本数据的相关信息。5基于姓名的查询。如:姓张的所有同学。6基于各种基本数据的统计计算。如:统计每个学生各门功课的平均成绩,并按平均成绩从高到低的次序排名输出每个学生各门功课的综合成绩和平均成绩(名次、学号、姓名、平均成绩、各门功课的考试成绩)。列出90分以上(包括90)、80分以上(包括80)、70分以上(包括70)、60分以上(包括60)、不及格学生清单(学号、姓名、不及格的课程和成绩)。统计并输出各门功课的平均成绩和总平均成绩。三总体设计:1 .程序设计组成框图:学生成绩管理系统输入学生成绩查看学生成绩及成绩排序通过学号查询学生成绩统计成绩信息通过学号修改学生成绩添加学生成绩通过学号删除学生成绩保存学生成绩退出程序2:模块功能说明:1 输入功能:输入学生姓名学号及成绩。2 查看功能:输出姓名学号及各科成绩。3 查询功能:通过学号查询学生姓名及各科成绩。 4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。5 修改功能:通过输入学号修改指定学生的错误信息。6添加功能:添加学生信息。7删除功能:通过输入学号输入指定学生信息。8保存功能:将学生信息保存。9 退出系统。 3:主要函数之间的调用关系及各自功能:主要函数的函数原型void inputscore(void);void savescore(void);void avergescore(void);void modifyscore(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void);void modify(void);void delscore(void);void menu(void);i. 在菜单界面输入1,调用函数inputscore( )实现输入学生成绩信息功能。ii. 在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计算。iii. 在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。iv. 在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。v. 在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi. 在菜单界面输入6,调用add()函数实现添加学生成绩。vii. 在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。viii. 在菜单界面输入8,调用savescore()函数将学生成绩信息保存。ix. 在菜单界面输入9,退出成绩管理系统。开始输入指令19输入成绩查询成绩成绩统计修改成绩添加成绩删除成绩保存成绩显示成绩123456789退出三 程序运行效果截图1 主菜单 2 输入成绩3 查看成绩4 查询成绩5统计成绩6修改成绩7 添加成绩8 删除成绩9保存成绩四、源代码#include #include #include #include #define N 30#define M 4typedef struct student char number9; /*学号*/ char name20; /*姓名*/char sex15; /*性别,“0”代表女,“1”代表男 */ int age; /*年龄*/float scoreM; /*成绩*/int order; /*排名*/float aver; /*平均成绩*/float total; /*总分*/STU;STU stuN;int n;void inputscore(void);void avergescore(void);void sum(void);void modifyscore(void);void lookscore(void);void searchscore(void);void statistic(void);void add(void);void modify(void);void delscore(void);void menue(void);void savescore(void);void main() short int flag=0; menue(); do flag=1; switch(getch() case1:inputscore();break; /*输入成绩*/ case2:lookscore();break; /*查看成绩*/ case3:searchscore();break; /*查找成绩*/ case4:statistic();break; /*成绩统计*/ case5:modify();break; /*修改成绩*/ case6:add();break; /*添加成绩*/ case7:delscore();break; /*删除成绩*/ case8:savescore();break; /*保存成绩*/ case9:exit(0); /*退出成绩*/ default:printf(输入有误n); printf(按任意键继续n); getch(); menue(); while(flag=1);void menue(void)system(cls);printf(n);printf(*欢迎进入学生成绩管理系统*n);printf( 菜单 n);printf(-输入成绩-1n);printf(-查看成绩及成绩排序-2n);printf(-查询学生成绩-3n);printf(-成绩统计-4n); printf(-修改成绩-5n);printf(-添加成绩-6n);printf(-删除成绩-7n);printf(-保存成绩-8n);printf(-退出系统-9n);printf(*n);printf(请输入您的选择n);/*输入各个同学的学生信息*/void inputscore(void)int i,j;system(cls);printf(请输入学生总数:n);scanf(%d,&n);printf(提示:*输入学号时请输入由8位数字组成的学号,如012104000*n);for(i=0;in;i+)printf(请输入学生%d的学号:n,i+1); scanf(%s,stui.number); printf(请输入学生%d的姓名:n,i+1); scanf(%s,); printf(请输入学生%d的性别(“0”代表女,“1”代表男):n,i+1); scanf(%s,&stui.sex); printf(请输入学生%d的年龄:n,i+1); scanf(%d,&stui.age);printf(请输入学生%d的成绩:n);printf(高数t马哲t外语tc语言n);for(j=0;jM;j+)scanf(%f,&stui.scorej);printf(成功输入n);/*计算各个同学的总分*/void total(void)int i,j;for(i=0;in;i+)stui.total=0;for(j=0;jM;j+)stui.total+=stui.scorej;/*计算各个同学的平均分*/void avergescore(void)int i,j;for(i=0;in;i+)stui.aver=0;for(j=0;jM;j+)stui.aver+=stui.scorej;stui.aver=stui.aver/M;/*查看学生成绩及根据平均分对学生进行排序*/void lookscore(void)int i,j,k;STU t;total();avergescore();system(cls);for(i=0;in-1;i+)for(k=i,j=i+1;jstuk.aver)k=j;if(k!=j)t=stuk;stuk=stui;stui=t;printf(名次t学号tt姓名t性别t年龄t高数t马哲t外语tc语言t总分t平均分n);for(i=0;in;i+)printf(%dt%st%st%st%dt,i+1,stui.number,,stui.sex,stui.age);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2ft,stui.total);printf(%4.2f,stui.aver);printf(n);/*通过输入学号查找学生成绩*/void searchscore(void)char a10;int i,j;system(cls);printf(请输入需查询的学生学号n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t学号tt姓名t性别t年龄t高数t马哲t外语tc语言t总分t平均分n); printf(%dt%st%st%st%dt,i+1,stui.number,,stui.sex,stui.age);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2ft,stui.total);printf(%4.2f,stui.aver);printf(n);break;/*找到该学生成绩信息后跳出for循环 */elseprintf(未找到该学生信息n);/*统计学生成绩信息,平均分及及格率*/void statistic(void)STU *p=stu;int i;float count=0.0,sum=0.0;system(cls);for(i=0;iaver;printf(该班级平均分为n,sum/n); /*平均分计算*/for(i=0;iaver=60)count+;printf(该班级及格率为%4.2f%n,count/n*100); /*及格率计算*/count=0.0;for(i=0;iaver=90)count+;printf(该班级优秀率为%4.2f%n,count/n*100); /*优秀率计算*/printf(平均分低于60的学生名单n);for(i=0;in;i+)if(stui.aver60)printf(%sn,); /*统计不及格学生名单*/*修改学生成绩*/void modify(void)char a10;int i,j;system(cls);printf(请输入需要修改成绩的学生学号n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t学号tt姓名t性别t年龄t高数t马哲t外语tc语言t总分t平均分n);printf(%dt%st%st%st%dt,i+1,stui.number,,stui.sex,stui.age);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2f,stui.total);printf(%4.2f,stui.aver);printf(n);printf(请重新输入该学生的学号 姓名:n);scanf(%s%s,stui.number,);printf(请重新输入学生成绩:n);printf(高数t物理t马哲t外语tc语言n);for(j=0;jM;j+)scanf(%f,&stui.scorej); /*找到该学生成绩后进行修改,跳出for循环*/printf(修改成功n);break;elseprintf(请确认该学生是否为本班学生!n);/*修改学生成绩*/void add(void)int a,i,j;system(cls);printf(请输入新增加的学生人数n);scanf(%d,&a);n=n+a;for(i=n-a;in;i+)printf(请输入学生%d的学号 姓名:n,i+1);scanf(%s%s,stui.number,);printf(请输入学生成绩:n);printf(高数t物理t马哲t外语tc语言n);for(j=0;jM;j+)scanf(%f,&stui.scorej);printf(添加成功n);/*删除学生成绩*/void delscore(void)int i,j,c;char m,a10;system(cls);printf(请输入学生学号n);scanf(%s,a);for(i=0;in;i+)if(strcmp(a,stui.number)=0)printf(名次t学号tt姓名t性别t年龄t高数t马哲t外语tc语言t总分t平均分n);printf(%dt%st%st%st%dt,i+1,stui.number,,stui.sex,stui.age);for(j=0;jM;j+)printf(%4.2ft,stui.scorej);printf(%4.2ft,stui.total);printf(%4.2f,stui.aver);printf(n);c=i;break;elseprintf(未找到该学生信息n);printf(是否删除该学生成绩(y/n)n);scanf(%s,&m);if(m=y)for(i=c;in-1;i+)stui=stui+1;/*结构体整体赋值将后一位学生成绩信息拷贝进入前一位学生信息的存储位置*/n=n-1;/*删除该学生信息后学生总数减一 */printf(删除成绩成功n);elseprintf(删除成绩失败n);/*保存学生成绩*/void savescore(void)FILE *fp;int i,flag=1;char m;system(cls);puts(是否保存学生成绩(y/n);scanf(%s,&m);if(m=y)if(fp=fopen(score.dat,wb)=NULL)printf(文件打开失败n);return;for(i=0;in;i+)if(fwrite(&stui,sizeof(struct student),1,fp)!=1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吊装工程编制方案(3篇)
- 堤防工程模板专项方案(3篇)
- 四川省广元市2025年中考化学真题附真题答案
- 历史面试题库及答案解析
- 昆山电子面试题库及答案
- 客服面试题库大全及答案
- 安全教育培训评定课件
- 安全教育培训设计课件
- 2025年自动驾驶汽车车联网技术发展与市场前景研究报告
- 2025年工业互联网平台网络隔离技术在网络安全预警机制构建报告
- 急性胰腺炎早期液体复苏的思考 2
- 急性闭角型青光眼合并高眼压护理查房
- 2025年工会财务知识竞赛考试题库及参考答案
- 税收的原则课件
- 医疗机构应急管理与急救技能手册
- 2025留置辅警笔试题库及答案
- 胸椎后纵韧带骨化症
- 2025年秋季小学三年级上册语文教学计划
- 2025未签合同劳动争议仲裁申请书
- 耳前瘘管继发感染诊疗要点
- 2025年北京中考真题英语试题及答案
评论
0/150
提交评论