目錄
通訊錄管理系統(tǒng)(課程設(shè)計(jì))
一、系統(tǒng)中需要實(shí)現(xiàn)的功能
二、創(chuàng)建項(xiàng)目
三、實(shí)現(xiàn)功能
1、菜單功能
?2.添加聯(lián)系人功能
?3.顯示聯(lián)系人功能
4.刪除聯(lián)系人?
5 .查找聯(lián)系人功能
?6.修改聯(lián)系人功能
?7.清空聯(lián)系人功能
?8.退出功能
通訊錄管理系統(tǒng)(課程設(shè)計(jì))
對(duì)于通訊錄管理系統(tǒng)而言,不需要太復(fù)雜的代碼也能實(shí)現(xiàn),當(dāng)然如果想要設(shè)計(jì)的更好那肯定就會(huì)比較復(fù)雜一些。那么現(xiàn)在就來(lái)看看我的通訊錄管理系統(tǒng)代碼吧。
一、系統(tǒng)中需要實(shí)現(xiàn)的功能
1.添加聯(lián)系人:向通訊錄中添加新人,信息包括(姓名、性別、年齡、聯(lián)系電話(huà)、家庭住址)。最多記錄1000人。
2.顯示聯(lián)系人:顯示通訊錄中所有聯(lián)系人信息
3.刪除聯(lián)系人:按照姓名進(jìn)行刪除指定聯(lián)系人
4.查找聯(lián)系人:按照姓名進(jìn)行查看指定聯(lián)系人信息
5.修改聯(lián)系人:按照姓名重新修改指定聯(lián)系人
6.清空聯(lián)系人:清空通訊錄中所有信息
7.退出通訊錄:退出當(dāng)前使用的通訊錄
二、創(chuàng)建項(xiàng)目
這里我就不一一細(xì)說(shuō)啦,用的軟件不同使用方法就會(huì)不同。我用的vs2019
1.打開(kāi)visual studio后,點(diǎn)擊創(chuàng)建新項(xiàng)目,創(chuàng)建新的C++項(xiàng)目
2.填寫(xiě)項(xiàng)目名稱(chēng),選擇項(xiàng)目路徑
3.找到源文件,右擊添加->新建項(xiàng)->C++文件(.cpp)->添加
三、實(shí)現(xiàn)功能
1、菜單功能
- 封裝函數(shù)顯示菜單界面
- 在main函數(shù)中調(diào)用封裝好的函數(shù)
簡(jiǎn)而言之,先寫(xiě)一個(gè)顯示菜單界面的函數(shù)然后再主菜單調(diào)用就OK啦
代碼如下:
void showMenu()
{
cout << "*************************" << endl;
cout << "***** 1、添加聯(lián)系人 *****" << endl;
cout << "***** 2、顯示聯(lián)系人 *****" << endl;
cout << "***** 3、刪除聯(lián)系人 *****" << endl;
cout << "***** 4、查找聯(lián)系人 *****" << endl;
cout << "***** 5、修改聯(lián)系人 *****" << endl;
cout << "***** 6、清空聯(lián)系人 *****" << endl;
cout << "***** 7、退出通訊錄 *****" << endl;
cout << "*************************" << endl;
}
int main()
{
showMenu();
system("pause");
return 0;
}
菜單功能效果圖如下:
?2.添加聯(lián)系人功能
- 設(shè)計(jì)聯(lián)系人結(jié)構(gòu)體//聯(lián)系人是一個(gè)特殊的類(lèi)型包括name,age,sex,telephone,address.
- 設(shè)計(jì)通訊錄結(jié)構(gòu)體//存放1000個(gè)聯(lián)系人以及顯示當(dāng)前有多少人
- main函數(shù)中創(chuàng)建通訊錄
- 封裝添加聯(lián)系人函數(shù)
- 測(cè)試添加聯(lián)系人功能
2.1設(shè)計(jì)結(jié)構(gòu)體
聯(lián)系人信息包括:姓名、性別、年齡、聯(lián)系電話(huà)、家庭住址
在通訊錄結(jié)構(gòu)體中,設(shè)定一個(gè)容量為1000的存放聯(lián)系人的數(shù)組,并記錄當(dāng)前通訊錄中聯(lián)系人數(shù)量
代碼如下:
#define MAX 1000//維護(hù)數(shù)據(jù)現(xiàn)存放1000之后還可以改為2000
//設(shè)計(jì)聯(lián)系人結(jié)構(gòu)體
struct Person
{
string m_name;//姓名
int m_sex;//性別1 男 2 女
int m_age;//年齡
string m_phone;//電話(huà)
string m_address;//住址
};
// 設(shè)計(jì)通訊錄結(jié)構(gòu)體
struct Addressbooks
{
struct Person personArray[MAX];//通訊錄中保存的聯(lián)系人數(shù)組
int size;//通訊錄中當(dāng)前記錄聯(lián)系人個(gè)數(shù)
};
2.2main函數(shù)中創(chuàng)建通訊錄
- 在main函數(shù)中創(chuàng)建一個(gè)通訊錄變量,代碼如下:
Addressbooks abs;//創(chuàng)建通訊錄結(jié)構(gòu)體變量 abs.size = 0;//初始化通訊錄中當(dāng)前人員個(gè)數(shù)
2.3封裝添加聯(lián)系人函數(shù)?
如果要添加聯(lián)系人則需先判斷通訊錄是否已滿(mǎn),如果滿(mǎn)了就不再添加,沒(méi)滿(mǎn)則將新聯(lián)系人信息逐個(gè)加入到通訊錄。代碼如下:
void addPerson(Addressbooks* abs)//傳的地址所以需要指針接收地址
{
//判斷通訊錄是否已滿(mǎn),滿(mǎn)了則不再添加
if (abs->size == MAX)
{
cout << "通訊錄已滿(mǎn),無(wú)法繼續(xù)添加" << endl;
return;
}
else//添加聯(lián)系人
{
string name;//姓名
cout << "請(qǐng)輸入姓名:" << endl;
cin >> name;
abs->personArray[abs->size].m_name = name;
int sex = 0;//性別
cout << "1-男2-女,請(qǐng)輸入性別:" << endl;
while (true)//循環(huán)如果輸入1或2可以退出,輸入3或其他則重新輸入
{
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->personArray[abs->size].m_sex = sex;
break;
}
cout << "輸入有誤,請(qǐng)重新輸入" << endl;
}
int age = 0;//年齡
cout << "請(qǐng)輸入年齡:" << endl;
abs->personArray[abs->size].m_age = age;
while (true)//判斷年齡的輸入
{
cin >> age;
if (age>0&&age<140)
{
abs->personArray[abs->size].m_age = age;
break;
}
cout << "輸入有誤,請(qǐng)重新輸入" << endl;
}
string phone;//電話(huà)
cout << "請(qǐng)輸入聯(lián)系電話(huà):" << endl;
cin >> phone;
abs->personArray[abs->size].m_phone = phone;
string address;//住址
cout << "請(qǐng)輸入家庭住址" << endl;
cin >> address;
abs->personArray[abs->size].m_address = address;
//更新通訊錄中的人數(shù)
abs->size++;
cout << "添加聯(lián)系人成功(?ω?)" << endl;
system("pause");
system("cls");//清屏操作
}
}
2.4測(cè)試添加聯(lián)系人功能
在主菜單界面中,如果選擇1,則代表添加聯(lián)系人,我們可以測(cè)試下該功能在switch case 語(yǔ)句中,case1里添加相關(guān)語(yǔ)句。
case 1://1、添加聯(lián)系人
addPerson(&abs);//利用地址傳遞可以修飾實(shí)參,addPerson(abs)值傳遞不會(huì)修飾實(shí)參
break;
添加聯(lián)系人功能效果圖:
?3.顯示聯(lián)系人功能
- 封裝顯示聯(lián)系人函數(shù)//判斷是否當(dāng)前通訊錄有該成員,人數(shù)大于零,顯示信息
- 測(cè)試顯示聯(lián)系人功能
3.1封裝顯示聯(lián)系人
判斷如果當(dāng)前通訊錄中沒(méi)有人員,就提示記錄為空,人數(shù)大于0,顯示通訊錄中信息
代碼如下:
void showPerson(Addressbooks* abs)
{
//判斷通訊錄中人數(shù)是為零,0則提示記錄為空,不為零顯示聯(lián)系人
if (abs->size == 0)
{
cout << "當(dāng)前的記錄為空" << endl;
}
else
{
for (int i = 0; i < abs->size; i++)
{
cout << "姓名:" << abs->personArray[i].m_name << "\t";
cout << "性別:" << (abs->personArray[i].m_sex == 1 ? "男" : "女") << "\t";
cout << "年齡:" << abs->personArray[i].m_age << "\t";
cout << "電話(huà):" << abs->personArray[i].m_phone << "\t";
cout << "住址:" << abs->personArray[i].m_address << endl;
}
}
system("pause");
system("cls");//清屏
}
3.2測(cè)試顯示聯(lián)系人功能
在主菜單界面中,如果選擇2,則代表添加聯(lián)系人,我們可以測(cè)試下該功能在switch case 語(yǔ)句中,case2里添加相關(guān)語(yǔ)句。
case 2://2、顯示聯(lián)系人
showPerson(&abs);
break;
顯示聯(lián)系人效果圖:
4.刪除聯(lián)系人?
- 封裝檢測(cè)聯(lián)系人是否存在
- 封裝刪除聯(lián)系人函數(shù)
- 測(cè)試刪除聯(lián)系人功能
4.1封裝檢測(cè)聯(lián)系人是否存在
在刪除聯(lián)系人之前,我們需要先判斷用戶(hù)輸入的聯(lián)系人是否存在,如果存在刪除,不存在提示用戶(hù)沒(méi)有要?jiǎng)h除的聯(lián)系人,所以我們可以把檢測(cè)聯(lián)系人是否存在封裝成一個(gè)函數(shù)中,如果存在,返回聯(lián)系人在通訊錄中的位置,不存在返回-1。檢測(cè)聯(lián)系人是否存在代碼如下:
//檢測(cè)聯(lián)系人是否存在,如果存在返回聯(lián)系人所在數(shù)組中的具體位置,不存在返回-1
int isExist(Addressbooks * abs,string name)//通訊錄與姓名進(jìn)行對(duì)比
{
for (int i = 0; i < abs->size; i++)
{
//找到用戶(hù)輸入姓名
if (abs->personArray[i].m_name == name)
{
return i;//找到,返回這個(gè)人在數(shù)組中的下標(biāo)編號(hào)
}
}
return -1;//到遍歷結(jié)束都沒(méi)有找到該聯(lián)系人信息
}
4.2封裝刪除聯(lián)系人函數(shù)
根據(jù)用戶(hù)輸入的聯(lián)系人判斷通訊錄中是否有此人,如果查找到進(jìn)行刪除,并提示刪除成功,如查不到提示查無(wú)此人。代碼如下:
//刪除指定聯(lián)系人
void deletePerson(Addressbooks * abs)
{
cout << "請(qǐng)輸入要?jiǎng)h除的聯(lián)系人姓名:" << endl;
string name;
cin >> name;
int ret=isExist(abs, name);//ret==-1未查到;ret!=-1找到
if (ret != -1)
{
//查找到人,進(jìn)行刪除工作
for (int i = ret; i < abs->size; i++)
{
//數(shù)據(jù)前移
abs->personArray[i] = abs->personArray[i + 1];
}
abs->size--;//更新通訊錄中人員數(shù)
cout << "刪除成功(* ̄▽?zhuān)?)ブ" << endl;
}
else
{
cout << "查無(wú)此人" << endl;
}
system("pause");
system("cls");//清屏
}
4.3測(cè)試刪除聯(lián)系人功能
在主菜單界面中,如果選擇3,則代表添加聯(lián)系人,我們可以測(cè)試下該功能在switch case 語(yǔ)句中,case3里添加相關(guān)語(yǔ)句。
case 3://3、刪除聯(lián)系人
deletePerson(&abs);
break;
刪除聯(lián)系人功能效果圖如下:
5 .查找聯(lián)系人功能
- 封裝查找學(xué)生函數(shù)
- 測(cè)試查找指定學(xué)生
5.1封裝查找學(xué)生函數(shù)
按照學(xué)生姓名或者學(xué)號(hào)進(jìn)行查詢(xún),沒(méi)有找到,進(jìn)行“查無(wú)此人”提示,如果找到相應(yīng)學(xué)生,在界面中顯示學(xué)生的全部信息。代碼如下:
//查找指定聯(lián)系人信息
void findPerson(Addressbooks * abs)
{
cout << "請(qǐng)輸入要查找的聯(lián)系人姓名:" << endl;
string name;
cin >> name;
//判斷指定聯(lián)系人是否存在
int ret = isExist(abs, name);
if (ret != -1)
{
cout << "姓名:" << abs->personArray[ret].m_name << "\t" ;
cout << "性別:" << (abs->personArray[ret].m_sex == 1 ? "男" : "女") << "\t";
cout << "年齡:" << abs->personArray[ret].m_age << "\t";
cout << "電話(huà):" << abs->personArray[ret].m_phone << "\t";
cout << "住址:" << abs->personArray[ret].m_address << endl;
}
else
{
cout << "查無(wú)此人" << endl;
}
system("pause");
system("cls");//清屏
}
5.2測(cè)試查找指定學(xué)生
在主菜單界面中,如果選擇4,則代表添加聯(lián)系人,我們可以測(cè)試下該功能在switch case 語(yǔ)句中,case4里添加相關(guān)語(yǔ)句。代碼如下:
case 4://4、查找聯(lián)系人
findPerson(&abs);
break;
查找聯(lián)系人效果圖如下:
?6.修改聯(lián)系人功能
- 封裝修改學(xué)生信息函數(shù)
- 測(cè)試修改指定學(xué)生信息
6.1封裝修改學(xué)生信息函數(shù)
查找學(xué)生成功則進(jìn)行修改,不成功查無(wú)此人。根據(jù)查詢(xún)結(jié)果對(duì)應(yīng)的記錄進(jìn)行修改,修改時(shí)注意編號(hào)的唯一性。代碼如下:
//修改指定聯(lián)系人信息
void modifyPerson(Addressbooks* abs)
{
cout << "請(qǐng)輸入要修改的聯(lián)系人姓名:" << endl;
string name;
cin >> name;
int ret = isExist(abs, name);//ret==-1未查到;ret!=-1找到
if (ret != -1)
{
//姓名
cout << "請(qǐng)輸入姓名:" << endl;
string name;
cin >> name;
abs->personArray[ret].m_name = name;//找到的姓名修改為name
//性別
cout << "1-男,2-女,請(qǐng)輸入性別:" << endl;
int sex = 0;
while (true)//循環(huán)如果輸入1或2可以退出,輸入3或其他則重新輸入
{
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->personArray[abs->size].m_sex = sex;
break;
}
cout << "輸入有誤,請(qǐng)重新輸入" << endl;
}
//年齡
cout << "請(qǐng)輸入年齡:" << endl;
int age = 0;//年齡
abs->personArray[abs->size].m_age = age;
while (true)//判斷年齡的輸入
{
cin >> age;
if (age > 0 && age < 140)
{
abs->personArray[abs->size].m_age = age;
break;
}
cout << "輸入有誤,請(qǐng)重新輸入" << endl;
}
//電話(huà)
cout << "請(qǐng)輸入電話(huà):" << endl;
string phone;
cin >> phone;
abs->personArray[ret].m_phone = phone;
//住址
cout << "請(qǐng)輸入住址:" << endl;
string address;
cin >> address;
abs->personArray[ret].m_address = address;
cout << "修改成功(* ̄▽?zhuān)?)ブ" << endl;
}
else
{
cout << "查無(wú)此人" << endl;
}
system("pause");
system("cls");//清屏
}
6.2測(cè)試修改指定學(xué)生信息
在主菜單界面中,如果選擇5,則代表添加聯(lián)系人,我們可以測(cè)試下該功能在switch case 語(yǔ)句中,case5里添加相關(guān)語(yǔ)句。代碼如下:
case 5://5、修改聯(lián)系人
modifyPerson(&abs);
break;
修改聯(lián)系人功能效果圖如下:
?7.清空聯(lián)系人功能
- 封裝清空聯(lián)系人函數(shù)
- 測(cè)試清空聯(lián)系人
7.1封裝清空聯(lián)系人函數(shù)
將通訊錄所有聯(lián)系人信息清除掉,只要將通訊錄記錄的聯(lián)系人數(shù)量置為0,做邏輯清空即可。代碼如下:
//清空通訊錄中所有聯(lián)系人
void cleanPerson(Addressbooks* abs)
{
abs->size = 0;//將當(dāng)前記錄的通訊錄聯(lián)系人置為零,做邏輯清空
cout << "通訊錄已清空" << endl;
system("pause");
system("cls");//清屏
}
7.2測(cè)試清空聯(lián)系人
在主菜單界面中,如果選擇6,則代表添加聯(lián)系人,我們可以測(cè)試下該功能在switch case 語(yǔ)句中,case6里添加相關(guān)語(yǔ)句。代碼如下:
case 6://6、清空聯(lián)系人
cleanPerson(&abs);
break;
清空聯(lián)系人功能效果圖如下:
?8.退出功能
根據(jù)用戶(hù)不同的選擇,進(jìn)入不同的功能,可以選擇switch分支結(jié)構(gòu),將整個(gè)架構(gòu)進(jìn)行搭建,如果用戶(hù)選擇0,則執(zhí)行退出,選擇其他先不做操作,也不會(huì)退出程序。
代碼如下:
int main()
{
int select = 0;//創(chuàng)建用戶(hù)選擇輸入的變量
//按1-6時(shí)使其不能退出主菜單能返回主菜單故使用while
while (true)
{
showMenu();//菜單的調(diào)用
cin >> select;
switch (select)//1 2 3 4 5 6 7對(duì)應(yīng)菜單
{
case 1://1、添加聯(lián)系人
addPerson(&abs);//利用地址傳遞可以修飾實(shí)參,addPerson(abs)值傳遞不會(huì)修飾實(shí)參
break;
case 2://2、顯示聯(lián)系人
showPerson(&abs);
break;
case 3://3、刪除聯(lián)系人
deletePerson(&abs);
break;
case 4://4、查找聯(lián)系人
findPerson(&abs);
break;
case 5://5、修改聯(lián)系人
modifyPerson(&abs);
break;
case 6://6、清空聯(lián)系人
cleanPerson(&abs);
break;
case 7://7、退出通訊錄
cout << "歡迎下次使用(^v^)" << endl;
system("pause");
return 0;
break;
default:
break;
}
}
system("pause");//按任意鍵繼續(xù)
return 0;
}
退出功能效果圖如下:
到這里就結(jié)束啦,完整代碼放下面嘍,需要自取。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-494670.html
#include<iostream>
#include<string>
using namespace std;
#define MAX 1000//維護(hù)數(shù)據(jù)現(xiàn)存放1000之后還可以改為2000
//設(shè)計(jì)聯(lián)系人結(jié)構(gòu)體
struct Person
{
string m_name;//姓名
int m_sex;//性別1 男 2 女
int m_age;//年齡
string m_phone;//電話(huà)
string m_address;//住址
};
// 設(shè)計(jì)通訊錄結(jié)構(gòu)體
struct Addressbooks
{
struct Person personArray[MAX];//通訊錄中保存的聯(lián)系人數(shù)組
int size;//通訊錄中當(dāng)前記錄聯(lián)系人個(gè)數(shù)
};
//添加聯(lián)系人
void addPerson(Addressbooks* abs)//傳的地址所以需要指針接收地址
{
//判斷通訊錄是否已滿(mǎn),滿(mǎn)了則不再添加
if (abs->size == MAX)
{
cout << "通訊錄已滿(mǎn),無(wú)法繼續(xù)添加" << endl;
return;
}
else//添加聯(lián)系人
{
string name;//姓名
cout << "請(qǐng)輸入姓名:" << endl;
cin >> name;
abs->personArray[abs->size].m_name = name;
int sex = 0;//性別
cout << "1-男2-女,請(qǐng)輸入性別:" << endl;
while (true)//循環(huán)如果輸入1或2可以退出,輸入3或其他則重新輸入
{
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->personArray[abs->size].m_sex = sex;
break;
}
cout << "輸入有誤,請(qǐng)重新輸入" << endl;
}
int age = 0;//年齡
cout << "請(qǐng)輸入年齡:" << endl;
abs->personArray[abs->size].m_age = age;
while (true)//判斷年齡的輸入
{
cin >> age;
if (age>0&&age<140)
{
abs->personArray[abs->size].m_age = age;
break;
}
cout << "輸入有誤,請(qǐng)重新輸入" << endl;
}
string phone;//電話(huà)
cout << "請(qǐng)輸入聯(lián)系電話(huà):" << endl;
cin >> phone;
abs->personArray[abs->size].m_phone = phone;
string address;//住址
cout << "請(qǐng)輸入家庭住址" << endl;
cin >> address;
abs->personArray[abs->size].m_address = address;
//更新通訊錄中的人數(shù)
abs->size++;
cout << "添加聯(lián)系人成功(?ω?)" << endl;
system("pause");
system("cls");//清屏操作
}
}
//顯示聯(lián)系人
void showPerson(Addressbooks* abs)
{
//判斷通訊錄中人數(shù)是為零,0則提示記錄為空,不為零顯示聯(lián)系人
if (abs->size == 0)
{
cout << "當(dāng)前的記錄為空" << endl;
}
else
{
for (int i = 0; i < abs->size; i++)
{
cout << "姓名:" << abs->personArray[i].m_name << "\t";
cout << "性別:" << (abs->personArray[i].m_sex == 1 ? "男" : "女") << "\t";
cout << "年齡:" << abs->personArray[i].m_age << "\t";
cout << "電話(huà):" << abs->personArray[i].m_phone << "\t";
cout << "住址:" << abs->personArray[i].m_address << endl;
}
}
system("pause");
system("cls");//清屏
}
//檢測(cè)聯(lián)系人是否存在,如果存在返回聯(lián)系人所在數(shù)組中的具體位置,不存在返回-1
int isExist(Addressbooks * abs,string name)//通訊錄與姓名進(jìn)行對(duì)比
{
for (int i = 0; i < abs->size; i++)
{
//找到用戶(hù)輸入姓名
if (abs->personArray[i].m_name == name)
{
return i;//找到,返回這個(gè)人在數(shù)組中的下標(biāo)編號(hào)
}
}
return -1;//到遍歷結(jié)束都沒(méi)有找到該聯(lián)系人信息
}
//刪除指定聯(lián)系人
void deletePerson(Addressbooks * abs)
{
cout << "請(qǐng)輸入要?jiǎng)h除的聯(lián)系人姓名:" << endl;
string name;
cin >> name;
int ret=isExist(abs, name);//ret==-1未查到;ret!=-1找到
if (ret != -1)
{
//查找到人,進(jìn)行刪除工作
for (int i = ret; i < abs->size; i++)
{
//數(shù)據(jù)前移
abs->personArray[i] = abs->personArray[i + 1];
}
abs->size--;//更新通訊錄中人員數(shù)
cout << "刪除成功(* ̄▽?zhuān)?)ブ" << endl;
}
else
{
cout << "查無(wú)此人" << endl;
}
system("pause");
system("cls");//清屏
}
//查找指定聯(lián)系人信息
void findPerson(Addressbooks * abs)
{
cout << "請(qǐng)輸入要查找的聯(lián)系人姓名:" << endl;
string name;
cin >> name;
//判斷指定聯(lián)系人是否存在
int ret = isExist(abs, name);
if (ret != -1)
{
cout << "姓名:" << abs->personArray[ret].m_name << "\t" ;
cout << "性別:" << (abs->personArray[ret].m_sex == 1 ? "男" : "女") << "\t";
cout << "年齡:" << abs->personArray[ret].m_age << "\t";
cout << "電話(huà):" << abs->personArray[ret].m_phone << "\t";
cout << "住址:" << abs->personArray[ret].m_address << endl;
}
else
{
cout << "查無(wú)此人" << endl;
}
system("pause");
system("cls");//清屏
}
//修改指定聯(lián)系人信息
void modifyPerson(Addressbooks* abs)
{
cout << "請(qǐng)輸入要修改的聯(lián)系人姓名:" << endl;
string name;
cin >> name;
int ret = isExist(abs, name);//ret==-1未查到;ret!=-1找到
if (ret != -1)
{
//姓名
cout << "請(qǐng)輸入姓名:" << endl;
string name;
cin >> name;
abs->personArray[ret].m_name = name;//找到的姓名修改為name
//性別
cout << "1-男,2-女,請(qǐng)輸入性別:" << endl;
int sex = 0;
while (true)//循環(huán)如果輸入1或2可以退出,輸入3或其他則重新輸入
{
cin >> sex;
if (sex == 1 || sex == 2)
{
abs->personArray[abs->size].m_sex = sex;
break;
}
cout << "輸入有誤,請(qǐng)重新輸入" << endl;
}
//年齡
cout << "請(qǐng)輸入年齡:" << endl;
int age = 0;//年齡
abs->personArray[abs->size].m_age = age;
while (true)//判斷年齡的輸入
{
cin >> age;
if (age > 0 && age < 140)
{
abs->personArray[abs->size].m_age = age;
break;
}
cout << "輸入有誤,請(qǐng)重新輸入" << endl;
}
//電話(huà)
cout << "請(qǐng)輸入電話(huà):" << endl;
string phone;
cin >> phone;
abs->personArray[ret].m_phone = phone;
//住址
cout << "請(qǐng)輸入住址:" << endl;
string address;
cin >> address;
abs->personArray[ret].m_address = address;
cout << "修改成功(* ̄▽?zhuān)?)ブ" << endl;
}
else
{
cout << "查無(wú)此人" << endl;
}
system("pause");
system("cls");//清屏
}
//清空通訊錄中所有聯(lián)系人
void cleanPerson(Addressbooks* abs)
{
abs->size = 0;//將當(dāng)前記錄的通訊錄聯(lián)系人置為零,做邏輯清空
cout << "通訊錄已清空" << endl;
system("pause");
system("cls");//清屏
}
//顯示菜單界面
void showMenu()
{
cout << "*************************" << endl;
cout << "***** 1、添加聯(lián)系人 *****" << endl;
cout << "***** 2、顯示聯(lián)系人 *****" << endl;
cout << "***** 3、刪除聯(lián)系人 *****" << endl;
cout << "***** 4、查找聯(lián)系人 *****" << endl;
cout << "***** 5、修改聯(lián)系人 *****" << endl;
cout << "***** 6、清空聯(lián)系人 *****" << endl;
cout << "***** 7、退出通訊錄 *****" << endl;
cout << "*************************" << endl;
}
int main()
{
Addressbooks abs;//創(chuàng)建通訊錄結(jié)構(gòu)體變量
abs.size = 0;//初始化通訊錄中當(dāng)前人員個(gè)數(shù)
int select = 0;//創(chuàng)建用戶(hù)選擇輸入的變量
//按1-6時(shí)使其不能退出主菜單能返回主菜單故使用while
while (true)
{
showMenu();//菜單的調(diào)用
cin >> select;
switch (select)//1 2 3 4 5 6 7對(duì)應(yīng)菜單
{
case 1://1、添加聯(lián)系人
addPerson(&abs);//利用地址傳遞可以修飾實(shí)參,addPerson(abs)值傳遞不會(huì)修飾實(shí)參
break;
case 2://2、顯示聯(lián)系人
showPerson(&abs);
break;
case 3://3、刪除聯(lián)系人
/*{
cout << "請(qǐng)輸入刪除聯(lián)系人姓名:" << endl;
string name;
cin >> name;
if (isExist(&abs, name) == -1)
{
cout << "查無(wú)此人" << endl;
}
else
{
cout << "找到此人" << endl;
}
}測(cè)試用的*/
deletePerson(&abs);
break;
case 4://4、查找聯(lián)系人
findPerson(&abs);
break;
case 5://5、修改聯(lián)系人
modifyPerson(&abs);
break;
case 6://6、清空聯(lián)系人
cleanPerson(&abs);
break;
case 7://7、退出通訊錄
cout << "歡迎下次使用(^v^)" << endl;
system("pause");
return 0;
break;
default:
break;
}
}
system("pause");//按任意鍵繼續(xù)
return 0;
}
ps:這是我的專(zhuān)業(yè)課設(shè)題目,本人能力有限,本文章僅供參考哦文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-494670.html
到了這里,關(guān)于通訊錄管理系統(tǒng)C++代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!