当前位置:文档之家› 人员信息管理系统代码

人员信息管理系统代码

#include
#include
void menu()
{ int n,w1;
do
{
printf("\n\n\n\t1 输入新信息\n\n\n");
printf("\t2 修改信息\n\n\n");
printf("\t3 根据楼栋或序号搜索\n\n\n");
printf("\t4 浏览信息\n\n\n");
printf("\t5 添加信息\n\n\n");
printf("\t6 退出\n\n\n");
printf("请输入序号(1-6):[ ]\b\b");
scanf("%d",&n);
if(n<1||n>6)
w1=1;
else w1=0;
}
while(w1==1);
switch(n)
{
case 1:enter();break;
case 2:modify();break;
case 3:search();break;
case 4:browse();break;
case 5:add();break;
case 6:exit(0);
}
}






main()
{
menu();
}



#define N 100
struct people
{
char num[100];
char name[20];
char sex[20];
char age[20];
char building[20];
char gongzhi[20];
char address[20];
char telephone[20];
}people[N];








enter()
{
int i,n;
printf("输入多少人的信息?(0-%d)?:",N-1);
scanf("%d",&n);
printf("\n请输入信息\n\n");
for(i=0;i{
printf("\n请输入第 %d 个人的信息.\n",i+1);
input(i);
}
if(i!=0)save(n);
printf_back();
}












browse()
{
int i,j,n;
n=load();
printf_face();
for(i=0;i{
if((i!=0)&&(i%10==0))
{
printf("\n\n按任意键继续");
getch();
puts("\n\n");
}
printf_one(i) ;
}
printf("\t共有 %d 份信息.\n",n);
printf("\n按任意键返回");
getch();
menu();
}






add()
{
int i,n,m,k;
FILE*fp;
n=load();
printf("您要添加多少人的信息(0-%d)?:",N-1-n);
scanf("%d",&m);
k=m+n;
for(i=n;i{
printf("\n输入第 %d 个人的信息.\n",i-n+1 );
input(i);
}
if((fp=fopen("Pro.txt","ab"))==NULL)
{
printf("不能打开文件\n");
}
for(i=n;iif(fwrite(&people[i],sizeof(struct people),1,fp)!=1)
printf("文件写入错误\n");
fclose(fp);
printf_back();
}


search()
{
int i,n,k,w1=1,w2,w3,w4,m,a;
struct people p;
n=load();
do
{
printf("\n\n输入序号选择搜索方式:\n\t1).通过楼栋查找 2).通过序号查找 [ ]\b\b");
scanf("%d",&m);
switch(m)
{
case 1:
do
{
k=-1;
printf("\n\n请输入您想查找的楼号:");
scanf("%s",p.building);
printf_face();
for(i=0;iif(strcmp(p.building,people[i].building)==0)
{
k=i;
printf_one(k);break;
}
if(k==-1)
{
printf("\n\n\t没有相应信息");
printf("\n\n是否继续?\n\t1).继续查找 2).返回 [ ]\b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}
while(k==-1&&w1==1);break;
case 2:
do
{
k=-1;
printf("\n\n请输入您要查找的序号:num");
scanf("%s",p.num);
printf_face();
for(i=0;iif(strcmp(p.num,people[i].num)==0)

{
k=i;
printf_one(k);break;
}
if(k==-1)
{
printf("\n\n没有相应信息");
printf("\n\n是否继续?\n\t1).继续 2).返回 [ ]\b\b");
scanf("%d",&w1);
if(w1==2)
printf_back();
}
}
while(k==-1&&w1==1);break;
}
w4=0;w3=0;
if(k!=-1)
{
printf("\n\n请输入序号选择想要进行的操作\n\t 1).搜索信息 2).修改信息 3).删除信息 4).返回主菜单 [ ]\b\b");
scanf("%d",&w2);
switch(w2)
{
case 2:w3=modify_data(k,n);break;
case 3:{printf("\n确定吗??\n\t 1).确定 2).返回 [ ]\b\b");
scanf("%d",&w4);
if(w4==1)
for(a=k;a{
strcpy(people[a].num,people[a+1].num);
strcpy(people[a].name,people[a+1].name);
strcpy(people[a].sex,people[a+1].sex);
strcpy(people[a].age,people[a+1].age);
strcpy(people[a].building,people[a+1].building);
strcpy(people[a].gongzhi,people[a+1].gongzhi);
strcpy(people[a].address,people[a+1].address);
strcpy(people[a].telephone,people[a+1].telephone);
}

break;
}
}
if(w3==1||w4==1)
{
save(n);
printf("\n\n保存成功!^_^.");
printf("\n\n输入序号选择您想要进行的操作 \n\t 1).继续搜索信息 2).返回 [ ]\b\b" );
scanf("%d",&w2);
}
}
}
while(w2==1);
menu();
}






modify()
{
struct people p;
FILE *fp;
int i,n,k,w0=1,w1,w2=0;
n=load();
do
{
k=-1;
printf_face();
for(i=0;i{
if((i!=0)&&(i%10==0))
{
printf("\n\n明确所要修改信息的序号,按任意键继续。");
getch();
puts("\n\n");
}
printf_one(i);
}
do
{
printf("\n\n请输入项要修改人员信息的序号:");
scanf("%s",p.num);
for(i=0;iif(strcmp(p.num,people[i].num)==0)
{
k=i;
p=people[i];
}
if(k==-1)printf("\n\n没有记录,请再来一遍");
}
while(k==-1);
printf_face();
printf_one(k);
w1=modify_data(k,n);
if(w1==1)
{
printf("\n修改成功 ^_^.\n\n是否继续修改另一人员信息?\n\n\t 1).继续修改 2).返回并保存\t[ ]\b\b");
scanf("%d",&w0);
w2=1;
}
else
{
w0=0;
if(w2==1)
people[k]=p;
}
if(w0!=1&&w2==1)
save(n);
}
while(w0==1);
menu();
}







save(int n)
{
FILE *fp;
int i;
if((fp=fopen("Pro.txt","wb"))==NULL)
{
printf("\n不能打开文件\n");
return NULL;
}
for(i=0;iif(people[i].num!=0)
if(fwrite(&people[i],sizeof(struct people),1,fp)!=1)
printf("文件写入错误\n");
fclose(fp);
}



load()
{
FILE *fp;
int i;
if((fp=fopen("Pro.txt","rb"))==NULL)
{
printf("\n不能打开文件\n");
return NULL;
}
for(i=0;!feof(fp);i++)
fread(&people[i],sizeof(struct people),1,fp

);
fclose(fp);
return(i-1);
}





input(int i)
{
no_input(i,i);
printf("序号:");
scanf("%s",people[i].num);
printf("姓名:");
scanf("%s",people[i].name) ;
printf("性别:");
scanf("%s",people[i].sex);
printf("年龄:");
scanf("%s",people[i].age);
printf("楼栋:");
scanf("%s",people[i].building);
printf("公职:");
scanf("%s",people[i].gongzhi);
printf("门牌号:");
scanf("%s",people[i].address);
printf("电话:");
scanf("%s",people[i].telephone);
}






modify_data(int i)
{
int c,w1;
do
{
puts("\n\n\n 1).序号 2).姓名 3).性别 4).年龄 5).楼栋 6).公职 7).门牌号 8).电话 ");
printf("输入序号,选择所要修改的内容::[ ]\b\b");
scanf("%d",&c);
if(c>8||c<1)
{
puts("\n输入错误,请重新选择!");
getchar();
}
}
while(c>8||c<1);
do
{
switch(c)
{
case 1:printf("序号:");scanf("%s",people[i].num);break;
case 2:printf("姓名:");scanf("%s",people[i].name);break;
case 3:printf("性别:");scanf("%s",people[i].sex);break;
case 4:printf("年龄:");scanf("%s",people[i].age);break;
case 5:printf("楼栋:");scanf("%s",people[i].building);break;
case 6:printf("公职:");scanf("%s",people[i].gongzhi);break;
case 7:printf("门牌号:");scanf("%s",people[i].address);break;
case 8:printf("电话:");scanf("%s",people[i].telephone);break;
}
puts("\n现在输入:\n");
printf_face();
printf_one(i);
printf("\n确定修改吗?\n\n\t 1).确定 2).重新修改 3).不保存此次修改,并返回 [ ]\b\b");
scanf("%d",&w1);
}
while(w1==2);
return(w1);
}










no_input(int i,int n)
{
int j,k,w1;
do
{
w1=0;
for(j=0;people[i].num[j]!='\0';j++)
if(people[i].num[j]>'9')
{
puts("输入错误,请重新输入(只能输入数字):\n");
w1=1;break;
}
if(w1!=1)
for(k=0;kif(k!=i&&strcmp(people[k].num,people[i].num)==0)
{
puts("此记录存在,请重新输入!\n");
}
}
while(w1==1);
}








printf_face()
{
printf("\n\t序号\t姓名\t性别\t年龄\t楼栋\t公职\t门牌号\t\t电话 \n");
}








printf_one(int i)
{
int j;
printf("%10s%10s%8s%8s%8s%8s%9s%19s\n",people[i].num,people[i].name,people[i].sex,people[i].age,people[i].building,people[i].gongzhi,people[i].address,people[i].telephone);
}












printf_back()
{
int j,w;
printf("\n\n\t成功!.^_^\n\n");
printf("输入序号选择项要进行的操作\n\n\t1).浏览全部信息\t2).返回主菜单: [ ]\b\b");
scanf("%d",&w);
if(w==1)
browse();
else menu();
}

相关主题
文本预览
相关文档 最新文档