首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言通訊錄系統:鏈表與文件持久化完整實現

     編輯:關於C語言

C語言通訊錄系統:單鏈表管理與文本文件持久化

完整實現聯系人增刪改查、文件存儲、行級修改刪除,展示結構體鏈表、文件操作、內存管理的綜合應用。

數據結構設計


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 語言系統編程核心技能點,適合作為綜合實戰訓練項目。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved