📄 c pro5.cpp
字号:
scanf("%c",&b);
}
if(b=='y')
search_grade();
else if (b=='n')
menu_jiansuo();
return ;
}
void search_another() //按其他信息查找
{
int a;
printf("\t\t 1------- 按性别查找;\n");
printf("\t\t 2------- 按地区查找;\n");
printf("\t\t 3------- 按课程编号查找;\n");
printf("\t\t 4------- 按成绩查找;\n");
printf("\t\t 5------- 返回上级菜单;\n");
scanf("%d",&a);
printf("\n\t 请输入您的选择:");
switch(a)
{
case 1:
search_sex();
break;
case 2:
search_area();
break;
case 3:
search_kecheng();
break;
case 4:
search_score();
break;
case 5:
menu_jiansuo();
break;
default :
printf("输入错误!请重新输入!\n");
search_another();
}
return ;
}
void search_sex() //按性别查找
{
char a,b='q',c='q';
int i,j,n=0;
scanf("%c",&a);
printf("请输入性别(男m/女f)");
scanf("%c",&a);
for(i=1;i<=M-1;i++)
{
if(stu0[i].sex==a)
n=1;
}
if(n=1)
{
printf("\t符合条件的学生有:\n");
for(i=1;i<=M-1;i++)
{
if(stu0[i].sex==a)
{
printf("\t学号:%d 姓名:%s 班级:%s 性别:%c 地区:%s 通信地址:%s\n",stu0[i].number,stu0[i].name,stu0[i].grade,stu0[i].sex,stu0[i].area,stu0[i].adress);
for(j=1;j<=N-1;j++)
{
if(stu0[i].mark[j].kecheng!=200)
n++;
}
if(n!=0)
{
printf("\t该学生的课程编号及成绩为:\n");
for(j=1;j<=N-1;j++)
{
if(stu0[i].mark[j].kecheng!=200)
printf("\t课程编号为%d,成绩为%d\n",stu0[i].mark[j].kecheng,stu0[i].mark[j].score);
}
}
else
printf("该学生还未输入课程编号及成绩!\n");
}
}
while((c!='y')&&(c!='n'))
{ scanf("%c",&c);
printf("是否继续按性别查找?(y/n)");
scanf("%c",&c);
}
if(c=='y')
search_sex();
else
{
while((b!='y')&&(b!='n'))
{ scanf("%c",&b);
printf("是否返回上级菜单?(y/n)");
scanf("%c",&b);
}
if(b=='y')
menu_jiansuo();
}
}
else
{
printf("没有符合条件的学生!\n");
while((c!='y')&&(c!='n'))
{ scanf("%c",&c);
printf("是否继续按性别查找?(y/n)");
scanf("%c",&c);
}
if(c=='y')
search_sex();
else
{
while((b!='y')&&(b!='n'))
{
printf("是否返回上级菜单?(y/n)");
scanf("%c",&b);
}
if(b=='y')
menu_jiansuo();
}
}
return ;
}
void search_area() //按地区查找
{
char a[20],c='q',b='q';
int i,j,n=0;
printf("请输入地区:");
getchar();
gets(a);
for(i=1;i<=M-1;i++)
{
if(strcmp(stu0[i].area,a)==0)
n=1;
}
if(n=1)
{
printf("\t符合条件的学生有:\n");
for(i=1;i<=M-1;i++)
{
if(strcmp(stu0[i].area,a)==0)
{
printf("\t学号:%d 姓名:%s 班级:%s 性别:%c 地区:%s 通信地址:%s\n",stu0[i].number,stu0[i].name,stu0[i].grade,stu0[i].sex,stu0[i].area,stu0[i].adress);
for(j=1;j<=N-1;j++)
{
if(stu0[i].mark[j].kecheng!=200)
n++;
}
if(n!=0)
{
printf("\t该学生的课程编号及成绩为:\n");
for(j=1;j<=N-1;j++)
{
if(stu0[i].mark[j].kecheng!=200)
printf("\t课程编号为%d,成绩为%d\n",stu0[i].mark[j].kecheng,stu0[i].mark[j].score);
}
}
else
printf("该学生还未输入课程编号及成绩!\n");
}
}
while((c!='y')&&(c!='n'))
{
printf("是否继续按地区查找?(y/n)");
scanf("%c",&c);
}
if(c=='y')
search_area();
else
{
while((b!='y')&&(b!='n'))
{ scanf("%c",&b);
printf("是否返回上级菜单?(y/n)\n");
scanf("%c",&b);
}
if(b=='y')
menu_jiansuo();
}
}
else
{
printf("没有符合条件的学生!\n");
while((c!='y')&&(c!='n'))
{
printf("是否继续按地区查找?\n");
scanf("%c",&c);
}
if(c=='y')
search_area();
else
{
while((b!='y')&&(b!='n'))
{ scanf("%c",&b);
printf("是否返回上级菜单?(y/n)\n");
scanf("%c",&b);
}
if(b=='y')
menu_jiansuo();
}
}
return ;
}
void search_kecheng() //按课程查找
{
char b='q',c='q';
int a,i,j,n=0;
printf("请输入课程编号(1-%d):",N-1);
scanf("%d",&a);
for(i=1;i<=M-1;i++)
{
for(j=1;j<=N-1;j++)
{
if(stu0[i].mark[j].kecheng==a)
n=1;
}
}
if(n=1)
{
printf("\t符合条件的学生有:\n");
for(i=1;i<=M-1;i++)
{
for(j=1;j<=N-1;j++)
{
if(stu0[i].mark[j].kecheng==a)
{
printf("\t学号:%d 姓名%s 性别%c 地区%s 通信地址%s",stu0[i].number,stu0[i].name,stu0[i].sex,stu0[i].area,stu0[i].adress);
printf("\n\t该学生的课程编号及成绩为:\n");
for(j=1;j<=N-1;j++)
{
if(stu0[i].mark[j].kecheng==a)
printf("\t课程编号为%d,成绩为%d\n",stu0[i].mark[j].kecheng,stu0[i].mark[j].score);
}
}
}
}
while((c!='y')&&(c!='n'))
{ scanf("%c",&c);
printf("是否继续按课程编号查找?(y/n)");
scanf("%c",&c);
}
if(c=='y')
search_kecheng();
else
{
while((b!='y')&&(b!='n'))
{ scanf("%c",&b);
printf("是否返回上级菜单?(y/n)");
scanf("%c",&b);
}
if(b=='y')
menu_jiansuo();
}
}
else
{
printf("没有符合条件的学生!\n");
while((c!='y')&&(c!='n'))
{ scanf("%c",&c);
printf("是否继续按课程编号查找?(y/n)");
scanf("%c",&c);
}
if(c=='y')
search_kecheng();
else
{
while((b!='y')&&(b!='n'))
{
printf("是否返回上级菜单?(y/n)");
scanf("%c",&b);
}
if(b=='y')
menu_jiansuo();
}
}
return ;
}
void search_score() //按成绩查找
{
int a=0,i,j,q,n=0,m[N];
char b='q',c='q';
for(i=0;i<=N-1;i++)
m[i]=0;
printf("请输入成绩\n");
scanf("%d",&a);
for(i=1;i<=M-1;i++)
{
for(j=1;j<=N;j++)
{
if(stu0[i].mark[j].score==a)
n++;
}
}
if(n!=0)
{
printf("符合条件的学生为:\n");
for(i=1;i<=M-1;i++)
{
for(j=1;j<=N-1;j++)
{
if(stu0[i].mark[j].score==a)
{
printf("学号:%d 姓名%s 性别%c 地区%s 通信地址%s",stu0[i].number,stu0[i].name,stu0[i].sex,stu0[i].area,stu0[i].adress);
m[j]=stu0[i].mark[j].kecheng;
}
}
}
while((b!='y')&&(b!='n'))
{ scanf("%c",&b);
printf("\n是否继续按成绩查找?(y/n)\n");
scanf("%c",&b);
}
if(b=='y')
search_score();
else
menu_jiansuo();
}
else
{
printf("没有找到有该成绩的学生!!\n");
while((c!='y')&&(c!='n'))
{ scanf("%c",&c);
printf("是否继续按成绩查找?(y/n)");
scanf("%c",&c);
}
if(b=='y')
search_score();
else
menu_jiansuo();
}
return ;
}
void menu_tongji() //统计
{
int a=0;
printf("\n\t 信息统计\n");
printf("\n\t 1------- 成绩统计\n");
printf("\n\t 2------- 其他信息统计\n");
printf("\n\t 3------- 返回上级菜单\n");
printf("\n\t 请输入您的选择:");
scanf("%d",&a);
switch(a)
{
case 1:
tongji_score();
break;
case 2:
tongji_other();
break;
case 3:
menu();
break;
default :
printf("输入错误!请重新输入!\n");
menu_tongji();
}
}
void tongji_score() //成绩统计
{
int a=0;
printf("\n\t 请选择统计的依据:\n");
printf("\n\t 1------- 班级\n");
printf("\n\t 2------- 课程\n");
printf("\n\t 3------- 学号\n");
printf("\n\t 4------- 返回上级菜单\n");
scanf("%d",&a);
printf("\n\t 请输入您的选择:");
switch(a)
{
case 1:
tongji_score_grade();
break;
case 2:
tongji_score_kecheng();
break;
case 3:
tongji_score_number();
break;
case 4:
menu_tongji();
default:
printf("您的输入错误!请重新输入!\n");
tongji_score();
}
return ;
}
void tongji_score_grade() //按班级成绩统计
{
int a=0,b=0,f=0,e=0,i,j;
char c[16],g='q';
gets(c);
printf("\n\t 请输入班级名称:");
gets(c);
for(i=1;i<=M-1;i++)
{
if(strcmp(c,stu0[i].grade)==0)
f++;
}
if(f!=0)
{
printf("\n\t 请输入课程编码:");
scanf("%d",&a);
for(i=1;i<=M-1;i++)
{
if(strcmp(c,stu0[i].grade)==0)
{
b++;
for(j=1;j<=N-1;j++)
{
if(stu0[i].mark[j].kecheng==a)
e=(e+stu0[i].mark[j].score);
}
}
}
if(b!=0)
printf("该班级此门课程的总成绩为%d,平均成绩为%d\n",e,e/b);
else
printf("该班级没有学生选择此课程代码的课程");
while((g!='y')&&(g!='n'))
{
scanf("%c",&g);
printf("是否继续按班级统计成绩?(y/n)");
scanf("%c",&g);
}
if(g=='y')
tongji_score_grade();
else
menu_tongji();
}
else
{
printf("查无此班!\n");
while((g!='y')&&(g!='n'))
{ scanf("%c",&g);
printf("是否重新输入?(y/n)\n");
scanf("%c",&g);
}
if(g=='y')
tongji_score_grade();
else
menu_tongji();
}
return ;
}
void tongji_score_kecheng() //按课程成绩统计
{
int a=0,b=0,c=0,i,j;
char d='q';
printf("\n\t请输入课程编号");
scanf("%d",&a);
for(i=1;i<=M-1;i++)
{
for(j=1;j<=N-1;j++)
{
if(stu0[i].mark[j].kecheng==a)
{
b++;
c=(c+stu0[i].mark[j].score);
}
}
}
if(b!=0)
{
printf("\n共有%d位学生选择此门课程,总成绩为%d,平均成绩为%d\n",b,c,c/b);
while((d!='y')&&(d!='n'))
{ scanf("%c",&d);
printf("\n\t 是否继续按课程统计?(y/n)");
scanf("%c",&d);
}
if(d=='y')
tongji_score_kecheng();
else
menu_tongji();
}
else
{
printf("\n\t 查无此课!\n");
while((d!='y')&&(d!='n'))
{ scanf("%c",&d);
printf("\n\t 是否继续按课程统计?(y/n)");
scanf("%c",&d);
}
if(d=='y')
tongji_score_kecheng();
else
menu_tongji();
}
return ;
}
void tongji_score_number() //按个人统计成绩
{
int a=0,c=0,b=0,i,j;
char e='q';
printf("\n\t 请输入学号:");
scanf("%d",&c);
for(i=1;i<=M-1;i++)
{
if(stu0[i].number==c)
{
for(j=1;j<=N-1;j++)
{
a++;
b=b+(stu0[i].mark[j].score);
}
}
}
if(a!=0)
{
printf("\n 该学生共选了%d门课,总成绩为%d,平均成绩为%d\n",a,b,b/a);
while((e!='y')&&(e!='n'))
{ scanf("%c",&e);
printf("是否按学号继续统计?(y/n)");
scanf("%c",&e);
}
if(e=='y')
tongji_score_number();
else
menu_tongji();
}
else
{
printf("\n\t 该学生没有选课!\n");
while((e!='y')&&(e!='n'))
{ scanf("%c",&e);
printf("是否按学号继续统计?(y/n)");
scanf("%c",&e);
}
if(e=='y')
tongji_score_number();
else
menu_tongji();
}
return ;
}
void tongji_other() //其他信息统计
{
int a=0;
char b='q';
printf("\n\t 1------- 按性别统计人数;\n");
printf("\n\t 2------- 按地区统计人数;\n");
printf("\n\t 3------- 按所选课程统计人数;\n");
printf("\n\t 4------- 返回上级菜单;\n");
printf("\n\t 请输入您的选择:");
scanf("%d",&a);
switch(a)
{
case 1:
tongji_other_sex();
break;
case 2:
tongji_other_area();
break;
case 3:
tongji_other_kecheng();
break;
case 4:
menu_tongji();
break;
default:
while((b!='y')&&(b!='n'))
{
printf("\n\t 输入错误!是否重新输入?(y/n)\n");
scanf("%c",&b);
}
if(b=='y')
tongji_other();
else
menu_tongji();
}
return ;
}
void tongji_other_sex() //按性别统计人数
{
int a=0,b=0,i;
char c='q';
for(i=1;i<=M-1;i++)
{
if(stu0[i].sex=='m')
a++;
else if(stu0[i].sex=='f')
b++;
}
if(a!=0)
printf("\n所有学生中,男生有%d位,女生有%d位\n",a,b);
else if(b!=0)
printf("\n所有学生中,男生有%d位,女生有%d位\n",a,b);
while((c!='y')&&(c!='n'))
{ scanf("%c",&c);
printf("\n\n是否继续按照性别统计?(y/n)\n");
scanf("%c",&c);
}
if(c=='y')
tongji_other_sex();
else
tongji_other();
return ;
}
void tongji_other_area() //按地区统计人数
{
int a=0,i;
char b[20],c='q';
gets(b);
printf("\n\t 请输入地区名:\n");
gets(b);
for(i=1;i<=M-1;i++)
{
if(strcmp(stu0[i].area,b)==0)
a++;
}
printf("\n所有学生中,位于%s地区的学生有%d位",b,a);
while((c!='y')&&(c!='n'))
{
printf("\n\n是否继续按照地区统计?(y/n)\n");
scanf("%c",&c);
}
if(c=='y')
tongji_other_area();
else
tongji_other();
return ;
}
void tongji_other_kecheng() //按所选课程统计人数
{
int a=0,b=0,i,j;
char c='q';
printf("\n\n请输入课程编码:\n");
scanf("%d",&a);
for(i=1;i<=M-1;i++)
{
for(j=1;j<=N-1;j++)
{
if(stu0[i].mark[j].kecheng==a)
b++;
}
}
printf("\n所有学生中,选课程编码为%d的学生有%d位\n",a,b);
while((c!='y')&&(c!='n'))
{ scanf("%c",&c);
printf("\n是否继续按照课程编码统计?(y/n)\n");
scanf("%c",&c);
}
if(c=='y')
tongji_other_kecheng();
else
tongji_other();
return ;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -