You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cdxgf/课程设计源代码成绩管理系统_计算机类1804_1840...

698 lines
18 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#include"stdio.h" //标准的输入输出函数文件头部说明
#include"math.h" // 数学函数头部说明
#include"string.h"
#include"stdlib.h" //通过该函数头部里的函数,改变控制台的背景和颜色
#include"windows.h" //头文件声明,下文用到了改变控制台的宽度和高度
#define M 100
struct student
{
char name[20]; //姓名
char num[20]; //学号
int sex; // 性别
char nl[20]; //年龄
char term[20]; // 学期
char id[20];// 身份证号
char native[20]; //籍贯
char tel[20]; //电话
int major; //专业
int math,yy,sz,js,cyy,pe;//数学英语思政军事c语言体育
int fail; //不及格
int pass; //及格
int bj; //班级
double sum; // 总分
double aver; // 平均
double passl;
double max;
double min;
int failer;
};
void input(struct student stu[M]); //输入函数
void output(struct student stu[M]); //各类用户自定义函数的声明
void lookfor(struct student stu[M]); //查询函数
void modify(struct student stu[M]); //修改函数
void order(struct student stu[M]); //排序函数
void delete_student(struct student stu[M]); //删除函数
void xuehao(struct student stu[M]);
void xingming(struct student stu[M]);
void xueqi(struct student stu[M]);
void analyse(struct student stu[M]);
void fsd(struct student stu[M]);
void fileread(struct student stu[M]);
void filewrite(struct student stu[M]);
int count=0;
struct student t;
void xingming(struct student stu[M])
{
}
int main()
{
int choice=0,sum=0;
struct student stu[M];
system("mode con:cols=400 lines=30000"); //调节控制台的宽度和高度
system("color 0E"); //调节控制台的背景和字体颜色
printf("\t\t\t\t\t\t\t\t\3\3\3\3\3\3\3\3\3\3\3\3\3欢迎你使用学生成绩管理系统\3\3\3\3\3\3\3\3\3\3\n");
while(choice!=10)
{
printf("\t\t\t\t\t\t\t\t-------------------------------------------------\n");
printf("\t\t\t\t\t\t\t\t+ 学生信息管理系统 +\n");
printf("\t\t\t\t\t\t\t\t-------------------------------------------------\n");
printf("\t\t\t\t\t\t\t\t\t\t ***************\n");
printf("\t\t\t\t\t\t\t\t\t\t 1、添加学生信息\n");
printf("\t\t\t\t\t\t\t\t\t\t 2、浏览学生信息\n");
printf("\t\t\t\t\t\t\t\t\t\t 3、查询学生信息\n");
printf("\t\t\t\t\t\t\t\t\t\t 4、修改学生信息\n");
printf("\t\t\t\t\t\t\t\t\t\t 5、删除学生信息\n");
printf("\t\t\t\t\t\t\t\t\t\t 6、排列学生信息\n");
printf("\t\t\t\t\t\t\t\t\t\t 7、查看分析报告\n");
printf("\t\t\t\t\t\t\t\t\t\t 8、读取文件学生\n"); //从文件读取
printf("\t\t\t\t\t\t\t\t\t\t 9、保存到文件\n"); //保存到文件
printf("\t\t\t\t\t\t\t\t\t\t 10、退出系统\n");
printf("\t\t\t\t\t\t\t\t\t\t ***************\n");
printf("请输入你的选择\n");
scanf("%d",&choice);
fflush(stdin); //清除输入缓冲区
if(choice<1||choice>10)
{
sum++;
if(sum==3)
{
printf("输入错误次数过多,程序将重新开始\n");
system("cls"); //清屏语句
sum=0;
}
}
switch(choice)
{
case 1:input(stu);break;
case 2:output(stu);break;
case 3:lookfor(stu);break;
case 4:modify(stu);break;
case 5:delete_student(stu);break;
case 6:order(stu);break;
case 7:analyse(stu);break;
case 8:fileread(stu);break;
case 9:filewrite(stu);;break;
case 10:printf("感谢你使用学生信息管理系统,请关掉程序!!!\n");system("pause");break;
default:printf("无效的选择!!!请重新输入!!!\n");break;
}
}
printf("the program is over!!!\n");
return 0;
}
void input(struct student stu[M]) //自定义输入函数
{
int len,size,chang; //学生号长度,身份证号长度,手机号码长度
system("cls");
printf("请添加要输入学生的成绩\n");
do {
printf("请输入由11位数字组成的学生学号\n"); //do-while循环应用提示输入位数为一确定数
scanf("%s",&stu[count].num);
len=strlen(stu[count].num);
}while(len!=11);
printf("请输入同学的姓名\n");
scanf("%s",&stu[count].name);
printf("请输入同学的年龄\n");
scanf("%s",&stu[count].nl);
printf("请输入同学的性别:1、男 2、女\n");
scanf("%d",&stu[count].sex);
printf("请输入同学的学期: 如:大一上 、大一下\n");
scanf("%s",&stu[count].term);
do {
printf("请输入由18位数字组成的学生身份证号\n"); //同上
scanf("%s",&stu[count].id);
size=strlen(stu[count].id);
}while(size!=18);
printf("请输入学生的籍贯\n");
scanf("%s",&stu[count].native);
do{
printf("请输入学生11位的手机号码\n");
scanf("%s",&stu[count].tel);
chang=strlen(stu[count].tel);
}while(chang!=11);
printf("请输入所需要的专业代号1、计算机科学 2、软件工程 3、网络工程 4、物联网\n"); //采用如此方法解决了专业输入难问题
scanf("%d",&stu[count].major);
printf("请输入对应的学生班级号码: 如:1801 、1802 \n");
scanf("%d",&stu[count].bj);
do {
printf("请依次输入不大于100的学生各科成绩\n");
scanf("%d%d%d%d%d%d",&stu[count].math,&stu[count].yy,&stu[count].sz,&stu[count].js,&stu[count].cyy,&stu[count].pe);
}while(stu[count].math>100||stu[count].yy>100||stu[count].sz>100||stu[count].js>100||stu[count].cyy>100||stu[count].pe>100); //同上同上
stu[count].aver=(stu[count].math+stu[count].yy+stu[count].sz+stu[count].js+stu[count].cyy+stu[count].pe)/6.0; //求出平均值
stu[count].sum=(stu[count].math+stu[count].yy+stu[count].sz+stu[count].js+stu[count].cyy+stu[count].pe);
count++;
}
void output(struct student stu[M]) //自定义输出函数
{
int j;
system("cls");
if (count==0)
{
printf("当前已存学生信息为0个\n");
return;
}
else
{
printf("学号 \t姓名\t性别\t年龄\t学期\t\t身份证号\t籍贯\t\t手机号 \t\t专业\t\t班级\t数学\t英语\t思政\t军事\tC语言\t体育\t总分\t平均分\n\n");
for (j=0;j<count;j++){ //for循环控制输出的个数
printf("%s\t",stu[j].num);
printf("%s\t",stu[j].name);
if(stu[j].sex==1)
printf("");
if(stu[j].sex==2)
printf("");
printf("\t%s\t",stu[j].nl);
printf("%s\t",stu[j].term) ;
printf("%s\t",stu[j].id);
printf("%s\t\t",stu[j].native);
printf("%s\t",stu[j].tel);
if (stu[j].major==1)
printf("计算机科学\t");
else if (stu[j].major==2)
printf("软件工程\t");
else if(stu[j].major==3)
printf("网络工程\t");
else
printf("物联网\t");
printf("%d\t",stu[j].bj) ;
printf("%d\t",stu[j].math);
printf("%d\t",stu[j].yy);
printf("%d\t",stu[j].sz);
printf("%d\t",stu[j].js);
printf("%d\t",stu[j].cyy);
printf("%d\t",stu[j].pe);
printf("%.1lf\t",stu[j].sum);
printf("%.1lf\t\n",stu[j].aver);
}
}
}
void lookfor(struct student stu[M])
{
int j,flag=0,choice;
char xh[25],xm[25];
system("cls");
if(count==0)
{
printf("当前无任何信息");
return;
}
else
{
printf("1、学号查询(推荐) 2、姓名查询\n");
scanf("%d",&choice);
fflush(stdin);
if(choice==1)
{
printf("请输入需查询学号:\n");
scanf("%s",&xh) ;
fflush(stdin);
for (j=0;j<count;j++)
{
if (strcmp(stu[j].num,xh)==0) //通过字符函数对已存入的学生信息进行比较,找出要查看的学生
{
printf("\t学号\t\t姓名\t性别\t年龄\t学期\t\t身份证号\t籍贯\t\t手机号\t\t专业\t\t班级\t数学\t英语\t思政\t军事\tC语言\t体育\t总分\t平均分\n\n");
printf(" %s\t",stu[j].num);
printf("%s\t",stu[j].name);
if(stu[j].sex==1)
printf("");
if(stu[j].sex==2)
printf("");
printf("\t%s\t",stu[j].nl);
printf("%s\t",stu[j].term) ;
printf("%s\t",stu[j].id);
printf("%s\t\t",stu[j].native);
printf("%s\t",stu[j].tel);
if (stu[j].major==1)
printf("计算机科学\t");
else if (stu[j].major==2)
printf("软件工程\t");
else if(stu[j].major==3)
printf("网络工程\t");
else
printf("物联网\t");
printf("%d\t",stu[j].bj) ;
printf("%d\t",stu[j].math);
printf("%d\t",stu[j].yy);
printf("%d\t",stu[j].sz);
printf("%d\t",stu[j].js);
printf("%d\t",stu[j].cyy);
printf("%d\t",stu[j].pe);
printf("%.1lf\t",stu[j].sum);
printf("%.1lf\t",stu[j].aver);
}
}
}
if(choice==2)
{
printf("请输入需查询姓名:\n");
scanf("%s",&xm) ;
fflush(stdin);
for (j=0;j<count;j++)
{
if (strcmp(stu[j].name,xm)==0) //通过字符函数对已存入的学生信息进行比较,找出要查看的学生
{
printf("\t学号\t\t姓名\t性别\t年龄\t学期\t\t身份证号\t籍贯\t\t手机号\t\t专业\t\t班级\t数学\t英语\t思政\t军事\tC语言\t体育\t总分\t平均分\n\n");
printf(" %s\t",stu[j].num);
printf("%s\t",stu[j].name);
if(stu[j].sex==1)
printf("");
if(stu[j].sex==2)
printf("");
printf("\t%s\t",stu[j].nl);
printf("%s\t",stu[j].term) ;
printf("%s\t",stu[j].id);
printf("%s\t\t",stu[j].native);
printf("%s\t",stu[j].tel);
if (stu[j].major==1)
printf("计算机科学\t");
else if (stu[j].major==2)
printf("软件工程\t");
else if(stu[j].major==3)
printf("网络工程\t");
else
printf("物联网\t");
printf("%d\t",stu[j].bj) ;
printf("%d\t",stu[j].math);
printf("%d\t",stu[j].yy);
printf("%d\t",stu[j].sz);
printf("%d\t",stu[j].js);
printf("%d\t",stu[j].cyy);
printf("%d\t",stu[j].pe);
printf("%.1lf\t",stu[j].sum);
printf("%.1lf\t",stu[j].aver);
}
}
}
}
}
void modify(struct student stu[M]) //自定义修改函数
{
int i,j,flag=0,course,choice,key;
char xh[20];
system("cls");
if (count==0)
{
printf("当前已存学生信息为0个,无法修改!!!\n");
return;
}
else
{
printf("你确定要修改学生的信息吗???确定请按1不确定请按2\n");
scanf("%d",&key);
if(key==1)
{
printf("请输入你想要修改的同学学号\n");
scanf("%s",&xh);
fflush(stdin);
for (j=0;j<count;j++)
if (strcmp(stu[j].num,xh)==0) //同上
{
printf("请输入你要修改的学生信息:1、姓名\n2、性别\n3、年龄\n4、学期\n5、身份证\n6、手机号\n7、专业\n8、班级\n9、学科成绩\n");
scanf("%d",&choice);
switch(choice)
{
case 1:printf("请输入你想要修改的学生姓名\n");
scanf("%s",&stu[j].name);break;
case 2:printf("请输入你想要修改后的学生性别:1、男 2、女\n");
scanf("%d",&stu[j].sex);break;
case 3:printf("请输入你想要修改后的学生年龄\n");
scanf("%s",&stu[j].nl);break;
case 4:printf("请输入你想要修改后的学生学期\n");
scanf("%s",&stu[j].term);break;
case 5:printf("请输入你想要修改后的学生身份证\n");
scanf("%s",&stu[j].id);break;
case 6:printf("请输入你想要修改后的同学手机号\n");
scanf("%s",&stu[j].tel);break;
case 7:printf("请输入你想要修改后的学生专业1、计算机科学 2、软件工程 3、网络工程 4、物联网\n");
scanf("%d",&stu[j].major);break;
case 8: printf("请输入你想要修改的同学班级\n");
scanf("%s",&stu[j].bj);break;
case 9: {printf("选择课程: 1、数学 2、英语 3、思政 4、军事 5、c语言 6、体育\n");
scanf("%d",&course);
printf("请输入你想要修改后的学生成绩\n");
switch(course)
{
case 1:scanf("%d",&stu[j].math);break;
case 2:scanf("%d",&stu[j].yy);break; //switch控制语句
case 3:scanf("%d",&stu[j].sz);break;
case 4:scanf("%d",&stu[j].js);break;
case 5:scanf("%d",&stu[j].cyy);break;
case 6:scanf("%d",&stu[j].pe);break;
default:printf("无效的选择!!!请重新输入!!!\n");break;
}
break;}
}
}
}
else return;
}
}
void delete_student(struct student stu[M]) //自定义删除函数
{
int choice;
system("cls");
if (count==0)
{
printf("当前已存学生信息为0个,无法删除!!!\n");
return;
}
else
{
printf("请选择你所要删除的方式:1、学号 2、姓名(如果你的姓名是中文,那么无法删除,请选择学号删除) 3、取消\n");
scanf("%d",&choice);
switch(choice) //switch语句对用户要删除的方式进行选择
{
case 3:return;break;
case 2:xingming(stu);break; //用户自定义函数之间的套用
case 1:xuehao(stu);break;
default:printf("无效的选择!!!请重新输入!!!\n");break;
}
}
}
void order(struct student stu[M]) //排序函数的定义
{
int j,k,choice,m;
system("cls");
printf("请输入你想要进行排序的方式(所有排序的方式均是降序)!!!\n");
printf("1、数学 2、英语 3、思政 4、军事 5、C语言 6、体育 7、平均分\n");
scanf("%d",&choice);
switch (choice)
{
case 1:for (j=0;j<count;j++)
{ m=j;
for (k=j+1;k<count;k++)
if (stu[k].math>stu[m].math)
{t=stu[k];stu[k]=stu[m];stu[m]=t;}
};break;
case 2:for (j=0;j<count;j++)
{ m=j;
for (k=j+1;k<count;k++)
if (stu[k].yy>stu[m].yy)
{stu[k]=stu[m];} //整个为排序部分,采用了所谓的选择排序的方法
};break;
case 3:for (j=0;j<count;j++)
{ m=j;
for (k=j+1;k<count;k++)
if (stu[k].sz>stu[m].sz)
{t=stu[k];stu[k]=stu[m];stu[m]=t;}
};break;
case 4:for (j=0;j<count;j++)
{ m=j;
for (k=j+1;k<count;k++)
if (stu[k].js>stu[m].js)
{t=stu[k];stu[k]=stu[m];stu[m]=t;}
};break;
case 5:for (j=0;j<count;j++)
{ m=j;
for (k=j+1;k<count;k++)
if (stu[k].cyy>stu[m].cyy)
{t=stu[k];stu[k]=stu[m];stu[m]=t;}
};break;
case 6:for (j=0;j<count;j++)
{ m=j;
for (k=j+1;k<count;k++)
if (stu[k].pe>stu[m].pe)
{t=stu[k];stu[k]=stu[m];stu[m]=t;}
};break;
case 7:for (j=0;j<count;j++)
{ m=j;
for (k=j+1;k<count;k++)
if (stu[k].aver>stu[m].aver)
{t=stu[k];stu[k]=stu[m];stu[m]=t;} //强制类型转换符号只能用于有操作数,根据赋值运算中的类型转换问题可知
};break;
default:printf("无效的选择!!!请重新输入!!!\n");break;
}
}
void xuehao(struct student stu[M]) //自定义通过学号方式删除学生信息函数
{
int j,k=count;
char xh[25];
system("cls");
printf("请输入你想要删除的同学学号\n");
scanf("%s",xh);
fflush(stdin);
for (j=0;j<count;j++)
{ if (strcmp(stu[j].num,xh)==0)
{
for (j;j<count;j++)
stu[j]=stu[j+1];
count--;
if (count<k)
printf("你已经删除成功\n");
}
}
if (j==count)
printf("抱歉!!!没有你所需要删除的学生信息!*_*!\n");
}
void filewrite(struct student stu[M]) //写入文件函数定义
{
int j=0;
char c;
FILE *fp;
printf("请选择是否要存入已输入的学生信息:'y'还是'n'???\n");
scanf("%c",&c);
fflush(stdin);
while(c!='y'&&c!='n'){
if (c!='y'&&c!='n')
printf("输入错误,请重新输入\n");
printf("以下操作将会覆盖已存储的数据,确定请输入'y'或'n'???\n");
scanf("%c",&c);
fflush(stdin);
}
if (c=='y')
{
if((fp=fopen("stu.dat","wb"))==NULL)
{
printf("文件打开错误,程序无法进行\n");
exit(0);
}
for(j=0;j<count;j++)
{fwrite(&stu[j],sizeof(struct student),1,fp);
}
fclose(fp);
if(count==0)
printf("没有文件,无法保存\n");
else
printf("数据存储完毕\n");
}
else
return;
}
void fileread(struct student stu[M]) //读取文件信息函数定义
{
int j=0;
char c;
FILE *fp;
system("cls");
printf("请选择是否要存入已输入的学生信息:'y'还是'n'???\n");
scanf("%c",&c);
fflush(stdin);
while(c!='y'&&c!='n'){
if (c!='y'&&c!='n')
printf("输入错误,请重新输入\n");
printf("以下操作将会覆盖已存储的数据,确定请输入'y'或'n'???\n");
scanf("%c",&c);
fflush(stdin);
}
if (c=='y')
{
if((fp=fopen("stu.dat","rb"))==NULL)
{
printf("文件打开错误,程序无法进行\n");
exit(0);
}
fread(&stu[j],sizeof(struct student),1,fp);
count=0;
count++;
j++;
while(fread(&stu[j],sizeof(struct student),1,fp))
{
j++;
count++;
}
fclose(fp);
printf("数据读取完毕!!!\n");
system("pause");
}
else
return;
}
void analyse(struct student stu[M])
{
int i,j=0,m=0,n=0,a=0,b=0,c=0;//用来计算不及格的人数的
int max1=stu[0].math,max2=stu[0].yy,max3=stu[0].sz,max4=stu[0].js,max5=stu[0].cyy,max6=stu[0].pe;
int min1=stu[0].math,min2=stu[0].yy,min3=stu[0].sz,min4=stu[0].js,min5=stu[0].cyy,min6=stu[0].pe;
double q,w,e,r,t,y;//用来计算及格率的
double SUM1=0,SUM2=0,SUM3=0,SUM4=0,SUM5=0,SUM6=0;
double average1,average2,average3,average4,average5,average6;
system("cls");
if(count==0)
{
printf("无任何数据!请先输入数据。");
return;
}
else
{ printf("\t\t\t\t本次考试总体情况\n\n");
printf(" \t数学 \t\t英语 \t\t思政 \t\t军事 \t\tc语言 \t\t体育\n\n平均分") ;
for(i=0;i<count;i++)//算各科目平均分 //math,yy,sz,js,cyy,pe
{
SUM1+=stu[i].math;
average1=SUM1/count;
if(stu[i].math>=60)
j++;
if(stu[i].math>max1)
max1=stu[i].math;
if(stu[i].math<min1)
min1=stu[i].math;
}
for(i=0;i<count;i++)
{
SUM2+=stu[i].yy;
average2=SUM2/count;
if(stu[i].yy>=60)
m++;
if(stu[i].yy>max2)
max2=stu[i].yy;
if(stu[i].yy<min2)
min2=stu[i].yy;
}
for(i=0;i<count;i++)
{
SUM3+=stu[i].sz;
average3=SUM3/count;
if(stu[i].sz>=60)
n++;
if(stu[i].sz>max3)
max3=stu[i].sz;
if(stu[i].sz<min3)
min3=stu[i].sz;
}
for(i=0;i<count;i++)
{
SUM4+=stu[i].js;
average4=SUM4/count;
if(stu[i].js>=60)
a++;
if(stu[i].js>max4)
max4=stu[i].js;
if(stu[i].js<min4)
min4=stu[i].js;
}
for(i=0;i<count;i++)
{
SUM5+=stu[i].cyy;
average5=SUM5/count;
if(stu[i].cyy>=60)
b++;
if(stu[i].cyy>max5)
max5=stu[i].cyy;
if(stu[i].cyy<min5)
min5=stu[i].cyy;
}
for(i=0;i<count;i++)
{
SUM6+=stu[i].pe;
average6=SUM6/count;
if(stu[i].pe>=60)
c++;
if(stu[i].pe>max6)
max6=stu[i].pe;
if(stu[i].pe<min6)
min6=stu[i].pe;
}
printf("\t%.1lf \t\t%.1lf \t\t%.1lf \t\t%.1lf \t\t%.1lf \t\t%.1lf\n\n",average1,average2,average3,average4,average5,average6);
printf("最高分");
printf("\t%d \t\t%d \t\t%d \t\t%d \t\t%d \t\t%d\n\n",max1,max2,max3,max4,max5,max6);
printf("最低分") ;
printf("\t%d \t\t%d \t\t%d \t\t%d \t\t%d \t\t%d\n\n",min1,min2,min3,min4,min5,min6);
printf("及格率");
q=j/count,w=m/count,e=n/count,r=a/count,t=b/count,y=c/count;
printf("\t%.2lf%% \t\t%.2lf%% \t%.2lf%% \t%.2lf%% \t%.2lf%% \t%.2lf%%\n\n",q*100,w*100,e*100,r*100,t*100,y*100);
printf("未及格");
printf("\t%d \t\t%d \t\t%d \t\t%d \t\t%d \t\t%d\n\n",count-j,count-m,count-n,count-a,count-b,count-c);
fsd(stu);
}
}
void fsd(struct student stu[M])
{ int ab=0,ac=0,ad=0,ae=0,af=0;
int A,B,C,D,E,F;
int q=0,w=0,e=0,r=0,t=0,y=0,u=0,i=0,o=0,p=0,a=0,s=0,d=0,f=0,g=0,h=0,j=0,k=0,l=0,z=0,x=0,c=0,v=0,b=0,n=0,m=0;//用来表示各分数段人数的
for(i=0;i<count;i++)
{
A=stu[i].math,B=stu[i].yy,C=stu[i].sz;
D=stu[i].js,E=stu[i].cyy,F=stu[i].pe;
switch(A/10)
{ case 9:
case 10:
q++;
break;
case 8:w++;break;
case 7: e++;break;
case 6:r++;break;
default: t++;break;
}
switch(B/10)
{ case 10:
case 9:y++;break;
case 8:u++;break;
case 7: o++;break;
case 6:p++;break;
default: a++;break;
}
switch(C/10)
{ case 10:
case 9:s++;break;
case 8:d++;break;
case 7: f++;break;
case 6:g++;break;
default: h++;break;
}
switch(D/10)
{ case 10:
case 9:j++;break;
case 8:k++;break;
case 7: l++;break;
case 6:z++;break;
default: x++;break;
}
switch(E/10)
{ case 10:
case 9:c++;break;
case 8:v++;break;
case 7: b++;break;
case 6:n++;break;
default: m++;break;
}
switch(F/10)
{ case 10:
case 9:ab++;break;
case 8:ac++;break;
case 7:ad++;break;
case 6:ae++;break;
default: af++;break;
}
}
printf("各科目分数段人数\n\n");
printf("90~100\t%d \t\t%d \t\t%d \t\t%d \t\t%d \t\t%d\n\n",q,y,s,j,c,ab);
printf("80~90\t%d \t\t%d \t\t%d \t\t%d \t\t%d \t\t%d\n\n",w,u,d,k,v,ac);
printf("70~80\t%d \t\t%d \t\t%d \t\t%d \t\t%d \t\t%d\n\n",e,o,f,l,b,ad);
printf("60~70\t%d \t\t%d \t\t%d \t\t%d \t\t%d \t\t%d\n\n",r,p,g,z,n,ae);
printf("60以下\t%d \t\t%d \t\t%d \t\t%d \t\t%d \t\t%d\n\n",t,a,h,x,m,af);
}