#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 100
struct student_type
{
char name[10];
char num[8];
int age;
} stud[SIZE];
FILE*fp;
void input();
void find();
void menu();
void add();
void main()
{
menu();
}
void menu()
{
int select;
printf("\n\n****************************************************\n");
printf(" 欢迎使用白氏学生管理系统 \n");
printf("***************************************************\n");
printf("**********【1】 建立学生信息数据:\n");
printf("**********【2】 根据学号或者姓名查找学生数据:\n");
printf("**********【3】 添加学生信息:\n");
printf("请输入你的选项(1--2):");
scanf("%d",&select);
switch(select)
{
case 1:input();break;
case 2:find();break;
}
}
void input()
{
int i,j;
printf("请输入需要输入的学生人数:\n");
scanf("%d",&j);
printf("请输入学生的学号、姓名、年龄,中间用空格隔开:\n");
for(i=0;i<j;i++)
scanf("%s%s%d",stud[i].name,stud[i].num,&stud[i].age);
fp=fopen("D:\\student","wb");
for(i=0;i<j;i++)
fwrite(&stud[i],sizeof(struct student_type),1,fp);
printf("回车键返回主菜单");
getchar();
getchar();
menu();
}
void find()
{
int choice,i;
char name[15],num[8];
FILE*fp;
printf("【1】用学号查找 【2】用姓名查找\n");
scanf("%d",&choice);
if(choice==1)
{
printf("请输入需要查找的学号:\n");
gets(num);
for(i=0;i<SIZE;i++)
if(strcmp(stud[i].num,num)==0)
{
fp=fopen("D:\\student","rb");
fseek(fp,i*sizeof(struct student_type),0);
fread(&stud[i],sizeof(struct student_type),1,fp);
printf("%-10s %-10s %4d",stud[i].name,stud[i].num,stud[i].age);
}
printf("回车键返回主菜单:\n");
getchar();
getchar();
menu();
}
else if(choice==2)
{
printf("请输入学生的姓名:\n");
getchar();
gets(name);
for(i=0;i<SIZE;i++)
if(strcmp(stud[i].name,name)==0)
{ fp=fopen("D:\\student","rb");
fseek(fp,i*sizeof(struct student_type),0);
fread(&stud[i],sizeof(struct student_type),1,fp);
printf("%-10s %-10s %4d",stud[i].name,stud[i].num,stud[i].age);}
printf("回车键返回主菜单:\n");
getchar();
getchar();
menu();
}
}
请问大家,这个函数为什么我在执行查询功能的时候,执行不了?????????