C語言高階篇 高階小專案 通訊錄

2021-10-19 05:19:29 字數 2642 閱讀 5789

目錄

一、專案結構和專案說明

二、具體實現

int main()

//初始化通訊錄void initcontact(struct contact* ps);

//查詢函式static int findbyname(const struct contact* ps, char name[max_name])

//新增資訊void addcontact(struct contact* ps);

//刪除指定的聯絡人void delcontact(struct contact* ps);

//查詢指定的聯絡人void searchcontact(struct contact* ps);

//更新指定的聯絡人void modifycontact(struct contact* ps);

//排序通訊錄void sortcontact(struct contact* ps);

//展示通訊錄void showcontact(struct contact* ps);

三、個人總結及github位址

專案結構依然是標準三段式:

本程式需要完成以下功能:

1、初始化通訊錄

2、新增友人資訊

3、刪除指定聯絡人

4、查詢指定聯絡人

5、更新指定聯絡人資訊

6、對通訊錄按姓氏名字排序

7、展示通訊錄

首先展示主函式:

int main()

} while (input);

return 0;

}

這裡使用了列舉變數,來一一對應0~6這7個數字,

增強了**的可讀性。

然後我們來看一下頭檔案:

struct peoinfo

;//通訊錄型別

struct contact

;

我們用peoinfo來表示個人,

然後用contact這個結構體儲存個人資訊,將其用陣列儲存,

再新增乙個計數器,用來計數已存放的人數。 

接下來看函式實現:

void initcontact(struct contact* ps)

首先傳結構體的位址,這樣才能實際操作結構體。

然後使用記憶體設定函式,將這個結構體的資料域和大小域初始化。 

//查詢函式

//找到返回名字所在元素的下標

//找不到返回 -1

//static修飾函式,使函式只能在該contact.cpp原始檔中使用,不暴露給外面。

static int findbyname(const struct contact* ps, char name[max_name])

} return -1;//找不到的情況

}

我們先寫乙個查詢函式,引數型別有兩個,乙個是結構體位址,乙個是字串。

通過for迴圈,如果找到了,就返回其下標;

如果沒找到,就返回-1.

這樣封裝起來減少了**的冗餘,

並且不需要在標頭檔案裡宣告,

寫成static即可,在本函式下方便使用。 

void addcontact(struct contact* ps)

else

}

void delcontact(struct contact* ps)

else

ps->size--;

}}

這裡的刪除,我們用的方法是,先刪除該元素,然後依次將後面的元素往前挪。

注意陣列下標!

建議畫個草圖算一下。

void searchcontact(struct contact* ps)

else

}

這裡\t 的意思是 橫向跳到下一製表符位置。

void modifycontact(struct contact* ps)

else

}

void sortcontact(struct contact* ps)

; temp.data[0] = ps->data[j + 1];

ps->data[j + 1] = ps->data[j];

ps->data[j] = temp.data[0];

}} }

printf("已按姓名排序\n");

}

void showcontact(struct contact* ps)

else }

}

這個小專案實現了對資料的增刪改查,還有排序功能,已經是運算元據庫的雛形了。但是還有很多需要完善的地方,比如遇到同名怎麼辦?是否可以節約記憶體?是否可以實現用檔案的方式來處理通訊錄?我會再接下來的學習中改進這份通訊錄。

github:

C語言通訊錄小專案

include include include include 定義節點 struct node 建立頭節點 int init struct node pheader return 0 bzero pnode,sizeof struct node 清理堆空間 pnode name 20 對於字元陣列...

C語言小專案 通訊錄

通訊錄全部採用c語言實現,用鍊錶實現增加 刪除 修改 查詢等功能,還有命令解析函式 將輸入分解成主命令 姓名 聯絡人資訊是儲存在檔案中,每次程式執行和結束時都會讀取檔案中的資訊。節點裡定義的都是指標,增加新節點時要開闢新的記憶體,刪除節點時要記得及時釋放記憶體,防止記憶體溢位。標頭檔案 標頭檔案中是...

C語言小專案 通訊錄系統

專案要求 實現乙個通訊錄 通訊錄可以用來儲存1000個人的資訊,每個人的資訊包括 姓名 性別 年齡 住址 提供方法 新增聯絡人資訊 刪除指定聯絡人資訊 查詢指定聯絡人資訊 修改指定聯絡人資訊 顯示所有聯絡人資訊 清空所有聯絡人 以名字排序所有聯絡人 這個系統我們分為三個部分來實現 contact.h...