通讯录管理系统
1、需求功能:
- 添加联系人
- 显示联系人
- 删除联系人
- 修改联系人
- 查找联系人
- 清空联系人
- 退出通讯录
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++教程 学习笔记,如有侵权请联系删除)