用C语言编程实现一个简单的学生成绩管理系统 5
2.屏幕显示考试成绩
3.将成绩储存到磁盘文件中
4.从磁盘文件中读出考试成绩,屏幕显示考试成绩
5.计算平均分
6.求最高分
7.求最低分
8.统计不及格人数并计算不及格率
9.退出系统
这几个功能 展开
#include <stdio.h>#include <string.h> typedef struct student{ char name[20]; /* 姓名 */ int code; /* 学号 */ int kor, eng, math; /* 3门课程的成绩 */}STUDENT; /* 返回输入数据 */STUDENT Input(); /* 输出所有输入的数据 */void Output(STUDENT info[], int cnt); /* 将输入分数转换为A-F */char grade(int score); int main(){ STUDENT S[10]; int cnt = 0, select; int i, j; int code; while(1) { printf("\t学生信息管理系统\n\n"); printf("\t\t1\t添加\n"); printf("\t\t2\t删除\n"); printf("\t\t3\t查询\n"); printf("\t\t0\t结束\n"); printf("\t\t您的选择[0-3]:"); scanf("%d", &select); if(select < 0 || select > 3) continue; if(select == 0) { printf("退出系统!\n"); break; } if(select == 1) /* 添加 */ { S[cnt++] = Input(); } else if(select == 2) /* 删除 */ { printf("\t\t待删除学生的学号:"); scanf("%d", &code); for(i=0; i<cnt; i++) if(S[i].code == code) break; if(i >= cnt) { printf("学号不存在,删除失败!\n"); } else { for(j=i+1; j<cnt; j++) { strcpy(S[j-1].name, S[j].name); S[j-1].code = S[j].code; S[j-1].kor = S[j].kor; S[j-1].eng = S[j].eng; S[j-1].math = S[j].math; } cnt--; printf("删除成功!\n"); } } else /* 查询 */ { printf("\t\t待查找学生的学号:"); scanf("%d", &code); for(i=0; i<cnt; i++) if(S[i].code == code) break; if(i >= cnt) { printf("学号不存在,查找失败!\n"); } else { printf("\t查询结果:\n"); Output(S, i); } } } return 0;} /* 返回输入数据 */STUDENT Input(){ STUDENT stu; printf("\t\t新学生信息\n"); printf("\t\t学号:"); scanf("%d", &stu.code); printf("\t\t姓名:"); getchar(); gets(stu.name); printf("\t\t3门课程成绩(以空格分隔):"); scanf("%d%d%d", &stu.kor, &stu.eng, &stu.math); return stu;} /* 输出所有输入的数据 */void Output(STUDENT info[], int cnt){ printf("学号:%d\n",info[cnt].code); printf("姓名:"); puts(info[cnt].name); printf("成绩:%c %c %c\n", grade(info[cnt].kor), grade(info[cnt].eng), grade(info[cnt].math));} /* 将输入分数转换为A-F */char grade(int score){ if(score < 0 || score > 100) return 'F'; if(score >= 90) return 'A'; if(score >= 80) return 'B'; if(score >= 70) return 'C'; if(score >=60) return 'D'; else return 'E';}
运行测试: