C语言实现一个简单的成绩管理系统
C语言实现一个简单的成绩管理系统
实验内容 假设收集到了一个班学生的所有成绩信息(不低于20人),要求用C语言编写一个简单的成绩管理系统,对学生个人信息进行管理,可进行录入、浏览、查询、修改、排序、统计等功能。信息内荣包括:(1)学生的学号(2)学生的姓名(3)学生的成绩(语文、数学、英语、计算机、课程平均分)。 1.录入、浏览功能: 按学号顺序录入学生信息(学号、姓名、语文、数学、英语、计算机)显示系统中的所有信息。 2.查询功能: 查询学号尾号为09的学生的所有信息并显示。 3.修改功能: 修改学号尾号为12的学生的成绩信息(任意两项即可),并显示该学生的全部信息。 4.排序功能: 按语文成绩的顺序,由高到低显示所有学生的信息。 5.统计功能:统计学生的平均成绩,并输出(学号、姓名、平均成绩)
#include<stdio.h> #include<stdlib.h> int n=5; int no; struct stu { char name[20]; int num; int chinese; int math; int english; int computer; float average; }student[5]; //1.输入信息 void student_scanf(int n) { for(int i=0;i<n;i++) { printf("请输入第%d个学生的信息: ",i+1); printf("学号 姓名 语文成绩 数学成绩 英语成绩 计算机成绩 "); scanf("%d%s%d%d%d%d",&student[i].num,&student[i].name,&student[i].chinese,&student[i].math,&student[i].english,&student[i].computer); student[i].average=(student[i].chinese+student[i].math+student[i].english+student[i].computer)/4.0; } } void student_printf(int n) { printf("学号 姓名 语文成绩 数学成绩 英语成绩 计算机成绩 平均成绩 "); for(int i=0;i<n;i++) { printf("%d %s %d %d %d %d %f ",student[i].num,student[i].name,student[i].chinese,student[i].math,student[i].english,student[i].computer,student[i].average); } } void student_seek(int no) { int j=0; for(int i=0;i<n;i++) { if (no==student[i].num) { j=1; printf("学号:%d 姓名:%s 语文:%d 数学:%d 英语:%d计算机:%d 平均成绩;%f ",student[i].num, student[i].name,student[i].chinese,student[i].math,student[i].english,student[i].computer,student[i].average); break; } } if(j==0) printf("查询的学号不存在! "); } void student_alter(int no) { for(int i=0;i<n;i++) { if (no==student[i].num) { printf("姓名:"); scanf("%s",&student[i].name); printf("语文成绩:"); scanf("%d",&student[i].chinese); printf("数学成绩:"); scanf("%d",&student[i].math); printf("英语成绩:"); scanf("%d",&student[i].english); printf("计算机成绩:"); scanf("%d",&student[i].computer); student[i].average=(student[i].chinese+student[i].math+student[i].english+student[i].computer)/4.0; printf("修改后的信息为:"); printf("%d %s %d %d %d %d %f ",student[i].num,student[i].name,student[i].chinese, student[i].math,student[i].english,student[i].computer,student[i].average); } } } void student_sort_chinese() { for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i - 1; j++) { if (student[j].chinese < student[j + 1].chinese) { stu temp = student[j]; student[j] = student[j + 1]; student[j + 1] = temp; } } } } void Statistics() { printf("学号 姓名 平均成绩 "); for(int i=0;i<n;i++) { printf("%d %s %f ",student[i].num,student[i].name,student[i].average); } } int main(){ student_scanf(n); student_printf(n); printf("请输入要查询的学生的学号:"); scanf("%d",&no); student_seek(no); printf("请输入修改信息的学生的学号"); scanf("%d",&no); student_alter(no); printf("按语文成绩从大到小排序: "); student_sort_chinese() ; student_printf(n); printf("统计信息为: "); Statistics(); return 0; }