该楼层疑似违规已被系统折叠隐藏此楼查看此楼
#include
#include
structstu
{
intnum;//学号
charname[10];//姓名
floatcj[3];//成绩
floatpj;//平均成绩
floatzf;//总分
};
inti=0;
intz;
structstup[50];
voidcharu(structstuu[]);
voidshanchu(structstuu[]);
voidsx(structstuu[]);
voidyw(structstuu[]);
voidwy(structstuu[]);
voidzfpm(structstuu[]);
voidmain()
{
structstuu[50];
charx;
intl;
printf("-------欢迎使用学生成绩管理系统---------\n");
do
{
printf("学号:%d\n",i+1);
u[i].num=i+1;
printf("姓名:\n");
scanf("%s",u[i].name);
printf("数学:\n");
scanf("%f",&u[i].cj[0]);
printf("语文:\n");
scanf("%f",&u[i].cj[1]);
printf("外语:\n");
scanf("%f",&u[i].cj[2]);
u[i].zf=(u[i].cj[0]+u[i].cj[1]+u[i].cj[2]);
printf("总分:%.2f\n",u[i].zf);
u[i].pj=(u[i].cj[0]+u[i].cj[1]+u[i].cj[2])/3;
printf("平均成绩%.2f:\n",u[i].pj);
z++;
i++;
printf("是否继续输入?(y\\n)");
scanf("%c",&x);
}while(x=='Y'||x=='y');
do
{
printf("--------学生成绩管理系统----------\n");
printf("-------0.退出--------\n");
printf("-------1.插入--------\n");
printf("-------2.删除--------\n");
printf("-------3.数学排名--------\n");
printf("-------4.语文排名--------\n");
printf("-------5.外语排名--------\n");
printf("-------6.总分排名--------\n");
printf("请选择:\n");
scanf("%d",&l);
switch(l)
{
case0:exit(0);break;
case1:charu(u);break;
case2:shanchu(u);break;
case3:sx(u);break;
case4:yw(u);break;
case5:wy(u);break;
case6:zfpm(u);break;
}
printf("是否返回主菜单?(y\\n)");
scanf("%c",&x);
}while(x=='Y'||x=='y');
}
voidcharu(structstuu[])//插入
{
charx;
do
{
printf("学号:%d\n",z+1);
u[i].num=z+1;
printf("姓名:\n");
scanf("%s",u[i].name);
printf("数学:\n");
scanf("%f",&u[i].cj[0]);
printf("语文:\n");
scanf("%f",&u[i].cj[1]);
printf("外语:\n");
scanf("%f",&u[i].cj[2]);
u[i].zf=(u[i].cj[0]+u[i].cj[1]+u[i].cj[2]);
printf("总分:%.2f\n",u[i].zf);
u[i].pj=(u[i].cj[0]+u[i].cj[1]+u[i].cj[2])/3;
printf("平均成绩%.2f:\n",u[i].pj);
i++;
z++;
printf("是否继续输入?(y\\n)");
scanf("%c",&x);
}while(x=='Y'||x=='y');
}
voidshanchu(structstuu[])//删除
{
intnum,j,k;
printf("请输入您想删除的学号:\n");
scanf("%d",&num);
for(j=0;j
{
if(num==u[j].num)
break;
}
if(j==i)
{
printf("查无此人");
}
else
{
for(k=j;k
{
u[k]=u[k+1];
}
z=i;
i--;
printf("--------删除成功----------\n");
}
}
voidzfpm(structstuu[])//总分排名
{
intj,k,num=0;
floatsum=0,n=0;//sum:全班的总分。n:全班的平均分
for(j=0;j
{
for(k=j+1;k
{
if(u[j].pj
{
p[j]=u[j];
u[j]=u[k];
u[k]=p[j];
}
}
}
for(j=0;j
{
printf("排名:%d学号:%d姓名:%s数学:%.2f语文:%.2f外语:%.2f总分%.2f平均分:%.2f\n",num+1,u[j].num,u[j].name,u[j].cj[0],u[j].cj[1],u[j].cj[2],u[j].zf,u[j].pj);
sum=sum+u[j].zf;
num++;
}
n=sum/num;
printf("全班总分:%.2f\n",sum);
printf("全班平均分:%.2f\n",n);
}
voidsx(structstuu[])//数学排名
{
intj,k,num=1;
for(j=0;j
{
for(k=j+1;k
{
if(u[j].cj[0]
{
p[j]=u[j];
u[j]=u[k];
u[k]=p[j];
}
}
}
for(j=0;j
{
printf("排名:%d学号:%d姓名:%s数学:%.2f\n",num,u[j].num,u[j].name,u[j].cj[0]);
num++;
}
}
voidyw(structstuu[])//语文排名
{
intj,k,num=1;
for(j=0;j
{
for(k=j+1;k
{
if(u[j].cj[1]
{
p[j]=u[j];
u[j]=u[k];
u[k]=p[j];
}
}
}
for(j=0;j
{
printf("排名:%d学号:%d姓名:%s语文:%.2f分\n",num,u[j].num,u[j].name,u[j].cj[1]);
num++;
}
}
voidwy(structstuu[])//外语排名
{
intj,k,num=1;
for(j=0;j
{
for(k=j+1;k
{
if(u[j].cj[2]
{
p[j]=u[j];
u[j]=u[k];
u[k]=p[j];
}
}
}
for(j=0;j
{
printf("排名:%d学号:%d姓名:%s外语:%.2f分\n",num,u[j].num,u[j].name,u[j].cj[2]);
num++;
}
}