做到半的学生系统,遇 问题了
#include<stdio.h>#include<string.h>
int main ()
{
struct Student
{
int num;
char name[20];
int classes;
char sex;
int brith;
int grade;
};
FILE *fp;
struct Student st[30],st1,st2[30];
int b,c,d=0,i,j,z=0;
char a[20];
if((fp=fopen("E:\\student.dat","rb"))==NULL)
{
printf("不能打开文件\n");
return 0;
}
printf("******************************\n");
printf(" 1----------查询\n");
printf(" 2----------排序\n");
printf(" 3----------插入\n");
printf(" 4----------删除\n");
printf(" 5----------退出\n");
printf("******************************\n");
for(i=0;i<30;i++)
{
fread(&st[i],sizeof(struct Student),1,fp);
st2[i]=st[i];
}
scanf("%d",&b);
if(b==1)
{
printf("******************************\n");
printf(" 1.1----------按学号查\n");
printf(" 1.2----------按姓名查\n");
printf(" 1.3----------按成绩查\n");
printf("******************************\n");
scanf("%d",&c);
if(c==1)
{
printf("输入学号\n");
scanf("%d",&d);
printf("学号\t姓名\t班级\t性别\t出生年月\t分数\n");
for(i=0;i<30;i++)
{
fread(&st[i],sizeof(struct Student),1,fp);
if(d==st[i].num)
{
printf("%d\t%s\t%d\t%c\t%d\t\t%d\n",st2[i].num,st2[i].name,st2[i].classes,st2[i].sex,st2[i].brith,st2[i].grade);
z++;
}
if (z==0)
printf("无此学号学生\n");
}
printf("\t\t谢谢使用\n");
}
if(c==2)
{
printf("输入姓名\n");
scanf("%s",a);
printf("学号\t姓名\t班级\t性别\t出生年月\t分数\n");
for(i=0;i<30;i++)
{
fread(&st[i],sizeof(struct Student),1,fp);
if(strcmp(st[i].name,a)==0)
{
printf("%d\t%s\t%d\t%c\t%d\t\t%d\n",st2[i].num,st2[i].name,st2[i].classes,st2[i].sex,st[i].brith,st2[i].grade);
z++;
}
if(z==0)
printf("无此姓名学生\n");
}
printf("\t\t谢谢使用\n");
}
if(c==3)
{
printf("输入成绩\n");
scanf("%d",&d);
printf("学号\t姓名\t班级\t性别\t出生年月\t分数\n");
for(i=0;i<30;i++)
{
fread(&st[i],sizeof(struct Student),1,fp);
if(d==st[i].grade)
{
printf("%d\t%s\t%d\t%c\t%d\t\t%d\n",st2[i].num,st2[i].name,st2[i].classes,st2[i].sex,st2[i].brith,st2[i].grade);
z++;
}
if(z==0)printf("无此成绩学生\n");
}
printf("\t\t谢谢使用\n");
}
else
printf("输入错误\n谢谢使用\n");
return 0;
}
if(b==2)
{
printf("学号\t姓名\t班级\t性别\t出生年月\t分数\n");
for(j=0;j<19;j++)
for(i=0;i<19-j;i++)
{
if(st2[i].grade<st2[i+1].grade&&st2[i].grade!=0)
{st1=st2[i];st2[i]=st2[i+1];st2[i+1]=st1;}
}
for(i=0;i<21;i++)
if(st2[i].grade!=0)
printf("%d\t%s\t%d\t%c\t%d\t\t%d\n",st2[i].num,st2[i].name,st2[i].classes,st2[i].sex,st2[i].brith,st2[i].grade);
printf("\t\t谢谢使用\n");
return 0;
}
if(b==3)
{
printf("需要插入几个数据\n");
scanf("%d",&d);
printf("输入数据\n");
printf("学号\t姓名\t班级\t性别\t出生年月\t分数:(以空格区分)\n");
for(i=20;i<20+d;i++)
scanf("%d %s %d %c %d %d\n",&st[i].num,st[i].name,&st[i].classes,&st[i].sex,&st[i].brith,&st[i].grade);//为什么这里要输入第7 个数据它才往下走
printf("最新数据列表:\n");
for(i=0;i<20+d;i++)
printf("%d\t%s\t%d\t%c\t%d\t\t%d\n",st[i].num,st[i].name,st[i].classes,st[i].sex,st[i].brith,st[i].grade);
printf("\t\t谢谢使用\n");
return 0;
}
if(b==4)
if(b==5)
return 0;
else
printf("\t\t输入错误!!\n");
return 0;
}[附件ID:attach_1名称:student.rar]