動態擴容版通訊錄(不含檔案)

2021-09-25 16:23:58 字數 3362 閱讀 3523

每個人的資訊包括:

姓名、性別、年齡、**、住址

新增聯絡人資訊

刪除指定聯絡人資訊

查詢指定聯絡人資訊

修改指定聯絡人資訊

顯示所有聯絡人資訊

清空所有聯絡人

以名字排序所有聯絡人

#ifndef _contact_h_

#define _contact_h_

#include<

assert

.h>

#include

#include

#include

enum option

;#define max_name 20

#define max_tele 11

#define max_addr 15

#define max_*** 3

#define default_size 2

//預設容量為2

//個人資訊

typedef struct personinfo

personinfo;

//通訊錄

typedef struct contact

contact;

void

initcontact

(contact *pcon)

;//初始化通訊錄

void

addcontact

(contact *pcon)

;//新增聯絡人

intsearchcontact

(contact *pcon)

;//查詢聯絡人

void

delcontact

(contact *pcon)

;//刪除聯絡人

void

showcontact

(contact *pcon)

;//顯示所有聯絡人

void

clearcontact

(contact *pcon)

;//清空通訊錄

void

sqrtcontact

(contact *pcon)

;//按名字對通訊錄進行排序

void

destorycontact

(contact *pcon)

;//釋放空間

#endif

初始化通訊錄

#define _crt_secure_no_warnings

#include"contact.h"

void

initcontact

(contact *pcon)

新增聯絡人

static

intcheckfull

(contact *pcon)

//檢查通訊錄是否滿了,然後擴容

else

}return1;

}void

addcontact

(contact *pcon)

printf

("請輸入姓名》\n");

scanf

("%s"

, pcon-

>per[pcon-

>usedsize]

.name)

;printf

("請輸入性別》\n");

scanf

("%s"

, pcon-

>per[pcon-

>usedsize]

.***)

;printf

("請輸入年齡》\n");

scanf

("%d",&

(pcon-

>per[pcon-

>usedsize]

.age));

printf

("請輸入**》\n");

scanf

("%s"

, pcon-

>per[pcon-

>usedsize]

.tele)

;printf

("請輸入位址》\n");

scanf

("%s"

, pcon-

>per[pcon-

>usedsize]

.addr)

; pcon-

>usedsize++

;printf

("新增成功!\n");

}

查詢聯絡人

int

searchcontact

(contact *pcon)

printf

("請輸入姓名》\n");

scanf

("%s"

, name)

;for

(int i =

0; i < pcon-

>usedsize; i++)}

return-1

;}

刪除聯絡人

void

delcontact

(contact *pcon)

for(i = index; i < pcon-

>usedsize -

1; i++

) pcon-

>usedsize--

;printf

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

}

顯示所有聯絡人

void

showcontact

(contact *pcon)

}

清空聯絡人

void

clearcontact

(contact *pcon)

按照聯絡人姓名對聯絡人進行排序

void

sqrtcontact

(contact *pcon)}}

printf

("排序成功\n");

}

釋放分配空間

void

destorycontact

(contact *pcon)

測試

#define _crt_secure_no_warnings

#include"contact.h"

void

menu()

void

start()

}while

(input);}

intmain()

簡易通訊錄(檔案版)

第二個模組便是我們的測試函式,測試函式便可以實現我們的選單列印,同時由我們接收不同的值便可以實現不同的操作,就是相應的方法的實現,這裡很明顯可以通過乙個switch語句來進行控制。第三個模組便是我們的方法實現的函式,將模組2裡定義的型別為通訊錄的位址傳到各個方法裡,這樣便可以實現對通訊錄的操作。in...

動態通訊錄

動態版通訊錄,是乙個動態增容的過程 自定義標頭檔案部分 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...