- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件工程课程设计之——学生成绩管理系统
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
#includestdlib.h
typedef struct student
{
int num;
char name[13];
int score[3];
double aver;
}STU;
void ave(STU s[],int n)
{ double a[1000];
int i;
for(i=0;in;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;in;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]);
}
void search(STU s[],int n, int a)
{
int i,k=0;
for(i=0;in;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没有查询到相关信息);
}
void average(STU s[],int n)
{ int i,j;
STU ss[10000];
STU *p=ss;
for(i=0;in;i++)
s[i].aver=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;
for(i=0;in;i++)
ss[i]=s[i];
for(i=0;in-1;i++)
{
for(j=i+1;jn;j++)
{
if(ss[i].averss[j].aver)
{
STU temp=*(p+i);
*(p+i)=*(p+j);
*(p+j)=temp;
}
}
}
printf(学号\t姓名\t平均分\n);
for(i=0;in;i++)
printf(%d\t%s\t%.1f\n,(p+i)-num,(p+i)-name,(p+i)-aver);
}
void grade(STU s[],int n)
{int i,j,k;
STU ss[10000];
STU *p=ss;
for(i=0;in;i++)
ss[i]=s[i];
printf(请输入k的值查询,k=0时按分数1,k=1时按分数2,k=2时按分数3:);
scanf(%d,k);
for(i=0;in-1;i++)
{
for(j=i+1;jn;j++)
{
if(ss[i].score[k]ss[j].score[k])
{
STU temp=*(p+i);
*(p+i)=*
您可能关注的文档
- 科学第二单元思维导图.docx
- 渴望读书的大眼睛阅读题答案.docx
- 论语中的责任意识.docx
- 妈妈炒菜的作文400字.docx
- 面试问题请谈谈你的优点.docx
- 七年级上册美术书法的点画之美教案.docx
- 七年级写我喜欢打羽毛球的英语作文.docx
- 青山处处埋忠骨何须马革裹尸还.docx
- 屈原列传复习优秀实用.docx
- 趣味化学竞赛判断题.docx
- 初中数学课堂中的逻辑思维游戏化教学策略研究教学研究课题报告.docx
- 小学体育“深度学习”策略在运动技能培养中的教学策略研究教学研究课题报告.docx
- 小学数学创新思维培养与实践能力提升的实证研究教学研究课题报告.docx
- 小学环境教育:校园植物多样性保护与生态平衡教育实践报告教学研究课题报告.docx
- 高中数学空间几何教学中直观想象能力的培养教学研究课题报告.docx
- 小学英语教学中的跨文化交际能力培养策略教学研究课题报告.docx
- 高中生物实验设计教学中引导学生科学探究思维的策略研究教学研究课题报告.docx
- 初中特殊家庭学生心理危机干预中的心理健康教育课程改革研究教学研究课题报告.docx
- 初中语文核心素养与写作教学策略研究教学研究课题报告.docx
- 高中化学实验操作与环保意识培养模式教学研究课题报告.docx
计算机三级持证人
从事多年企业管理、在团队建设、员工培训、营销提升、组织架构有多自己的经验,希望在这个平台分享及帮助更多的公司或企业!
文档评论(0)