版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程课程设计之——学生成绩管理系
统
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++)
H[i]=(s[i].score[0]+s[i].score[l]+s[i].score[2])/3.0;
printf("学号\t姓名\t\t分数l\t分数2\t分数3\t平均分\n");
for(i=0;i<n;i++)
printf(n%d\t%s\t\t%d\t%d\t%d\t%.lt\nH,sli].num,s[,
s[i].score[0],s[i].score[l],s[i].score[2],a[i]);
)
voidsearch(STUs[],intn,inta)
(
inti,k=0;
for(i=0;i<n;i++)
if(s[ij.num==a)
{printf("学号\t姓名\t分数l\t分数2\t分数3\t\nn);
printf(n%d\t%s\t%d\t%d\t%d\nn,s[i].num,s[i].name,s[i].sco
re[0],s[i].score[l],s[i].score[2]);
k=k+l;
break;
)
)
if(k==O)
printf(n\t没有查询到相关信息)
)
voidaverage(STUs[],intn)
(血i,j;
STUss[10000];
STU*p=ss;
for(i=0;ivn;i++)
s[iJ.aver=(s[i].score[0J+s[i].score[l]+s[i].score[2])/3.0;
for(i=0;i<n;i++)
ss[i]=s[i];
fbr(i=O;i<n-l;i++)
for(j=i+l;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%.lf\n,,,(p+i)->num,(p+i)->name,(p4-i)->a
ver);
)
voidgrade(STUs[J,intn)
{intij,k;
STUss[10000];
STU*p=ss;
for(i=0;i<n;i++)
ss[i]=s[i];
printf("请输入k的值查询,k=0时按分数1,k=l时按分
数2,k=2时按分数3:”);
scanf("%d”,&k);
for(i=0;i<n-l;i++)
(
fbr(j=i+l;j<n;j++)
(
if(ss[i].score[k]<ssfj].scorefk])
(
STUtemp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
printf("姓名\t分数\n)
for(i=0;i<n;i++)
printf(M%s\t%d\nH,(p+i)->name,(P-i)->score[kJ);
)
main()
{intN,i;
STUs[10000];
intnuml;
intmenu;
printf(”请输入学生个数
scanf("%d”,&N);
for(i=0;i<N;i++)
(
printf("请输入学号姓名分数1分数2分数3\n”);
scanf(n%d%s%d%d%dn,&s[i].num,s[i].name,&sfil.score[0
],&s[i].score[1],&s[i].score[2]);
)
printf(H\n\nH);
printf("*************学生成绩管理系统
*************\n\n”)・
printf(n1-------输出平均分\n”);
printf(u2-------按学号查询成绩\n");
printf(n3-------按平均分排序后输出");
printf(”4——对学生单科成绩排序后输出\n)
printf(u5-------退出程序\n");
printf(n\n\nn);
while(l)
(
printf(n\n请输入菜单号:");
scanf(”%d”,&menu);
switch(menu)
case1:ave(s,N);break;
case2:printf("请输入要查询的学号
scanf("%d",&num1);
search(s,N,numl);
break;
case3:average(s,N);break;
case4:grade(s,N);break;
case5:exit(O);
default:
printf("菜单号输入错误\n");
break;
)
)
■•CAU$en\lenovo\Desktop\Debug\hn.exf*□
iff”入学弓姓名分数1分数2分数3
311fan987856
忸轴入学号姓名分数】分数2分数3
322li906545
M修入学号姓匕分败1分败2分数3
333sons706768
砧修人孝号的名分数1分数2分数3
chen5710083
,学生成绩管理系统
1-------输出干均分
2-------按学弓畲沏成^
5-------按不均分抻序储输出
5-------月学生仇科成绩掉序后输出
s------------退出程序
M输入菜单号:
■"CAU$er$\lenovo\De$ktop\(>ebug\f*n.exe-□
修涔弓姓分散】分数2分数3
4chen5710083
学生成纳管局系统*»»♦«♦»»•♦*•♦
输出平均分
按学号住询成境
按平均分9I序后看出
对学生单科成愤挎序后输出
退出死序
,输入菜冷弓:1此
平
均分
分
分/X3
姓名783
11fan98655677g.7
2211:
90oA453
33song6868.
70A1O
34chen57008380.
依人菜单丹:
学生成绩料理系统》»**««♦*»♦•
输出平均分
按学”件询成靖
按平均分折序元修出
对学生单科成结排序6*出
退出程序
谓抬入菜小耳:1分
均分
分
分tP
t2
学号姓名3
311fan9878t5677.7
90654566.3
70676868,O
57)0()08380.
请修入翼单号:2
诂输入要仔询的学,:333
学号姓幺分数1分数2分故3
333song706768
请也入菜单耳:
;^^UsefsMenovoXDesktopVDebugV^nexe'-□
1--------输出平均分
2--------按学学A制或演
按平均分指序筋*出
对学生单科成"HI序后程出
退出程序
。轴入菜小耳
分
:1分
均分
/数2
姓名78T-3
illfan986^5677.7
122li9004566.3
bM7
33song701O»6868.0
34chen578380.
力修入菜单”:2
4轴入要自询的学号:333分
学号姓名分数1分故2
133song706768
。输入菜单号:3
平
均
分
X号姓名0
;34chen8o.3
41fan77.3
33song68g.7
修入第
■'X:\Usefi\te<K>vo\De$ktop\DebugV<m.exe,□
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 储备粮仓库建设项目风险评估报告
- 2026年教师招聘《小学语文》学科知识专项训练试卷(附答案)
- 2026学年吉林省辽源市六年级数学期末评估绝密预测题详细参考解析详细答案和解析
- 探讨可持续发展对市场规模影响
- 门禁系统安装位置及环境要求说明
- 2026年餐饮行业智慧餐饮创新报告
- 高中生采用离子色谱技术比较不同产地茶叶无机离子组成的课题报告教学研究课题报告
- 2026年无人超市运营模式报告
- 数学对称图形在传统剪纸艺术中的室内装饰设计课题报告教学研究课题报告
- 2026年数据分析师面试仿真题集
- 2026年高考英语新高考一卷真题卷附答案
- 2026年卫生健康知识培训
- 2026河南淅胜产业发展有限责任公司招聘工作人员10人笔试备考题库及答案详解
- 电梯意外事件与事故应急救援及演习制度培训
- 临床输血全流程清单式质量管理专家共识
- 国开《离散数学》大作业及答案
- 防抢、防盗、防骗培训知识
- JBT 9214-2010 无损检测 A型脉冲反射式超声检测系统工作性能测试方法
- 苏教版四年级数学下册第七单元《三角形平行四边形和梯形》测试卷(含答案)
- 《车险基础知识培训》
- 《外科实习作》课件
评论
0/150
提交评论