每個人的資訊包括:
姓名、性別、年齡、**、住址
新增聯絡人資訊
刪除指定聯絡人資訊
查詢指定聯絡人資訊
修改指定聯絡人資訊
顯示所有聯絡人資訊
清空所有聯絡人
以名字排序所有聯絡人
#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...