c++實現通訊錄管理系統(控制檯版)

概述

此項目適合c++初學者,針對前面c++基礎知識,涉及到變量、結構體定義使用、數組定義使用、指針定義使用等。

c++實現通訊錄管理系統(控制檯版)

運行之後的結果如下:

代碼:

#include <iostream>
#include <string>
using namespace std;
#define MAX 1000//定義通訊錄最大容量爲1000
//聯繫人結構體
struct person
{
	string name;
	int sex;
	int age;
	string address;  
};
//通訊錄結構體
struct contact
{
	struct person p[MAX];
	int 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;
}
//封裝查詢聯繫人是否存在
int isExist(contact* con, string name) {
	for (int i = 0; i < con->size; i++) {
		if (con->p[i].name == name) {
			return i;
		}
	}
	return -1;
}
//添加聯繫人函數
void addPerson(contact *con){//傳入數組的指針
	if (con->size == MAX) {
		cout << "通訊錄已滿"<<endl;
	}
	else {
		
		cout << "輸入姓名";
		string name;
		cin >> name;
		cout << "輸入年齡";
		int age;
		cin >> age;
		cout << "輸入性別1:女 2:男";
		int sex;
		cin >> sex;
		cout << "輸入地址";
		string address;
		cin >> address;
		con->p[con->size].name = name;
		con->p[con->size].age = age;
		con->p[con->size].sex = sex;
		con->p[con->size].address = address;
		con->size++;
	}
	cout << "添加成功"<<endl;
	system("pause");
}
//刪除聯繫人函數
void deletecon(contact* con) {
	string name;
	cout << "輸入要刪除的姓名";
	cin >> name;
	int res = isExist(con,name);
	if (res != -1) {
		for (int i = res; i < con->size; i++) {
			con->p[res] = con->p[res + 1];
		}
		cout << "刪除成功" << endl;
		con->size--;
	}
	else {
		cout << "查無此人"<<endl;
	}
	system("pause");
}
//修改聯繫人函數
void updateContact(contact* con) {
	string name;
	cout << "輸入要修改的聯繫人姓名查詢" << endl;
	cin >> name;
	int res = isExist(con, name);
	if (res != -1) {
		cout << "姓名:" << con->p[res].name << "年齡:" << con->p[res].age << "性別:" << (con->p[res].sex == 1 ? "女" : "男") << "地址:" << con->p[res].address << endl;
		cout << "輸入修改姓名";
		string nametemp;
		cin >> nametemp;
		con->p[res].name = nametemp;
		cout << "輸入修改年齡" << endl;
		int age;
		cin >> age;
		con->p[res].age = age;
		cout << "輸入修改性別1:女2:男" << endl;
		int sex;
		cin >> sex;
		con->p[res].sex = sex;
		cout << "輸入修改地址" << endl;
		string address;
		cin >> address;
		con->p[res].address = address;
		cout << "修改成功" << endl;
	}
	else {
		cout << "查無此人" << endl;
	}
	system("pause");
}
//查詢聯繫人函數
void search(contact *con) {
	string name;
	cout << "輸入姓名查詢"<<endl;
	cin >> name;
	int res = isExist(con, name);
	if (res != -1) {
		cout << "姓名:" << con->p[res].name << "年齡:" << con->p[res].age << "性別:" <<(con->p[res].sex==1?"女":"男")<<endl;
	}
	else {
		cout << "查無此人" << endl;
	}
	system("pause");
	
}
//清空聯繫人函數
void clearContact(contact* con) {
	con->size = 0;
	cout << "已清空通訊錄"<<endl;
	system("pause");
}
//顯示聯繫人函數
void showContact(contact* con) {
	if (con->size == 0) {
		cout << "暫無聯繫人"<<endl;
	}
	else {
		for (int i = 0; i < con->size; i++) {
			cout <<"姓名:"<< con->p[i].name <<"年齡:"<< con->p[i].age <<"地址:"<< con->p[i].address <<"性別:"<<(con->p[i].sex==1?"女":"男") << endl;
		}
	}
	system("pause");
}

//退出系統函數
int exitapp() {
	exit(0);
}

/**
通訊錄管理系統主程序
*/
int main() {
	contact con;
	con.size = 0;
	while (true)
	{
		system("cls");//清屏
		showMenu();
		cout << "輸入你的選擇";
		int select;
		cin >> select;
		switch (select) {
		case 1:
			addPerson(&con);
			break;
		case 2:
			deletecon(&con);
			break;
		case 3:
			updateContact(&con);
			break;
		case 4:
			search(&con);
			break;
		case 5:
			showContact(&con);
			break;
		case 6:
			clearContact(&con);
			break;
		case 0://退出
			exitapp();
			break;
		}
	}
}

獲取源碼關注公衆號 java一號  回覆 通訊錄即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章