動態通訊錄

2021-07-22 12:46:57 字數 2073 閱讀 4741

動態版通訊錄,是乙個動態增容的過程

自定義標頭檔案部分:

#ifndef  __contact_h__

#define __contact_h__

#define max_name 20

#define max_*** 5

#define max_tele 12

#define max_addr 100

#define max 1000

#define capacity 2 //通訊錄規定容量

#define promote 2 //需要擴大的容量

typedef struct peoinfo//定義結構體包括名字 年齡 性別 ** 位址

peoinof;

typedef struct con

con, *pcon;

enum input

;void init(pcon con);

void add(pcon con);

void delete(pcon con);

void search(pcon con);

void modify(pcon con);

void show(pcon con);

void empty(pcon con);

void sort(pcon con);

#endif

函式實現部分:

#define _crt_secure_no_warnings 1

#include

#include

#include

#include "contact.h"

void checkcapacity(pcon con)

else

con->capacity += promote;//開闢之後容量變為自身容量與開闢容量的和

}}void init(pcon con)//初始化通訊錄

int find_peo(pcon con, char *name)

else

}return -1;

}void add(pcon con)//新增聯絡人

void

delete(pcon con)//刪除指定聯絡人

else

;printf("請輸入要刪除人的姓名:");

scanf("%s", name);

ret = find_peo(con, name);

if (ret != -1)

con->sz--;

printf("刪除成功!\n");

}else

}}void search(pcon con)//查詢指定聯絡人

; printf("請輸入要查詢的人的姓名:");

scanf("%s", name);

ret = find_peo(con, name);

if (ret != -1)

else

}void modify(pcon con)//修改指定聯絡人

; printf("請輸入要修改的人的姓名:");

scanf("%s", name);

ret = find_peo(con, name);

if (ret != -1)

else

}void show(pcon con)//顯示聯絡人

}void empty(pcon con)//清空通訊錄

void sort(pcon con)//排序

else}}

printf("排序完成!\n");

}}

主函式測試部分:

#define _crt_secure_no_warnings 1

#include

#include

#include "contact.h"

void menu()

int main()

}system("pause");

return

0;}

動態通訊錄

上次實現了靜態版本的通訊錄,雖然能夠初步滿足我們的需求,但總歸還是不夠完美,那麼下面我將次通訊錄的靜態版本改為動態版本。這就需要用到動態分配 所謂動態分配,就是需要的時候再分配,這是相對於靜態分配而言的,靜態分配就是一次分配完畢,不管你用多少。而動態分配則是按需分配。下面我們來具體實現一下唄 con...

動態通訊錄

測試環境 vs2013 ifndef address list h define address list h include include include pragma warning disable 4996 typedef struct a datatype typedef struct a...

動態通訊錄

動態通訊錄 contact.h ifndef contact h define contact h include include include include pragma warning disable 4996 enum option define max name 20 define ma...