帮忙看看有什么问题 修改一下 谢谢 运行不出来
#include<stdio.h>#include<stdlib.h>
#include<conio.h>
#include<string.h>
//提示菜单
void Menu()
{
puts("\t\t 欢迎进入学生体育成绩管理系统 ");
puts("\t\t1-----对学生体育成绩进行处理");
puts("\t\t2-----查询");
puts("\t\t3-----统计");
puts("\t\t4-----输出");
puts("\t\t5-----退出");
puts("\t\t----请选择----");
}
void Menu0()
{
puts("\t\t----欢迎进入学生体育成绩录入系统----");
puts("\t\t请依次输入每个学生的学号,姓名,性别,跳远、握力、跑步这三方面成绩");
puts("\t\t----请输入----");
}
void Menu1()//学生成绩处理
{
puts("-------欢迎进入成绩处理子系统------");
puts("\t\t1---计算出每个学生的总成绩");
puts("\t\t2---计算出每个学生的平均成绩");
puts("\t\t3---按学生的总成绩排序");
puts("\t\t4---返回");
puts("\t\t----请选择----");
}
void Menu2()//学生成绩查询
{
puts("------欢迎进入成绩查询子系统-----");
puts("\t\t1---按学科查询");
puts("\t\t2---按学号进行查询");
puts("\t\t3---返回");
puts("\t\t----请选择----");
}
void Menu3()//查询测评的结果
{
puts("\t\t---欢迎进入学生体育成绩测评查询子系统----");
puts("\t\t---请按下面方式查询测评的结果:");
puts("\t\t---查询跳远测评结果请按'0'");
puts("\t\t---查询握力测评结果请按'1'");
puts("\t\t---查询跑步测评结果请按'2'");
puts("\t\t---查询综合测评结果请按'3'");
puts("\t\t---返回请按'4'");
puts("\t\t---请选择---");
}
//结构体定义
typedef struct student
{
char xuehao[15];
char name[10];
char sex;
int score[3];
int sum;
double aver;
}STUDENT;
//各个子函数
void Shuru(STUDENT stu[],int n)//输入信息
{ int i,j;
for(i=0;i<n;i++)
{
scanf("%s",&stu[i].xuehao);
scanf("%s",&stu[i].name);
scanf(" %c",&stu[i].sex);//请以单个字符的形式输入性别
for(j=0;j<3;j++)
{
scanf("%d",&stu[i].score[j]);
}
}
}
void Xieru(STUDENT stu[],int n)//将学生信息写入文件
{
FILE *fp;
int i,j;
fp=fopen("G://ABC.txt","w+");
fprintf(fp,"学号\t\t姓名\t\t性别\t\t跳远\t\t握力\t\t跑步\n");
for(i=0;i<n;i++)
{
fprintf(fp,"%s\t",stu[i].xuehao);
fprintf(fp,"%s\t\t",stu[i].name);
fprintf(fp,"%c\t\t",stu[i].sex);
for(j=0;j<3;j++)
{
fprintf(fp,"%d\t\t",stu[i].score[j]);
}
fprintf(fp,"\n");
}
fclose(fp);
}
void Sum(STUDENT stu[],int n)//求每位学生的总分
{
int i,j;
for(i=0;i<n;i++)
{
stu[i].sum=0;
for(j=0;j<3;j++)
{
stu[i].sum=stu[i].sum+stu[i].score[j];
}
}
for(i=0;i<n;i++)
{
printf("%s%6s%4d\n",
stu[i].xuehao,
stu[i].name,
stu[i].sum);
}
}
void Average(STUDENT stu[],int n)//求每位学生的平均成绩
{
int i;
for(i=0;i<n;i++)
{
stu[i].aver=(double)stu[i].sum/3;
}
for(i=0;i<n;i++)
{
printf("%s%6s\t%4.2lf\n",
stu[i].xue
hao,
stu[i].name,
stu[i].aver);
}
}
double Ave_stu(STUDENT *s,char *no,int n)
{
double average,sum=0;
int i,j;
for(i=0;i<n;i++)
if(strcmp(s[i].xuehao,no)==0)
break;
for(j=0;j<3;j++)
sum+=s[i].score[j];
average=sum/3;
return average;
}
void Paixu(STUDENT stu[],int n)//按学生的总成绩排序
{
STUDENT studentx={"92839283","zhlas",'f',{45,76,83}};
int i,j,k;
for(i=0;i<n-1;i++)
{
k=i;
for(j=i+1;j<n;j++)
{
if(stu[j].sum>stu[i].sum)
{
k=j;
}
}
if(k!=i)
{
studentx=stu[i];
stu[i]=stu[k];
stu[k]=studentx;
}
}
for(i=0;i<n;i++)
{
printf("%16s%10s\t%c",stu[i].xuehao,
stu[i].name,
stu[i].sex);
for(j=0;j<3;j++)
printf("%4d\t",stu[i].score[j]);
printf("%4d\t%4.2lf\n",
stu[i].sum,
stu[i].aver);
}
}
double Ave_course(STUDENT *s,int course_num,int n)//某门课的平均成绩
{double sum=0,average;
int i;
for(i=0;i<n;i++)
sum+=s[i].score[course_num-1] ;
average=sum/n;
return average;
}
void Dis_course(STUDENT *s)//输出某位学生的体育成绩信息
{
int i;
printf("学号%s\t姓名%s\t性别%c\t",s->xuehao,s->name,s->sex);
for(i=0;i<3;i++)
{
printf("%d\t",s->score[i]);
}
printf("总分%d",s->sum);
}
void Shuchu(STUDENT stu[],int n)//输出所有学生的体育成绩信息
{
int i,j;
puts("学号\t\t姓名\t性别\t跳远\t握力\t跑步\t总分\t平均分");
for(i=0;i<n;i++)
{
printf("%s\t%s\t%c\t",
stu[i].xuehao,
stu[i].name,
stu[i].sex);
for(j=0;j<3;j++)
{
printf("%d\t",stu[i].score[j]);
}
printf("%d\t%.2lf\t",stu[i].sum,
stu[i].aver);
printf("\n");
}
}
void Tongji(STUDENT stu[],int n,int k)//按某门课对所有学生的体育成绩评价
{
int i;
int a=0,b=0,c=0,d=0,e=0;
for(i=0;i<n;i++)
{
if((stu[i].score[k]>=90)&&(stu[i].score[k]<=100))
a++;
else if((stu[i].score[k]>=80)&&(stu[i].score[k]<90))
b++;
else if((stu[i].score[k]>=70)&&(stu[i].score[k]<80))
c++;
else if((stu[i].score[k]>=60)&&(stu[i].score[k]<70))
d++;
else
e++;
}
printf("测评结果如下:\n");
printf("该科优秀人数:%d\n",a);
printf("该科良好人数:%d\n",b);
printf("该科中等人数:%d\n",c);
printf("该科及格人数:%d\n",d);
printf("该科不及格人数:%d\n",e);
}
void Zongping(STUDENT stu[],int n)//按总成绩进行评价
{
int i;
int a=0,b=0,c=0,d=0,e=0;
for(i=0;i<n;i++)
{
if((stu[i].sum>=270)&&(stu[i].sum<=300))
a++;
else if((stu[i].sum>=240)&&(stu[i].sum<270))
b++;
else if((stu[i].sum>=210)&&(stu[i].sum<240))
c++;
else if((stu[i].sum>=180)&&(stu[i].sum<210))
d++;
else
e++;
}
printf("测评结果如下:\n");
printf("优秀人数:%d\n",a);
printf("良好人数:%d\n",b);
printf("中等人数:%d\n",c);
printf("及格人数:%d\n",d);
printf("不及格人数:%d\n",e);
}
//主函数
数
void main()
{
STUDENT stu[40];
char stu_no[20];
int n,i;
int choice1,choice2,choice3,course_no;
Menu();
printf("请输入你要输入的学生的人数:\n");
scanf("%d",&n);
printf("请输入每个学生的相关信息:\n");
Menu0();
getchar();
Shuru(stu,n);
Xieru(stu,n);
Sum(stu,n);
Average(stu,n);
system("cls");
printf("可以按下面步骤可以对学生体育成绩进行处理和查询:\n");
Menu();
while(12)
{
scanf("%d",&choice1);
switch(choice1)
{
case 1:
system("cls");
Menu1();
while(8)
{
scanf("%d",&choice2);
switch(choice2)
{
case 1:
Sum(stu,n);
getchar();getch();
system("cls");
Menu1();
break;
case 2:
Average(stu,n);
getchar();getch();
system("cls");
Menu1();
break;
case 3:
Paixu(stu,n);
getchar();getch();
system("cls");
Menu1();
break;
case 4:
system("cls");
Menu();
break;
}
if(choice2==4)
break;
}break;
case 2:
system("cls");
Menu2();
while(8)
{
scanf("%d",&choice2);
switch(choice2)
{
case 1:
printf("请输入学科编号");
scanf("%d",&course_no);
printf("本科平均成绩为:%.2lf\n",Ave_course(stu,course_no,n));
getchar();getch();
system("cls");
Menu2();
break;
case 2:
printf("请输入学生的学号");
getchar();
scanf("%s",stu_no);
for(i=0;i<n;i++)
if(strcmp(stu[i].xuehao,stu_no)==0)
{Dis_course(&stu[i]);break;}
printf("\n该生平均成绩为:%.2f\n",Ave_stu(stu,stu_no,n));
getchar();getch();
system("cls");
Menu2();
break;
case 3:
system("cls");
getchar();
Menu();
break;
}
if(choice2==3) break;
}break;
case 3:
system("cls");
Menu3();
while(8)
{
scanf("%d",&choice3);
switch(choice3)
{
case 0:
Tongji(stu,n,choice3);
getchar();getch();
system("cls");
Menu3();
break;
case 1:
Tongji(stu,n,choice3);
getchar();getch();
system("cls");
Menu3();
break;
case 2:
Tongji(stu,n,choice3);
getchar();getch();
system("cls");
Menu3();
break;
case 3:
Zongping(stu,n);
getchar();getch();
system("cls");
Menu3();
break;
case 4:
system("cls");
getchar();
Menu();
break;
}
}break;
case 4:
printf("信息如下:\n");
Shuchu(stu,n);
getchar();getch();
system("cls");
Menu();
break;
case 5:
puts("\t\t---欢迎下次光临!---");
exit(0);
}
}
}