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

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

#include

#include

struct stu

{

int num;//学号

char name[10];//姓名

float cj[3];//成绩

float pj;//平均成绩

float zf;//总分

};

int i=0;

int z;

struct stu p[50];

void charu(struct stu u[]);

void shanchu(struct stu u[]);

void sx(struct stu u[]);

void yw(struct stu u[]);

void wy(struct stu u[]);

void zfpm(struct stu u[]);

void main()

{

struct stu u[50];

char x;

int l;

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)

{

case 0:exit(0);break;

case 1:charu(u);break;

case 2:shanchu(u);break;

case 3:sx(u);break;

case 4:yw(u);break;

case 5:wy(u);break;

case 6:zfpm(u);break;

}

printf("是否返回主菜单?(y\\n)");

scanf(" %c",&x);

}while(x=='Y'||x=='y');

}

void charu(struct stu u[])//插入

{

char x;

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');

}

void shanchu(struct stu u[])//删除

{

int num,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");

}

}

void zfpm(struct stu u[])//总分排名

{

int j,k,num=0;

float sum=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);

}

void sx(struct stu u[])//数学排名

{

int j,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++;

}

}

void yw(struct stu u[])//语文排名

{

int j,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++;

}

}

void wy(struct stu u[])//外语排名

{

int j,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++;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值