完整實現聯系人增刪改查、文件存儲、行級修改刪除,展示結構體鏈表、文件操作、內存管理的綜合應用。
typedef struct phone_book {
char name[10];
char sex[5];
char addr[20];
int year;
char phone_num[12];
struct phone_book *pNext;
} Book, *pBook;
| 功能 | 關鍵實現 |
|---|---|
| 添加聯系人 | 尾插法構建鏈表,同步寫入文件 |
| 刪除聯系人 | 遍歷匹配名稱,斷鏈 free,文件行清空 |
| 修改聯系人 | 遍歷匹配,更新節點,文件行覆寫 |
| 查找聯系人 | 遍歷 strcmp 匹配,輸出信息 |
| 顯示所有 | 遍歷鏈表輸出 |
| 清空通訊錄 | 逐節點 free,文件截斷重建 |
| 文件持久化 | 追加/覆寫模式,格式化輸出 |
void amend_file(pBook pos, char *name, int flag) {
// 1. 讀取文件定位目標行偏移量
// 2. fseek 定位
// 3. flag=0: 寫入空格清空行
// flag=1: 覆寫新數據
}
利用 fseek 實現隨機訪問修改,避免全文件重寫。
姓名 性別 地址 年齡 號碼 張三 男 北京 25 13800000000 李四 女 上海 30 13900000000
malloc 分配節點,assert 檢查free 並置空指針free 後置 NULL
int main() {
pBook head = NULL;
start(&head); // 菜單循環
return 0;
}
void start(pBook *head) {
while(1) {
show_menu();
scanf("%d", &choice);
switch(choice) { ... }
}
}
此專案完整覆蓋 C 語言系統編程核心技能點,適合作為綜合實戰訓練項目。