1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言不使用结构体实现链表 不用指针链表和结构体数组怎么编学生成绩管理系统啊...

C语言不使用结构体实现链表 不用指针链表和结构体数组怎么编学生成绩管理系统啊...

时间:2021-03-06 08:57:20

相关推荐

C语言不使用结构体实现链表 不用指针链表和结构体数组怎么编学生成绩管理系统啊...

该楼层疑似违规已被系统折叠隐藏此楼查看此楼

#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++;

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。