C++代码编程学习(1):简易通讯录的创建

2022年圣诞节到来啦,很高兴这次我们又能一起度过~
CSDN诚邀各位技术er分享关于圣诞节的各种技术创意,展现你与众不同的精彩!参与本次投稿即可获得【话题达人】勋章+【圣诞快乐】定制勋章(1年1次,错过要等下一年喔)!

一、前言

  好久没有写blog了,现在恢复写blog的进度,打算在过年前对自己所学的 深度学习 的相关经验进行一个详细的总结,关于深度学习的实现过程主要是在谷歌的colab上实现的,但自从10月份colab推出新的收费政策,我便打算开始自己配一张显卡跑程序了,这篇blog主要是对现阶段C++语言学习的一个总结,主要是开篇一些简单的编程代码,这次就简单介绍一个 通讯录的创建,我发现啊!不管学C语言还是C++语言,好像离不开这个 通讯录了,哈哈 头疼。

二、创意名

  在圣诞节过后,使用C++创建一个建议通讯录。(有点牵强…)

三、效果展示

  1. 添加联系人信息:姓名、性别、年龄、电话、地址
    C++代码编程学习(1):简易通讯录的创建_第1张图片

  2. 显示已添加联系人信息
    C++代码编程学习(1):简易通讯录的创建_第2张图片

  3. 查找联系人信息
    C++代码编程学习(1):简易通讯录的创建_第3张图片

  4. 修改联系人信息
    C++代码编程学习(1):简易通讯录的创建_第4张图片

四、实现步骤

  1. 先创建一个菜单,进行指令功能的设置;
  2. 之后注意编写每个子函数的内容(具体内容看代码)。

注意,C++代码编程的基本规则,小括号啊!花括号啊!分号啊!不要漏掉。

五、编码实现

#include 
#include 
using namespace std;
#define numMax 1000

// 用户人结构体
struct person {
// 姓名 性别 年龄 电话 地址
	string pName;
	// 1-男,2-女
	int pGender;
	int pAge;
	string pPhone;
	string pAddr;
};

// 通讯录结构体
struct contactList {
	struct person con[numMax];
	int pSize;
};

void displayMenu() {
	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;
}

void addPerson(contactList * abs) {
	if (abs->pSize == numMax) {
		cout << "通讯录已满!" << endl;
		return;
	}
	else {
		//依次 姓名 性别 年龄 电话 地址
		cout << "请输入姓名:" << endl;
		string name;
		cin >> name;
		abs->con[abs->pSize].pName = name;

		cout << "请输入性别编号(1-男,2-女):" << endl;
		int  gender = 0;
		while (true) {
			cin >> gender;
			if (gender == 1 || gender == 2) {
				abs->con[abs->pSize].pGender = gender;
				break;
			}
		}

		//数据类型问题需要有一个声明确认 否则容易程序崩坏
		cout << "请输入年龄:" << endl;
		int age = 0;
		cin >> age;
		abs->con[abs->pSize].pAge = age;

		cout << "请输入电话:" << endl;
		string phone;
		cin >> phone;
		abs->con[abs->pSize].pPhone = phone;

		cout << "请输入地址:" << endl;
		string addr;
		cin >> addr;
		abs->con[abs->pSize].pAddr = addr;

		abs->pSize++;
		cout << "添加联系人成功!" << endl;
		system("pause");
		system("cls");

	}
}

void showPerson(contactList* abs) {
	if (abs->pSize == 0) {
		cout << "联系人列表为空!" << endl;
	}
	else {
		for (int i = 0; i < abs->pSize; i++) {
			// 对齐这里也有一个问题 需要注意 如果变量类型不确定
			// \t 的缩进功能不明显
			cout << "姓名:" << abs->con[i].pName << "\t";
			cout << "性别:" << (abs->con[i].pGender == 1 ? "男" : "女") << "\t";
			cout << "年龄:" << abs->con[i].pAge << "\t";
			cout << "电话:" << abs->con[i].pPhone << "\t";
			cout << "地址:" << abs->con[i].pAddr << endl;
		}
	}
	system("pause");
	system("cls");
}


