《c语言大作业——学生成绩管理系统v5.0-》由会员分享,可在线阅读,更多相关《c语言大作业——学生成绩管理系统v5.0-(14页珍藏版)》请在金锄头文库上搜索。
1、/成绩管理系统v1.0#include #include #include #define N 30#define M 6typedef struct student long studentID; char studentName10; int scoreM;STU;void Input (STU stu,int n,int m);void Totalave (STU stu,int n,int m);void evestuTotalave (STU stu,int n,int m);void Scoredes (STU stu,int n,int m);void Scoreas (STU
2、stu,int n,int m);void Numas (STU stu,int n,int m);void Dicas (STU stu,int n,int m);void Searchbynum (STU stu,int n,int x,int m);void Searchbymane(STU stu,int n,char name,int m);void statistis (STU stu,int n,int m);void List (STU stu,int n,int m);int main() int n,c,x,m; char name10; STU stuN; printf(
3、输入学生人数); scanf(%d,&n); printf(输入考试科目); scanf(%d,&m); printf(1.Input recordn); printf(2.Caculate totel and average score of every coursen); printf(3.Caculate totel and average score of every studentn); printf(4.Sort in descending order by total score of every studentn); printf(5.Sort in ascending ord
4、er by total score of every studentn); printf(6.Sort in ascending order by numbern); printf(7.Sort in ascending order by name); printf(8.Search by numbern); printf(9.Search by namen); printf(10.Statistic analysis for every coursen); printf(11.List recordn); printf(0.Exitn); printf(Please enter your c
5、hoice:n); printf(n); for(;) scanf(%d,&c); switch(c) case 1: /录入学生学号和各科成绩 Input (stu,n,m); printf(Please enter your choice:n); break; case 2: /计算每门课程的总分和平均分 Totalave (stu,n,m); printf(Please enter your choice:n); break; case 3: /计算每个学生的总分和平均分 evestuTotalave (stu,n,m); break; case 4: /按每个学生的总分由高到低排出名次
6、表 Scoredes (stu,n,m); printf(Please enter your choice:n); break; case 5: /按每个学生的总分由低到高排出名次表 Scoreas (stu,n,m); printf(Please enter your choice:n); break; case 6: /按学号由小到大排出名次表 Numas (stu,n,m); printf(Please enter your choice:n); break; case 7: /按姓名的字典顺序排出成绩表 Dicas(stu,n,m); printf(Please enter your
7、choice:n); break; case 8: /按学号查询学生排名及其各科成绩 printf(请输入查找学号n); scanf(%d,&x); Searchbynum(stu,n,x,m); printf(Please enter your choice:n); break; case 9: /按姓名查询学生排名及其各科成绩 printf(请输入查找姓名n); scanf(%s,name); getchar(); Searchbymane(stu,n,name,m); printf(Please enter your choice:n); break; case 10: /成绩分析 所占
8、百分比 statistis (stu,n,m); printf(Please enter your choice:n); break; case 11: /全部输出 List (stu,n,m); Totalave (stu,n,m); printf(Please enter your choice:n); break; case 0: exit(0); return 0;void Input (STU stu,int n,int m) /1 int i,j; for(i=0;in;i+) printf(Input students ID ,name and score); scanf(%ld
9、,&stui.studentID); scanf(%s,stui.studentName); for(j=0;jm;j+) scanf(%d,&stui.scorej); void Totalave (STU stu,int n,int m) /2.计算每门课程的总分和平均分 int i,j,sumM; double aveM; for(j=0;jm;j+) sumj=0; for(i=0;in;i+) sumj=sumj+stui.scorej; avej=(double)sumj/n; for(i=0;im;i+) printf(科目%d的总分=%d,课程的平均分=%fn,i+1,sumi
10、,avei);void evestuTotalave (STU stu,int n,int m) /3.计算每个学生的总分和平均分 int i,j,sumN; double aveN; for(i=0;in;i+) sumi=0; for(j=0;jm;j+) sumi=sumi+stui.scorej; avei=(double)sumi/m; for(i=0;in;i+) printf(学号为%ld,姓名为%s的总分=%d,其平均分=%fn,stui.studentID,stui.studentName,sumi,avei);void Scoredes (STU stu,int n,int m) /4.按每个学生的总分由高到低排出名次表 int i,j,k,h,sumN; STU t; for(i=0;in;i+) sumi=0; for(j=0;jm;j+) sumi=sumi+stui.scorej; for(i=0;in;i+) k=i; for(j=i+1;jsumk) k=j; if(