设计开发一个学生成绩管理系统。要求具有以下功能

a) 运行程序后显示以下信息:1、Display all information
2、Add a student
3、Delete a student
4、Quit
b) 按2选择增加或者按3删除学生信息。包括学生姓名、学号、三门课程成绩。
c) 按1后进行简单数据处理并输出所有信息,包括: 计算每个学生的平均成绩、总成绩;每一门课程的平均成绩。
d) 按4退出程序,释放所有内存。

实在是不会...

第1个回答  2012-03-08
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int sign=0;
typedef struct student
{
int no;
char name[10];
float grade[3];
}STUDENT;

STUDENT stu[10];

void display()
{
puts("学号、名字、总成绩:");
for(int i=0;i<sign;i++)
{
float all=(stu[i].grade[0]+stu[i].grade[1]+stu[i].grade[2]);
printf("%d\t%s\t%f\n",stu[i].no,stu[i].name,all);
}
}
void add()
{
puts("请输入信息:");
scanf("%d%s%f%f%f",&stu[sign].no,stu[sign].name,&stu[sign].grade[0],&stu[sign].grade[1],&stu[sign].grade[2]);
sign++;
}
void dele()
{
puts("请输入学号:");
int a;
scanf("%d",&a);
for(int i=0;i<sign;i++)
if(a==stu[i].no)
{
stu[i].no=stu[sign].no;
strcpy(stu[i].name,stu[sign-1].name);
stu[i].grade[0]=stu[sign-1].grade[0];
stu[i].grade[1]=stu[sign-1].grade[1];
stu[i].grade[2]=stu[sign-1].grade[2];
}
sign--;
}

void main()
{
int flag;
do
{
flag=1;
printf("make a select:\n1.Display all information\n2.Add a student\n3.Delete a student\n4.Quit\n");
int n;
scanf("%d",&n);
switch(n)
{
case 1:system("CLS");display();break;
case 2:add();system("CLS");break;
case 3:dele();system("CLS");break;
case 4:flag=0;system("CLS");break;
default:
{
system("CLS");
printf("输入有误,请重新输入:\n");
}
}
}while(flag);
}本回答被提问者采纳
相似回答