设计一个学生成绩管理系统,假设每个学生包括如下信息:学号、姓名、各门课成绩(数学、英语、C语言)。

设计一个学生成绩管理系统,假设每个学生包括如下信息:学号、姓名、各门课成绩(数学、英语、C语言)。要求:
学生的所有属性用一个类进行描述。
显示功能:显示全部学生信息。
查找功能:完成按姓名或学号查找学生记录,并显示。
排序功能:按学生平均成绩进行排序。
删除功能:按学号删除记录。
将学生记录存在文件student.dat中(*)。
提供菜单来调用各个功能,界面应尽可能清晰美观。例如:

***********学生成绩管理系统************

1--------------增加记录
2--------------查询
3--------------排序
4--------------显示
5--------------删除
0--------------退出

*****************************************

用c++做,急!急!拜托

void print(struct student *);
void input(struct student *);

struct student
{
int num;
char name[20];
int score[3];
}stu[10];

struct student *p;

void main()
{
p = stu;
input(p);
print(p);
system("pause");
}

void input(struct student *p)
{
int i = 0, j;
for(p = stu; p < stu + 2; p++, i++)
{
printf("请输入第%d个人的学号:", i + 1);
scanf("%d",&p->num);
printf("请输入第%d个人的姓名:", i + 1);
scanf("%s",&p->name);
for(j = 0; j < 3; j++)
{
printf("请输入他第%d门课的成绩:", j + 1);
scanf("%d",&p->score[j]);
}
}
p = stu;
}

void print(struct student *p)
{
int num, j;
float avg, sum = 0;
struct student *q;
num = p->score[0];
for(q = p; q < p + 2; q++)
{
for(j = 0; j < 3; j++)
{
if(q->score[j] > num)
num = q->score[j];
sum += q->score[j];
}
}
avg = sum / 3 * 2;
printf("%f\t%d\n", avg, num); //找出最大的一个然后比较,找到最大的那个所在的哪一个stu[i],然后输出这个组的所有数据就搞定···
for(q = p; q < p + 2; q++)
{
for(j = 0; j < 3; j++)
if(q->score[j] == num)
{
printf("%d\t%s\n",q->num, q->name);
for(j = 0; j < 3; j++)
printf("%d\t",q->score[j]);
printf("\n");
break;
}
}
}
温馨提示:答案为网友推荐,仅供参考