#include<stdio.h>
void q();
void w();
void e(); //定义函数
void r();
void t();
void ccha();
void zcha();
int n;
struct student //结构体
{
char sxm[10];//学生姓名
int sage;//学生年龄
int sxb;//学生性别
int sdate;//学生生日
int C;//C语言成绩
int html;//HTML成绩
int VB;//VB成绩
int SQL;//SQL成绩
}s[100];
void main()
{
int a;
while(a!=6)
{
printf("≡≡学员表≡≡\n");
printf("1.学员信息录入!\n");
printf("2.学员S1学员的成绩录入!\n");
printf("3.学员信息查询!\n");
printf("4.学员成绩查询!\n"); //主菜单!
printf("5.学员成绩排名!\n");
printf("6.退出\n");
printf("请输入一个数字: ");
scanf("%d",&a);
switch (a)
{
case 1: q(); break;
case 2: w(); break;
case 3: e(); break; // 函数的调用
case 4: r(); break;
case 5: t(); break;
case 6: break;
}
}
}
void q() //录入学生信息函数的实现
{
int i,j,m;
j=1;
n=1;
printf("≡≡≡这里是学员信息录入!≡≡≡\n");
printf("您要输入几位学生的信息: ");
scanf("%d",&m);
for(i=0;i<m;i++)
{
printf("第%d个学员的ID号:%d\n",j,n);
printf("请输入第%d个学员的姓名:",j);
scanf("%s",&s[i].sxm);
printf("请输入第%d个学员的年龄:",j);
scanf("%d",&s[i].sage);
printf("请输入第%d个学员的性别:(1为男,2为女)",j);
scanf("%d",&s[i].sxb);
printf("请输入第%d个学员的出生年月:",j);
scanf("%d",&s[i].sdate);
printf("\n\n");
j++;
n++;
}
}
void w() //这里是学员成绩录函数的实现
{
int i,j;
j=1;
printf("≡≡≡这里是学员的成绩录入!≡≡≡\n");
for(i=0;i<n-1;i++)
{
printf("学号为%d的学员C语言的成绩:",j);
scanf("%d",&s[i].C);
printf("请输入学号为%d的学员HTML的成绩:",j);
scanf("%d",&s[i].html);
printf("请输入学号为%d的学员VB的成绩:",j);
scanf("%d",&s[i].VB);
printf("请输入学号为%d的学员SQL的成绩:",j);
scanf("%d",&s[i].SQL);
printf("\n\n");
j++;
}
printf("没有学员.\n\n\n");
}
void e()//查询学员信息(ID查询)
{
int a;
char ch;
printf("≡≡≡这里是学员信息查询!≡≡≡\n");
do
{
printf("请输入要查询学员的ID号: ");
scanf("%d",&a);
printf(" ID号为%d的学员信息!\n",a);
printf("姓名为%s\n",s[a-1].sxm);
printf("年龄为%d\n",s[a-1].sage);
if(s[a-1].sxb==1)
{
printf("性别为男!\n");
}
else if(s[a-1].sxb==2)
{
printf("性别为女!\n");
}
else
{
printf("性别为人妖!\n");
}
printf("出生年月为%d\n",s[a-1].sdate);
printf("需要继续查询吗(y/n)?");
getchar();
scanf("%c",&ch);
}while(ch=='Y'||ch=='y');
}
void r()//成绩查询(ID查询)
{
int a;
char ch;
printf("≡≡≡这里是学员成绩查询!≡≡≡\n");
do
{
printf("请输入要查询学员的ID号: ");
scanf("%d",&a);
printf(" ID号为%d的学员信息!\n",a);
printf("要查学生的姓名为%s\n",s[a-1].sxm);
printf("C语言成绩为%d\n",s[a-1].C);
printf("HTML成绩为%d\n",s[a-1].html);
printf("VB成绩为%d\n",s[a-1].VB);
printf("SQL成绩为%d\n",s[a-1].SQL);
printf("需要继续查询吗(y/n)?");
getchar();
scanf("%c",&ch);
}while(ch=='Y'||ch=='y');
}
void t()//成绩排名函数
{
int b;
printf("≡≡≡这里是学员成绩排名!≡≡≡\n");
printf("1.按C语言排名!\n");
printf("2.按总分排名!\n");
printf("3.退出!\n");
printf("请输入:");
scanf("%d",&b);
switch (b)
{
case 1: ccha(); break;
case 2: zcha(); break;
case 3: break;
}
}
void ccha()//按C排名
{
struct student temp[100];
int i,j,m;
m=1;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(s[i].C<s[j].C)
{
temp[i]=s[i];
s[i]=s[j];
s[j]=temp[i];
}
}
}
for(i=0;i<n-1;i++)
{
printf("第%d名,姓名为%s,C语言成绩为%d\n\n",m,s[i].sxm,s[i].C);
m++;
}
}
void zcha()//按总分排名
{
struct student temp[100];
int i,j,m;
m=1;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(s[i].C+s[i].html+s[i].VB+s[i].SQL<s[j].C+s[j].html+s[j].VB+s[j].SQL)
{
temp[i]=s[i];
s[i]=s[j];
s[j]=temp[i];
}
}
}
for(i=0;i<n-1;i++)
{
printf("第%d名,姓名为%s\n",m,s[i].sxm);
printf("C语言成绩为%d\n",s[i].C);
printf("HTML成绩为%d\n",s[i].html);
printf("VB成绩为%d\n",s[i].VB);
printf("SQL成绩为%d\n",s[i].SQL);
printf("这位同学的总成绩为%d\n",s[i].C+s[i].html+s[i].VB+s[i].SQL);
printf("\n\n");
m++;
}
}