结构体实现学生成绩管理系统.docx
- 文档编号:26523304
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:11
- 大小:16.84KB
结构体实现学生成绩管理系统.docx
《结构体实现学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《结构体实现学生成绩管理系统.docx(11页珍藏版)》请在冰豆网上搜索。
结构体实现学生成绩管理系统
文件名称:
基于结构体数组.cpp
文件标识:
摘要:
结构体数组实现学生成绩管理系统
要求:
多么成绩的录入,查询某个学生(姓名,学号)的成绩,计算某学生平均分,某门成绩平均分的排名,退出。
I***************************
■J头文彳牛*********************************I
#include
#include
#include
I***************************
常^量***********************************I
#defineMENU_NUM7
#defineN3
#defineMAX100
II记录的最大数量
I****************************
结士构^体********************************I
structstudent
{
char
no[10];
I*学号由10个字符组成
char
name[15];
I*学生姓名*I
float
score[N];
I*各门课成绩*I
float
sum;
I*总分*I
float
average;
I*平均分*I
*1
};
*************************/
I********************************intcount;
structstudentstud[MAX];
全局变量
II记录学生总人数
II记录学生信息
I********************************voidinput();
voidoutput();
voidPrintMenu();
voidcomputer();
voidfind();
voidsort();
函数声明*************************I
II输入学生信息
II输出学生信息
II显示菜单
II计算学生成绩
II根据学号或姓名查询成绩
II成绩排名
intcmp(constvoid*a,constvoid*b);II排序规贝U
voidmain()
{
intchoose;
count=0;
while
(1)
{
PrintMenu();
scanf("%d",&choose);
switch(choose)
{
case1:
input();//输入成绩
break;
case2:
find();//查询成绩
break;
case3:
computer。
;//统计成绩
break;
case4:
按名次输出成绩
〃调用库函数中的排序
//sort();//按成绩排序,
qsort(stud,count,sizeof(structstudent),cmp);
方法
output();
break;
case5:
exit(0);
}
printf("\n\n");
intcmp(constvoid*a,constvoid*b)
{
structstudent*aa=(structstudent*)a;
structstudent*bb=(structstudent*)b;
if(aa->sum!
=bb->sum)
{
returnaa->sum
1:
-1;
}
else
{
if(aa->score[0]!
=bb->score[0])
returnaa->score[0]
1:
-1;if(aa->score[1]!
=bb->score[1])
returnaa->score[1]
1:
-1;if(aa->score[2]!
=bb->score[2])
returnaa->score[2]
1:
-1;}
return0;
}
/*****************************************************************
*函数名:
PrintMenu
*
*描述:
显示操作菜单
*入口参数:
无
*出口参数:
无
******************************************************************
voidPrintMenu()
{
printf("
\n");
printf("|
学生成绩管理系统
|\n");
printf("|
1..
..成绩录入
|\n");
printf("|
2..
..成绩查询(学号或姓名)
|\n");
printf("|
3..
..成绩统计(平均成绩)
|\n");
printf("|
4..
..成绩排名
|\n");
printf("|
5..
..任意键退出
|\n");
printf("
");
printf("\n");
printf("\n");
printf("请输入您要进行的操作:
");
}
*函数名:
input
*
*描述:
输入学生信息
*
*入口参数:
无
*
*出口参数:
无
****************************************************************
voidinput()
{
intn,i;
floattemp;
printf("请输入要录入的学生的人数:
”);
scanf("%d",&n);
for(i=0;i { printf("输入第%d个学生信息\n",i+1); printf("学号: "); scanf("%s",stud[count+i].no); printf("姓名: "); scanf("%s",stud[count+i].name); printf("成绩1: "); scanf("%f",&stud[count+i].score[0]); printf("成绩2: "); scanf("%f",&stud[count+i].score[1]); printf("成绩3: "); scanf("%f",&stud[count+i].score[2]); } count+=n; *函数名: find * *描述: 根据学号或姓名查询成绩 * *入口参数: 无 * *出口参数: 无 ******************************************************************/ voidfind() { inti; charch[15]; printf("请输入学号或姓名: ”); scanf("%s",ch); printf("\n"); printf("|学号|姓名成绩1成绩2成绩3|总分|平均分|\n"); for(i=0;i { if(! strcmp(ch,stud[i].no)||! strcmp(ch,stud[i].name)) { printf("|%10s|%12s|%5.1f|%5.1f|%5.1f|%5.1f|%6.1f|\n", stud[i].no,stud[i].name,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].sum,stud[i].average); printf(”\n"); return; } } printf("没有找到该学生的信息! \n"); printf("\n"); *函数名: computer * *描述: 计算学生总成绩和平均成绩 * *入口参数: 无 * *出口参数: 无 ******************************************************************/ voidcomputer。 { inti; for(i=0;i { stud[i].sum=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];stud[i].average=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/N; } output(); } /***************************************************************** *函数名: output * *描述: 输出学生所有信息 * *入口参数: 无 * *出口参数: 无 ******************************************************************/ voidoutput() { inti; printf(”\n"); printf("|学号|姓名成绩1咸绩2成绩3|总分|平均分|\n"); for(i=0;i { printf("|%10s|%12s|%5.1f|%5.1f|%5.1f|%5.1f|%6.1f|\n", stud[i].no,stud[i].name,stud[i].score[0],stud[i].score[1],stud[i].score[2],stud[i].sum,stud[i].average); } printf("\n"); *函数名: sort * *描述: 排序 * *入口参数: 无 * *出口参数: 无 ******************************************************************/ voidsort() { inti,j,k; structstudenttemp; for(i=0;i { stud[i].sum=stud[i].score[0]+stud[i].score[1]+stud[i].score[2];stud[i].average=(stud[i].score[0]+stud[i].score[1]+stud[i].score[2])/3;k=i; for(j=i+1;j { if(stud[k].sum { k=j; } } if(k! =i) { temp=stud[i]; stud[i]=stud[k]; stud[k]=temp; } } printf("学生成绩排名\n"); printf("按名次\n"); output();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构 实现 学生 成绩管理系统