C语言不使用结构体实现链表,不用指针链表和结构体数组怎么编学生成绩管理系统啊...
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
#include
#include
struct?stu
{
int?num;//學(xué)號
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("-------歡迎使用學(xué)生成績管理系統(tǒng)---------\n");
do
{
printf("學(xué)號:%d\n",i+1);
u[i].num=i+1;
printf("姓名:\n");
scanf("%s",u[i].name);
printf("數(shù)學(xué):\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("是否繼續(xù)輸入?(y\\n)");
scanf("?%c",&x);
}while(x=='Y'||x=='y');
do
{
printf("--------學(xué)生成績管理系統(tǒng)----------\n");
printf("-------?0.退?出?--------\n");
printf("-------?1.插?入?--------\n");
printf("-------?2.刪?除?--------\n");
printf("-------?3.數(shù)學(xué)排名?--------\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("學(xué)號:%d\n",z+1);
u[i].num=z+1;
printf("姓名:\n");
scanf("%s",u[i].name);
printf("數(shù)學(xué):\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("是否繼續(xù)輸入?(y\\n)");
scanf("?%c",&x);
}while(x=='Y'||x=='y');
}
void?shanchu(struct?stu?u[])//刪除
{
int?num,j,k;
printf("請輸入您想刪除的學(xué)號:\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學(xué)號:%d姓名:%s數(shù)學(xué):%.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[])//數(shù)學(xué)排名
{
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學(xué)號:%d姓名:%s數(shù)學(xué):%.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學(xué)號:%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學(xué)號:%d姓名:%s外語:%.2f分\n",num,u[j].num,u[j].name,u[j].cj[2]);
num++;
}
}
總結(jié)
以上是生活随笔為你收集整理的C语言不使用结构体实现链表,不用指针链表和结构体数组怎么编学生成绩管理系统啊...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言过河问题主函数,c,c++_C语言
- 下一篇: java信息管理系统总结_java实现科