结构体实现学生成绩管理系统.docx

上传人:b****7 文档编号:26523304 上传时间:2023-06-20 格式:DOCX 页数:11 大小:16.84KB
下载 相关 举报
结构体实现学生成绩管理系统.docx_第1页
第1页 / 共11页
结构体实现学生成绩管理系统.docx_第2页
第2页 / 共11页
结构体实现学生成绩管理系统.docx_第3页
第3页 / 共11页
结构体实现学生成绩管理系统.docx_第4页
第4页 / 共11页
结构体实现学生成绩管理系统.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

结构体实现学生成绩管理系统.docx

《结构体实现学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《结构体实现学生成绩管理系统.docx(11页珍藏版)》请在冰豆网上搜索。

结构体实现学生成绩管理系统.docx

结构体实现学生成绩管理系统

文件名称:

基于结构体数组.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->sumsum?

1:

-1;

}

else

{

if(aa->score[0]!

=bb->score[0])

returnaa->score[0]score[0]?

1:

-1;if(aa->score[1]!

=bb->score[1])

returnaa->score[1]score[1]?

1:

-1;if(aa->score[2]!

=bb->score[2])

returnaa->score[2]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();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 党团建设

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1