文档库 最新最全的文档下载
当前位置:文档库 › 学生信息管理

学生信息管理

#include
#include
#include
#define N 100
struct student
{
char num[10];
char name[8];
int age;
char sex;
char add[10];
char tel[11];
}stu[N],item;
int sr();//输入信息函数
void save(int sum,FILE *fp );//保存数据函数
void tj(FILE *fp,struct student *p);//添加学生数据
void cx(FILE *fp);//查询函数
void ll(FILE *fp);//浏览全部数据
void xg(FILE *fp);//修改文件中某学生的数据
int main()
{
char filename[10];//文件名
int cz;//选择
int sum1;
FILE *fp;
printf("请输入数据保存到的文件名");
scanf("%s",filename);
do
{
printf("\n请输入你的选择\n");
printf("0 :输入学生信息\n1 :保存数据到指定文件里 \n2 : 添加学生信息\n3 : 查询某个学生信息\n4 : 浏览学生全部信息\n5 : 删除文件\n6 : 退出程序\n7 : 修改数据");
scanf("%d",&cz);
switch(cz)
{
case 0:sum1=sr();break;
case 1:fp=fopen(filename,"w");save(sum1,fp);break;
case 2:fp=fopen(filename,"a");tj(fp,&item);break;
case 3:fp=fopen(filename,"r+");cx(fp);fclose(fp);break;
case 4:fp=fopen(filename,"r");ll(fp);break;
case 5:if(remove(filename)==0) printf("文件已删除,请关闭程序后重新打开,切勿有其他操作");break;
case 7:fp=fopen(filename,"r+");xg(fp);break;
case 6:exit(0);
}
}while(1);
system("pause");
return 0;
}

int sr()
{
int response,i=0,sum=0;
do
{
printf("请输入学生num: \n");
scanf("%s",stu[i].num);
printf("请输入学生name: \n");
scanf("%s",stu[i].name);
printf("请输入学生age: \n");
scanf("%d",&stu[i].age);
//fflush(stdin);
printf("请输入学生sex: \n");
scanf(" %c",&stu[i].sex);//scanf("%c",&stu[i].sex);
//fflush(stdin);
printf("请输入学生add: \n");
scanf(" %s",stu[i].add);//scanf("%s",stu[i].add);
printf("请输入学生tel: \n");
scanf("%s",stu[i].tel);
printf("请问要继续输入学生信息吗?1 for 是,or 0");
scanf("%d",&response);
if(response==1)
i++;
sum++;
}while(response==1);
printf("\n请输入信息后立即保存数据,其他功能的实现均在此基础上\n");
return (sum);
}

void save(int sum,FILE *fp)
{
int i;
for(i=0;iif(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error");
fclose(fp);
printf("\nsave succesly\n");
}

void tj(FILE *fp,struct student *p)
{

int response;
do
{
printf("请输入学生num: \n");
scanf("%s",item.num);
printf("请输入学生name: \n");
scanf("%s",https://www.wendangku.net/doc/af14248907.html,);
printf("请输入学生age: \n");
scanf("%d",&item.age);
fflush(stdin);
printf("请输入学生sex: \n");
scanf("%c",&item.sex);
fflush(stdin);
printf("请输入学生add: \n");
scanf("%s",item.add);
printf("请输入学生tel: \n");
scanf("%s",item.tel);
fwrite(&item,sizeof(struct student),1,fp);
printf("请问要继续输入学生信息吗?1 for 是,or 0");

scanf("%d",&response);
}while(response==1);
fclose(fp);
}

void cx(FILE *fp)
{
int response;
char a[10];
printf("请输入是按姓名还是学号查询(0 for 姓名,1 for 学号)");
scanf("%d",&response);
if(response==0)
printf("请输入学生姓名");
else
printf("请输入学生学号");
scanf("%s",a);
for(;fread(&item,sizeof(struct student),1,fp)!=0;)
{
if(response==0)
{
if(strcmp(https://www.wendangku.net/doc/af14248907.html,,a)==0)
{
printf("\n学号:%s\n",item.num);
printf("姓名:%s\n",https://www.wendangku.net/doc/af14248907.html,);
printf("年龄:%d\n",item.age);
printf("性别:%c\n",item.sex);
printf("地址:%s\n",item.add);
printf("电话:%s\n",item.tel);
}
}
else
{
if(strcmp(item.num,a)==0)
{
printf("学号:%s\n",item.num);
printf("姓名:%s\n",https://www.wendangku.net/doc/af14248907.html,);
printf("年龄:%d\n",item.age);
printf("性别:%c\n",item.sex);
printf("地址:%s\n",item.add);
printf("电话:%s\n",item.tel);
}
}
}
}

void ll(FILE *fp )
{
int i=0;
for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++)
{
printf("\n学号:%s\n",stu[i].num);
printf("姓名:%s\n",stu[i].name);
printf("年龄:%d\n",stu[i].age);
printf("性别:%c\n",stu[i].sex);
printf("地址:%s\n",stu[i].add);
printf("电话:%s\n",stu[i].tel);
}
fclose(fp);
}

void xg(FILE *fp)
{
cx(fp);
fseek(fp,-(long)(sizeof(struct student)),1);//将文件内的指针向前移一个数据项
printf("请输入学生num: \n");
scanf("%s",item.num);
printf("请输入学生name: \n");
scanf("%s",https://www.wendangku.net/doc/af14248907.html,);
printf("请输入学生age: \n");
scanf("%d",&item.age);
fflush(stdin);
printf("请输入学生sex: \n");
scanf("%c",&item.sex);
fflush(stdin);
printf("请输入学生add: \n");
scanf("%s",item.add);
printf("请输入学生tel: \n");
scanf("%s",item.tel);
fwrite(&item,sizeof(struct student),1,fp);
fclose(fp);
}

相关文档