结构体实现学生成绩管理系统_第1页
结构体实现学生成绩管理系统_第2页
结构体实现学生成绩管理系统_第3页
结构体实现学生成绩管理系统_第4页
结构体实现学生成绩管理系统_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文件名称:基于结构体数组.cpp文件标识:摘要:结构体数组实现学生成绩管理系统要求:多么成绩的录入,查询某个学生(姓名,学号)的成绩,计算某学生平均分某门成绩平均分的排名,退出。I* J头文彳牛*I#i nclude <stdio.h>#in clude <stri ng.h>#in clude <stdlib.h>I*常八量*I#defi ne MENU_NUM 7#define N 3II记录的最大数量#defi ne MAX 100I*结士构人体*Istructstudentcharno10;I*学号由10个字符组成charfloatn ame15;

2、scoreN;I*学生姓名*Ifloatsum ;floataverage ;I*各门课成绩*II*总分*II*平均分*I;I* int count ;struct stude nt studMAX;全局变量*/记录学生总人 数II记录学生信息I*void in put();void output。;void Prin tMe nu();void computer。;void fin d();void sort();函数声明int cmp(const void * a , const void * b ); II*III输入学生信息II输出学生信息II显示菜单II计算学生成绩II根据学号或姓名

3、查询成绩II成绩排名 排序规贝Uvoidmain()intchoose;count=0;while(1)PrintMenu();scanf("%d",&choose);switch(choose)case 1 :input();/输入成绩break;case 2 :find();/查询成绩break;case 3 :computer。;/统计成绩break;case 4 :按名次输出成绩调用库函数中的排/sort();/按成绩排序,qsort(stud,count,sizeof(structstudent),cmp);方output();break;case 5 :

4、exit(0);printf("nn");intcmp(constvoid*a,constvoid*b)structstudent*aa=(structstudent*)a;structstudent*bb=(structstudent*)b;if(aa->sum!=bb->sum)returnaa->sum<bb->sum?1:-1;elseif(aa->score0!=bb->score0)returnaa->score0<bb->score0?1:-1;if(aa->score1!=bb->sco

5、re1)returnaa->score1<bb->score1?1:-1;if(aa->score2!=bb->score2)returnaa->score2<bb->score2?1:-1;return0;/*函数名:PrintMenu* 描述:显示操作菜单* 入口参数:无* 出口参数:无*voidPrintMenu()printf("-一一'n");printf("|学生成绩管理系统|n")Printf("|1.成绩录入;|n");Printf("2.成绩查询(学号

6、或姓名)|n");Printf("|3.成绩统计(平均成绩)|n");printf("|4.成绩排名|n");printf("|5.任意键退出|n");printf("");printf("n");printf("n");printf("请输入您要进行的操作:");* 函数名:input* 描述:输入学生信息* 入口参数:无* 出口参数:无*voidinput()intn,i;floattemp;printf("请输入要录入的学生的人数

7、:”);scanf("%d",&n);for(i=0;i<n;i+)printf("输入第%d个学生信息n",i+1);printf("学号:");scanf("%s",studcount+i.no);printf("姓名:");scanf("%s",studcount+);printf("成绩1:");scanf("%f",&studcount+i.score0);printf("成绩2:&

8、quot;);scanf("%f",&studcount+i.score1);printf("成绩3:");scanf("%f",&studcount+i.score2);count+=n;* 函数名:find* 描述:根据学号或姓名查询成绩* 入口参数:无* 出口参数:无*/voidfind()inti;charch15;printf("请输入学号或姓名:”);scanf("%s",ch);printf("n");printf("|学号|姓名成绩1成绩2成绩

9、3|总分|平均分|n");for(i=0;i<count;i+)if(!strcmp(ch,studi.no)|!strcmp(ch,)printf("|%10s|%12s|%5.1f|%5.1f|%5.1f|%5.1f|%6.1f|n",studi.no,,studi.score0,studi.score1,studi.score2,studi.sum,studi.average);printf(”n");return;printf("没有找到该学生的信息!n");n");pr

10、intf("* 函数名:computer* 描述:计算学生总成绩和平均成绩* 入口参数:无* 出口参数:无*/i;for(i=0;i<count;i+)studi.sum=studi.score0+studi.score1+studi.score2;studi.average=(studi.score0+studi.score1+studi.score2)/N;output();/* 函数名:output* 描述:输出学生所有信息* 入口参数:无* 出口参数:无*/voidoutput()inti;printf(”n");printf(

11、"|学号|姓名成绩1咸绩2成绩3|总分|平均分|n");for(i=0;i<count;i+)printf("|%10s|%12s|%5.1f|%5.1f|%5.1f|%5.1f|%6.1f|n",studi.no,,studi.score0,studi.score1,studi.score2,studi.sum,studi.average);printf("n");* 函数名:sort* 描述:排序* 入口参数:无* 出口参数:无*/voidsort()inti,j,k;structstudenttemp;for(i=0;i<count-1;i+)studi.sum=studi.score0+studi.score1+studi.score2;studi.average=(studi.score0+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论