數(shù)據(jù)結(jié)構(gòu)——鏈表實(shí)現(xiàn)通訊錄

本文通過上文實(shí)現(xiàn)的鏈表,實(shí)現(xiàn)一個簡單的通信錄

通訊錄功能:

  1. 添加聯(lián)系人
  1. 查找聯(lián)系人
  2. 刪除聯(lián)系人
  3. 顯示所有聯(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)一個圖形界面

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容