增加、刪除、查詢、修改聯絡人,列印所有聯絡人,清空所有聯絡人
#define _crt_secure_no_warnings 1
#ifndef _addresslist_h_
#define _addresslist_h_
#include
#include
#include
#include
//存放聯絡人姓名號碼的結構體,如果還想加其他的資訊可以自行新增
typedef
struct addresslist addresslist;
//充當**簿的結構體
typedef
struct book book;
intmenu()
;//選單列印函式
void
initlist
(book* plist)
;//初始化通訊錄
void
add(book* plist)
;//新增聯絡人
void
printall
(book* plist)
;//列印所有聯絡人
void
delete
(book* plist)
;//刪除聯絡人
void
find
(book* plist)
;//查詢聯絡人
void
amend
(book* plist)
;//修改聯絡人
void
cleanall
(book* plist)
;//清除所有聯絡人
#endif
// !_addresslist_h_
#define _crt_secure_no_warnings 1
#include
"addresslist.h"
//功能選單
intmenu()
//初始化聯絡人列表
void
initlist
(book* plist)
}//新增聯絡人
void
add(book* plist)
else
}//查詢函式
static
intfindname
(char
* pname, book* plist)
}return-1
;}//刪除聯絡人
void
delete
(book* plist)
;int choice =0;
printf
("輸入要刪除的聯絡人姓名:\n");
scanf
("%s"
, name)
;printf
("確定要刪除聯絡人嗎?\n");
printf
("1.是 0.否\n");
scanf
("%d"
,&choice);if
(choice)
plist->count--
;printf
("刪除成功\n");
}else
printf
("找不到聯絡人\n");
}else
printf
("返回主選單\n");
}//查詢聯絡人
void
find
( book* plist)
;printf
("待查詢聯絡人姓名:\n");
scanf
("%s"
, name)
;int num =
findname
(name, plist);if
(num !=-1
)else
printf
("找不到聯絡人。\n");
}//修改聯絡人
void
amend
(book* plist)
;printf
("待修改聯絡人姓名:\n");
scanf
("%s"
, name)
;int num =
findname
(name, plist);if
(num !=-1
)else
printf
("找不到聯絡人\n");
}//清除通訊錄
void
cleanall
(book* plist)
}}
#include
"addresslist.h"
intmain()
;initlist
(&list)
;int ret =0;
doelse
}while
(ret)
;system
("pause");
return0;
}
轉移表void
(*pfun[7]
)(book* p2)
=;
這裡建立了乙個存放函式指標的陣列,函式名即函式指標,為了對應menu的順序,將函式指標陣列的首元素初始化為0,後面依次對應相應的功能。
需要注意,轉移表中所有函式的返回值型別,引數型別都要完全一致。
轉移表的優勢
如果需要增加或者減少一些功能,在實現相應的函式後,只需在轉移表中加入函式名即可新增功能。而不用像使用switch語句一樣新增幾個功能就要新增幾個case,從而簡化了**的結構。
c語言實現通訊錄
通訊錄可以用來儲存1000個人的資訊,每個人的資訊包括 姓名 性別 年齡 住址 提供功能 1.新增聯絡人資訊 2.刪除指定聯絡人資訊 3.查詢指定聯絡人資訊 4.修改指定聯絡人資訊 5.顯示所有聯絡人資訊 6.清空所有聯絡人 7.以名字排序所有聯絡人 ifndef contact h define ...
C語言實現通訊錄
今天寫乙個簡單的c語言小專案,簡易的通訊錄 編譯環境 win10 vs2013 通訊錄可以用來儲存1000個人的資訊,每個人的資訊包括 姓名 性別 年齡 住址 通訊錄包含的功能 1.新增聯絡人資訊 2.刪除指定聯絡人資訊 3.查詢指定聯絡人資訊 4.修改指定聯絡人資訊 5.顯示所有聯絡人資訊 6.清...
C語言實現通訊錄
實現乙個通訊錄 通訊錄可以用來儲存1000個人的資訊,每個人的資訊包括 姓名 性別 年齡 住址 提供方法 1.新增聯絡人資訊 2.刪除指定聯絡人資訊 3.查詢指定聯絡人資訊 4.修改指定聯絡人資訊 5.顯示所有聯絡人資訊 6.清空所有聯絡人 7.以名字排序所有聯絡人 下面是 在字尾為.c檔案前提下 ...