#include<stdio.h>
#include<stdlib.h>
struct Date
{
int year;
int month;
int day;
};
struct Score
{
int Math;
int English;
int Chinese;
int CLanguage;
};
struct student
{
long int num;
char name[20];
char sex;
struct Date age;
char address[30];
struct Score sc;
}stu[5]={
{200901,"wangwei",'M',1991,06,17,"guangdongLu47hao",67,49,77,88},
{200902,"zhangwen",'F',1991,06,17,"guangdongLu47hao",67,49,77,98},
{200903,"zhangwen",'F',1991,06,17,"guangdongLu47hao",67,49,77,78},
{200904,"wangning",'M',1992,03,15,"tianjinglu14hao",88,89,97,78},
{200905,"zhourunmin",'F',1991,10,25,"shanxiqianxian",86,99,87,98}
};
/***********************************查询学生信息*******************************************/
void chaxun()
{
int i,j,k;
loop2 :scanf("%d",&i);
switch(i)
{
case 200901:
printf("\n---------------------------------------------------------------------\n");
printf("\n学号\t姓名\t性别\t出生日期\t住址\n\n");
printf("%ld\t%s %c\t%d-%d-%d\t %s",stu[0].num,stu[0].name,stu[0].sex,stu[0].age.year,stu[0].age.month,stu[0].age.day,stu[0].address);
printf("\n---------------------------------------------------------------------\n");
printf("\n数学\t英语\t语文\tc语言\n");
printf("\n%d\t%d\t%d\t%d\t\n",stu[0].sc.Math,stu[0].sc.English,stu[0].sc.Chinese,stu[0].sc.CLanguage);
break;
case 200902:
printf("\n---------------------------------------------------------------------\n");
printf("\n学号\t姓名\t性别\t出生日期\t住址\n");
printf("%ld\t%s %c\t%d-%d-%d\t %s",stu[1].num,stu[1].name,stu[1].sex,stu[1].age.year,stu[1].age.month,stu[1].age.day,stu[1].address);
printf("\n---------------------------------------------------------------------\n");
printf("\n数学\t英语\t语文\tc语言\n");
printf("\n%d\t%d\t%d\t%d\t\n",stu[1].sc.Math,stu[1].sc.English,stu[1].sc.Chinese,stu[1].sc.CLanguage);
break;
case 200903:
printf("\n---------------------------------------------------------------------\n");
printf("\n学号\t姓名\t性别\t出生日期\t住址\n");
printf("%ld\t%s %c\t%d-%d-%d\t %s",stu[2].num,stu[2].name,stu[2].sex,stu[2].age.year,stu[2].age.month,stu[2].age.day,stu[2].address);
printf("\n---------------------------------------------------------------------\n");
printf("\n数学\t英语\t语文\tc语言\n");
printf("\n%d\t%d\t%d\t%d\t\n",stu[2].sc.Math,stu[2].sc.English,stu[2].sc.Chinese,stu[2].sc.CLanguage);
break;
case 200904:
printf("\n---------------------------------------------------------------------\n");
printf("\n学号\t姓名\t性别\t出生日期\t住址\n");
printf("%ld\t%s %c\t%d-%d-%d\t %s",stu[3].num,stu[3].name,stu[3].sex,stu[3].age.year,stu[3].age.month,stu[3].age.day,stu[3].address);
printf("\n---------------------------------------------------------------------\n");
printf("\n数学\t英语\t语文\tc语言\n");
printf("\n%d\t%d\t%d\t%d\t\n",stu[3].sc.Math,stu[3].sc.English,stu[3].sc.Chinese,stu[3].sc.CLanguage);
break;
case 200905:
printf("\n---------------------------------------------------------------------\n");
printf("\n学号\t姓名\t性别\t出生日期\t住址\n");
printf("%ld\t%s %c\t%d-%d-%d\t %s",stu[5].num,stu[5].name,stu[5].sex,stu[5].age.year,stu[5].age.month,stu[5].age.day,stu[5].address);
printf("\n---------------------------------------------------------------------\n");
printf("\n数学\t英语\t语文\tc语言\n");
printf("\n%d\t%d\t%d\t%d\t\n",stu[5].sc.Math,stu[5].sc.English,stu[5].sc.Chinese,stu[5].sc.CLanguage);
break;
default:
printf("\n您输入有误!请重新输入!\n");
goto loop2;
break;
}
}
/**********************平均分和总分的计算函数******************************************/
void average()
{
int i,sum=0,ave;
for(i=0;i<5;i++)
{
sum=sum+stu[i].sc.Math+stu[i].sc.English+stu[i].sc.Chinese+stu[i].sc.CLanguage;
printf("\n%s的成绩总和是:%d\n",stu[i].name,sum);
ave=sum/4;
printf("\n%s的成绩平均分是:%d\n",stu[i].name,ave);
sum=0;
}
}
/*****************************删除学生信息**********************************************/
void Delete()
{
int i,j;
struct student stu1={0,"0",'0',0,0,0,"0",0,0,0,0};
loop: printf("\n请输入你要删除成绩的学生学号:\n");
scanf("%d",&i);
switch(i)
{
case 200901:
stu[0]=stu1;
printf("\n该成绩已删除!\n");
break;
case 200902:
stu[1]=stu1;
printf("\n该成绩已删除!\n");
break;
case 200903:
stu[2]=stu1;
printf("\n该成绩已删除!\n");
break;
case 200904:
stu[3]=stu1;
printf("\n该成绩已删除!\n");
break;
case 200905:
stu[4]=stu1;
printf("\n该成绩已删除!\n");
break;
default :
printf("您输入有误,请重新输入!");
goto loop;
}
}
/*******************************************排序************************************/
void MaoPao()
{
int i,sum=0,ave,j,temp,k;
int sum1[5];
printf("\n按照总分排名:\n");
for(i=0;i<5;i++)
{
sum=sum+stu[i].sc.Math+stu[i].sc.English+stu[i].sc.Chinese+stu[i].sc.CLanguage;
ave=sum/4;
sum1[i]=sum;
sum=0;
}
for(k=0;k<4;k++)
for(j=0;j<4-k;j++)
{
if(sum1[j]<sum1[j+1])
{
temp=sum1[j];
sum1[j]=sum1[j+1];
sum1[j+1]=temp;
}
}
for(k=0;k<5;k++)
{
printf("第%d名:%d\n",k+1,sum1[k]);
}
}
/************************************************************************************/
void main()
{
int k,j;
printf("\t\t\t\t学生管理系统\n");
while(1)
{
loop1 :
printf("\n--------1: -------------按1进行学生信息查询----------------------\n");
printf("\n--------2: -------------按2计算学生平均分和总分------------------\n");
printf("\n--------3: -------------按3进行学生排名--------------------------\n");
printf("\n--------4: -------------按4删除学生信息--------------------------\n");
printf("\n--------5: -------------按5退出----------------------------------\n");
scanf("%d",&k);
switch(k)
{
case 1:
printf("\n请输入学号:\n");
chaxun();
break;
case 2:
printf("\n-----------------------------各个学生的成绩总和------------------------\n");
average();
break;
case 3:
MaoPao();
break;
case 4:
printf("\n-----------------------------删除学生信息------------------------------\n");
Delete();
break;
case 5:
exit(0);
break;
default :
printf("\n您输入有误!请重新输入!\n");
goto loop1;
}
}
}