靜態通訊錄 C語言

2021-09-17 04:31:58 字數 3090 閱讀 1574

使用結構體型別實現乙個靜態通訊錄,可以儲存1000個人的資訊,包括姓名,性別,年齡,**號碼,位址。

主要實現功能有:1、新增聯絡人資訊  2、刪除指定聯絡人資訊  3、查詢指定聯絡人  4、修改指定聯絡人資訊  5、顯示所有聯絡人  6、清空所有聯絡人  7、以名字排序所有聯絡人

需要提前說的是,乙個人的位址,**號碼一般不固定,性別的話,只有男和女,沒有特別容易區分多個人中的乙個,就好比,說是查詢乙個指定聯絡人,我不能通過她是性別找到他,我們只能說是縮小了查詢的範圍,年齡也是同理,故而,在下面的**中,刪除、查詢和修改的選擇中,我只寫根據通過姓名來鎖定指定聯絡人。

**分為兩部分:標頭檔案(contact.h)和原始檔(contact.c   和  test.c),完整**如下:

contact.h

#ifndef __contact_h__

#define __contact_h___

#include #include #include enum option1

;#define max_name 20

#define max_*** 5

#define max_addr 30

#define max 1000

typedef struct peoinfo

peoinfo;

typedef struct contact

contact, *pcontact;

void initcontact(pcontact pc);

void addcontact(pcontact pc);

void showcontact(pcontact pc);

void delcontact(pcontact pc);

void searchcontact(pcontact pc);

void modifycontact(pcontact pc);

void sortcontact(pcontact pc);

void emptycontact(pcontact pc);

#endif //__contact_h__

contact.c

#include "contact.h"

void initcontact(pcontact pc)

void addcontact(pcontact pc)

//不滿就輸入資訊內容

printf("請輸入名字:");

scanf_s("%s", (pc->data[pc->sz].name),max_name);

printf("請輸入年齡:");

scanf_s("%hd", &(pc->data[pc->sz].age));

printf("請輸入性別:");

scanf_s("%s", pc->data[pc->sz].***,max_***);

scanf_s("%s", pc->data[pc->sz].addr,max_addr);

printf("請輸入**號碼:");

scanf_s("%d", &(pc->data[pc->sz].tel));

pc->sz++;

printf("新增成功\n");

}void showcontact(pcontact pc)

}static void delnameentry(pcontact* ppc)

; unsigned int i = 0;

scanf_s("%s", name1, max_name);

//遍歷查詢

for (i = 0; i < (*ppc)->sz; i++) }

if (i == (*ppc)->sz + 1)

else }

void delcontact(pcontact pc)

; int input = 0;

if (pc->sz == 0)

delnameentry(&pc);

}static unsigned int searchnameentry(pcontact* ppc)

; unsigned int i = 0;

scanf_s("%s", name1, max_name);

if ((*ppc)->sz == 0)

for (i = 0; i < (*ppc)->sz; i++) }

return max;

}static void printcon(pcontact pc, unsigned int pos)

printf("%-10s\t%-5s\t%-5s\t%-10s\t%-5s\n", "name", "age", "***", "addr", "id");

printf("%-10s\t%-5d\t%-5s\t%-10s\t%-5d\n",

pc->data[pos].name,

pc->data[pos].age,

pc->data[pos].***,

pc->data[pos].addr,

pc->data[pos].tel);

}void searchcontact(pcontact pc)

pos = searchnameentry(&pc);

if (pos != max)

else }

static void modifycontent(pcontact* ppc, unsigned int pos)

void modifycontact(pcontact pc)

pos = searchnameentry(&pc);

if (pos != max) }

void sortcontact(pcontact pc)

for (i = 0; i < pc->sz - 1; i++)

} }}

void emptycontact(pcontact pc)

test.c

#include "contact.h"

void menu()

int main()

} while (input);

return 0;

}

靜態通訊錄

這個通訊錄存粹用到c的知識就可以,主要就是乙個聯絡人資訊結構體,再就是乙個結構體陣列,對結構體陣列反覆操作 進行增 刪 查 改 排序 由於是初學者還不能對中文名進行排序 清空寫等功能。在這裡我們可以盡量寫的正式一點 所以我們用contact.h頭檔案建立結構體和對函式進行宣告 conteact.c中...

通訊錄 靜態

contact.h ifndef contact h 防止標頭檔案的重複引用 define contact h include define max 1000 define name max 20 define max 25 define addr max 30 define tele max 12...

靜態通訊錄

實現乙個通訊錄 通訊錄可以用來儲存1000個人的資訊,每個人的資訊包括 姓名 性別 年齡 住址 提供方法 1.新增聯絡人資訊 2.刪除指定聯絡人資訊 3.查詢指定聯絡人資訊 4.修改指定聯絡人資訊 5.顯示所有聯絡人資訊 6.清空所有聯絡人 7.以名字排序所有聯絡人 contact.h ifndef...