本文通過上文實(shí)現(xiàn)的鏈表,實(shí)現(xiàn)一個簡單的通信錄
通訊錄功能:
- 添加聯(lián)系人
- 查找聯(lián)系人
- 刪除聯(lián)系人
- 顯示所有聯(lián)系人
(1)定義聯(lián)系人信息結(jié)構(gòu)
typedef struct {
char key[15]; //名字
char addr[20];
char telephone[15];
char mobile[12];
//可根據(jù)需要增加QQ、E-mail等
} DATA;
(2)顯示聯(lián)系人模塊
void ChainListAll(ChainListType *head)
{
ChainListType *h;
DATA data;
h = head;
int i = 0;
printf("通信錄所有聯(lián)系人如下:\n");
while (h) {
//data = h->data;
printf("聯(lián)系人%d ", ++i);
printf("姓名:%s ", h->data.key);
printf("地址:%s ", h->data.addr);
printf("電話:%s ", h->data.telephone);
printf("手機(jī):%s\n", h->data.mobile);
h = h->next;
}
return;
}
(3)添加聯(lián)系人模塊
ChainListType *input(ChainListType *head)
{
DATA data;
printf("請輸入聯(lián)系人信息\n");
printf("姓名:");
scanf("%s", data.key);
printf("地址:");
scanf("%s", data.addr);
printf("電話:");
scanf("%s", data.telephone);
printf("手機(jī):");
scanf("%s", data.mobile);
return ChainListAddFirst(head, data);
}
(4)查找聯(lián)系人模塊
void find(ChainListType *head)
{
ChainListType *h;
DATA data;
char name[15];
printf("請輸入查找姓名:");
scanf("%s", name);
h = ChainListFind(head, name);
if (h) {
data = h->data;
printf("姓名:%s ", data.key);
printf("地址:%s ", data.addr);
printf("電話:%s ", data.telephone);
printf("手機(jī):%s ", data.mobile);
} else {
printf("未找到姓名為%s的聯(lián)系人\n", name);
}
}
(5)刪除聯(lián)系人模塊
void delete(ChainListType *head)
{
ChainListType *h = head;
char name[15];
int result = 0;
printf("請輸入要刪除的姓名:");
scanf("%s", name);
result = ChainListDelete(head, name);
if (result) {
printf("刪除成功!\n");
} else {
printf("刪除失敗!\n");
}
}
(6)主函數(shù)模塊
int main()
{
ChainListType *head = NULL;
int select;
do {
printf("\n________________________\n");
printf("1.添加聯(lián)系人\n");
printf("2.查找聯(lián)系人\n");
printf("3.刪除聯(lián)系人\n");
printf("4.顯示所有聯(lián)系人\n");
printf("0.退出\n");
scanf("%d", &select);
switch (select) {
case 1:
printf("添加聯(lián)系人\n");
head = input(head);
break;
case 2:
printf("查找聯(lián)系人\n");
find(head);
break;
case 3:
printf("刪除聯(lián)系人\n");
delete(head);
break;
case 4:
printf("顯示聯(lián)系人\n");
ChainListAll(head);
break;
case 0:
return 0;
}
} while(1);
return 0;
}
注:有興趣的同學(xué)可以,結(jié)合MFC或者QT實(shí)現(xiàn)一個圖形界面