#include \"stdio.h\"
#include \"string.h\"
#include \"stdlib.h\"
#include\"conio.h\"
typedef struct student
{ long num;
char name[5];
char sex[3];
longyear;
longmonth;
longdate;
char addre[20];
long tel;
struct student * next;
}STU;
void input()
{ int i,n;
STU a;
FILE *fp;
system(\"cls\");
getchar();
if((fp=fopen(\"d:\\\\学生档案\",\"wb\"))==NULL){ printf(\"error! \\n\");exit(0);}
printf(\"\\n\\t 请输入学生的人数:\");scanf(\"%d\",&n);
getchar();
for(i=0;i
{ printf(\"\\t请输入学号:\");
scanf(\"%ld\",&a.num);
printf(\"\\t 请输入学生姓名:\");
scanf(\"%s\",a.name);
printf(\"\\t 请输入学生性别:\");
scanf(\"%s\",a.sex);
printf(\"\\t请输入学生出生年:\");scanf(\"%ld\",&a.year);
printf(\"\\t月:\");scanf(\"%ld\",&a.month);
printf(\"\\t日:\");scanf(\"%ld\",&a.date);
printf(\"\\t 请输入学生生源地:\");scanf(\"%s\",&a.addre);
printf(\"\\t 请输入学生电话:\");scanf(\"%ld\",&a.tel);
fwrite(&a,sizeof(STU),1,fp);
}
fclose(fp);
}
void list()
{STU a;
FILE *fp;
system(\"cls\"); getchar();
if((fp=fopen(\"d:\\\\学生档案\",\"rb\"))==NULL)
{ printf(\"空白文件\\n\");exit(1);}
printf(\"\\n\\n\\n\\t学号\\t姓名\\t性别\\t出生年月日\\t生源地\\t电话\\n\\n\");
while(fread(&a,sizeof(STU),1,fp)!=0)
printf(\"\\t%ld\\t%s\\t%s\\t%ld\\t%ld\\t%ld\\t%s\\t%ld\",a.num,a.name,a.sex,a.year,a.month,a.date,a.addre,a.tel);
fclose(fp);
printf(\"\\n\\t按任意键继续...\");
getchar();getchar();
}
/*void modify()/*修改*
{ STU a[10], *p;
int num,n=0,f,i;
FILE *fp;
p=a;
fp=fopen(\"d:\\\\学生档案\",\"rb+\");
if (fp==NULL) { printf(\"error!\");return;}
system(\"cls\");
while(fread(&a[n],sizeof(STU),1,fp)!=0) n++;
printf(\"请输入学生学号:\");
scanf(\"%ld\",&num);
for(f=0;f
{ if(num==a[f].num)
printf(\"\\n\\n\\n\\t学号\\t姓名\\t性别\\t出生年月日\\t生源地\\t电话\\n\\n\");
printf(\"\\t%ld\\t%s\\t%s\\t%ld\\t%ld\\t%ld\\t%s\\t%ld\",a[f-1].num,a[f-1].name,a[f-1].sex,a[f-1].date,a[f-1].addre,a[f-1].tel);break;}
do
{system(\"cls\");
printf(\"\\n\\n\\t\\t\\t修改\\n\\n\");
printf(\"\\t\\t\\t1-----修改学生姓名\\n\");
printf(\"\\t\\t\\t2-----修改学生性别\\n\");
printf(\"\\t\\t\\t3-----修改学生出生年月\\n\");
printf(\"\\t\\t\\t4-----修改学生生源地\\n\");
printf(\"\\t\\t\\t5-----修改学生电话\\n\");
printf(\"\\t\\t\\t0-----退出系统\\n\");
printf(\"\\t\\t\\t请选择:\");
scanf(\"%d\",&i);
switch(i)
{case 1:
printf(\"\\t请输入学生姓名:\");
scanf(\"%s\",&a[f].name);
printf(\"\\t\\t\\t0-----退出系统\\n\");
printf(\"\\t\\t\\t请选择:\");break;
case 2:
printf(\"\\t请输入学生性别:\");
scanf(\"%s\",&a[f].sex);break;
case 3:
printf(\"\\t请输入学生出生年月:\");
scanf(\"%ld\",&a[f].date);break;
case 4:
printf(\"\\t请输入学生生源地:\");
scanf(\"%s\",&a[f].addre);break;
case 5:
printf(\"\\t请输入学生电话:\");
scanf(\"%ld\",&a[f].tel);break;
case 0:break;
}
}while(i!=0);
/* fwrite(&a[f-1],sizeof(STU),1,fp);*
printf(\"修改后信息:\");
printf(\"\\n\\n\\n\\t\\t学号\\t姓名\\t性别\\t出生年月\\t生源地\\t电话号码\\n\\n\");
printf(\"\\t%ld\\t%s\\t%s\\t%ld\\t%ld\\t%ld\\t%s\\t%ld\",a[f-1].num,a[f-1].name,a[f-1].sex,a[f-1].date,a[f-1].addre,a[f-1].tel);
fseek(fp,(-1)sizeof(STU),0);
fwrite(&a[f-1],sizeof(STU),1,fp);
fclose(fp);
getchar();
}*/
void search()/*查询*/
{ int w ;
char name[10];
long num;
char add[30];
STUa;
FILE *fp;
system(\"cls\");
fp=fopen(\"d:\\\\学生档案\",\"r\");
if(fp==NULL)
{ printf(\"无法打开\\n\");
exit(0);
}
printf(\"\\t\\t\\t1----按姓名查询\\n\");
printf(\"\\t\\t\\t2----按学号查询\\n\");
printf(\"\\t\\t\\t3----按生源地查询\\n\");
printf(\"\\t输入查询的方式\");
scanf(\"%d\",&w);
switch(w)
{ case 1:
{ printf(\"请输入要查学生姓名:\");
scanf(\"%s\",name);
while(fread(&a,sizeof(STU),1,fp)!=0)
{if(strcmp(name,a.name)==0)
printf(\"\\t%ld\\t%s\\t%s\\t%ld\\t%ld\\t%ld\\t%s\\t%ld\",a.num,a.name,a.sex,a.year,a.month,a.date,a.addre,a.tel);
}
break; getchar();getchar();
}
case 2:
{ printf(\"请输入要查学生学号:\");
scanf(\"%ld\",&num);
while(fread(&a,sizeof(STU),1,fp)!=0)
{if(num==a.num)
printf(\"\\t%ld\\t%s\\t%s\\t%ld\\t%ld\\t%ld\\t%s\\t%ld\",a.num,a.name,a.sex,a.year,a.month,a.date,a.addre,a.tel);
}break;
}
case 3:
{ printf(\"请输入要查学生生源地:\");
scanf(\"%s\", add);
while(fread(&a,sizeof(STU),1,fp)!=0)
{if(strcmp(add,a.addre)==0)
printf(\"\\t%ld\\t%s\\t%s\\t%ld\\t%ld\\t%ld\\t%s\\t%ld\",a.num,a.name,a.sex,a.year,a.month,a.date,a.addre,a.tel);
}
}
}
fclose(fp);
printf(\"\\ntpre any key to continue...\");
getchar();getchar();
}
void delet()
{ long num,f=0;
STU a,*head,*p1,*p2;head=NULL;p1=p2=(STU *)malloc(sizeof(STU));FILE *fp;
fp=fopen(\"d:\\\\学生档案.dat\",\"rb\");
if (fp==NULL) { printf(\"error!\");return;}
system(\"cls\");
printf(\"\\n input the deleted number:\");
scanf(\"%ld\",&num);
p1=head;
while(num!=p1->num&&p1->next!=NULL)
{p2=p1;p1=p1->next;}
if (num==p1->num)
{ if(p1==head)
head=p1->next;
else
p2->next=p1->next;
free(p1);
}
else
printf(\"%ld 查无此人!\\n\",num);
}
void main()
{int a;
do
{ system(\"cls\");
printf(\"\\n\\n\\t\\t五组学生档案信息管理系统\\n\\n\");
printf(\"\\t\\t\\t1...录入学生档案信息\\n\");
printf(\"\\t\\t\\t2...显示学生档案信息\\n\");
printf(\"\\t\\t\\t3...查询学生档案信息\\n\");
printf(\"\\t\\t\\t4...修改学生档案信息\\n\");printf(\"\\t\\t\\t5...删除学生档案信息\\n\");printf(\"\\t\\t\\t0-----退出系统\\n\");printf(\"\\t\\t\\t请选择:\");
scanf(\"%d\",&a);
switch(a)
{ case 1:input();break;case 2:list();break;
case 3:search();break;//case 4:modify();break;case 5:delet();break;case 0:break;
}
}while(a!=0);
};