#include
#include
#include
void input();
void save();
void lookup();
void search();
void change();
void delete();
void quit();
void read();
struct Infor
{ int num;//编号
char name[20];//姓名
char phone[20];//电话
char kind[20];//类别
char mail[40];//邮件
}People[200];
int count=0;//记录总人数
int count1;//记录查询、修改、删除中查到的信息个数
void main()
{
int i;
read ();
while(1)
{
printf("\t\t\t通讯录信息系统菜单\t\t\t\n");
printf("\t_________________________________________________\t\n");
printf("\n");
printf("\t\t\t 数据录入(1)\t\t\t\n");
printf("\t\t\t 数据浏览(2)\t\t\t\n");
printf("\t\t\t 数据查询(3)\t\t\t\n");
printf("\t\t\t 数据修改(4)\t\t\t\n");
printf("\t\t\t 数据删除(5)\t\t\t\n");
printf("\t\t\t 退 出(6)\t\t\t\n");
printf("\t__________________________________________________\t\n");
printf("\t\t\t请输入菜单中对应项的数字\t\t\t\n");
scanf("%d",&i);
system("cls");
switch(i)
{
case 1: input(); break;//数据输入
case 2: lookup(); break;//数据浏览
case 3: search(); break;//数据查询
case 4: change(); break;//数据修改
case 5: delete(); break;//数据删除*/
case 6: quit(); break;// 退出
}
}
}
//读入文件
void read()
{
FILE *fp;
int i;
if((fp=fopen ("infor.dat","rb"))==NULL)
printf("文件无法打开,请检查!\n");
for(i=0;i<200;i++)
{
if(fread(&People[i],sizeof(struct Infor),1,fp)==1)
count++;
else if(fread(&People[i],sizeof(struct Infor),1,fp)!=1) break;
}
fclose(fp);
}
//数据录入
void input()
{ int i,k;
char j;
printf("\t\t\t 数据录入(1)\t\t\t\n");
for(i=count;i<200;i++)
{
printf("请输入姓名: ");
scanf("%s",People[i].name);
{for(k=0;k
if(strcmp(People[i].name,People[k].name)==0)
{printf("系统中已有此人,请重新输入!\n");
input();
}
else continue;
}
printf("请输入电话: ");
scanf("%s",People[i].phone);
printf("请输入类别: ");
scanf("%s",People[i].kind);
printf("请输入电子邮箱: ");
scanf("%s",People[i].mail);
count++;
People[i].num=count;
printf("继续录入吗?y/n");
scanf(" %c",&j);
system("cls");
if(j=='y') continue;
else if(j=='n') main();
}
}
//数据保存
void save()
{FILE *fp;
int i;
if((fp=fopen ("infor.dat","wb"))==NULL)
{printf("文件无法打开,请检查!\n");
return;
}
for(i=0;i
{if(fwrite(&People[i],sizeof(struct Infor),1,fp)!=1)
printf("写入错误!\n");
}
fclose(fp);
}
//数据浏览
void lookup()
{
int i;
printf("\t\t\t 数据浏览(2)\t\t\t\n");
printf("\t编号\t姓名\t电话\t类别\t邮件\t\n");
for(i=0;i
printf("\t%d\t%s\t%s\t%s\t%s\t\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);
printf("\t\t\t按任意键返回主菜单!\t");
getch();
system("cls");
}
//退出
void quit()
{
char i,j;
printf("\t\t\t 退 出(6)\t\t\t\n");
printf("确认退出?y/n");
scanf(" %c",&j);
system("cls");
if(j=='n') return;
else if(j=='y')
{
printf("是否保存?y/n");
scanf(" %c",&i);
system("cls");
if(i=='y') {save();exit(0);}
else if(i=='n') exit(0);
}
}
//数据查询
void search()
{
int i;
char j[20];
count1=0;
printf("\t\t\t 数据查询(3)\t\t\t\n");
printf("请输入要查询的类别A、B、C\n");
scanf(" %s",j);
printf("\t姓名\t电话\t\n");
for(i=0;i<200;i++)
{
if(strcmp(j,People[i].kind)==0)
{printf("\t%s\t%d\t\n",People[i].name,People[i].phone);
count1++;
}
}
if(count1==0)
{system("cls");
printf("无此类别人员信息!\n");}
printf("\t\t\t按任意键返回主菜单!\t");
getch();
system("cls");
}
//数据修改
void change()
{
int i,k;
char j[20];
printf("\t\t\t 数据修改(4)\t\t\t\n");
printf("请输入要修改信息人员的姓名:\n");
scanf(" %s",j);
printf("以下为该人员信息:\n");
printf("\t编号\t姓名\t电话\t类别\t邮件\t\n");
for(i=0;i<200;i++)
{
if(strcmp(j,People[i].name)==0)
printf("\t%d\t%s\t%s\t%s\t%s\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);
else continue;
printf("\n");
printf("\t\t\t请输入要修改的信息后对应序号:\t\t\t\n");
printf("\t\t\t 编号(1)\t\t\t\n");
printf("\t\t\t 姓名(2)\t\t\t\n");
printf("\t\t\t 电话(3)\t\t\t\n");
printf("\t\t\t 类别(4)\t\t\t\n");
printf("\t\t\t 邮箱(5)\t\t\t\n");
scanf(" %d",&k);
printf("该信息修改为:\n");
switch(k)
{
case 1: scanf(" %d",&People[i].num);break;
case 2: scanf(" %s",People[i].name);break;
case 3: scanf(" %s",People[i].phone);break;
case 4: scanf(" %s",People[i].kind);break;
case 5: scanf(" %s",People[i].mail);break;
}
printf("修改成功!\n");
printf("\t\t\t按任意键返回主菜单!\t");
getch();
system("cls");
}
}
//数据删除
void delete()
{
int i,temp;
char j[20];
printf("\t\t\t 数据删除(5)\t\t\t\n");
printf("请输入要删除信息人员的姓名:\n");
scanf(" %s",j);
printf("以下为该人员信息:\n");
printf("\t编号\t姓名\t电话\t类别\t邮件\t\n");
for(i=0;i<200;i++)
{
if(strcmp(j,People[i].name)==0)
printf("\t%d\t%s\t%s\t%s\t%s\t\n",People[i].num,People[i].name,People[i].phone,People[i].kind,People[i].mail);
else continue;
printf("\n");
for(i=i;i<200;i++)
{
temp=People[i].num;
People[i]=People[i+1];
People[i].num=temp;
}
}
printf("\t\t\t已删除!\t\n");
printf("\t\t\t按任意键返回主菜单!\t");
getch();
system("cls");
}