#include <stdio.h>
#include <conio.h>
struct student
{
int num;
char name[20];
int sorce1;
int sorce2;
int sorce3;
float aver;
}stu[50],temp[50];
void shuru();
void paixu();
void chazhao();
void shanchu();
int count;
void main()
{
int i;
printf("\t\t 菜单选项\n");
printf("================================================\n");
printf("\t\t1、输入功能\n\t\t2、排序功能\n\t\t3、查找功能\n\t\t4、删除功能\n\t\t5、退出功能\n");
printf("================================================\n");
printf("请选择功能:");
scanf("%d",&i);
switch(i)
{
case 1:shuru();
case 2:paixu();
case 3:chazhao();
case 4:shanchu();
// case 5:exit(1);break;
}
}
void shuru()
{
int temp;
int i=0;
char ch;
do
{
printf("\n请输入学员信息。\n");
printf("学号:");
scanf("%d",&stu[i].num);
printf("姓名:");
scanf("%s",&stu[i].name);
printf("成绩1:");
scanf("%d",&temp);
stu[i].sorce1=temp;
printf("成绩2:");
scanf("%d",&temp);
stu[i].sorce2=temp;
printf("成绩3:");
scanf("%d",&temp);
stu[i].sorce3=temp;
stu[i].aver=(stu[i].sorce1+stu[i].sorce2+stu[i].sorce3)/3.0;
printf("是否继续?(y/n):");
fflush(stdin);
scanf("%c",&ch);
i++;++count;
}while(ch=='y'||ch=='Y');
}
void paixu()
{
int i,j;
printf("\n排序前的学员信息如下:\n");
printf("学号\t姓名\t平均成绩\n");
for(i=0;i<count;i++)
{
printf("%d\t",stu[i].num);
printf("%s\t",stu[i].name);
printf("%f\n",stu[i].aver);
}
for(i=0;i<count;i++)
{
for(j=0;j<count-i-1;j++)
{
if(stu[i].aver<stu[i+1].aver)
{
temp[i]=stu[i+1];
stu[i+1]=stu[i];
stu[i]=temp[i];
}
}
}
printf("\n排序后的学员信息如下:\n");
for(i=0;i<count;i++)
{
printf("%d\t",stu[i].num);
printf("%s\t",stu[i].name);
printf("%f\n",stu[i].aver);
}
}
void chazhao()
{
int i,j;
printf("请输入您要查找的学号:");
scanf("%d",&i);
for(j=0;j<count;j++)
{
if(i==stu[j].num)
{
printf("学号:%d\n",stu[j].num);
printf("姓名:%s\n",stu[j].name);
printf("平均成绩:%f\n",stu[j].aver);
}
}
}
void shanchu()
{
char ch;
int i,j;
printf("是否要删除某个学员?(y/n):");
fflush(stdin);
scanf("%c",&ch);
while(ch=='y'||ch=='Y')
{
printf("请您输入要删除的学员的学号:");
scanf("%d",&i);
for(j=0;j<count;j++)
{
if(i==stu[j].num)
{
stu[j]=stu[j+1];
break;
}
}
printf("删除后的学员的信息如下:\n");
printf("学号\t姓名\t平均成绩\n");
for(i=0;i<count-1;i++)
{
printf("%d\t",stu[i].num);
printf("%s\t",stu[i].name);
printf("%f\n",stu[i].aver);
}
exit(1);
}
}