学生成绩管理系统v5.0_第1页
学生成绩管理系统v5.0_第2页
学生成绩管理系统v5.0_第3页
学生成绩管理系统v5.0_第4页
学生成绩管理系统v5.0_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、#include #include#include#define N 50/ 最大人数 #define G 150/ 字符串个数typedef struct studentlong studentID;char studentName10;int score6;/6 门课程的成绩STUDENT;void Inputscore(STUDENT str,int n,int m);/*n为学生人数, m 为科目的数目 ,输入的功能 */void Printscore(STUDENT str,float aver,int n,int m);/输出void Everystuscore(STUDENT s

2、tr,int n,int m);/* 计算每个学生的总分和平均分 */ void Everycouscore(STUDENT str,int n,int m);/ 计算每门课程的总分和平均分成绩由高到低进行排序成绩由低到高进行排序 按学号由小到大进行排序 按姓名的字典顺序排出成绩表void datasort1(STUDENT str,int n,int m);/ void datasort2(STUDENT str,int n,int m);/ void datasort3(STUDENT str,int n,int m);/ void datasort4(STUDENT str,int n,

3、int m);/void SearchNum(STUDENT str,int n,int m,long y);/按学号查询学生排名及考试成绩void SearchName(STUDENT str,int n,int m,char y);/按姓名查询学生排名及考试成绩void Analysis(STUDENT str,int n,int m);/ 分析类别void Printscore(STUDENT str,int n,int m);/ 输出void menu();int main()char f10;int choice,n,x,pos,m; long z;STUDENT strN;floa

4、t a = 0, b = 0, c = 0, d = 0, e = 0;/ 表示学生的成绩等级高低 doprintf( 请输入学生人数: );scanf(%d, &n);while(n0);printf( 请输入共有几门课程 (最多不超过 6 门 ):); scanf(%d,&m);while(m6)/ 非法字符异常处理while(getchar()!=n);printf( 你输入的课程多于 6 门或者输入非法字符,请重新输入: ); scanf(%d,&m);Inputscore(str, n, m);/ 读入分数名字和学号do menu();/ 输出菜单 scanf(%d, &choice

5、);switch (choice) case 1:Everycouscore( str, n, m); / 求每个课程的平均分和总分 break;case 2:Everystuscore( str, n, m);/ 求学生的平均分和总分 break;case 3:datasort1(str, n, m); break;case 4:datasort2(str, n, m); break;case 5:datasort3(str, n, m); break;case 6:datasort4(str, n, m); break;case 7:printf( 请输入你要查询的学生的学号: ); sc

