📄 班级成绩管理系统.txt
字号:
printf("%d不存在此学生!\n\n\n",number);
amount(h);
}
if(i==2)/*按姓名删除*/
{printf("输入要删除的学生的姓名:");
scanf("%s",na);
getchar();
p1=h;
while(strcmp(na,p1->name)!=0&&p1!=NULL)/*找到要删除的学生结点 */
{
p2=p1;p1=p1->next;
}
if(strcmp(na,p1->name)==0) /*找到释放结点空间删除该结点*/
{
p2->next=p1->next;
free(p1);
printf("删除成功!\n\n\n");
}
else
printf("%s不存在此学生!\n\n\n",na);
amount(h);
}
printf("按学号删除请按1:");
printf("按姓名删除请按2:");
printf("返回功能菜单按0:");
scanf("%d",&i);
}
}
return(h);
}
show(StudentList h)/*显示当前学生信息*/
{
student*p,*p1,*p2;
int i,j,count,k=0;
float f;char a[10];
p1=p2=h;
count=amount(h);
if(h==NULL)
printf("\n没有任何学生资料!\n");
else
{ for(i=1;i<=count;i++)/*先对学生记录按学号排序*/
{
for(j=i+1;j<=count;j++)
{
p2=p1;
p1=p1->next;
if(p2->studentnumber>p1->studentnumber)
{
k=p2->studentnumber;
p2->studentnumber=p1->studentnumber;
p1->studentnumber=k;
/*交换前后结点中的学号值*/
strcpy(a,p2->name);
strcpy(p2->name,p1->name);
strcpy(p1->name,a);
/*交换前后结点中的姓名*/
f=p2->chinese;
p2->chinese=p1->chinese;
p1->chinese=f;
/*交换前后结点中的语文成绩*/
f=p2->English;
p2->English=p1->English;
p1->English=f;
/*交换前后结点中的英语成绩*/
f=p2->math;
p2->math=p1->math;
p1->math=f;
/*交换前后结点中的数学成绩*/
}
}
p2=h;p1=h;/*重新使max,p指向链表头*/
}
}
printf("\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\n");
p=h;
while (p!=NULL)
{printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f\t\n",p->studentnumber,p->name,p->chinese,p->English,p->math,p->average,p->sum);
p=p->next;
}
printf("\n\n\n");
}
statis_data(StudentList h)/*统计学生成绩*/
{ int i,n=0;student *s;
float eng_ave,chi_ave,mat_ave,all_ave,sum1=0,sum2=0,sum3=0,sum4=0,max=0;
printf("统计个人分数请按1:\n");
printf("统计全班平均分请按2:\n");
printf("显示语文最高学生按3:\n");
printf("显示英语最高学生按4:\n");
printf("显示数学最高学生按5:\n");
printf("显示总分最高学生按6:\n");
printf("按0返回功能菜单");
scanf("%d",&i);
if(i==0)
printf("已经退出:");
else
{ if(i==1)/*统计个人分数*/
{printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
while(h!=NULL)
{printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n\n\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(i==2)/*统计全班平均分*/
{while(h!=NULL)
{ n++;
sum1=sum1+h->chinese;
sum2=sum2+h->English;
sum3=sum3+h->math;
sum4=sum4+h->sum;
chi_ave=sum1/n;
eng_ave=sum2/n;
mat_ave=sum3/n;
all_ave=sum4/n;
h=h->next;
}
printf("人数%d\n",n);
printf("语文平均 英语平均 数学平均 总平均\n");
printf("%.2f\t %.2f\t %.2f\t %.2f\t\n\n\n", chi_ave,eng_ave, mat_ave,all_ave);
}
if(i==3)/*显示语文最高学生*/
{
while(h!=NULL)
{ if(max<h->chinese)
{max=h->chinese;
s=h;
}
h=h->next;
}
printf("语文最高分为:\n");
printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n\n\n",s->studentnumber,s->name,s->chinese,s->English,s->math,s->average,s->sum);
}
if(i==4)/*显示英语最高*/
{ while(h!=NULL)
{ if(max<h->English)
{max=h->English;
s=h;
}
h=h->next;
}
printf("英语最高分为:\n");
printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n\n\n",s->studentnumber,s->name,s->chinese,s->English,s->math,s->average,s->sum);
}
if(i==5)/*显示数学最高*/
{ while(h!=NULL)
{ if(max<h->math)
{max=h->math;
s=h;
}
h=h->next;
}
printf("数学最高分为:\n");
printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
printf("%d\t%s\t %.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n\n\n",s->studentnumber,s->name,s->chinese,s->English,s->math,s->average,s->sum);
}
if(i==6)/*显示总分最高*/
{ while(h!=NULL)
{ if(max<h->sum)
{max=h->sum;
s=h;
}
h=h->next;
}
printf("总分最高分为:\n");
printf(" \n\n\n学号\t姓名 \t语文\t英语\t数学\t平均分\t总分\t\n\n\n");
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",s->studentnumber,s->name,s->chinese,s->English,s->math,s->average,s->sum);
}
}
}
show1(StudentList h)/*按分数段显示学生记录*/
{ int i,j;
printf("按语文成绩请按1:\n");
printf("按英语成绩请按2:\n");
printf("按数学成绩请按3:\n");
printf("返回功能菜单请按0:\n");
scanf("%d",&i);
while(i!=0)
{if(i==1)/*按语文成绩*/
{ printf("显示语文成绩<60的学生:(按1)\n");
printf("显示语文成绩60<语文<=70的学生:(按2)\n");
printf("显示语文成绩70<语文<=80的学生:(按3)\n");
printf("显示语文成绩80<语文<90的学生:(按4)\n");
printf("显示语文成绩>=90的学生:(按5)\n");
scanf("%d",&j);
printf(" \n\n\n学号\t姓名 \t语文\t英语\t数学\t平均分\t总分\t\n\n\n");
if(j==1)/*显示语文成绩<60的学生*/
{
while(h!=NULL)
{if(h->chinese<60)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(j==2)/*显示语文成绩60<语文<=70的学生*/
{ while(h!=NULL)
{if(h->chinese>=60&&h->chinese<70)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(j==3)/*显示语文成绩70<语文<=80的学生*/
{ while(h!=NULL)
{if(h->chinese>=70&&h->chinese<80)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(j==4)/*显示语文成绩80<语文<90的学生*/
{ while(h!=NULL)
{if(h->chinese>=80&&h->chinese<90)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(j==5)/*显示语文成绩>=90的学生*/
{ while(h!=NULL)
{if(h->chinese>=90)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
}
if(i==2)/*按英语成绩*/
{
printf("显示英语成绩<60的学生:(按1)\n");
printf("显示英语成绩60<语文<=70的学生:(按2)\n");
printf("显示英语成绩70<语文<=80的学生:(按3)\n");
printf("显示英语成绩80<语文<=90的学生:(按4)\n");
printf("显示英语成绩>90的学生:(按5)\n");
scanf("%d",&j);
printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
if(j==1)/*显示英语成绩<60的学生*/
{ while(h!=NULL)
{if(h->English<60)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(j==2)/*显示英语成绩60<语文<=70的学生*/
{while(h!=NULL)
{if(h->English<70 &&h->English>=60)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(j==3)/*显示英语成绩70<语文<=80的学生*/
{while(h!=NULL)
{if(h->English<80 &&h->English>=70)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(j==4)/*显示英语成绩80<语文<=90的学生*/
{while(h!=NULL)
{if(h->English<90 &&h->English>=80)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
} /**/
}
if(j==5)/*显示英语成绩>90的学生*/
{while(h!=NULL)
{if(h->English>=90)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
}
if(i==3)/*按数学成绩*/
{
printf("显示数学成绩<60的学生:(按1)\n");
printf("显示数学成绩60<语文<=70的学生:(按2)\n");
printf("显示数学成绩70<语文<=80的学生:(按3)\n");
printf("显示数学成绩80<语文<=90的学生:(按4)\n");
printf("显示数学成绩>90的学生:(按5)");
scanf("%d",&j);
printf(" \n\n\n学号\t姓名\t语文\t英语\t数学\t平均分\t总分\t\n");
if(j==1)/*显示数学成绩<60的学生*/
{while(h!=NULL)
{ if(h->math<60)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(j==2)/*显示数学成绩60<语文<=70的学生*/
{while(h!=NULL)
{ if(h->math<70 &&h->math>=60)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(j==3)/*显示数学成绩70<语文<=80的学生*/
{while(h!=NULL)
{ if(h->math<80 &&h->math>=70)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(j==4)/*显示数学成绩80<语文<=90的学生*/
{while(h!=NULL)
{ if(h->math<90 &&h->math>=80)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
if(j==5)/*显示数学成绩>90的学生*/
{while(h!=NULL)
{ if(h->math>=90)
printf("%d\t%s\t%.1f\t%.1f\t%.1f\t%.2f\t%.2f\t\n",h->studentnumber,h->name,h->chinese,h->English,h->math,h->average,h->sum);
h=h->next;
}
}
}
printf("按语文成绩请按1:\n");
printf("按英语成绩请按2:\n");
printf("按数学成绩请按3:\n");
printf("返回功能菜单请按0:\n");
scanf("%d",&i);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -