📄 自动化0605姜楠200682091.c
字号:
scanf("%s",search);
if(strcmp(search,"1")==0)
lgrade_1();
else if(strcmp(search,"2")==0)
lgrade_2();
else if(strcmp(search,"3")==0)
lgrade_3();
else if(strcmp(search,"4")==0)
{
wait();
return;
}
else
{
printf("\t\t您的输入有问题或查无此人!\n");
printf("\t\t请重新输入!\n");
wait();
}
}
}
void lgrade_1()//数学不及格学生信息
{
int j;
char r[N];
int lg=0;
kk=0;
while(1)//这个循环为了重复查找使用的
{
search_doc();
if(kk!=0)
break;
while(1)
{
fread(&infor,sizeof(XX),1,fp1);
if(feof(fp1))
break;
if(infor.score[0]<BAD)
{
lg++;
printf("\t\t学号\t姓名\t数学\t语文\t英语\t总分\t平均分\n");
printf("\t\t%s",infor.number);
printf("\t%s",infor.name);
for(j=0;j<3;j++)
printf("\t%.1f",infor.score[j]);
printf("\t%.1f\t",infor.sum);
printf("%.1f",infor.average);
printf("\n");
}
}
if(lg==0)
printf("\t\t恭喜!没有不及格的!\n");
else
printf("\t\t不及格的人数为%d\n",lg);
printf("\t\t是否继续?\n\t\t(1)__yes\t\t(其他键)__no\n");
printf("\t\t您选:");
scanf("%s",r);
if(strcmp(r,"1")!=0)
break;
}
}
void lgrade_2()//语文不及格学生信息
{
int j;
char r[N];
int lg=0;
kk=0;
while(1)//这个循环为了重复查找使用的
{
search_doc();
if(kk!=0)
break;
while(1)
{
fread(&infor,sizeof(XX),1,fp1);
if(feof(fp1))
break;
if(infor.score[1]<BAD)
{
lg++;
printf("\t\t学号\t姓名\t数学\t语文\t英语\t总分\t平均分\n");
printf("\t\t%s",infor.number);
printf("\t%s",infor.name);
for(j=0;j<3;j++)
printf("\t%.1f",infor.score[j]);
printf("\t%.1f\t",infor.sum);
printf("%.1f",infor.average);
printf("\n");
}
}
if(lg==0)
printf("\t\t恭喜!没有不及格的!\n");
else
printf("\t\t不及格的人数为%d\n",lg);
printf("\t\t是否继续?\n\t\t(1)__yes\t\t(其他键)__no\n");
printf("\t\t您选:");
scanf("%s",r);
if(strcmp(r,"1")!=0)
break;
}
}
void lgrade_3()//英语不及格学生信息
{
int j;
char r[N];
int lg=0;
kk=0;
while(1)//这个循环为了重复查找使用的
{
search_doc();
if(kk!=0)
break;
while(1)
{
fread(&infor,sizeof(XX),1,fp1);
if(feof(fp1))
break;
if(infor.score[2]<BAD)
{
lg++;
printf("\t\t学号\t姓名\t数学\t语文\t英语\t总分\t平均分\n");
printf("\t\t%s",infor.number);
printf("\t%s",infor.name);
for(j=0;j<3;j++)
printf("\t%.1f",infor.score[j]);
printf("\t%.1f\t",infor.sum);
printf("%.1f",infor.average);
printf("\n");
}
}
if(lg==0)
printf("\t\t恭喜!没有不及格的!\n");
else
printf("\t\t不及格的人数为%d\n",lg);
printf("\t\t是否继续在此文件中操作?\n\t\t(1)__yes\t\t(其他键)__no\n");
printf("\t\t您选:");
scanf("%s",r);
if(strcmp(r,"1")!=0)
break;
}
}
void average()//班级平均成绩统计
{
double a_sum=0.0,a_aver,a_sum1=0.0;
int a_i=0;
while(1)
{
kk=0;
search_doc();
if(kk==0)
break;
else
return;
}
while(1)
{
fread(&infor,sizeof(XX),1,fp1);
if(feof(fp1))
break;
a_sum+=infor.average;
a_sum1+=infor.sum;
a_i++;
}
if(a_i!=0)
{
a_aver=a_sum/a_i;
printf("\t\t单科平均成绩为%.1f\n",a_aver);
a_aver=a_sum1/a_i;
printf("\t\t每个人的总平均成绩为%.1f\n",a_aver);
}
else
printf("\t\t该文件中没有数据!\n");
}
void order()//对某个文件中信息排序主菜单
{
char search[N];
while(1)
{
system("cls");
printf("\t\t*****************************\n");
printf("\t\t*****************************\n");
printf("\t\t请输入您所想要的排序内容:\n");
printf("\t\t(1)__学生总成绩降序排序\n");
printf("\t\t(2)__单科成绩降序排序\n");
printf("\t\t(3)__退出\n");
printf("\t\t*****************************\n");
printf("\t\t*****************************\n");
printf("\t\t您选:");
scanf("%s",search);
if(strcmp(search,"1")==0)
order_1();
else if(strcmp(search,"2")==0)
order_2();
else if(strcmp(search,"3")==0)
{
wait();
return;
}
else
{
printf("\t\t您的输入有误!\n");
printf("\t\t请重新输入!\n");
wait();
}
}
}
void order_1()//总成绩排序函数/////////////////////////////
{
int i,j,k;
char h[N];
kk=0;
search_doc();
while(1)//查找的正文
{
if(kk!=0)
{
printf("\t\t无此文件\n");
wait();
system("cls");
break;
}
for(i=0;;i++)
{
fread(&xx[i],sizeof(XX),1,fp1);
if(feof(fp1))
break;
}
for(k=0;k<i-1;k++)
for(j=0;j<i-1-k;j++)
if(xx[j].sum<xx[j+1].sum)
{
infor=xx[j];
xx[j]=xx[j+1];
xx[j+1]=infor;
}
fclose(fp1);
g=i;
if((fp=fopen(fname1,"wb"))==NULL)
{
printf("Cannot open the file!\n");
return;
}
for(i=0;i<g;i++)
{
if(fwrite(&xx[i],sizeof(XX),1,fp)!=1)
printf("\nfile write error!\n\n");
}
fclose(fp);
printf("\t\t是否输出排序结果?\n\t\t(1)__yes\t\t(其他键)__no\n");
printf("\t\t您选:");
scanf("%s",h);
if(strcmp(h,"1")==0)
{
read_1();
printf("\t\t按回车键回小菜单!\n");
getchar();
getchar();
break;
}
else
break;
}
}
void order_2()//单科排序小菜单
{
char search[N];
while(1)
{
system("cls");
printf("\t\t*****************************\n");
printf("\t\t*****************************\n");
printf("\t\t请输入您的选择:\n");
printf("\t\t(1)__数学成绩降序\n");
printf("\t\t(2)__语文成绩降序\n");
printf("\t\t(3)__英语成绩降序\n");
printf("\t\t(4)__退出\n");
printf("\t\t*****************************\n");
printf("\t\t*****************************\n");
printf("\t\t您选:");
scanf("%s",search);
if(strcmp(search,"1")==0)
order_2_1();
else if(strcmp(search,"2")==0)
order_2_2();
else if(strcmp(search,"3")==0)
order_2_3();
else if(strcmp(search,"4")==0)
{
wait();
return;
}
else
{
printf("\t\t您的输入有误!\n");
printf("\t\t请重新输入!\n");
wait();
}
}
}
void order_2_1()//按照数学成绩排序
{
int i,j,k;
char h[N];
kk=0;
search_doc();
while(1)//查找的正文
{
if(kk!=0)
{
printf("\t\t无此文件\n");
wait();
system("cls");
break;
}
for(i=0;;i++)
{
fread(&xx[i],sizeof(XX),1,fp1);
if(feof(fp1))
break;
}
for(k=0;k<i-1;k++)
for(j=0;j<i-1-k;j++)
if(xx[j].score[0]<xx[j+1].score[0])
{
infor=xx[j];
xx[j]=xx[j+1];
xx[j+1]=infor;
}
fclose(fp1);
g=i;
if((fp=fopen(fname1,"wb"))==NULL)
{
printf("Cannot open the file!\n");
return;
}
for(i=0;i<g;i++)
{
if(fwrite(&xx[i],sizeof(XX),1,fp)!=1)
printf("\nfile write error!\n\n");
}
fclose(fp);
printf("\t\t是否输出排序结果?\n\t\t(1)__yes\t\t(其他键)__no\n");
printf("\t\t您选:");
scanf("%s",h);
if(strcmp(h,"1")==0)
{
read_1();
printf("\t\t按回车键回小菜单!\n");
getchar();
getchar();
break;
}
else
break;
}
}
void order_2_2()//按照语文成绩排序
{
int i,j,k;
char h[N];
kk=0;
search_doc();
while(1)//查找的正文
{
if(kk!=0)
{
printf("\t\t无此文件\n");
wait();
system("cls");
break;
}
for(i=0;;i++)
{
fread(&xx[i],sizeof(XX),1,fp1);
if(feof(fp1))
break;
}
for(k=0;k<i-1;k++)
for(j=0;j<i-1-k;j++)
if(xx[j].score[1]<xx[j+1].score[1])
{
infor=xx[j];
xx[j]=xx[j+1];
xx[j+1]=infor;
}
fclose(fp1);
g=i;
if((fp=fopen(fname1,"wb"))==NULL)
{
printf("Cannot open the file!\n");
return;
}
for(i=0;i<g;i++)
{
if(fwrite(&xx[i],sizeof(XX),1,fp)!=1)
printf("\nfile write error!\n\n");
}
fclose(fp);
printf("\t\t是否输出排序结果?\n\t\t(1)__yes\t\t(其他键)__no\n");
printf("\t\t您选:");
scanf("%s",h);
if(strcmp(h,"1")==0)
{
read_1();
printf("\t\t按回车键回小菜单!\n");
getchar();
getchar();
break;
}
else
break;
}
}
void order_2_3()//按照英语成绩排序
{
int i,j,k;
char h[N];
kk=0;
search_doc();
while(1)//查找的正文
{
if(kk!=0)
{
printf("\t\t无此文件\n");
wait();
system("cls");
break;
}
for(i=0;;i++)
{
fread(&xx[i],sizeof(XX),1,fp1);
if(feof(fp1))
break;
}
for(k=0;k<i-1;k++)
for(j=0;j<i-1-k;j++)
if(xx[j].score[2]<xx[j+1].score[2])
{
infor=xx[j];
xx[j]=xx[j+1];
xx[j+1]=infor;
}
fclose(fp1);
g=i;
if((fp=fopen(fname1,"wb"))==NULL)
{
printf("Cannot open the file!\n");
return;
}
for(i=0;i<g;i++)
{
if(fwrite(&xx[i],sizeof(XX),1,fp)!=1)
printf("\nfile write error!\n\n");
}
fclose(fp);
printf("\t\t是否输出排序结果?\n\t\t(1)__yes\t\t(其他键)__no\n");
printf("\t\t您选:");
scanf("%s",h);
if(strcmp(h,"1")==0)
{
read_1();
printf("\t\t按回车键回小菜单!\n");
printf("\t\t");
getchar();
getchar();
break;
}
else
break;
}
}
void read_1()//读取信息文件
{
int j,r;
char c[N];
if((fp1=fopen(fname1,"rb"))==NULL)
{
printf("\t\t该文件不存在!\n");
while(1)
{
printf("\t\t您想继续吗?\n\t\tYES---(1)\t\tNO---(2)\n");
scanf("%s",c);
r=check_number1(c);
if(r==1)
break;
else if(r==2)
break;
else
printf("\t\t输入有误请重新输入!\n");
}
if(flag==1&&r==1)
teacher_menu();
else if(flag==2&&r==1)
student_menu();
else
{
fclose(fp1);
exit(0);
}
}
while(1)
{
fread(&infor,sizeof(XX),1,fp1);
if(feof(fp1))
break;
printf("\t\t学号\t姓名\t数学\t语文\t英语\t总分\t平均分\n");
printf("\t\t%s",infor.number);
printf("\t%s",infor.name);
for(j=0;j<3;j++)
printf("\t%.1f",infor.score[j]);
printf("\t%.1f\t",infor.sum);
printf("%.1f",infor.average);
printf("\n");
}
fclose(fp1);
}
void end()//结束
{
system("cls");
printf("\n\n\n\n");
printf("\t************************************************************\n");
printf("\t************************************************************\n");
printf("\t*****************欢迎您再次使用我们的系统*******************\n");
printf("\t************************************************************\n");
printf("\t************************************************************\n");
exit(0);
}
void welcome()//开始
{
printf("\n\n\n");
printf("\t************************************************************\n");
printf("\t************************************************************\n");
printf("\t***欢**********迎***********您***********使***********用****\n");
printf("\t************************************************************\n");
printf("\t************************************************************\n");
printf("\t**************************WELCOME***************************\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -