国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

通訊錄管理系統(tǒng)C++代碼

這篇具有很好參考價(jià)值的文章主要介紹了通訊錄管理系統(tǒng)C++代碼。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

通訊錄管理系統(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;
}

菜單功能效果圖如下:

通訊錄管理系統(tǒng)C++代碼

?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)系人功能效果圖:

通訊錄管理系統(tǒng)C++代碼

?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)系人效果圖:

通訊錄管理系統(tǒng)C++代碼

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)系人功能效果圖如下:

通訊錄管理系統(tǒng)C++代碼

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)系人效果圖如下:

通訊錄管理系統(tǒng)C++代碼

?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)系人功能效果圖如下:

通訊錄管理系統(tǒng)C++代碼

?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)系人功能效果圖如下:

通訊錄管理系統(tǒng)C++代碼

?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;
}

退出功能效果圖如下:

通訊錄管理系統(tǒng)C++代碼

到這里就結(jié)束啦,完整代碼放下面嘍,需要自取。

#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)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • C++編程案例講解-基于結(jié)構(gòu)體的控制臺(tái)通訊錄管理系統(tǒng)

    C++編程案例講解-基于結(jié)構(gòu)體的控制臺(tái)通訊錄管理系統(tǒng)

    添加聯(lián)系人 :向通訊錄中添加新人,信息包括(姓名、性別、年齡、聯(lián)系電話(huà)、家庭住址)最多記錄1000人 顯示聯(lián)系人 :顯示通訊錄中所有的聯(lián)系人信息 刪除聯(lián)系人 :按照姓名進(jìn)行刪除指定聯(lián)系人信息 查找聯(lián)系人 :按照姓名查看指定聯(lián)系人信息 修改聯(lián)系人 :按照姓名重新

    2024年02月05日
    瀏覽(96)
  • 手把手教你寫(xiě)代碼——基于控制臺(tái)的通訊錄管理系統(tǒng)(單表)

    手把手教你寫(xiě)代碼——基于控制臺(tái)的通訊錄管理系統(tǒng)(單表)

    本欄目專(zhuān)為入門(mén)java學(xué)習(xí)者設(shè)計(jì)的一些簡(jiǎn)單的入門(mén)項(xiàng)目 本項(xiàng)目為簡(jiǎn)單的基于控制臺(tái)的通訊錄管理系統(tǒng),所需要的環(huán)境僅僅為jdk以及mysql(版本不限)!只有一個(gè)簡(jiǎn)單的eclipse軟件以及我們的mysql可視化工具(視頻使用navicat) 本項(xiàng)目數(shù)據(jù)庫(kù)表僅有一個(gè),單表操作,方便學(xué)習(xí)! 本項(xiàng)

    2024年02月15日
    瀏覽(23)
  • 【C語(yǔ)言課設(shè)計(jì)劃】個(gè)人通訊錄管理系統(tǒng)(C語(yǔ)言大作業(yè) 鏈表 結(jié)構(gòu)體 運(yùn)行截圖 完整代碼)

    【C語(yǔ)言課設(shè)計(jì)劃】個(gè)人通訊錄管理系統(tǒng)(C語(yǔ)言大作業(yè) 鏈表 結(jié)構(gòu)體 運(yùn)行截圖 完整代碼)

    hello 大家好呀 這里是布丁學(xué)姐~ 今天給大家?guī)?lái)的是《C語(yǔ)言課設(shè)計(jì)劃》的第一篇,個(gè)人通訊錄管理系統(tǒng) 通訊錄是當(dāng)前社會(huì)每個(gè)人不可缺少的信息系統(tǒng),利用C語(yǔ)言和Dve c++制作個(gè)人通訊錄管理系統(tǒng),從根本上改變紙質(zhì)通訊錄難以長(zhǎng)久保存、容易丟失的弊端,從而提高信息管理和

    2024年02月02日
    瀏覽(568)
  • 通訊錄管理系統(tǒng)

    通訊錄管理系統(tǒng)

    作者:獅子也瘋狂 專(zhuān)欄:《項(xiàng)目集錦》 堅(jiān)持做好每一步,幸運(yùn)之神自然會(huì)駕凌在你的身上 該項(xiàng)目是用于日常生活中記錄聯(lián)系人信息的一款智能小工具。實(shí)現(xiàn)了對(duì)聯(lián)系人的姓名、年齡、性別、電話(huà)號(hào)碼、住址的添加及修改、查找、刪除、排序等功能。該項(xiàng)目是以 Windows 控制臺(tái)

    2024年02月05日
    瀏覽(98)
  • 簡(jiǎn)單通訊錄管理系統(tǒng)(Java)

    簡(jiǎn)單通訊錄管理系統(tǒng)(Java)

    提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 ? ? 任務(wù) : 在之前的練習(xí)任務(wù)中,我們已經(jīng)實(shí)現(xiàn)了通訊錄的增刪改查等基本功能,主要實(shí)現(xiàn)一個(gè)通訊錄的菜單管理功能。 仔細(xì)閱讀右側(cè)編輯區(qū)內(nèi)給出的代碼框架及注釋?zhuān)?Begin-End 中實(shí)現(xiàn)通訊錄菜單管

    2024年02月09日
    瀏覽(96)
  • Java--通訊錄管理系統(tǒng)【課程設(shè)計(jì)】

    Java--通訊錄管理系統(tǒng)【課程設(shè)計(jì)】

    目錄 1 設(shè)計(jì)任務(wù) 1.1需求分析 1.2任務(wù)分析 2 系統(tǒng)分析 2.1 總體設(shè)計(jì)分析 2.1.1設(shè)計(jì)要求 2.1.2設(shè)計(jì)任務(wù) 2.1.3設(shè)計(jì)思路 2.2?可行性分析 2.2.1 技術(shù)可行性分析 2.2.2?經(jīng)濟(jì)可行性分析 2.2.3?操作可行性分析 2.3?功能結(jié)構(gòu)分析 3 系統(tǒng)設(shè)計(jì) 4 系統(tǒng)實(shí)現(xiàn) 5?系統(tǒng)測(cè)試 5.1新建聯(lián)系人 5.2修改聯(lián)系人

    2023年04月19日
    瀏覽(91)
  • 【C語(yǔ)言】實(shí)現(xiàn)通訊錄管理系統(tǒng)

    【C語(yǔ)言】實(shí)現(xiàn)通訊錄管理系統(tǒng)

    大家好,我是蘇貝,本篇博客帶大家實(shí)現(xiàn)通訊錄,如果你覺(jué)得我寫(xiě)的還不錯(cuò)的話(huà),可以給我一個(gè)贊??嗎,感謝?? 本文將使用C語(yǔ)言來(lái)實(shí)現(xiàn)通訊錄管理系統(tǒng),該通訊錄包括若干聯(lián)系人,和每個(gè)聯(lián)系人的姓名、年齡、性別、電話(huà)、地址。此通訊錄的功能包括:增加聯(lián)系人信息,

    2024年02月08日
    瀏覽(94)
  • 數(shù)據(jù)結(jié)構(gòu)--學(xué)生通訊錄管理系統(tǒng)

    數(shù)據(jù)結(jié)構(gòu)--學(xué)生通訊錄管理系統(tǒng)

    文章目錄 一、問(wèn)題描述 二、系統(tǒng)功能設(shè)計(jì) 三、各個(gè)代碼部分 四、整體代碼及其運(yùn)行 五、總結(jié) 學(xué)生通訊錄管理系統(tǒng)--C語(yǔ)言實(shí)現(xiàn) 在現(xiàn)實(shí)中,用學(xué)號(hào)和姓名來(lái)記錄學(xué)生需要花費(fèi)大量的紙質(zhì)材料,并且出現(xiàn)容易丟失、查找困難等問(wèn)題。 “學(xué)生通訊管理系統(tǒng)”是為了幫助老師、同

    2024年02月11日
    瀏覽(98)
  • 【C語(yǔ)言】?jī)?yōu)化通訊錄管理系統(tǒng)

    【C語(yǔ)言】?jī)?yōu)化通訊錄管理系統(tǒng)

    大家好,我是蘇貝,本篇博客帶大家優(yōu)化上一篇的通訊錄,如果你覺(jué)得我寫(xiě)的還不錯(cuò)的話(huà),可以給我一個(gè)贊??嗎,感謝?? 在上一篇博文 實(shí)現(xiàn)通訊錄管理系統(tǒng) 的最后,我們了解了那段代碼的問(wèn)題:通訊錄的大小是固定的100個(gè)元素,如果想要存放1000個(gè)人的信息,那么空間就

    2024年02月06日
    瀏覽(96)
  • 通訊錄管理系統(tǒng)(個(gè)人學(xué)習(xí)筆記黑馬學(xué)習(xí))

    通訊錄管理系統(tǒng)(個(gè)人學(xué)習(xí)筆記黑馬學(xué)習(xí))

    通訊錄是一個(gè)可以記錄親人、好友信息的工具。 本教程主要利用C++來(lái)實(shí)現(xiàn)一個(gè)通訊錄管理系統(tǒng)系統(tǒng)中需要實(shí)現(xiàn)的功能如下: 添加聯(lián)系人:向通訊錄中添加新人,信息包括(姓名、性別、年齡、聯(lián)系電話(huà)、家庭住址)最多記錄1000人 顯示聯(lián)系人:顯示通訊錄中所有聯(lián)系人信息 刪除聯(lián)系

    2024年02月10日
    瀏覽(778)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包