高手帮帮忙、用C语言编写一个学生成绩管理系统
用C语言编写一个学生成绩管理系统要求:所有1,2,3,4,5都用函数实现
头文件只用#include "stdio.h"
不需要文件、
本人只学到结构体和指针呢。
**************************************************************************
** 1==》成绩输入 **
** 2==》成绩插入 **
** 3==》成绩删除 **
** 4==》成绩输出 **
** 5==》退 出 **
**************************************************************************
下面是我自己找了好多类似的编的一个红字的部分有些问题,
先输入3个人的 ,然后删除第二个人,第二个人的名字没成称第三个的
插入成绩后新插入的信息在显示的时候全是000
#include "stdio.h"
#define max 200
struct student
{
char name[50];
int number;
float ienglish,imath,ichinese;
};
struct student st[];
struct data
{
int x;
struct student stu[max];
} dd;
void add_data()
{ int n,i;
printf("输入人数 n");
scanf("%d",&n);
printf("\n请输入学生信息:");
for(i=0;i<n;i++)
scanf("%d%s%f%f%f",&st[i].number,&st[i].name,&st[i].ienglish,&st[i].imath,&st[i].ichinese);
dd.x=n;
}
void insert_data()
{ int i;
printf("输入插入学生的学号姓名和成绩");
i=dd.x+1;
scanf("%d%s%f%f%f",&st[i].number,&st[i].name,&st[i].ienglish,&st[i].imath,&st[i].ichinese);
dd.x=dd.x+1;
}
void delete_data()
{
int i,y;
printf("\n请输入要删除学生的学号:");
scanf("%d",&y);
for(i=y-1;i<dd.x;i++)
{
st[i].number=st[i+1].number;
st[i].name[50]=st[i+1].name[50];
st[i].ienglish=st[i+1].ienglish;
st[i].imath=st[i+1].imath;
st[i].ichinese=st[i+1].ichinese;
}
dd.x=dd.x-1;
}
void view_data()
{
int i;
printf("学号 姓名 英语 数学 语文\n");
for(i=0;i<dd.x;i++)
printf("%d %s %f %f %f\n",st[i].number,st[i].name,st[i].ienglish,st[i].imath,st[i].ichinese);
}
main()
{
int i,n;
while(1)
{
printf("请输入功能号[1-5]:",&i);
scanf("%d",&i);
switch(i)
{
case 1: add_data(); break;
case 2: insert_data();break;
case 3: delete_data();break;
case 4: view_data(); break;
case 5: exit(0);
}
}
}
[ 本帖最后由 kinysi 于 2011-4-18 17:01 编辑 ]