C語言版通訊錄

2021-09-12 02:19:36 字數 3632 閱讀 1760

通訊錄可以用來儲存1000個人的資訊,每個人的資訊包括:

姓名、性別、年齡、**、住址

可以完成:

新增聯絡人資訊

刪除指定聯絡人資訊

查詢指定聯絡人資訊

修改指定聯絡人資訊

顯示所有聯絡人資訊

清空所有聯絡人

以名字排序所有聯絡人

儲存聯絡人到檔案

載入聯絡人

#define _crt_secure_no_warnings

#include#include#include#include#define flie_path2 "e://**/通訊錄/addressbook/a.txt"

#define person_infos_max 1000

#define persontnfo_num_max 4

//定義儲存個人資訊的結構體

typedef struct personinfo personinfo;

//定義乙個儲存1000資訊的結構體

typedef struct addressbookaddressbook;

addressbook g_addr_book;

//輸出乙個人的資訊

void printf_personinfo(addressbook* addr_book,int num)

//初始化通訊錄

void init(addressbook* addr_book)

//選單

int menu()

//1. 新增聯絡人資訊

void addpersoninfo(addressbook* addr_book)

personinfo* p = &addr_book->person_infos[addr_book->size];

scanf("%s",p->name);

scanf("%s", p->***);

scanf("%s", p->age);

scanf("%s", p->telephone);

scanf("%s", p->address);

++addr_book->size;

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

}//子選單,查詢指定聯絡人、刪除聯絡人和修改聯絡人使用

int submenu()

//3. 查詢指定聯絡人資訊

void lookuppersoninfo(addressbook* addr_book)

while (1)

if (choice < 0 || choice>persontnfo_num_max)

printf("請輸入資訊:");

char str[1024];

scanf("%s", str);

int num = -1;

int i = 0;

for (; i < addr_book->size; i++)

} if (num == -1) }}

//2. 刪除指定聯絡人資訊

void delpersoninfo(addressbook* addr_book)

printf("你是否記得編號?記得輸入1,不記得輸入0\n");

int choice1;

scanf("%d", &choice1);

if (choice1 == 0)

while (1)

printf_personinfo(&g_addr_book, num);

int choice2;

printf("請問是否確定刪除!是輸入1,否輸入0.\n");

scanf("%d", &choice2);

if (choice2 == 1)

break; }}

//4. 修改指定聯絡人資訊

void modifypersoninfo(addressbook* addr_book)

printf("你是否記得編號?記得輸入1,不記得輸入0\n");

int choice1;

scanf("%d", &choice1);

if (choice1 == 0)

int num;

while (1)

break;

} while (1)

if (choice2 < 0 || choice2>persontnfo_num_max)

char str[1024] = ;

printf("請輸入修改後的內容:");

scanf("%s", str);

personinfo* p = &addr_book->person_infos[num];

char(*ptr)[1024] = &p->name;

ptr += (choice2 - 1);

printf_personinfo(&g_addr_book, num);

int choice;

printf("請問是否確定修改!是輸入1,否輸入0.\n");

scanf("%d", &choice);

if (choice == 1) }}

//5. 顯示所有聯絡人資訊

void showallpersoninfo(addressbook* addr_book)

printf("編號\t姓名\t性別\t年齡\t**\t位址\n");

personinfo* p = &addr_book->person_infos[addr_book->size];

for (int i = 0; i < addr_book->size; i++)

}//6. 清空所有聯絡人

void clearallpersoninfo(addressbook* addr_book)

//7. 以名字排序所有聯絡人

void sortnamepersoninfo(addressbook* addr_book)

for (int i = 1; i size; i++)

} }printf("排序完成!\n");

showallpersoninfo(&g_addr_book);

}//8. 儲存聯絡人到檔案

void holdpersoninfo(addressbook* addr_book)

for (; i < addr_book->size; i++)

fclose(pf);

}//9. 載入聯絡人

void loadpersoninfo(addressbook* addr_book)

personinfo per = ;

int i = 0;

while (fread(&per, sizeof(personinfo), 1, pfread))

fclose(pfread);

}int main();

init(&g_addr_book);

int num = sizeof(func_table) / sizeof(func_table[0]);

while (1)

if (choice<0 || choice>num)

func_table[choice - 1](&g_addr_book);

} system("pause");

return 0;

}

C語言通訊錄(初級版)

這裡是乙個簡單的通訊錄,固定為1000容量,不能動態增長,不能寫入檔案。初級版本。define crt secure no warnings 1 include include int count 0 void menu typedef struct teldir dir dir stu 1000 ...

c語言 通訊錄(非初級版)

之前說寫乙個改良版的通訊錄,一直沒有時間來寫,下面我就講一下這個要怎麼寫,只要跟著我的思路,相信你讀完一定會有所收穫 大佬請忽視這句話 涉及知識 1.c語言 多檔案程式設計 2.資料結構 雙向鍊錶 3.設計模式 測試驅動開發 tdd 設計思路 我把這個專案抽象為三層來設計。第一層 應用層,直接面向使...

通訊錄簡易版(c語言)

通訊錄簡易版 include include include pragma warning disable 4996 先建立結構體,表示乙個聯絡人 typedef struct personperson define max person 1024 typedef struct addressboo...