C++簡單實現通訊錄管理系統


#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;
#define MAX 1000

//聯系人結構體
struct Person {
	string M_name; 		//姓名
	int M_sex;			//性別:1男 2女
	int M_age;			//年齡
	string M_phone;		//電話
	string M_address;		//地址
};

//通訊錄結構體
struct Addressbooks {
	struct Person personArray[MAX];	//通訊錄中保持的聯系人數組
	int M_size;						//通訊錄中人員個數
};



//   展示菜單功能
void showMenu() {
	 cout << "******************************" << endl;
	 cout << "***** 1. 添 加 聯 系 人 ******" << endl;
	 cout << "***** 2. 顯 示 聯 系 人 ******" << endl;
	 cout << "***** 3. 刪 除 聯 系 人 ******" << endl;
	 cout << "***** 4. 查 找 聯 系 人 ******" << endl;
	 cout << "***** 5. 修 改 聯 系 人 ******" << endl;
	 cout << "***** 6. 清 空 聯 系 人 ******" << endl;
	 cout << "***** 0. 退 出 通 訊 錄 ******" << endl;
	 cout << "******************************" << endl;
}

//0. 退出通訊錄
void exitMenu() {
	cout << "歡迎下次使用" << endl;
	system("pause");
	return;
}

//1. 添加聯系人
void writePerson(Addressbooks *abs, int pos) {
	//姓名
	string name;
	cout << "請輸入姓名:" << endl;
	cin >> name;
	abs->personArray[pos].M_name = name;

	cout << "請輸入性別" << endl;
	cout << "1 -- 男" << endl;
	cout << "2 -- 女" << endl;
	//性別
	int sex = 0;
	while(true) {
		cin >> sex;
		if(sex == 1 || sex == 2) {
			abs->personArray[pos].M_sex = sex;
			break;
		}
		cout << "輸入有誤,請重新輸入";
	}
	//年齡
	cout << "請輸入年齡:" << endl;
	int age = 0;
	cin >> age;
	abs->personArray[pos].M_age = age;
	//聯系電話
	cout << "請輸入聯系電話:" << endl;
	string phone = "";
	cin >> phone;
	abs->personArray[pos].M_phone = phone;
	//家庭住址
	cout << "請輸入家庭地址: " << endl;
	string address = "";
	cin >> address;
	abs->personArray[pos].M_address = address;

	if(!name.empty() && sex && age && !phone.empty() && !address.empty()) {
		cout << "添加成功" << endl;
		system("pause");
		system("cls");
	}
}
void addPerson(Addressbooks *abs) {
	//判斷電話本是否滿了
	int pos = abs ->M_size;
	if(pos == MAX) {
		cout << "通訊錄已滿,無法添加" << endl;
		return;
	} else {
		cout << pos << endl;
		writePerson(abs, pos);
		abs->M_size++; //更新通訊錄人數
		//cout << abs->M_size << endl;
	}
}

//2. 顯示聯系人
void printPerson(Addressbooks *abs, int pos) {
	cout << "姓名:" << abs->personArray[pos].M_name << "\t";
	cout << "性別: " << (abs->personArray[pos].M_sex == 1 ? "男" : "女") << "\t";
	cout << "年齡: " << abs->personArray[pos].M_age << "\t";
	cout << "電話:" << abs->personArray[pos].M_phone << "\t";
	cout << "住址:" << abs->personArray[pos].M_address << endl;
}

void showPerson(Addressbooks *abs) {
	if(abs->M_size == 0) {
		cout << " 當前記錄為空" << endl;
	} else {
		for(int i = 0; i < abs->M_size; i++) {
			printPerson(abs, i);
		}
	}
	system("pause");
	system("cls");
}

//3. 刪除聯系人
int isExist(Addressbooks *abs, string name) {
	for(int i = 0; i < i; i++) {
		if(abs->personArray[i].M_name == name) {
			return i;
		}
	}
	return -1;
}

void deletePerson(Addressbooks *abs){
	cout << "請輸入您要刪除的聯系人" << endl;
	string name;
	cin >> name;

	int ret = isExist(abs, name);
	if(ret != -1) {
		for(int i = ret; i <abs->M_size; i++) {
			abs->personArray[i] = abs->personArray[i + 1];
		}
		abs->M_size--;
		cout << "刪除成功" << endl;
	} else {
		cout << "查無此人" << endl;
	}

	system("pause");
	system("cls");
}
//4. 查找聯系人
void findPerson(Addressbooks *abs) {
	cout << "請輸入您要查找的聯系人" << endl;
	string name;
	cin >> name;

	int ret = isExist(abs, name);
	if(ret != -1) {
		printPerson(abs, ret);
	} else {
		cout << "查無此人" << endl;
	}
	system("pause");
	system("cls");
}

//5. 修改聯系人
void modifyPerson(Addressbooks *abs) {
	cout << "請輸入您要修改的聯系人" << endl;
	string name;
	cin >> name;

	int ret = isExist(abs, name);
	if(ret != -1) {
		writePerson(abs, ret);
		cout << "修改成功" << endl;
	} else {
		cout << "查無此人" << endl;
	}
	system("pause");
	system("cls");
}

//6. 清空聯系人
void cleanPerson(Addressbooks *abs) {
	abs->M_size = 0;
	cout << "通訊錄已清空" << endl;
	system("pause");
	system("cls");
}

int main() {
	Addressbooks abs;	//創建通訊錄
	abs.M_size = 0;		//初始化通訊錄中人數
	int select = 0; 	//選擇的序號

	while(true) {
		showMenu();
		cin >> select;
		switch(select) {
			case 1: //添加聯系人
				addPerson(&abs);
				break;
			case 2: //顯示聯系人
				showPerson(&abs);
				break;
			case 3:	//刪除聯系人
				deletePerson(&abs);
				break;
			case 4:	//查找聯系人
				findPerson(&abs);
				break;
			case 5:	//修改聯系人
				modifyPerson(&abs);
				break;
			case 6:	//清空聯系人
				cleanPerson(&abs);
				break;
			case 0:	//退出通訊錄
				exitMenu();
				break;
			default:
				exitMenu();
				break;
			}
		}

	system("pause");
	
	return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM