#include
course_name(int i)/*把科目变成数字函数*/ { switch(i)
{
case 1:printf(\"英语 \");
break;
case 2:printf(\"数学\");
break;
case 3:printf(\"C语言\");
break;
case 4:printf(\"Java\");
break;
case 5:printf(\"法律\");
break;
case 6:printf(\"音乐\");
break;
case 7:printf(\"语文\");
break;
case 8:printf(\"体育\");
break;
case 9:printf(\"英语\");
break;
case 10:printf(\"美术\");
break;
} }
print2(int m)/*输出学生考试科目函数*/ { int i,j;
printf(\"学生考试科目:\\n\\n\\n\");
for(i=1;i
{printf(\"
【%d】\",i);
course_name(i);
}
printf(\"\\n\\n\"); }
stu_zhongfen(int (*p2)[100],int n,int m)/*计算学生总分函数*/ {
int sum,i,j;
for(i=0;i
{
sum=0;
for(j=0;j
sum=sum+*(*(p2+i)+j);
*(*(p2+i)+m)=sum;
} }
input(long *p1,int (*p2)[100],int n,int m)/*输入学号、以及各科成绩函数*/ {
int i,j;
for(i=0;i
{
printf(\"\\n请输入第%d个学生的学号:\",i+1);
scanf(\"%ld\",p1+i);
for(j=0;j
{
printf(\"\\n请输入第%d门课程的成绩:\",j+1);
scanf(\"%d\",*(p2+i)+j);
}
}
printf(\"......输入完毕!\\n\");
}
chaxun(long *p1,int (*p2)[100],int n,int m)/*查询学生各科成绩、总分、班排名(按总分)函数*/ {
long xuehao;
int counter=1,j=0,i,k;
while(1)
{
printf(\"\\n请输入要查询的学生的学号:\");
scanf(\"%ld\",&xuehao);
for(i=0;i
{
if(*(p1+i)==xuehao)
break;
}
if(i>=n) printf(\"该学号不存在!请从新输入!\\n\");
else break;
}
stu_zhongfen(p2,n,m);
while(j
{ if(j!=i)
{ if(*(*(p2+j)+m)>*(*(p2+i)+m))
counter++;
j++;
}
else
j++;
}
printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\\n\");
printf(\"\\n 您要查询的学生信息如下:\\n\");
printf(\"\\n\");
printf(\"
课程名
分数\\n\");
for(j=0;j
{ printf(\"
\");
course_name(j+1);
printf(\"
%4d\\n\",*(*(p2+i)+j));
}
printf(\"\\n
总分为:%3d\\n\",*(*(p2+i)+m));
printf(\"
班级排名为:%3d\\n\",counter);
printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\\n\");
}
stu_average(long *p1,int (*p2)[100],int n,int m)/*计算每个学生的平均分*/ { int i,j,k;
float average[100];
stu_zhongfen(p2,n,m);
for(i=0;i
average[i]=*(*(p2+i)+m)/(float)m;
printf(\"\\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\");
printf(\"\\n每个学生的平均分如下\\n\");
printf(\"
学号
平均分\\n\");
for(i=0;i
printf(\"
%4ld
%f\\n\",*(p1+i),average[i]);
printf(\"\\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\\n\");
}
score_jiangxu(int (*p2)[100],int n,int m)/*把每个学生按平均分高到低排名函数*/ { int i,j,k,temp,a[100],z;
float average[100];
stu_zhongfen(p2,n,m);
printf(\"\\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\\n\");
for(i=0;i
{ a[i]=*(*(p2+i)+m);
average[i]=*(*(p2+i)+m)/(float)m;
}
for(i=0;i
{
for(k=1;k
if(a[i]
{ temp=a[i];
a[i]=a[k];
a[k]=temp;
}
}
printf(\"排名
平均分\\n\");
for(i=0;i
printf(\"(%d)
%f\\n\",i+1,average[i]);
printf(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\\n\");
}
print1()/*提示函数*/ {
system(\"cls\");/*清屏*/
printf(\"1.查询学生各科成绩、总分、班排名(按总分)\\n\");
printf(\"2.计算每个学生的平均分 \\n\");
printf(\"3.把每个学生按平均分高到低排名\\n\");
printf(\"请选择:\"); }
main() {
int m,n,i;
long *p1,num[100];
int (*p2)[100],score[100][100];
printf(\"\\n请输入学生总数:\");
scanf(\"%d\",&n);
printf(\"\\n请输入课程总数:\");
scanf(\"%d\",&m);
p1=num;
p2=score;
printf(\"\\n
★★现在请输入学号和成绩★★\\n\");
print2(m);
input(p1,p2,n,m);
print1();
scanf(\"%d\",&i);
if(i3)
printf(\".....输入错误!....\");
else
switch(i)
{ case 1: chaxun(p1,p2,n,m);break;
case 2: stu_average(p1,p2,n,m);break;
case 3: score_jiangxu(p2,n,m);break;
}
}