1.contact.h
//#pragma once
#ifndef _contact_h_
#define _contact_h_
#include #include #pragma warning (disable:4996)
#define max_name 10
#define max_*** 5
#define max_tele 20
#define max_addr 30
#define con_start 2//初始通訊錄大小
#define inc_count 10 //每次增容大小
typedef struct peoinfo peo;
typedef struct contact con, *pcon;
/*介面函式*/
void initcontact(pcon pcon);//初始化通訊錄
void add(pcon pcon);
void dele(pcon pcon);
void search(pcon pcon);
void modify(pcon pcon);
void show(pcon pcon);
void empty(pcon pcon);
void sort(pcon pcon);
#endif
2.contact.c
#include "contact.h"
/*初始化*/
void initcontact(pcon pcon)
memset(pcon->con, 0, con_start*sizeof(peo));
pcon->count = 0;
pcon->capacity = con_start;//初始化最大容量為con_start
}void check(pcon pcon) //檢測
else }}
/*增加成員*/
void add(pcon pcon)
int find(pcon pcon)
; int i = 0;
printf("請輸入姓名: ");
scanf("%s", name);
for (i = 0; i < pcon->count; i++)
} return -1;
}/*刪除成員*/
void dele(pcon pcon)
ret = find(pcon);
if (ret == -1)
else
pcon->count--;
printf("刪除成功!\n"); }}
/*查詢成員*/
void search(pcon pcon)
ret = find(pcon);
if (ret == -1)
else
}/*修改*/
void modify(pcon pcon)
ret = find(pcon);
if (ret == -1)
else
}/*排序*/
void sort(pcon pcon) //從小到大
} if (flag == 1)
break;
} //show(pcon);
printf("排序完成\n");
}/*展示資訊*/
void show(pcon pcon)
}void empty(pcon pcon)
}
3.test.c
#include "contact.h"
/*通訊錄可以用來儲存1000個人的資訊,每個人的資訊包括:
姓名、性別、年齡、**、住址
提供方法:
1. 新增聯絡人資訊
2. 刪除指定聯絡人資訊
3. 查詢指定聯絡人資訊
4. 修改指定聯絡人資訊
5. 顯示所有聯絡人資訊
6. 清空所有聯絡人
7. 以名字排序所有聯絡人
0. 退出
*/enum option //列舉,增加**可讀性
;void menu()
test() }}
int main()
通訊錄動態開闢版本
contact.h include include include ifndef cntact h define cntact h define name max 20 define max 4 define tel max 12 define addr max 50 define default ...
動態通訊錄
動態版通訊錄,是乙個動態增容的過程 自定義標頭檔案部分 ifndef contact h define contact h define max name 20 define max 5 define max tele 12 define max addr 100 define max 1000 d...
動態通訊錄
上次實現了靜態版本的通訊錄,雖然能夠初步滿足我們的需求,但總歸還是不夠完美,那麼下面我將次通訊錄的靜態版本改為動態版本。這就需要用到動態分配 所謂動態分配,就是需要的時候再分配,這是相對於靜態分配而言的,靜態分配就是一次分配完畢,不管你用多少。而動態分配則是按需分配。下面我們來具體實現一下唄 con...