通訊錄是C語言初學者練習結構體、檔案操作與模組化程式設計的經典專案。本文將帶您從零開始,完成一個具備新增、刪除、查詢、修改、顯示與清空功能的通訊錄系統。
首先定義標頭檔 contact.h,規劃聯絡人資料欄位與通訊錄容器:
#ifndef __CONTACT_H__
#define __CONTACT_H__
#define NAME_LEN 10
#define SEX_LEN 6
#define TELE_LEN 12
#define ADDR_LEN 20
#define MAX_PEO 1000
typedef struct PEO {
char name[NAME_LEN];
int age;
char sex[SEX_LEN];
char tele[TELE_LEN];
char addr[ADDR_LEN];
} Peo, *PPEO;
typedef struct Contact {
Peo nb[MAX_PEO];
int count; // 記錄有效聯絡人數量
} PCON, *Pcon;
// 函數宣告
void add_peo(Pcon pcon);
void del_peo(Pcon pcon);
void search(Pcon pcon);
void modify(Pcon pcon);
void show(Pcon pcon);
void clear(Pcon pcon);
#endif
在 contact.c 中實作各項操作函數:
main.c 提供文字選單介面,透過 switch 語句分派功能:
#include <stdio.h>
#include "contact.h"
#define _CRT_SECURE_NO_WARNINGS
void print_menu() {
printf("****************************\n");
printf("*** 1>add 2>del ***\n");
printf("*** 3>show 4>search ***\n");
printf("*** 5>modify 6>clear ***\n");
printf("****************************\n");
}
int main() {
PCON con;
int input = 1;
con.count = 0;
while (input) {
print_menu();
printf("請選擇:");
scanf("%d", &input);
switch (input) {
case 1: add_peo(&con); break;
case 2: del_peo(&con); break;
case 3: show(&con); break;
case 4: search(&con); break;
case 5: modify(&con); break;
case 6: clear(&con); break;
default: break;
}
}
return 0;
}
程式執行時會顯示選單,依使用者輸入執行對應操作,介面清晰直觀:

此專案展示了結構體陣列管理資料、模組化程式設計、基本輸入輸出處理等核心技能。進階可嘗試:加入檔案存取實現資料持久化、使用動態記憶體分配突破固定容量限制、或引入鏈結串列優化刪除效能。