版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程课程设计之——学生成绩管理系统1.题目与要求1.1问题提出设计学生成绩管理系统,有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统1.2本系统涉及的知识点
结构体数组、结构体指针、数组、循环、函数、分支、指针1.3功能要求
1、成绩录入:输入学生的学号、姓名及三门课的成绩;
2、成绩查询:(至少一种查询方式)。按学号查询学生记录,或查询不及格学生的记录;
3、成绩统计:计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序后输出;对学生单科成绩排序,输出学生姓名与该科成绩;
4、退出系统:退出整个系统(即主菜单);1.4根据所选菜单编写相应代码:
1)输入学生的信息,利用循环赋值的方式,给结构体数组赋值。2)输出平均分函数ave:首先定义double型数组,利用循环赋值的方式,计算出三门课的成绩的平均值放入数组中,利用循环的方式,输出相关值及平均值。
3)按学号查询成绩函数search:首先输入要查询的学号,与结构体中的学号进行比较,如果相等输出这个学生的信息,另外输出没有查到相关结果。
4)按平均分排序后输出函数average:首先另外一个定义结构体数组、结构体指针变量,计算三门课程的平均值存到结构体成员aver中,利用循环的方式,进行平均分排序,输出相应的学生信息。5)对学生单科成绩排序后输出函数grade:首先另外一个定义结构体数组、结构体指针变量,通过选择k的值来选择按分数几排序,利用循环的方式,进行单科成绩排序(从大到小),输出学生姓名及该课的成绩。
6)退出程序。2、附录:程序清单#include<stdio.h>#include<stdlib.h>typedefstructstudent{intnum;charname[13];intscore[3];doubleaver;}STU;voidave(STUs[],intn){doublea[1000];inti;for(i=0;i<n;i++)a[i]=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;printf("学号\t姓名\t\t分数1\t分数2\t分数3\t平均分\n");for(i=0;i<n;i++)printf("%d\t%s\t\t%d\t%d\t%d\t%.1f\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],a[i]);}voidsearch(STUs[],intn,inta){inti,k=0;for(i=0;i<n;i++){if(s[i].num==a){printf("学号\t姓名\t分数1\t分数2\t分数3\t\n");printf("%d\t%s\t%d\t%d\t%d\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2]);k=k+1;break;}}if(k==0)printf("\t没有查询到相关信息");}voidaverage(STUs[],intn){inti,j;STUss[10000];STU*p=ss;for(i=0;i<n;i++)s[i].aver=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;for(i=0;i<n;i++)ss[i]=s[i];for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(ss[i].aver<ss[j].aver){STUtemp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp;}}}printf("学号\t姓名\t平均分\n");for(i=0;i<n;i++)printf("%d\t%s\t%.1f\n",(p+i)->num,(p+i)->name,(p+i)->aver);}voidgrade(STUs[],intn){inti,j,k;STUss[10000];STU*p=ss;for(i=0;i<n;i++)ss[i]=s[i];printf("请输入k的值查询,k=0时按分数1,k=1时按分数2,k=2时按分数3:");scanf("%d",&k);for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){if(ss[i].score[k]<ss[j].score[k]){STUtemp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp;}}}printf("姓名\t分数\n");for(i=0;i<n;i++)printf("%s\t%d\n",(p+i)->name,(p+i)->score[k]);}main(){intN,i;STUs[10000];intnum1;intmenu;printf("请输入学生个数:");scanf("%d",&N);for(i=0;i<N;i++){printf("请输入学号姓名分数1分数2分数3\n");scanf("%d%s%d%d%d",&s[i].num,s[i].name,&s[i].score[0],&s[i].score[1],&s[i].score[2]);}printf("\n\n");printf("*************学生成绩管理系统*************\n\n");printf("1--------输出平均分\n");printf("2--------按学号查询成绩\n");printf("3--------按平均分排序后输出\n");printf("4--------对学生单科成绩排序后输出\n");printf("5--------退出程序\n");printf("\n\n");while(1){printf("\n请输入菜单号:");scanf("%d",&menu);switch(menu){case1:ave(s,N);break;case2:printf("请输入要查询的学号:");scanf("%d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 微信服务通知弹窗协议书
- 53伴学的勾选协议书
- 面向2026年电子商务新零售模式的分析方案
- 食品包保督导工作方案
- 师徒薪酬方案范本
- 基于Spark的实时日志分析平台实时分析算法应用课程设计
- 铸就卓越质量文化
- 2026届高考地理二轮复习教学设计:以图启智·绘地明理-地理图像绘制与应用能力专项突破
- 承前启后驰骋行收心归位远方-2025-2026学年高二年级上学期“启航班会”教学设计
- 高中二年级地理“开学第一课”安全教育融合教学设计
- 2026广东珠海高新技术产业开发区公共卫生指导服务中心招聘合同聘用制职员4人备考题库有完整答案详解
- 2026东莞松山湖管委会招聘工作人员24人考试参考题库及答案解析
- 2025年服装教师笔试题目和答案
- 山姆会员商店冷链管控
- 三亚市天涯区(2025年)社区网格员招录考试真题及答案
- 2025-2026学年益阳花鼓戏打鼓教学设计
- 球团安全管理制度内容
- 大雁塔的数学知识
- 装船机施工方案(3篇)
- TGDNSA-004-2024中医复用诊疗器具清洗消毒和灭菌技术规范
- 销售服务返利协议书
评论
0/150
提交评论