C++学习笔记05,C++基础

通讯录管理系统

1、需求功能:

  1. 添加联系人
  2. 显示联系人
  3. 删除联系人
  4. 修改联系人
  5. 查找联系人
  6. 清空联系人
  7. 退出通讯录

2、代码实现

2.1 AddressBookMS.h 文件
#pragma once
#include <iostream>
using namespace std;
#include <string>

/*
	通讯录管理系统功能:
	1、菜单
	2、添加联系人
	3、显示联系人
	4、删除联系人
	5、查找联系人
	6、修改联系人
	7、清空联系人
	0、退出
*/

//联系人结构体
typedef struct Linkman
{
	string name;
	string sex;
	int age;
	string contact;
	string address;
} LINKMAN;

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

//通讯录结构体
typedef struct AddressBook
{
	LINKMAN LManArray[MAX];
	int size;
}ADDRESSBOOK, * PADDRESSBOOK;


//1、菜单
void ShowMenu();

//2、添加联系人
void AddLinkman(ADDRESSBOOK * Abook);

//3、显示联系人
void ShowLinkman(ADDRESSBOOK * Abook);

//4、删除联系人
void DeleteLinkman(ADDRESSBOOK* Abook, string name);

//5、查找联系人
void FindLinkman(ADDRESSBOOK* Abook, string name);

//6、修改联系人
void AlterLinkman();

//7、清空联系人
void EmptyLinkman();

//0、退出
//void Exit();

//检测联系人是否存在,存在则返回联系人的位置,不存在则返回-1
int IfExit(ADDRESSBOOK* Abook, string name);
2.2 AddressBookMS.cpp 文件
#include "AddressBookMS.h"
//using namespace std;

//检测联系人是否存在,存在则返回联系人的位置,不存在则返回-1
int IfExit(ADDRESSBOOK* Abook, string name)
{
	for (int i = 0;i < Abook->size;i++)
	{
		if (Abook->LManArray[i].name == name)
		{
			return i;
		}
	}

	return -1;
}

//1、菜单
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;
}

//2、添加联系人
void AddLinkman(ADDRESSBOOK * Abook)
{
	//还有空间吗
	if (Abook->size > 1000)
	{
		cout << "联系人已满" << endl;
		return;
	}

	string name;
	string sex;
	int age;
	string contact;
	string address;

	cout << "联系人姓名:";
	cin >> name;
	Abook->LManArray[Abook->size].name = name;

	cout << "性别:";
	cin >> sex;
	Abook->LManArray[Abook->size].sex = sex;

	cout << "年龄:";
	cin >> age;
	Abook->LManArray[Abook->size].age = age;

	cout << "联系电话:";
	cin >> contact;
	Abook->LManArray[Abook->size].contact = contact;

	cout << "家庭住址:";
	cin >> address;
	Abook->LManArray[Abook->size].address = address;

	Abook->size++;
}

//3、显示联系人
void ShowLinkman(ADDRESSBOOK * Abook)
{
	if (Abook->size == 0)
	{
		cout << "当前联系人为空" << endl;
		return;
	}
	for (int i = 0;i < Abook->size;i++)
	{
		//cout << "联系人姓名:" << Abook->LManArray[i].name << endl;
		//cout << "性别:" << Abook->LManArray[i].sex << endl;
		//cout << "年龄:" << Abook->LManArray[i].age << endl;
		//cout << "联系电话:" << Abook->LManArray[i].contact << endl;
		//cout << "家庭住址:" << Abook->LManArray[i].address << endl;
		//cout << "================================" << endl;

		cout << Abook->LManArray[i].name << "\t";
		cout << Abook->LManArray[i].sex << "\t";
		cout << Abook->LManArray[i].age << "\t";
		cout << Abook->LManArray[i].contact << "\t";
		cout << Abook->LManArray[i].address << "\t"<< endl;
	}
}

//4、删除联系人
void DeleteLinkman(ADDRESSBOOK * Abook, string name)
{
	int i = IfExit(Abook, name);
	if (i == -1)
	{
		cout << "联系人不存在" << endl;
		return;
	}

	for (int j = i;j < Abook->size;j++)
	{
		Abook->LManArray[j] = Abook->LManArray[j + 1];
	}
	Abook->size--;
	cout << "删除成功"<< endl;

	//system("pause");
	//system("cls");//清屏
}

//5、查找联系人
void FindLinkman(ADDRESSBOOK* Abook, string name)
{
	int i = IfExit(Abook, name);
	if (i == -1)
	{
		cout << "联系人不存在" << endl;
		return;
	}

	cout << Abook->LManArray[i].name << "\t";
	cout << Abook->LManArray[i].sex << "\t";
	cout << Abook->LManArray[i].age << "\t";
	cout << Abook->LManArray[i].contact << "\t";
	cout << Abook->LManArray[i].address << "\t" << endl;

}

//6、修改联系人
void AlterLinkman(ADDRESSBOOK* Abook)
{
	string name;
	string sex;
	int age;
	string contact;
	string address;
	
	cout << "请输入要修改联系人的名字:";
	cin >> name;

	int i = IfExit(Abook, name);
	if (i == -1)
	{
		cout << "联系人不存在" << endl;
		return;
	}

	cout << "联系人姓名:";
	cin >> name;
	Abook->LManArray[i].name = name;

	cout << "性别:";
	cin >> sex;
	Abook->LManArray[i].sex = sex;

	cout << "年龄:";
	cin >> age;
	Abook->LManArray[i].age = age;

	cout << "联系电话:";
	cin >> contact;
	Abook->LManArray[i].contact = contact;

	cout << "家庭住址:";
	cin >> address;
	Abook->LManArray[i].address = address;
}

//7、清空联系人
void EmptyLinkman(ADDRESSBOOK* Abook)
{
	Abook->size = 0;
	cout << "联系人已清空" << endl;

	system("pause");
	system("cls");//清屏

}

int main()
{
	int select = 0;
	string name;

	AddressBook AB;	//创建一个通讯录
	AB.size = 0;	//初始化
	PADDRESSBOOK PAB;
	PAB = &AB;

	do
	{
		ShowMenu();
		cout << "请输入要进行的操作:" ;
		cin >> select;

		switch (select)
		{
		case 1://添加联系人
			AddLinkman(PAB);
			break;
		case 2://显示联系人
			ShowLinkman(PAB);
			break;
		case 3://删除联系人
			cout << "请输入删除联系人的姓名:";
			cin >> name;
			DeleteLinkman(PAB, name);
			break;
		case 4://查找联系人
			cout << "请输入查找联系人的姓名:";
			cin >> name;
			FindLinkman(PAB,name);
			break;
		case 5://修改联系人
			AlterLinkman(PAB);
			break;
		case 6://清空联系人
			EmptyLinkman(PAB);
			break;
		case 0://退出
			cout << "欢迎下次使用!" << endl;
			system("pause");
			//return 0;
			break;
		default:
			break;
		}
	} while (select);
}

3、运行效果

在这里插入图片描述

(哔哩哔 哩黑马程序员 C++教程 学习笔记,如有侵权请联系删除)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值