随便改了改:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 50
int n=0;
//声明学员结构
struct Student
{
char xuehao[10];
char name[10];
float score[4];
}stu[M];
int show_menu()
{
int i;
printf("---------Fuctions and Menu choices---------\n");
printf(" (1)Insert \n");
printf(" (2)Delete \n");
printf(" (3)Display \n");
printf(" (4)clrscr \n");
printf(" (5)Quit \n");
printf("enter you choice(1--5):");
scanf("%d",&i);
while(!(i>=1&&i<=5))
{
printf("Error!\n");
printf("Please enter you choice again:");
scanf("%d",&i);
}
return i;
}
void Insert(void)
{
int i,j;
struct Student s;
if(n>=49)
{
printf("数据以满\n");
exit(0);
}
printf("学号:");
scanf("%s",&s.xuehao);
printf("姓名:");
scanf("%s",s.name);
printf("三门成绩:\n");
printf("成绩1: ");
scanf("%f",&s.score[0]);
printf("成绩2: ");
scanf("%f",&s.score[1]);
printf("成绩3: ");
scanf("%f",&s.score[2]);
s.score[3]=(s.score[0]+s.score[1]+s.score[2])/3;
for(i=0;i<n;i++)
if(s.score[3]>stu[i].score[3])
break;
for(j=n;j>=i;j--)
stu[j+1]=stu[j];
stu[i]=s;
n++;
}
//显示学员信息
void Display(void)
{
int i;
printf("\t学号\t姓名\t成绩1\t成绩2\t成绩3\t平均成绩\n");
for(i=0;i<n;i++)
{
printf("\t%s\t",stu[i].xuehao);
printf("%s\t",stu[i].name);
printf("%-6.2f\t%-6.2f\t%-6.2f\t",stu[i].score[0],stu[i].score[1],stu[i].score[2]);
printf("%-6.2f\t\n",stu[i].score[3]);
}
}
void Delete(void)
{
char str[10];
int i,j;
if(n==0)
{
printf("现在还没有任何学生信息\n");
exit(0);
}
fflush(stdin);
printf("输入要删除的学生的学号:");
gets(str);
for(i=0;i<n;i++)
if(strcmp(stu[i].xuehao,str)==0)
break;
if(i==n)
printf("没有该学生\n");
else
{
for(j=i;j<n;j++)
stu[j]=stu[j+1];
n--;
}
}
int main()
{
int choice;
while(1)
{
choice=show_menu();
switch(choice)
{
case 1:Insert();break;
case 2:Delete();break;
case 3:Display();break;
case 4:system ("cls");break;
}
if(choice==5)
break;
}
}
[此贴子已经被作者于2006-9-14 22:10:06编辑过]