#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/*定义双链表作为通讯信息的物理存储结构*/
struct TXL{
char name[30];
char street[100];
char city[30];
char state[30];
char num[11];
struct TXL *next; /*后继指针*/
struct TXL *prior; /*前驱指针*/
};
struct TXL *start; /*首结点*/
struct TXL *last; /*尾结点*/
struct TXL *find(char *); /*声明查找函数*/
/*声明本程序的可调用函数*/
void enter();
void search();
void save();
void load();
void list();
void mldelete(struct TXL **,struct TXL **);
void dls_store(struct TXL *i,struct TXL **start,
struct TXL **last);
void inputs(char *,char *,int);
void display(struct TXL *);
int menu_select(void);
/*主函数,通过输入命令选择调用相应函数*/
int main(void)
{
start = last = NULL;
for(;;)
{
switch(menu_select())
{
case 1:enter();
continue;
case 2:mldelete(&start,&last);
continue;
case 3:list();
continue;
case 4:search();
continue;
case 5:save();
continue;
case 6:load();
continue;
case 7:exit(0);
}
}
}
/*目录函数,显示通讯录主界面并可通过输入正确指令执行相应功能*/
int menu_select(void)
{
char s[80];
int c;
printf("…………^_^欢迎使用通讯录系统…………\n");
printf("*****************************************\n");
printf("************** 1.输入信息 ***************\n");
printf("************** 2.删除信息 ***************\n");
printf("************** 3.显示信息 ***************\n");
printf("************** 4.查找 ***************\n");
printf("************** 5.存档 ***************\n");
printf("************** 6.读档 ***************\n");
printf("************** 7.退出 ***************\n");
printf("*****************************************\n");
do{
printf("\nPlease enter your choice:\n");
gets(s);
c = atoi(s);
}while(c<0||c>7); /*超出选项范围时,提示重新输入*/
return c; /*返回输入值*/
}