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个学生的信息:\n",i+1);
printf("学号 姓名 语文成绩 数学成绩 英语成绩 计算机成绩\n");
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("学号 姓名 语文成绩 数学成绩 英语成绩 计算机成绩 平均成绩\n");
for(int i=0;i<n;i++)
{
printf("%d\t%s\t%d\t%d\t%d\t%d\t%f\n",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\n",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("查询的学号不存在!\n");
}
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\t%s\t%d\t%d\t%d\t%d\t%f\n",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("学号\t姓名\t平均成绩\n");
for(int i=0;i<n;i++)
{
printf("%d\t%s\t%f\n",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("按语文成绩从大到小排序:\n");
student_sort_chinese() ;
student_printf(n);
printf("统计信息为:\n");
Statistics();
return 0;
}