1、void lookscore(void); /学生成绩查看 void searchscore(void); /学生成绩查询void statistic(void); /学生成绩统计void add(void); /学生成绩添加void modify(void);void delscore(void); /学生成绩删除void menu(void); /学生成绩菜单void main() short int flag=0; menu(); do flag=1; switch(getch() case 1 : inputscore();break; /在菜单界面输入1,调用i函数nputscore
2、()实现输入学生成绩信息功能 case 2 lookscore(); /在菜单界面输入2,调用函数lookscore()实现学生成绩按平均分高低排序输出,同时lookscore()函数调用avregescore()函数实现各个学生的平均分计算3 searchscore(); /在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能4 statistic(); /在菜单界面输入4,调用statistic()函数输出每一门课程的最高分,平均分以及不及格人员5 modify(); /在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能6 add();
3、 /在菜单界面输入6,调用add()函数实现添加学生成绩7 delscore(); /在菜单界面输入7,调用delscore()函数实现删除指定学生的成绩8 savescore(); /在菜单界面输入8,调用savescore()函数将学生成绩信息保存9exit(0); break; /在菜单界面输入9,退出成绩管理系统 default : printf(输入有误n); printf(按任意键继续n getch(); /按任意键继续,起到暂停的作用,函数头文件conio.h已经定义过 menu(); / 菜单 while (flag=1);void menu(void) system(cls
4、/清屏n 欢迎进入学生成绩管理系统n 菜单 n 输入成绩-1n 查看成绩及成绩排序-2n 查询学生成绩-3n 成绩统计-4n 修改成绩-5n 添加成绩-6n 删除成绩-7n 保存成绩-8n 退出系统-9n n 请输入您的选择(19)n/*输入各个同学的学生信息*/void inputscore(void) /输入成绩 int i,j; /清屏专用,以下出现位置作用相同 已经转到输入成绩菜单n请输入学生总数: scanf(%d,&n); 提示:输入学号时请输入9位学生编号:图书借阅证上的学号n /因二维表上下需对正故有此要求 for(i=0;in;i+) printf(请输入第%d位学生的学号:
5、,i+1);%s,stui.number); /输入学生学号: scanf(,stui.name); /输入学生名字请输入该学生性别n,stui.sex); /输入性别请输入学生成绩:高数分t英语分tC语言分n for(j=0;jstuk.aver) k=j; if(k!=j) t=stuk; stuk=stui; stui=t; 名次t学号tt姓名t性别t高数分t英语分tC语言分t总分t平均分n%dt%st%st%st,i+1,stui.number,stui.name,stui.sex); printf(%4.2ft,stui.scorej);,stui.total);%4.2f,stui
6、.aver);/*通过输入学号查找学生成绩*/void searchscore(void) char a10; /定义数组a的类型可输入数字,字母或字符 int i,j; 已经转到查询学生成绩菜单n请输入需查询的学生学号n,a); if(strcmp(a,stui.number)=0) /如果输入的学号为真则输出相关信息 printf( for(j=0; break; /找到该学生成绩信息后跳出for循环 else未找到该学生信息n/*统计学生成绩信息,计算出每一门课的最高分*/ void statistic() int i,j=0,k=0,c1; char str2; float avera
7、geM,sum=0;没有可被查找的记录n / if(M=0) /如果没有输入成绩则输出没有可查找的记录 else while(1) 下面将统计考试成绩n请选择你要统计哪科的成绩 1.高数t2.英语t3.C语言nc1);t一共有%d个记录n,M); /*总共记录数*/ switch(c1) case 1: /用来判断高数的最高分,平均分,输出不及格人员名单i+) sum+=stui.score0; if(stuk.score0stui.score0) k=i; if(stuj.score0stui.score0) j=i; average0=sum/M;t高数的最高分:tt学号:%s :%s 分
8、数:%.2fn,stuj.number,stuj.name,stuj.score0);t高数的最低分是:,stuk.number,stuk.name,stuk.score0);t高数的平均分是 %5.2fn,average0);平均分低于60分的学生成员名单n if(stui.score0stui.score1) k=i; if(stuj.score1stui.score1) j=i; average1=sum/M;t英语的最高分:,stuj.number,stuj.name,stuj.score1);t英语的最低分是:,stuk.number,stuk.name,stuk.score1);t
9、英语的平均分是 %5.2fn,average1); if(stui.score1stui.score2) k=i; if(stuj.score2stui.score2) j=i; average2=sum/M;tC语言的最高分: /*最高分*/ ,stuj.number,stuj.name,stuj.score2);tC语言的最低分是: /*最低分*/ ,stuk.number,stuk.name,stuk.score2);tC语言的平均分是 %5.2fn,average2); if(stui.score2 default: /如果输入的数字不符合要求则显示错误信息输入错误!请输入13之间的数
10、n sum=0; getchar();是否继续进行统计?(y/n) gets(str); if(str0=y|str0=Y) statistic(); else break; /*修改学生成绩*/void modify(void) char a10; 已经转到修改成绩菜单n请输入需要修改成绩的学生学号n if(strcmp(a,stui.number)=0)请重新输入该学生的姓名:%s请重新输入该学生成绩: scanf(修改成功n /找到该学生成绩后进行修改,跳出for循环 else请确认该学生是否为该校学生!/*添加学生成绩*/void add(void) int a,i,j; /i定义为学
11、生,j为学生分数,a代表加入学生的数量 已经转到添加成绩菜单n请输入新增加的学生人数:a); n=n+a; for(i=n-a;输入该学生性别n添加成功n/*删除学生成绩*/void delscore(void) int i,j,c; char m,a10; /m用来存放后面输入删除的字母y或nprintf( 已经转到删除成绩菜单n请输入学生学号n c=i;是否删除该学生成绩(y/n)nm); if(m=) for(i=c; stui=stui+1; /结构体整体赋值将后一位学生成绩信息拷贝进入前一位学生信息的存储位置 n=n-1; /删除该学生信息后学生总数减一 printf(删除成绩成功n删除成绩失败n/*保存学生成绩*/void savescore(void) FILE *fp; /定义指针 int i,flag=1; char m; 已经转到保存成绩菜单n puts(是否保存学生成绩(y/n) if(m= if(fp=fopen(score.dat,wb)=NUL
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1