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.

111 lines
2.7 KiB

typedef struct //结构体
{
char xh[13];
char name[20];
char xb[4];
char year[4];
char bz[10000];
}Student;
void stdudent_cx()
{
FILE *fp;
int n,flag=0;
char target[20],s[3]={0};
Student Stu;
int i,dot=0;
fp=fopen("student.txt","a+");
if(fp==NULL)
{
printf("无法打开文件\n");
}
while(dot==0)
{
printf(" ***请输入查询方式***");
printf(" ***0.退出***\n");
printf(" ***1.按学号***\n");
printf(" ***2.按姓名***\n");
printf(" ***3.按性别***\n");
printf(" ***4.按年龄***\n");
scanf("%d",&n);
while(n!=0)
{
if(n==1)
{
printf("退出按0\n");printf("请输入学号\n");
gets(target);
}
else if(n==2)
{
printf("退出按0\n");printf("请输入姓名\n");
gets(target);
}
else if(n==3)
{
printf("退出按0\n");printf("请输入性别\n");
gets(target);
}
else if(n==4)
{
printf("退出按0\n");printf("请输入年龄\n");
gets(target);
}
gets(target);
if(strcmp(target,s)!=0)
{
while(!feof(fp))
{
fscanf(fp,"%s %s %s %s %s",Stu.xh,Stu.name,Stu.xb,Stu.year,Stu.bz);
if(strcmp(target,Stu.xh)==0||strcmp(target,Stu.name)==0||strcmp(target,Stu.year)==0||strcmp(target,Stu.xb)==0)
{
printf("%s %s %s %s %s\n",Stu.xh,Stu.name,Stu.xb,Stu.year,Stu.bz);
flag=1;
}
}
}
else
{
dot=1;flag=1;n=0;
}
if(flag==0)
{
printf("no find\n");
}
n=0;
}
if(n==0)
{
dot=1;
}
}
}
void stdudent_sc()
{
FILE *fp;
int dot=1;
char target[20];
Student Stu;
fp=fopen("student.txt","a+");
while(dot==1)
{
printf("输入学号,退出按确定");
scanf("%s",target);
FILE *out;out=fopen("back.txt","w"); /*out是充当临时文件作用*/
while(!feof(fp))
{
if(strcmp(target,Stu.xh)!=0)
{
fprintf(out,"%s %s %s %s %s",Stu.xh,Stu.name,Stu.xb,Stu.year,Stu.bz);
fprintf(out,"\n");
}
fscanf(fp,"%s %s %s %s %s",Stu.xh,Stu.name,Stu.xb,Stu.year,Stu.bz);
}
fclose(out);
dot=0; fclose(fp);
}
}