📄 mjd.c
字号:
printf("|学号\t|姓名\t|语文\t|英语\t|数学\t|\n");
p1=head;
while(number!=p1->number&&p1->next!=NULL)
{p2=p1;p1=p1->next;}
if(number==p1->number)
{printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
}
else
printf("%d不存在此学生!\n",number);
printf("输入要查询的学生的学号,");
scanf("%d",&number);
}
printf("已经退出了!\n");
return(head);}
void print2311(score *head)
{
score *p;
if(head==NULL)
{printf("\n没有任何学生资料!\n");}
else
{printf("%d\n",n);
printf("|学号\t|姓名\t|语文\t|英语\t|数学\t|\n");
p=head;
do
{printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|\n",p->number,p->name,p->yuwen,p->yingyu,p->shuxue);
p=p->next;}while (p!=NULL);
}
}
score *statistics2311(score *head)
{
float sum1=0,sum2=0,sum3=0,ave1=0,ave2=0,ave3=0,max=0,min;
score *p;
int x,y=0,i=0;
p=head;
printf("1个人总分和平均分\t2单科平均分\t3总分最高分\t4总分最低分\n");
scanf("%d",&x);
getchar();
switch(x)
{
case 1: if(head==NULL)
{printf("\n没有任何学生资料!\n");return(head);}
else
{
printf("|学号\t|姓名\t|语文\t|英语\t|数学\t|总分\t|平均分\t|\n");
while(p!=NULL)
{
sum1=p->yuwen+p->yingyu+p->shuxue;
ave1=sum1/3;
printf("|%d\t|%s\t|%.1f\t|%.1f\t|%.1f\t|%.1f\t|%.1f\t|\n",p->number,p->name,p->yuwen,p->yingyu,p->shuxue,sum1,ave1);
p=p->next;}
}
return(head); break;
case 2: if(head==NULL)
{printf("\n没有任何学生资料!\n");return(head);}
while(p!=NULL)
{
sum1=sum1+p->yuwen;
sum2=sum2+p->yingyu;
sum3=sum3+p->shuxue;
y=y+1;
ave1=sum1/y;
ave2=sum2/y;
ave3=sum3/y;
p=p->next;
}
printf("语文平均分是%.1f\n",ave1);
printf("英语平均分是%.1f\n",ave2);
printf("数学平均分是%.1f\n",ave3);
return(head); break;
case 3:
if(head==NULL)
{printf("\n没有任何学生资料!\n");return(head);}
max=p->yuwen+p->yingyu+p->shuxue;
while(i<n)
{
i=i+1;
sum1=p->yuwen+p->yingyu+p->shuxue;
if(max<sum1)
max=sum1;
p=p->next;
}
printf("总分最高分:%.1f",max);
printf("\n");
return(head); break;
case 4: if(head==NULL)
{printf("\n没有任何学生资料!\n");return(head);}
while(p!=NULL)
{
min=p->yuwen+p->yingyu+p->shuxue;
while(p!=NULL)
{sum2=p->yuwen+p->yingyu+p->shuxue;
if(min>sum2)
min=sum2;
p=p->next;
}
}
printf("总分最低分:%.1f",min);
printf("\n");
return(head); break;
default :printf("输入错误,请重试!\n");
}
return(head);
}
save2311(score *p1)
{
FILE *fp;
char filepn[20];
printf("请输入文件路径及文件名:");
scanf("%s",filepn);
if((fp=fopen(filepn,"w+"))==NULL)
{
printf("不能打开文件!\n");
return 0;
}
fprintf(fp," 班级考试成绩管理系统 \n");
fprintf(fp,"|学号\t|姓名\t|语文\t|英语\t|数学\t|\n");
while(p1!=NULL)
{
fprintf(fp,"%d\t%s\t%.1f\t%.1f\t%.1f\t\n",p1->number,p1->name,p1->yuwen,p1->yingyu,p1->shuxue);
p1=p1->next;
}
fclose(fp);
printf("文件已经保存!\n");
return 0;
}
score *taxis2311(score *head)
{ score *p,*max;
int i,j,x;
float fen;
char t[10];
if(head==NULL)
{printf("\n没有任何学生资料,请先建立链表!\n");return(head);}
max=p=head;
printf("1按学生学号排序\t2按学生姓名排序\t3按语文成绩排序\n");
printf("4按英语成绩排序\t5按数学成绩排序\t\n");
printf("请选择操作:");
scanf("%d",&x);
getchar();
switch(x)
{case 1 :
for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
max=p;
p=p->next;
if(max->number>p->number)
{
k=max->number;
max->number=p->number;
p->number=k;
strcpy(t,max->name);
strcpy(max->name,p->name);
strcpy(p->name,t);
fen=max->yuwen;
max->yuwen=p->yuwen;
p->yuwen=fen;
fen=max->yingyu;
max->yingyu=p->yingyu;
p->yingyu=fen;
fen=max->shuxue;
max->shuxue=p->shuxue;
p->shuxue=fen;
}
}
max=head;p=head;
}
print2311(head);break;
case 2 : for(i=1;i<n;i++)
{
for(j=i+1;j<=n;j++)
{
max=p;
p=p->next;
if(strcmp(max->name,p->name)>0)
{
strcpy(t,max->name);
strcpy(max->name,p->name);
strcpy(p->name,t);
k=max->number;
max->number=p->number;
p->number=k;
fen=max->yuwen;
max->yuwen=p->yuwen;
p->yuwen=fen;
fen=max->yingyu;
max->yingyu=p->yingyu;
p->yingyu=fen;
fen=max->shuxue;
max->shuxue=p->shuxue;
p->shuxue=fen;
}
}
p=head;
max=head;
}
print2311(head);
break;
case 3 : for(i=1;i<n;i++)
{for(j=i+1;j<=n;j++)
{max=p;
p=p->next;
if(max->yuwen>p->yuwen)
{
fen=max->yuwen;
max->yuwen=p->yuwen;
p->yuwen=fen;
k=max->number;
max->number=p->number;
p->number=k;
strcpy(t,max->name);
strcpy(max->name,p->name);
strcpy(p->name,t);
fen=max->yingyu;
max->yingyu=p->yingyu;
p->yingyu=fen;
fen=max->shuxue;
max->shuxue=p->shuxue;
p->shuxue=fen;
}
}
p=head;
max=head;
}
print2311(head);
break;
case 4 : for(i=1;i<n;i++)
{for(j=i+1;j<=n;j++)
{max=p;
p=p->next;
if(max->yingyu>p->yingyu)
{
fen=max->yingyu;
max->yingyu=p->yingyu;
p->yingyu=fen;
k=max->number;
max->number=p->number;
p->number=k;
strcpy(t,max->name);
strcpy(max->name,p->name);
strcpy(p->name,t);
fen=max->yuwen;
max->yuwen=p->yuwen;
p->yuwen=fen;
fen=max->shuxue;
max->shuxue=p->shuxue;
p->shuxue=fen;
}
}
p=head;
max=head;
}
print2311(head);
break;
case 5 : for(i=1;i<n;i++)
{for(j=i+1;j<=n;j++)
{max=p;
p=p->next;
if(max->shuxue>p->shuxue)
{
fen=max->shuxue;
max->shuxue=p->shuxue;
p->shuxue=fen;
k=max->number;
max->number=p->number;
p->number=k;
strcpy(t,max->name);
strcpy(max->name,p->name);
strcpy(p->name,t);
fen=max->yuwen;
max->yuwen=p->yuwen;
p->yuwen=fen;
fen=max->yingyu;
max->yingyu=p->yingyu;
p->yingyu=fen;
}
}
p=head;
max=head;
}
print2311(head);
break;
default :printf("输入错误,请重试! \n");
}
return (0);}
int menu2311(k)
{
int i;
printf("\t\t\t\t班级考试成绩管理系统\n");
printf("1输入学生的资料\t\t\t2从文件调入资料\t\t\t3查询学生的成绩\n");
printf("4追加学生的资料\t\t\t5显示学生的成绩\t\t\t6统计学生的成绩\n");
printf("7保存输入的资料\t\t\t8对成绩进行排序\n");
printf("欢迎进入成绩管理系统,请选择您所要的操作(选择(0)退出):");
scanf("%d",&k);
getchar();
return (k);}
main()
{score *head=0,*stu=0;
while(1)
{k=menu2311(k);
switch(k)
{case 1: head=creat2311();break;
case 2: head=load2311(head);break;
case 3: head=search2311(head);break;
case 4: head=add2311(head,stu);break;
case 5: print2311(head); break;
case 6: statistics2311(head); break;
case 7: save2311(head);break;
case 8: taxis2311(head);break;
case 0: exit(0);
default: printf("输入错误,请重试!\n"); }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -