哪位大神可以帮我改改!
#include<stdio.h>#include<string.h>
#define n 100
struct student //定义学生结构体类型
{
int num;
char name;
char sex;
char adress;
int phonenum;
int chinese;
int mathematic;
int english;
float aver;
float mategrade;
float pindegrade;
float teachergrade;
double totalgrade;
}stu[100];
int baocun() /*建立保存文件函数*/
{
int a;
FILE *fp; /*定义文件型指针*/
int i;
if((fp=fopen("student.txt","wb"))==NULL) /*打开输出文件*/
{
printf("不能打开文件!\n");
return 0; /*终止程序*/
}
for(i=0;i<n;i++) /*向student文件中写入信息*/
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("文件写入错误\n");
fclose(fp); /*关闭文件*/
printf("\n\n\n\n\t\t\t学生信息保存成功!\n");
printf("\n\n\n\n\t\t\t按任意键返回菜单!!");
scanf("%d",&a);
return 0;
}
int input() /*定义录入学生信息函数*/
{
int Y,N;
int i,a,m; /*定义局部变量*/
printf("\t\t输出你想输入的学生信息个数:");
scanf("%d",&a);
for(i=0;i<a;i++) /*输入每个学生的信息*/
{
printf("\n\t\t\t----------------\n");
printf("\t\t\t学号:");
scanf("%s",&stu[i].num); /*输入学号*/
printf("\t\t\t姓名:");
scanf("%s",&stu[i].name); /*输入姓名*/
printf("\t\t\t性别:");
scanf("%S",&stu[i].sex); /*输入性别*/
printf("\t\t\t英语:");
scanf("%d",&stu[i].english); /*输入英语成绩*/
printf("\t\t\t数学:");
scanf("%d",&stu[i].mathematic); /*输入数学成绩*/
printf("\t\t\t语文:");
scanf("%d",&stu[i].chinese); /*输入语文成绩*/
printf("\t\t\t同学互评分:");
scanf("%d",&stu[i].mategrade); /*输入同学互评分成绩*/
printf("\t\t\t品德分:");
scanf("%d",&stu[i].pindegrade); /*输入品德分成绩*/
printf("\t\t\t教师评分:");
scanf("%d",&stu[i].teachergrade); /*输入教师评分成绩*/
stu[i].aver=((float)stu[i].english+(float)stu[i].mathematic+(float)stu[i].chinese)/3; /*计算平均成绩*/
stu[i].totalgrade=(float)stu[i].aver*0.6+(float)stu[i].mategrade*0.1+(float)stu[i].pindegrade*0.1+(float)stu[i].teachergrade*0.2; /*计算综合测评成绩*/
printf("\t\t\t平均成绩=%4.1f\n",stu[i].aver); /*输出平均成绩*/
printf("\t\t\t总成绩=%4.1f\n",stu[i].totalgrade); /*输出总成绩*/
baocun(); }
printf("是否继续录入,继续选Y,退出选N");
scanf("%s",&m);
if(m==Y)
input();
if(m==N)
return 0;
}
int show() /*定义查看函数*/
{
int i;
//n=openl(); /*调用openl函数*/
printf("\t学号\t姓名\t性别\t地址\t电话号码\t英语\t数学\t语文\t品德分\t同学互评分\t教师评分\t平均成绩\t总成绩\n");
for(i=0;i<n;i++) /*输出所有的学生信息*/
{
printf("%10s\t%s\t%2s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,
stu[i].sex,stu[i].adress,stu[i].phonenum,stu[i].english,stu[i].mathematic,stu[i].chinese,stu[i].pindegrade,stu[i].mategrade,stu[i].teachergrade,stu[i].aver,stu[i].totalgrade);
}
printf("\n\n\n\t\t\t按任意键返回菜单");
input();
return 0;
}
void numquary() //定义学号查询函数
{ int exit;
int i,a,b,m;
printf("*********************************学号查询***************************************\n");
printf("请输入要查询的学号:\n");
scanf("%d",&m);
printf("学号\t姓名\t性别\t地址\t电话号码\t语文\t英语\t数学\t测试平均分\t同学互评分\t教师评分\t综合评分\n");
for(i=0;i<n;i++)
if(m==stu[i].num)
printf("%4d\t%s\t%s\t%s\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6d\t%s\n",
stu[i].num,stu[i].name,stu[i].sex,stu[i].adress,stu[i].chinese,stu[i].english,stu[i].mathematic,stu[i].aver,stu[i].mategrade,stu[i].teachergrade,stu[i].totalgrade);
for(i=0;i<5;i++)
if(m==stu[i].num)
{ printf("\n\n\n\n\n\n");
printf("\t\t\t1.继续查询\n");
printf("\t\t\t2.返回上一级菜单\n");
printf("\t\t\t0.退出系统\n");
printf("请选择下一步操作:(0-2)\n");
scanf("%d",&a);
if(n==0) exit;
if(n==1) numquary();
if(n==2)
return;}
printf("该学号不存在!\n");
printf("\n\n\n\n\n\n");
printf("\t\t\t1.继续查询\n");
printf("\t\t\t0.退出系统\n");
printf("请选择下一步操作:(0-1)\n");
scanf("%d",&b);
if(b==0) return;
if(b==1) numquary();
}
void namequary() //定义按姓名查询的函数
{
int i,a,b,m;
printf("*********************************姓名查询***************************************\n");
printf("请输入要查询的姓名:\n");
scanf("%c",&m);
printf("学号\t姓名\t性别\t地址\t电话号码\t语文\t英语\t数学\t测试平均分\t同学互评分\t教师评分\t综合评分\n");
for(i=0;i<n;i++)
if(m==stu[i].name)
printf("%4d\t%s\t%s\t%s\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6d\t%s\n",
stu[i].num,stu[i].name,stu[i].sex,stu[i].adress,stu[i].chinese,stu[i].english,stu[i].mathematic,stu[i].aver,stu[i].mategrade,stu[i].teachergrade,stu[i].totalgrade);
for(i=0;i<n;i++)
if(m==stu[i].name)
{ printf("\n\n\n\n\n\n");
printf("\t\t\t1.继续查询\n");
printf("\t\t\t0.退出系统\n");
printf("请选择下一步操作:(0-1)\n");
scanf("%d",&a);
if(a==0) return;
if(a==1) namequary();
}
printf("该学号不存在!\n");
printf("\n\n\n\n\n\n");
printf("\t\t\t1.继续查询\n");
printf("\t\t\t0.退出系统\n");
printf("请选择下一步操作:(0-1)\n");
scanf("%d",&b);
if(b==0) return;
if(b==1) namequary();
}
int chaxun()
{
int i,j;
do
{printf("\n\n\n");
printf(" |*************编辑子菜单****************|\n");
printf(" |.......................................|\n");
printf(" |.........请选择菜单序号(0-2)...........|\n");
printf(" | 1.按学号查询 |\n");
printf(" | 2.按姓名查询 |\n");
printf(" | 0.返回上级菜单 |\n");
scanf("%d",&i);
switch(i)
{case 0:break;
case 1:numquary();break;
case 2:namequary();break;
default:printf("输入错误,请重新输入(只有5次机会!)");break;}
}while(j!=5);
return 0;}
int Delete_record(struct student)
{
int s;
int i,j;
printf("\t\t\t请输入所要删除数据的学号:"); /*交互式问寻*/
scanf("%s",&s);
for(i=0;i<n;i++) //
if(s!=stu[i].num)
{printf("未找到数据!");
return(n);}
else for(j=i;j<n-1;j++) /*删除操作*/
strcpy(stu[j],stu[j+1]);
printf("\t\t\t删除结束!\n"); /*返回成功信息*/
return(n-1);
}
int add(struct student) //定义添加函数
{
int s,j,i;
printf("\t\t\t请输入所要添加的学号:\n");
scanf("%s",s);
for(i=0;i<n;i++)
if(s!=stu[i].num) //查找判断
{printf("该学生已存在,请重新输入!");
return(n);
}
else input();
return(n-1);
}
int modify(struct student[]) //定义修改函数
{
int s,i,j;
printf("请输入要修改的学号\n");
scanf("%s",s);
for(i=0;i<n;i++)
if(s==stu[i].num) //查找判断
{printf("%4d\t%s\t%s\t%s\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6.2f\t%6d\t%s\n",
stu[i].num,stu[i].name,stu[i].sex,stu[i].adress,stu[i].chinese,stu[i].english,stu[i].mathematic,stu[i].aver,stu[i].mategrade,stu[i].teachergrade,stu[i].totalgrade);
printf("请输入语文成绩:\n");
scanf("%s",stu[i].chinese);
printf("请输入英语成绩:\n");
scanf("%s",stu[i].english);
printf("请输入数学成绩:\n");
scanf("%s",stu[i].mathematic);
printf("请输入品德成绩:\n");
scanf("%s",stu[i].pindegrade);
printf("请输入同学互评分成绩:\n");
scanf("%s",stu[i].mategrade);
printf("请输入教师评分成绩:\n");
scanf("%s",stu[i].teachergrade);
}
else{ printf("未找到数据!");
return 0;}
return(n-1);}
int update(struct student[]) //定义更新函数
{
int i,j;
do
{
{printf("\n\n\n");
printf(" |*************编辑子菜单****************|\n");
printf(" |.......................................|\n");
printf(" |.........请选择菜单序号(0-2)...........|\n");
printf(" | 1.添加学生信息 |\n");
printf(" | 2.修改学生信息 |\n");
printf(" | 0.返回上级菜单 |\n");
scanf("%d",&i);
switch(i)
{case 0:break;
case 1:add();break;
case 2:modify();break;
default:printf("输入错误,请重新输入(只有5次机会!)");break;}
}while(j!=5);
return 0;}
int main()
{
int x,y;
do //显示一个简易菜单
{
printf(" |*****************************************************|\n");
printf(" | 学生测评系统 |\n");
printf(" |*****************************************************|\n");
printf(" | 1.录入学生信息 |\n");
printf(" | 2.浏览学生信息 |\n");
printf(" | 3.查询学生信息 |\n");
printf(" | 4.更新学生信息 |\n");
printf(" | 5.删除学生信息 |\n");
printf(" | 6.保存 |\n");
printf(" | 7.退出 |\n");
printf(" |*****************************************************|\n");
printf(":请选择(1-7):\n");
scanf("%d",&x); //接受用户的选择
switch(x) //调用对应的函数
{ case 1:input();break;
case 2:show();break;
case 3:chaxun();break;
case 4:update();break;
case 5:delete_record();break;
case 6: baocun();break;
case 7:break;
default:{printf("选择错误,请重新输入(只有5次机会!)\n");}break;}
}while(y<5);
return 0;
}