学生成绩管理系统代码(高手帮帮忙啊)

来源:百度知道 编辑:UC知道 时间:2024/05/26 19:31:22
编写一个菜单驱动的学生成绩管理程序。实现如下管理功能:
•能输入并显示n个学生的m门考试科目的成绩、总分和平均分。
•按总分进行排序。
•按学号进行排序。
•任意输入一个学号,能显示该学生的姓名、各门功课的成绩。
•将输入的学生成绩数据保存到文件中。
•从文件中读出学生成绩数据。
具体要求如下:
1)先用静态的数据结构(结构体数组)来存储和管理 n 个学生的学号、姓名、成绩等信息,进行编程。
2)再换用动态数据结构(链表)来存储和管理 n 个学生的学号、姓名、成绩等信息,进行编程。
3)排序函数是一个 具有多种排序方式的 通用的 排序程序,即 不仅可以实现成绩的升序排序,还可以实现成绩的降序排序。
4)程序能够进行异常处理,检查用户输入数据的有效性,在用户输入数据有错误(如类型错误)或无效时,不会中断程序的执行,程序具有一定的健壮性。
5)输出菜单形式如下:
Management for Students' scores
1. Append record
2. List record
3. Delete record
4. Modify record
5. Search record
6. Sort Score in descending order by sum
7. Sort Score in ascending order by sum
8. Sort Score in descending order by num
9. Sort Score in ascending order by num
W. Write to a File
R. Read from a File
0. Exit
Please Input your choice:

#include<stdio.h>
#include<string.h>
typedef struct{
char name[20];
int number;
int grade;
int class;
float mark[10];
float average;
}T;
void show(T *student,int *tp,int n) /* 把成绩显示在屏幕上 */
{
int i,j;
char a[3]=" ";
printf("***********************************************************\n");
printf(" name number grade class average order\n");
for(i=0;i<n;i++)
{
printf("-----------------------------------------------------------\n");
printf("%d:\n",i+1);
printf(" %s %d %d %d %f %d\n",student[tp[i]].name,student[tp[i]].number,student[tp[i]].grade,student[tp[i]].class,student[tp[i]].average,tp[i]+1);
printf("mark:");
for(j=0;j<2;j++)
printf("%s%d:%f",a,j+1,student[tp[i]].mark[j]);
printf("\n");
}
printf(&quo