int isExist(contactList* abs, string name) {
	for (int i = 0; i < abs->pSize; i++) {
		if (abs->con[i].pName == name) {
			return i;
		}
	}
	return -1;
}

void deletPerson(contactList* abs) {
	cout << "请输入删除的联系人姓名:" << endl;
	string name;
	cin >> name;
	int ret = isExist(abs, name);
	if ( ret != -1) {
		for (int i = ret+1; i < abs->pSize; i++) {
			abs->con[i-1] = abs->con[i];
		}
		abs->pSize--;
		cout << "删除成功!" << endl;
	}
	else {
		cout << "查无此人!" << endl;
	}
}

void findPerson(contactList* abs) {
	cout << "请输入所查询联系人的姓名:" << endl;
	string name;
	cin >> name;
	int ret = isExist(abs, name);
	if (ret != -1) {
		cout << "姓名:" << abs->con[ret].pName << "\t";
		cout << "性别:" << (abs->con[ret].pGender == 1 ? "男" : "女") << "\t";
		cout << "年龄:" << abs->con[ret].pAge << "\t";
		cout << "电话:" << abs->con[ret].pPhone << "\t";
		cout << "地址:" << abs->con[ret].pAddr << endl;
	}
	else {
		cout << "查无此人!" << endl;
	}
	system("pause");
	system("cls");
}

void modifyPerson(contactList* abs) {
	cout << "请输入修改的联系人名称:" << endl;
	string name;
	cin >> name;
	int ret = isExist(abs, name);
	if (ret != -1) {
		//依次修改 姓名 性别 年龄 电话 地址
		cout << "请输入姓名:" << endl;
		string name;
		cin >> name;
		abs->con[ret].pName = name;

		cout << "请输入性别编号(1-男,2-女):" << endl;
		int  gender = 0;
		while (true) {
			cin >> gender;
			if (gender == 1 || gender == 2) {
				abs->con[ret].pGender = gender;
				break;
			}
		}

		//数据类型问题需要有一个声明确认 否则容易程序崩坏
		cout << "请输入年龄:" << endl;
		int age = 0;
		cin >> age;
		abs->con[ret].pAge = age;

		cout << "请输入电话:" << endl;
		string phone;
		cin >> phone;
		abs->con[ret].pPhone = phone;

		cout << "请输入地址:" << endl;
		string addr;
		cin >> addr;
		abs->con[ret].pAddr = addr;

		cout << "修改完毕!" << endl;
		system("pause");
		system("cls");
	}
	else {
		cout << "查无此人!" << endl;
	}
}

void clearPerson(contactList* abs) {
	abs->pSize = 0;
	cout << "通讯录已清空!" << endl;
	system("pause");
	system("cls");
}

int main() {
	// 通讯录变量创建 初始化大小为0
	contactList abs;
	abs.pSize = 0;
	int select = 0;

	while (true) {
		displayMenu();
		cin >> select;
		switch (select) {
		case 1:
			// 添加联系人
			addPerson(&abs);
			break;
		case 2:
			showPerson(&abs);
			break;
		case 3:
			deletPerson(&abs);
			break;
		case 4:
			findPerson(&abs);
			break;
		case 5:
			modifyPerson(&abs);
			break;
		case 6:
			clearPerson(&abs);
			break;
		case 0:
			cout << "欢迎下次使用!" << endl;
			system("pause");
			return 0;
			break;
		default:
			break;
		}
	}
	
	system("Pause");
	return 0;
}

代码是在 visual studio 中编写的,该软件还是比较好用的,我安装的是2022专业版;
从py3再回到C++发现许多细节需要多用些心思,以后会更新一些编码过程中的心得经验;
不得不学习 C++ 啊! 为了找个好工作,多学习吧!
既然 无力改变大环境趋势,只能 自己默默努力学习了!

共勉!

你可能感兴趣的:(C/C++语言学习历程,c++,学习,通讯录,圣诞节活动)