IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> # C++ # 一个简单的通讯录管理系统 -> 正文阅读

[C++知识库]# C++ # 一个简单的通讯录管理系统

#include<iostream>
using namespace std;

#define Max 1000// 通讯录最大人数

// 一 结构体

// 1联系人的信息的结构体
struct Person
{
	string m_Name;
	string m_Sex;
	int m_Age;
	string m_Phone;
	string m_Address;
};
// 2管理通讯录的大小的结构体
struct  Addressbooks
{
	Person pesron[Max];
	int  size;


};

// 3 通讯录菜单
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;
}

//  二 通讯录的六大功能

// 1 添加联系人
void addPerson(struct Addressbooks*book)
{
	if(book->size==Max)  
	{
		cout << "通讯录已经满,无法添加<<endl";
		return;
	}
	else
	{
		//1 添加姓名
		cout << "请输入姓名:"<<endl;
		cin>>book->pesron[book->size].m_Name;

		//2  设置性别
		int sex;
		while (1)
		{
			string m_Sex[3] = { "女","男","未知" };
			cout << "请输入性别:  0--女  1--男 2--未知 " << endl;
			cin >> sex;
			if (sex >= 0 && sex <= 2)
			{
				book->pesron[book->size].m_Sex = m_Sex[sex];
				break;
			}
			else 
				cout << "输入错误 ,请重新输入" << endl;
		}
		
		//3 设置年龄
		cout << "请输入年龄:" << endl;
		cin >> book->pesron[book->size].m_Age;
		
		// 4设置电话
		cout << "请输入电话:" << endl;
		cin >> book->pesron[book->size].m_Phone;

		//5设置家庭住址
		cout << "请输入家庭住址:" << endl;
		cin >> book->pesron[book->size].m_Address;

		book->size++;
		cout << " 添加成功! " << endl;

	}
}
//2 显示
void showPerson(struct Addressbooks* book)
{
	if (book->size == 0)
		cout << "没有任何记录!" << endl;
	else
		for (int i = 0; i < book->size; i++)
		{
			cout << "姓名:" << book->pesron[i].m_Name<<"\t";
			cout << "  性别:" << book->pesron[i].m_Sex <<"\t";
			cout << "  年龄:" << book->pesron[i].m_Age <<"\t";
			cout << "  电话号码:" << book->pesron[i].m_Phone<<"\t" ;
			cout << "  住址:" << book->pesron[i].m_Address << endl;
			
		}
		}
//3 删除
void deletPerson(struct Addressbooks* book)
{
	if (book->size == 0) cout << "通讯录已空" << endl;
	else
	{
		cout << "请输入要删除的联系人名:" << endl;
		string name;
		cin >> name;
		int i;
		for ( i = 0; i < book->size; i++)
		{
			if (name == book->pesron[i].m_Name)
			{
				for (int j = i; j < book->size - 1; j++)
				{
					book->pesron[j] = book->pesron[j + 1];
					book->size--;
				}
				cout << "删除成功" << endl;
				break;
			}
		}
		if (i == book->size)
			cout << "通讯录中无此人!" << endl;

	}
}
//4 查找联系人
void findPerson(struct Addressbooks* book)
{
	if (book->size == 0) cout << "通讯录为空" << endl;
	else
	{
		cout << "请输入要查找的联系人名:" << endl;
		string name;
		cin >> name;
		int i;
		for (i = 0; i < book->size; i++)
		{
			if (name == book->pesron[i].m_Name)
			{
				cout << "姓名:" << book->pesron[i].m_Name << "\t";
				cout << "  性别:" << book->pesron[i].m_Sex << "\t";
				cout << "  年龄:" << book->pesron[i].m_Age << "\t";
				cout << "  电话号码:" << book->pesron[i].m_Phone << "\t";
				cout << "  住址:" << book->pesron[i].m_Address << endl;
			}
		}
		if (i == book->size)
		cout << "通讯录中无此人!" << endl;
	}
}
//5修改联系人
void modifyPerson(struct Addressbooks* book)
{
	if (book->size == 0) cout << "通讯录为空" << endl;
	else
	{
		cout << "请输入要修改的联系人名:" << endl;
		string name;
		cin >> name;
		int i;
		int flag = 0;
		for (i = 0; i < book->size; i++)
		{
			if (name == book->pesron[i].m_Name)
			{
				cout <<  "姓名: " ;
				cin >> book->pesron[i].m_Name;
				cout << endl;

				int sex;
				while (1)
				{
					string m_Sex[3] = { "女","男","未知" };
					cout << "  0--女  1--男 2--未知 " << endl;
					cout << "请输入性别";
					cin >> sex;
					cout << endl;
					if (sex >= 0 && sex <= 2)
					{
						book->pesron[book->size].m_Sex = m_Sex[sex];
						break;
					}
					else
						cout << "输入错误 ,请重新输入" << endl;
				}

		
				cout << "年龄:" ;
				cin >> book->pesron[i].m_Age;
				cout<< endl;

				cout << "电话号码:" ;
				cin >> book->pesron[i].m_Phone;
				cout<<endl ;

				cout << "住址:";
				cin>>book->pesron[i].m_Address;
				cout << endl;

				flag = 1;
			}
		}
		if(flag==0)
			cout << "通讯录中无此人!" << endl;
	}
}
//6 清除联系人
void clearPerson(struct Addressbooks* book)
{
	int flag;
	cout << "是否真的要清空通讯录" << endl;
	cout << " 按其他键退出 按2清空" << endl;
	cin >> flag;
	if (flag == 2)
	{
		for (int i = 0; i < book->size; i++)
		{
			book->pesron[i] = {};
	    }
		book->size = 0;
	}
	else
	{
		return;
	}
}

//三 用户操作
int main()
{

	Addressbooks   book;
	book.size = 0;
	int input=0;
	while (1)
	{
		ShowMenu();
		cin >> input;
		switch (input)
		{
		case 1:    
			addPerson(&book); 
			break;
		case 2:
			showPerson(&book);
			break;
		case 3:
			deletPerson(&book);
			break;
		case 4:
			findPerson(&book);
		    break;
		case 5:
			modifyPerson(&book);
			break;
		case 6:
			clearPerson(&book);
			break;
		case 0: 
			cout << "退出通讯录!欢迎下次使用!"; 
			break;
		default: cout << "error input";
		}
		system("pause");
		system("cls");
		if (input == 0)
		{
			break;
		}

	}
	
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 08:54:26  更:2021-08-29 08:56:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 20:20:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计