6、anf(%ld,&z);SearchNum(str,n,m,z);/ 按学号查询学生排名及考试成绩 break;case 8:printf( 请输入你要查询学生的姓名: ); scanf(%s,f);SearchName(str, n, m, f); break;case 9:Analysis(str, n, m);/ 分析类别 break;case 10:Printscore(str, n, m);/ 输出 break;case 0:break;default:printf( 你输入的数有误,请重新输入正确的数 n);/ 处理非法字符 getchar();getchar();while (c

7、hoice != 0);void menu()/ 输出菜单printf(*学生成绩系统*n);printf(1.Caculate totel and average score of every coursen);printf(2.Caculate totel and average score of every studentn);printf(3.Sort in descending order by total score of every studentn); printf(4.Sort in ascending order by total score of every studen

8、tn); printf(5.Sort in ascending order by numbern);printf(6.Sort in ascending order by namen); printf(7.Search by numbern);printf(8.Search by namen);printf(9.Statistic analysis for every coursen); printf(10.List recordn);printf(0.Exitn);printf(*n);printf(Please enter your choice:); void Inputscore(ST

9、UDENT str,int n,int m)/n 为学生人数, m 为科目的数目 int i,j;for(i=0;in;i+)printf( 请输入学生学号,姓名和各科成绩:(以空格作为间隔 );scanf(%ld%*c%s,&stri.studentID,stri.studentName); for(j=0;jm;j+) scanf(%d,&stri.scorej);void Everystuscore(STUDENT str,int n,int m)/*计算每个学生的总分和平均分 */int i,j,sum6;float aver6;for ( i = 0; i n; i+)sumi=0;

10、for ( j= 0; j m; j+) sumi=sumi+stri.scorej;averi=(float)sumi/m;for(i=0;in;i+)printf( 学号为 %ldt 姓名为 %s 的总分为 =%d ,平均分 =%2.1fn,stri.studentID,stri.studentName,sumi,averi);void Everycouscore(STUDENT str,int n,int m)/ 计算每门课程的总分和平均分 int i,j;int sum6;float aver6;for(j=0;jm;j+) sumj=0; for(i=0;in;i+) sumj=su

11、mj+stri.scorej; averj=(float)sumj/n;for(i=0;im;i+)printf( 科目 %d 的总分 =%d, 课程的平均分 =%2.1fn,i+1,sumi,averi);void datasort1(STUDENT str,int n,int m)/成绩由高到低进行排序int i, j,sumN;STUDENT temp1;int temp2;for ( i = 0; i n; i+)sumi=0;for ( j= 0; j m; j+) sumi=sumi+stri.scorej;for (i = 0;in - 1;i+)for (j = i + 1;j

12、sumi)temp1 = strj;temp2 = sumj;strj=stri;sumj = sumi;stri = temp1;sumi = temp2;for(i=0;in;i+)printf( 学号 :%ldt 姓名 :%st 总分 :%dn,stri.studentID,stri.studentName,sumi);void datasort2(STUDENT str,int n,int m)/成绩由低到高进行排序int i, j,sumN;STUDENT temp1;int temp2;for ( i = 0; i n; i+)sumi=0;for ( j= 0; j m; j+)

13、sumi=sumi+stri.scorej;for (i = 0;in - 1;i+)for (j = i + 1;jn;j+)if (sumjsumi) temp1 = strj; temp2 = sumj; strj=stri; sumj = sumi; stri = temp1; sumi = temp2; for(i=0;in;i+)printf( 学号 :%ldt 姓名 :%st 总分 :%dn,stri.studentID,stri.studentName,sumi); void datasort3(STUDENT str,int n,int m)/按学号由小到大进行排序int i

14、, j;STUDENT temp1;int temp2;for (i = 0;in - 1;i+)for (j = i + 1;jn;j+)if (strj.studentIDstri.studentID) temp1 = strj; strj=stri; stri = temp1;for(i=0;in;i+)printf( 学号 :%ldt 姓名 :%stn,stri.studentID,stri.studentName);for(j=0;jm;j+)printf( 科目 %d 的分数 =%dn,j+1,stri.scorej);void datasort4(STUDENT str,int

15、n,int m)/按姓名的字典顺序排出成绩表int i, j;STUDENT temp1;int temp2;for (i = 0;in - 1;i+)for (j = i + 1;jn;j+)if (strcmp(strj.studentName,stri.studentName)0)temp1 = strj; strj=stri; stri = temp1; for(i=0;in;i+)printf( 学号 :%ldt 姓名 :%stn,stri.studentID,stri.studentName);for(j=0;jm;j+)printf( 科目 %d 的分数 =%dn,j+1,str

16、i.scorej);void SearchNum(STUDENT str,int n,int m,long y)/按学号查询学生排名及考试成绩int i,j,rank=1,find=0,sumN,pos;for ( i = 0; i n; i+)sumi=0;for ( j= 0; j m; j+) sumi=sumi+stri.scorej;for (i = 0; i n; i+)if(stri.studentID=y)find=1; pos=i; break;if (find=0)printf( 没有找到!你输入的学号不正确! n);elsefor ( i = 0; i sumpos)ra

17、nk+;printf( 学号 :%ldt 姓名 :%stn,strpos.studentID,strpos.studentName); for(j=0;jm;j+)printf( 科目 %d 的分数 =%dn,j+1,strpos.scorej);printf( 总分为 %d ,排名为 %dn,sumpos,rank);void SearchName(STUDENT str,int n,int m,char y)/按姓名查询学生排名及考试成绩int i,j,rank=1,find=0,sumN,pos;for ( i = 0; i n; i+)sumi=0;for ( j= 0; j m; j

18、+)sumi=sumi+stri.scorej;for (i = 0; i n; i+)if(strcmp(stri.studentName,y)=0) find=1;pos=i;break;if (find=0) printf( 没有找到!你输入的姓名不正确! n);elsefor ( i = 0; i sumpos) rank+;printf( 学号 :%ldt 姓名 :%stn,strpos.studentID,strpos.studentName); for(j=0;jm;j+)printf( 科目 %d 的分数 =%dn,j+1,strpos.scorej);printf( 总分为 %d ,排名为 %dn,sumpos,rank);void Analysis(STUDENT str,int n,int m)/ 分析类别int a=0,b=0,c=0,d=0,e=0,i,j;float A,B,C,D,E;for(j=0;jm;j+) a=0,b=0,c=0,d=0,e=0;for(i=0;i=90)a+;else if(stri.scorej=80)b+ ;else if(stri.scorej=70)c+;else if(stri.scorej=60)d+;elsee

温馨提示

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

最新文档

评论

0/150

提交评论