#include
#include
#include
#include
char num[200][80],age[200][80],name[200][80],adder[200][80];
int c[20],j=0,sum=0;
void wellcome();
void loaddat();
void setchose();
void chakan();
void errorchose();
void addfile();
void addname();
void addage();
void addnum();
void addadder();
void addmain();
void addchose();
void serch();
void serchmain();
void serchchose();
void serchname();
void serchage();
void serchnum();
void serchadder();
void print(int a);
void serchmain2();
void serchmain2chose(int e);
void switch1(int x);
void change();
void changename(int d);
void changeage(int d);
void changenum(int d);
void changeadder(int d);
void del();
void delname();
void delage();
void delnum();
void deladder();
void main()
{
loaddat();
wellcome();
setchose();
}
void wellcome ()
{
printf("学籍管理系统V0.01/npower by yxyy3604/n");
printf("1.新增学籍/n2.查找学籍/n3.浏览数据/n4.保存退出/n");
}
void loaddat()
{
FILE *namef,*numf,*adderf,*agef;
int i;
char ch[80];
sum=0;
if ((namef=fopen("name.dat","r"))==NULL)
{namef=fopen("name.dat","w");}
while ((fgets(ch, 80, namef)) != NULL)
{if((ch[0]>48&&ch[0]<57)||(ch[0]>65&&ch[0]<90)||(ch[0]>97&&ch[0]<127)) sum++;}
namef=fopen("name.dat","r");
for(i=0;i<200;i++)
{fgets(name[i],80,namef);}
fclose(namef);
if ((agef=fopen("age.dat","r"))==NULL)
{agef=fopen("age.dat","w");}
for(i=0;i<200;i++)
{fgets(age[i],80,agef);}
fclose(agef);
if ((numf=fopen("num.dat","r"))==NULL)
{numf=fopen("num.dat","w");}
for(i=0;i<200;i++)
{fgets(num[i],80,numf);}
fclose(numf);
if ((adderf=fopen("adder.dat","r"))==NULL)
{adderf=fopen("adder.dat","w");}
for(i=0;i<200;i++)
{fgets(adder[i],80,adderf);}
fclose(adderf);
}
void setchose()
{
int a;
printf("输入所选操作的编号/n");
scanf("%d",&a);
switch(a)
{
case 1 : addfile();break;
case 2 : serch();break;
case 3 : chakan();break;
case 4 : exit(-1);break;
default : errorchose();setchose();break;
}
}
void errorchose()
{printf("error/n请从新选择/n");}
void addfile()
{
addname();
addage();
addnum();
addadder();
addmain();
addchose();
}
void serch()
{
serchmain();
serchchose();
}
void chakan()
{
int i;
loaddat();
printf("数据库内共%d组数据/n",sum);
for (i=0;i
print(i);
}
main();
}
void addname()
{
char a[1][80];
printf("请输入学生姓名/n");
scanf("%s",a[0]);
FILE *namef;
namef=fopen("name.dat","a");
fprintf(namef,"%s/n",a[0]);
fclose(namef);
}
void addage()
{
char a[1][80];
printf("请输入学生年龄/n");
scanf("%s",a[0]);
FILE *agef;
agef=fopen("age.dat","a");
fprintf(agef,"%s/n",a[0]);
fclose(agef);
}
void addnum()
{
char a[1][80];
printf("请输入学生学号/n");
scanf("%s",a[0]);
FILE *numf;
numf=fopen("num.dat","a");
fprintf(numf,"%s/n",a[0]);
fclose(numf);
}
void addadder()
{
char a[1][80];
printf("请输入学生地址/n");
scanf("%s",a[0]);
FILE *adderf;
adderf=fopen("adder.dat","a");
fprintf(adderf,"%s/n",a[0]);
fclose(adderf);
}
void addmain()
{
printf("1.继续添加学生信息/n2.返回上一界面/n3.退出程序/n");
}
void addchose()
{
int a;
printf("输入所选操作的编号/n");
scanf("%d",&a);
switch(a)
{
case 1 : addfile();break;
case 2 : main();break;
case 3 : exit(-1);break;
default : errorchose();addchose();break;
}
}
void serchmain()
{
printf("1.按学生姓名查找/n2.按学生年龄查找/n3.按学生学号查找/n4.按学生地址查找/n5.返回主界面/n");
}
void serchchose()
{
int a;
printf("输入所选操作的编号/n");
scanf("%d",&a);
switch(a)
{
case 1 : serchname();break;
case 2 : serchage();break;
case 3 : serchnum();break;
case 4 : serchadder();break;
case 5 : main();break;
default : errorchose();addchose();break;
}
}
void serchname()
{
FILE *namef;
int i,c[20],e;
j=0;
for (i=0;i<20;i++)
{c[i]=0;}
char a[1][80],b[1][2]={"/n"},a2[1][80];
namef=fopen("name.dat","r");
for(i=0;i<200;i++)
{fgets(name[i],80,namef);}
fclose(namef);
printf("请输入学生姓名/n");
scanf("%s",&a[0]);
a2[0]=a[0];
strcat(a[0],b[0]);
for (i=0;i<200;i++)
{
if(strcmp(name[i],a[0])==0)
{
c[j]=i;j=j+1;
}
else continue;
}
if(j>20){printf("找太多的结果,请从新限定您的搜索条件/n");serchname();}
if(j==0){printf("没找的任何和%s有关的信息/n",a2[0]);}
for(i=0;i
print(c[i]);
}
serchmain2();
scanf("%d",&e);
if(e==3){serchname();}
else {serchmain2chose(e);}
}
void serchage()
{
FILE *agef;
int i,c[20],e;
j=0;
for (i=0;i<20;i++)
{c[i]=0;}
char a[1][80],b[1][2]={'/n'},a2[1][80];
agef=fopen("age.dat","r");
for(i=0;i<200;i++)
{fgets(age[i],80,agef);}
fclose(agef);
printf("请输入学生年龄/n");
scanf("%s",&a[0]);
a2[0]=a[0];
strcat(a[0],b[0]);
for (i=0;i<200;i++)
{
if(strcmp(age[i],a[0])==0)
{
c[j]=i;j=j+1;
}
else continue;
}
if(j>20){printf("找太多的结果,请从新限定您的搜索条件/n");serchage();}
if(j==0){printf("没找的任何和%s有关的信息/n",a2[0]);}
for(i=0;i
print(c[i]);
}
serchmain2();
scanf("%d",&e);
if(e==3){serchage();}
else {serchmain2chose(e);}
}
void serchnum()
{
FILE *numf;
int i,c[20],e;
j=0;
for (i=0;i<20;i++)
{c[i]=0;}
char a[1][80],b[1][2]={'/n'},a2[1][80];
numf=fopen("num.dat","r");
for(i=0;i<200;i++)
{fgets(num[i],80,numf);}
fclose(numf);
printf("请输入学生学号/n");
scanf("%s",&a[0]);
a2[0]=a[0];
strcat(a[0],b[0]);
for (i=0;i<200;i++)
{
if(strcmp(num[i],a[0])==0)
{
c[j]=i;j=j+1;
}
else continue;
}
if(j>20){printf("找太多的结果,请从新限定您的搜索条件/n");serchnum();}
if(j==0){printf("没找的任何和%s有关的信息/n",a2[0]);}
for(i=0;i
print(c[i]);
}
serchmain2();
scanf("%d",&e);
if(e==3){serchnum();}
else {serchmain2chose(e);}
}
void serchadder()
{
FILE *adderf;
int i,c[20],e;
j=0;
for (i=0;i<20;i++)
{c[i]=0;}
char a[1][80],b[1][2]={'/n'},a2[1][80];
adderf=fopen("adder.dat","r");
for(i=0;i<200;i++)
{fgets(adder[i],80,adderf);}
fclose(adderf);
printf("请输入学生地址/n");
scanf("%s",&a[0]);
a2[0]=a[0];
strcat(a[0],b[0]);
for (i=0;i<200;i++)
{
if(strcmp(adder[i],a[0])==0)
{
c[j]=i;j=j+1;
}
else continue;
}
if(j>20){printf("找太多的结果,请从新限定您的搜索条件/n");serchadder();}
if(j==0){printf("没找的任何和%s有关的信息/n",a2[0]);}
for(i=0;i
print(c[i]);
}
serchmain2();
scanf("%d",&e);
if(e==3){serchadder();}
else {serchmain2chose(e);}
}
void print(int a)
{
printf("%d/n",a+1);
printf("学生姓名为%s",name[a]);
printf("学生年龄为%s",age[a]);
printf("学生学号为%s",num[a]);
printf("学生地址为%s",adder[a]);
}
void serchmain2()
{
printf("1.修改这些数据/n2.删除这些数据/n3.以当前方式继续查找/n4.更换方式继续查找/n5.返回主界面/n6.退出程序/n");
}
void serchmain2chose(int e)
{
switch (e)
{
case 1 : change();break;
case 2 : del();break;
case 4 : serch();break;
case 5 : main();break;
case 6 : exit (-1);break;
default : errorchose();serchmain2chose(e);break;
}
}
void change()
{
int i;
for (i=0;i
changename(i+1);
changeage(i+1);
changenum(i+1);
changeadder(i+1);
}
}
void changename(int d)
{
char a[1][80],b[1][2]={'/n'};
int i=d-1;
FILE *namef;
namef=fopen("name.dat","w");
printf("请输入%d号学生的新的姓名/n",d);
scanf("%s",a[0]);
strcat(a[0],b[0]);
name[c[i]]=a[0];
for (i=0;i<200;i++)
{
fprintf(namef,"%s",name);
}
fclose(namef);
}
void changeage(int d)
{
char a[1][80],b[1][2]={'/n'};
int i=d-1;
FILE *agef;
agef=fopen("age.dat","w");
printf("请输入%d号学生的新的年龄/n",d);
scanf("%s",a[0]);
strcat(a[0],b[0]);
age[c[i]]=a[0];
for (i=0;i<200;i++)
{
fprintf(agef,"%s",age);
}
fclose(agef);
}
void changenum(int d)
{
char a[1][80],b[1][2]={'/n'};
int i=d-1;
FILE *numf;
numf=fopen("num.dat","w");
printf("请输入%d号学生的新的学号/n",d);
scanf("%s",a[0]);
strcat(a[0],b[0]);
num[c[i]]=a[0];
for (i=0;i<200;i++)
{
fprintf(numf,"%s",num);
}
fclose(numf);
}
void changeadder(int d)
{
char a[1][80],b[1][2]={'/n'};
int i=d-1;
FILE *adderf;
adderf=fopen("adder.dat","w");
printf("请输入%d号学生的新的地址/n",d);
scanf("%s",a[0]);
strcat(a[0],b[0]);
adder[c[i]]=a[0];
for (i=0;i<200;i++)
{
fprintf(adderf,"%s",adder);
}
fclose(adderf);
}
void del()
{
delname();
delage();
delnum();
deladder();
main();
}
void delname()
{
int i,k,m=0;
char temp[200][80];
for (k=0;k
for (i=0;i
if(i!=c[k])
temp=name;
else m=m+1;
}
}
FILE *namef;
namef=fopen("name.dat","w");
for (i=0;i
fprintf(namef,"%s",temp);
}
fclose(namef);
printf("del ok !/n");
}
void delage()
{
int i,k,m=0;
char temp[200][80];
for (k=0;k
for (i=0;i
if(i!=c[k])
temp=age;
else m=m+1;
}
}
FILE *agef;
agef=fopen("age.dat","w");
for (i=0;i
fprintf(agef,"%s",temp);
}
fclose(agef);
printf("del ok !/n");
}
void delnum()
{
int i,k,m=0;
char temp[200][80];
for (k=0;k
for (i=0;i
if(i!=c[k])
temp=num;
else m=m+1;
}
}
FILE *numf;
numf=fopen("num.dat","w");
for (i=0;i
fprintf(numf,"%s",temp);
}
fclose(numf);
printf("del ok !/n");
}
void deladder()
{
int i,k,m=0;
char temp[200][80];
for (k=0;k
for (i=0;i
if(i!=c[k])
temp=adder;
else m=m+1;
}
}
FILE *adderf;
adderf=fopen("adder.dat","w");
for (i=0;i
fprintf(adderf,"%s",temp);
}
fclose(adderf);
printf("del ok !/n");
}