学生成绩管理系统(代码写得比较low不要介意)还有点小错误望帮忙修改
老师要求:(1)键盘录入成绩
(2)课程的总分和平均分
(3)成绩从高到低名次表
(4)成绩从低到高名次表
(5)学号从小到大成绩表
(6)姓名字典顺序成绩表
(7)输入学号或者姓名查询学生成绩及排名
(8)统计优良中差类别所占百分比
#include<stdio.h>
#include<string.h>
#define s 3
struct student
{
char name[20];
int num;
int score[3];
float av;
int sum;
} p[s];
int i,j,r,t;
r=0;
int main()
{
void scan();
void sumandav();
void sort3();
void sort4();
void sort5();
void sort6();
void search7();
void count8();
int n;
printf("\t *学生成绩管理系统1.0版* \n");
printf("\t 功能 \n");
printf("\t1,键盘录入成绩\n");
printf("\t2,课程的总分和平均分\n");
printf("\t3,成绩从高到低名次表\n");
printf("\t4,成绩从低到高名次表\n");
printf("\t5,学号从小到大成绩表\n");
printf("\t6,姓名字典顺序成绩表\n");
printf("\t7,输入学号或者姓名查询学生成绩及排名\n");
printf("\t8,统计优良中差类别所占百分比\n");
printf("\t9,都不喜欢拜拜!%c\n",001);
scanf("%d",&n);
printf("请选择功能%c%d:\n",032,n);
switch(n)
{
case 1 :
scan();
break;
case 2:
sumandav();
break;
case 3:
scan();
sort3();
break;
case 4:
sort4();
break;
case 5:
sort5();
break;
case 6:
sort6();
break;
case 7:
search7();
break;
case 8:
count8();
break;
case 9:
return 0;
}
}
void scan()
{
for(j=0; j<s; j++)
{
scanf("%d %s %d %d %d",&p[j].num,p[j].name,&p[j].score[0],&p[j].score[1],&p[j].score[2]);
p[j].av=(p[j].score[0]+p[j].score[1]+p[j].score[2])/3;
p[j].sum=p[j].score[0]+p[j].score[1]+p[j].score[2];
}
}
void sumandav()
{
void scan();
scan();
for(j=0; j<s; j++)
{
printf("%d %s %d %d %d %d %.1f\n",p[j].num,p[j].name,p[j].score[0],p[j].score[1],p[j].score[2],p[j].sum,p[j].av);
}
}
void sort3()
{
for(j=0; j<s-1; j++)
{
for(i=0; i<s-1-j; i++)
{
if(p[i].sum<p[i+1].sum)
{
t=p[i].sum;
p[i].sum=p[i+1].sum;
p[i+1].sum=t;
}
}
}
printf(" 学号 姓名 高数 c语言 英语 总分 平均分 排名(总分down)\n");
for(j=0; j<s; j++)
{
r++;
printf("%d %s %d %d %d %d %.1f %d\n",p[j].num,p[j].name,p[j].score[0],p[j].score[1],p[j].score[2],p[j].sum,p[j].av,r);
}
}
void sort4()
{
void scan();
scan();
for(j=0; j<s-1; j++)
{
for(i=0; i<s-1-j; i++)
{
if(p[i].sum>p[i+1].sum)
{
t=p[i].sum;
p[i].sum=p[i+1].sum;
p[i+1].sum=t;
}
}
}
printf("学号 姓名 高数 c语言 英语 总分 平均分 排名(总分up)\n");
for(j=0; j<s; j++)
{
r++;
printf("%d %s %d %d %d %d %.1f %d\n",p[j].num,p[j].name,p[j].score[0],p[j].score[1],p[j].score[2],p[j].sum,p[j].av,r);
}
}
void sort5()
{
void scan();
scan();
for(j=0; j<s-1; j++)
{
for(i=0; i<s-1-j; i++)
{
if(p[i].num>p[i+1].num)
{
t=p[i].num;
p[i].num=p[i+1].num;
p[i+1].num=t;
}
}
}
printf("学号 姓名 高数 c语言 英语 总分 平均分 排名(学号)\n");
for(j=0; j<s; j++)
{
r++;
printf("%d %s %d %d %d %d %.1f %d\n",p[j].num,p[j].name,p[j].score[0],p[j].score[1],p[j].score[2],p[j].sum,p[j].av,r);
}
}
void sort6()
{
char t1[20];
void scan();
scan();
for(j=0; j<s-1; j++)
{
for(i=0; i<s-1-j; i++)
{
if(strcmp(p[i].name,p[i+1].name)>0)
{
strcpy(t1,p[i].name);
strcpy(p[i].name,p[i+1].name);
strcpy(p[i+1].name,t1);
}
}
}
printf("学号 姓名 高数 c语言 英语 总分 平均分 排名(姓名)\n");
for(j=0; j<s; j++)
{
r++;
printf("%d %s %d %d %d %d %.1f %d\n",p[j].num,p[j].name,p[j].score[0],p[j].score[1],p[j].score[2],p[j].sum,p[j].av,r);
}
}
void search7()
{
void scan() ;
void sort3();
scan() ;
printf("您想查找的学生的学号或者姓名:\n");
char name3[20];
int num1;
scanf("%s %d",name3,&num1);
for(i=0; i<s; i++)
{
if((strcmp(name3,p[i].name)==0)||(num1==p[i].num))
{
printf("%d %d %d %d %d",p[i].score[0],p[i].score[1],p[i].score[2],p[i].sum,r);
}
}
}
void count8()
{
float k=0,q=0,x=0,f=0;
float m,n,sb,xsb;
void scan();
scan();
for(i=0; i<s; i++)
{
if(p[i].sum<180)
{
k++;
}
else if(p[i].sum>=180&&p[i].sum<=210)
{
q++;
}
else if(p[i].sum>210&&p[i].sum<=240)
{
x++;
}
else if(p[i].sum>240&&p[i].sum<=300)
{
f++;
}
}
m=f/s;
n=x/s;
sb=q/s;
xsb=k/s;
printf("优:%.1f 良:%.1f 中:%.1f 差:%.1f",m,n,sb,xsb);
}
//功能7排名
//功能6学号变了