#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max_number 500
typedef struct student_s
{ char num[10]; char name[15]; int sex; char age[10]; char classes[20]; }student_s;
student_s per[max_number];
void query()
{ FILE *fp; fp=fopen("D:\student.txt","r");
int i=0,n=0;
int m;
printf("查询模式1:根据姓名或学号查询学生信息\n");
printf("查询模式2:根据年龄范围查询学生信息\n");
printf("查询模式3:根据班级查询学生信息\n");
printf("请输入需要查询的方式:\n");
scanf("%d",&m);
while(m!=1 && m!=2 && m!=3)
{
printf("输入错误请重新查询:\n");
scanf("%d",&m);
}
do {
fread(&per[i],sizeof(student_s),1,fp); i++;n=n+1; } while(!feof(fp));
if(m==1)
{ char s[50];
int i=0;
printf("请输入想查询的姓名或者学号:");
scanf("%s",&s);
while((strcmp(per[i].name,s)!=0||strcmp(per[i].num,s)!=0) && i<n) i++;
if(i==n)
{
printf("没有此人!\n");
system("pause");
return; }
printf("学号: %s\n",per[i].num);
printf("姓名: %s\n",per[i].name);
printf("性别: %d\n",per[i].sex);
printf("年龄: %s\n",per[i].age);
printf("班级: %s\n",per[i].classes); }
if(m==2)
{ char s[15];
int i=0;
printf("请输入想查询的年龄范围:");
scanf("%s",&s);
while(strcmp(per[i].age,s)!=0&&i<n)i++; if(i==n)
{
printf("没有此人!\n");
system("pause");
return; }
printf("学号: %s\n",per[i].num);
printf("姓名: %s\n",per[i].name);
printf("性别: %d\n",per[i].sex);
printf("年龄: %s\n",per[i].age);
printf("班级: %s\n",per[i].classes); }
if(m==3)
{
char s[20];
int i=0;
printf("请输入想查询的班级:");
scanf("%s",&s);
while(strcmp(per[i].classes,s)!=0&&i<n)i++; if(i==n) {
printf("没有此人!\n");
system("pause");
return; }
printf("学号: %s\n",per[i].num);
printf("姓名: %s\n",per[i].name);
printf("性别: %d\n",per[i].sex);
printf("年龄: %s\n",per[i].age);
printf("班级: %s\n",per[i].classes); }
fclose(fp);
system("pause");}
int main(){ int k;
printf("欢迎使用系统\n");
printf("使用系统请输入1:");
scanf("%d",&k);
if(k==1) { query(); }
else { printf("查询系统结束\n"); }
system("pause");
return 0;
}