#include
#include
#include
#include
FILE *fp;
int n=0;
struct ADDRESS
{
char name[20];
char number[20];
char danwei[30];
char address[40];
}t[50];
void create()
{
void menu_select();
system("color 2e");
if((fp=fopen("通讯录.txt","r"))==NULL)
{
printf("--------------无通讯录----------------\n\n");
printf("************正在创建,请稍后**********\n\n");
fp=fopen("通讯录.txt","w");
printf("------------按任意键继续--------------\n");
getch();
system("cls");
printf("*******************创建成功!***************\n\n");
printf("--------------通讯录管理系统:---------------\n\n");
printf(" □ \n");
printf(" □□□□□□□□□□□ \n");
printf(" □ □ □ \n");
printf(" □ □ □ \n");
printf(" □□ □ □□ \n");
printf(" □□□□□□ \n");
printf(" □ \n");
printf(" □ \n");
printf(" □□□□□□□□□□□ \n");
printf(" □ \n");
printf(" □ \n");
printf(" □□□□ \n\n");
printf("--------------按任意键进入主菜单------------\n\n");
getch();
system("cls");
menu_select();
}
else
{
int i;
for(i=0;i<50;i++)
{
if(fscanf(fp,"%s%s%s%s",t[i].name,t[i].number,t[i].danwei,t[i].address)==-1)
{
n=i;
break;
}
}
fclose(fp);
printf("--------------通讯录管理系统:---------------\n\n");
printf(" □ \n");
printf(" □□□□□□□□□□□ \n");
printf(" □ □ □ \n");
printf(" □ □ □ \n");
printf(" □□ □ □□ \n");
printf(" □□□□□□ \n");
printf(" □ \n");
printf(" □ \n");
printf(" □□□□□□□□□□□ \n");
printf(" □ \n");
printf(" □ \n");
printf(" □□□□ \n\n");
printf("--------------按任意键进入主菜单------------\n\n");
getch();
system("cls");
menu_select();
}
}
void get()
{
void menu_select();
printf("***************请输入联系人信息***************\n");
loop:
{
printf("输入姓名:\n");
scanf("%s",t[n].name);
if(t[n].name==" ")
goto loop;
}
printf("输入号码:\n");
scanf("%s",t[n].number);
printf("输入工作单位:\n");
scanf("%s",t[n].danwei);
printf("输入住址:\n");
scanf("%s",t[n].address);
n++;
printf("***************是否继续添加(Y/N):***************\n");
if(getch()=='Y')
get();
system("cls");
menu_select();
}
void list()
{
void menu_select();
int i;
if(n!=0)
{
printf("---------------全部记录:----------------\n");
for(i=0;iprintf("***************************************\n");
printf("序号: %d\n",i);
printf("姓名: %s\n",t[i].name);
printf("号码: %s\n",t[i].number);
printf("工作单位: %s\n",t[i].danwei);
printf("住址: %s\n",t[i].address);
printf("***************************************\n");
printf("---------------------------------------\n\n");
}
printf("共%d个联系人\n\n",n);
printf("**********按任意键返回主菜单...********\n");
getch();
system("cls");
menu_select();
}
else
printf("---------------无联系人----------------\n");
printf("**********按任意键返回主菜单...********\n");
printf("---------------------------------------\n");
getch();
system("cls");
menu_select();
}
void searchbyname()
{
void menu_select();
int flag=0;
int i=0;
char mingzi[20];
printf("***************按姓名查找:***************\n");
printf("***************请输入姓名:***************\n");
scanf("%s",mingzi);
for(i=0;iif(strcmp(t[i].name,mingzi)==0)
{
printf("***************联系人信息如下:***************\n");
printf("序号: %d\n",i);
printf("姓名: %s\n",t[i].name);
printf("号码: %s\n",t[i].number);
printf("工作单位: %s\n",t[i].danwei);
printf("住址: %s\n",t[i].address);
printf("*********************************************\n");
flag++;
getch();
system("cls");
menu_select();
}
}
if(flag==0)
{
printf("***************输入信息有误,没有此联系人:*********\n\n\n");
printf("***************按任意键返回主菜单...***************\n");
getch();
system("cls");
menu_select();
}
}
void sort()
{
void menu_select();
int i,j,k;
ADDRESS temp;
for(i=0;i1;i++)
{
k=i;
for(j=i+1;jif(strcmp(t[k].name,t[j].name)>0)
k=j;
if(k!=i)
{
temp=t[i];
t[i]=t[k];
t[k]=temp;
}
}
}
printf("***************按姓名排序:***************\n");
for(i=0;iprintf("---------------------------------------------\n");
printf("序号: %d\n",i);
printf("姓名: %s\n",t[i].name);
printf("号码: %s\n",t[i].number);
printf("工作单位: %s\n",t[i].danwei);
printf("住址: %s\n",t[i].address);
printf("---------------------------------------------\n");
}
printf("************按任意键返回主菜单...*********\n");
getch();
system("cls");
menu_select();
}
void searchbyindex()
{
void menu_select();
int i;
printf("***************按序号查找:***************\n");
scanf("%d",&i);
if(iprintf("序号: %d\n",i);
printf("姓名: %s\n",t[i].name);
printf("号码: %s\n",t[i].number);
printf("工作单位: %s\n",t[i].danwei);
printf("住址: %s\n",t[i].address);
printf("************按任意键返回主菜单...*********\n");
getch();
system("cls");
menu_select();
}
else
printf("***************没有这个纪录:***************\n");
printf("************按任意键返回主菜单...**********\n");
getch();
system("cls");
menu_select();
}
void init()
{
void searchbyname();
void searchbyindex();
void menu_select();
char i;
printf("---------------查找方式:----------------\n");
printf("***************a. 姓名:***************\n");
printf("***************b. 序号:***************\n");
printf("***************c. 返回:***************\n");
printf("----------------------------------------\n");
i=getch();
switch(i)
{
case 'a': searchbyname(); break;
case 'b': searchbyindex();break;
case 'c':
{
system("cls");
menu_select();
break;
}
default: menu_select();
}
}
void add()
{
void menu_select();
int i,j,k;
ADDRESS temp;
loop:
{
printf("输入姓名:\n");
scanf("%s",t[n].name);
if(t[n].name==" ")
goto loop;
}
printf("输入号码:\n");
scanf("%s",t[n].number);
printf("输入工作单位:\n");
scanf("%s",t[n].danwei);
printf("输入住址:\n");
scanf("%s",t[n].address);
n++;
for(i=0;i1;i++)
{
k=i;
for(j=i+1;jif(strcmp(t[k].name,t[j].name)>0)
k=j;
if(k!=i)
{
temp=t[i];
t[i]=t[k];
t[k]=temp;
}
}
}
printf("******************已插入*********************\n\n");
printf("************按任意键返回主菜单...************\n");
getch();
system("cls");
menu_select();
}
void delall()
{
void menu_select();
printf("-------------确认删除?(Y/N)-------------\n");
if(getch()=='Y')
{
fopen("通讯录.txt","w");
n=0;
printf("----------------已经删除-----------------\n");
printf("************按任意键返回主菜单...**********\n");
getch();
system("cls");
menu_select();
}
else
system("cls");
menu_select();;
}
void delname()
{
void menu_select();
int flag=0;
int i=0;
char mingzi[20];
printf("************请输入要删除的姓名:************\n");
scanf("%s",mingzi);
for(i=0;iif(strcmp(t[i].name,mingzi)==0)
{
flag++;
printf("***************删除的信息如下:**************\n");
printf("序号: %d\n",i);
printf("姓名: %s\n",t[i].name);
printf("号码: %s\n",t[i].number);
printf("工作单位: %s\n",t[i].danwei);
printf("住址: %s\n",t[i].address);
printf("***************是否要删除?(Y/N)**************\n");
printf("*********************************************\n");
if(getch()=='Y')
{
for(;i1;i++)
{
t[i]=t[i+1];
}
n=n-1;
printf("******************已删除*****************\n");
getch();
system("cls");
menu_select();
}
if(getch()=='N')
{
getch();
system("cls");
menu_select();
}
}
}
if(flag==0)
{
printf("***************输入信息有误,没有此联系人:*********\n\n\n");
printf("***************按任意键返回主菜单...***************\n");
getch();
system("cls");
menu_select();
}
}
void Delete()
{
void menu_select();
void delname();
void delall();
char i;
printf("---------------删除方式:----------------\n");
printf("*************a.按姓名删除:**************\n");
printf("***************b.全部删除:**************\n");
printf("***************c. 返回:***************\n");
i=getch();
switch(i)
{
case 'a': delname(); break;
case 'b': delall(); break;
case 'c':
{
system("cls");
menu_select();
break;
}
default: menu_select();
}
}
void exit()
{
int i=0;
fp=fopen("通讯录.txt","w");
for(i=0;ifprintf(fp,"%s ",t[i].name);
fprintf(fp,"%s ",t[i].number);
fprintf(fp,"%s ",t[i].danwei);
fprintf(fp,"%s ",t[i].address);
}
fclose(fp);
exit(0);
}
void menu_select()
{
void menu_select();
void init();
void create();
void list();
void searchbyname();
void delall();
void add();
void get();
void searchbyindex();
void sort();
void exit();
char c;
system("color 9e");
printf("***************MENU*************** \n");
printf("0. Enter record /*输入记录*/ \n");
printf("1. list the file /*显示全部记录*/ \n");
printf("2. search record on name /*查找记录*/ \n");
printf("3. display record on order /*按序号查找显示*/ \n");
printf("4. delete a record /*删除记录*/ \n");
printf("5. add record /*插入记录*/ \n");
printf("6. sort by name /*按姓名排序*/ \n");
printf("7. quit /*退出并保存到文件中*/ \n");
printf("********************************** \n");
c=getch();
switch(c)
{
case '0': get(); break;
case '1': list(); break;
case '2': init(); break;
case '3': searchbyindex(); break;
case '4': Delete(); break;
case '5': add(); break;
case '6': sort(); break;
case '7': exit(); break;
default: menu_select();
}
return;
}
void main()
{
create();
menu_select();
}