概述
系统中需要实现的功能如下:
- 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
- 显示联系人:显示通讯录中所有的联系人信息
- 删除联系人:按照姓名进行删除指定联系人
- 查找联系人:按照姓名查看指定联系人信息
- 修改联系人:按照姓名重新修改指定联系人
- 清空联系人:清空通讯录中所有信息
- 退出通讯录:退出当前使用的通讯录
步骤
新建结构体
contact.h
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#include<iostream>#include<string>using namespace std;
struct Contact
{ string name;//姓名
string sex;//性别
int age;//年龄
int phoneNumber;//联系电话
string address;//家庭地址
};void printContactInfo(const Contact *p);
|
定义
contact.cpp
|
1
2
3
4
5
6
7
8
9
10
|
#include "Contact.h"void printContactInfo(const Contact * p)
{ cout << "姓名:" << p->name <<
"---性别:" << p->sex <<
"---年龄:" << p->age <<
"---联系电话:" << p->phoneNumber <<
"---家庭地址:" << p->address << endl;
} |
ContactManager.h
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include<iostream>#include "Contact.h"using namespace std;
#define MAX 1000struct ContactManager
{ //联系人数组
Contact contactArr[MAX];
//当前联系人数量
int size;
};void showMenu();
void exitSys();
void addContact(ContactManager *manager);
void showContactList(ContactManager *manager);
void delContactByName(ContactManager *manager);
void findContactByName(ContactManager *manager);
void updateContactByName(ContactManager *manager);
void clearManager(ContactManager *manager);
|
实现管理者
实现菜单功能
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#include "ContactManager.h"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;
cout << "-----> 请选择操作项并输入操作项编号:" << endl;
} |
实现退出功能
|
1
2
3
4
5
|
void exitSys()
{ cout << "欢迎下次使用,再见" << endl;
system("pause");
} |
新增联系人
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
void addContact(ContactManager *manager)
{ cout << "请输入联系人姓名:";
cin >> manager->contactArr[manager->size].name;
cout << "请输入联系人性别:";
cin >> manager->contactArr[manager->size].sex;
cout << "请输入联系人年龄:";
cin >> manager->contactArr[manager->size].age;
cout << "请输入联系人号码:";
cin >> manager->contactArr[manager->size].phoneNumber;
cout << "请输入联系人地址:";
cin >> manager->contactArr[manager->size].address;
cout << "添加联系人成功!!!" << endl;
manager->size++;
system("pause");
system("cls");
} |
展示联系人列表
|
1
2
3
4
5
6
7
8
9
|
void showContactList(ContactManager * manager)
{ for (int i = 0; i < manager->size; i++)
{
printContactInfo(&manager->contactArr[i]);
}
system("pause");
system("cls");
} |
删除联系人
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
void delContactByName(ContactManager * manager)
{ cout << "请输入要删除联系人的姓名:";
string name;
cin >> name;
int pos = isExist(manager, name);
if (pos == -1)
{
cout << "联系人不存在!!" << endl;
}
else
{
cout << "联系人的位置在" << pos << endl;
//数据前移
for (int i = pos; i < manager->size; i++)
{
manager->contactArr[pos] = manager->contactArr[pos + 1];
}
cout << "删除联系人成功!!" << endl;
manager->size--;
}
system("pause");
system("cls");
} |
查找联系人
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
void findContactByName(ContactManager * manager)
{ cout << "请输入要查找联系人的姓名:";
string name;
cin >> name;
int pos = isExist(manager, name);
if (pos == -1)
{
cout << "联系人不存在!!" << endl;
}
else
{
printContactInfo(&manager->contactArr[pos]);
}
system("pause");
system("cls");
} |
更新联系人
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
void updateContactByName(ContactManager * manager)
{ cout << "请输入要修改联系人的姓名:";
string name;
cin >> name;
int pos = isExist(manager, name);
if (pos == -1)
{
cout << "联系人不存在!!" << endl;
}
else
{
cout << "请输入联系人性别:";
cin >> manager->contactArr[pos].sex;
cout << "请输入联系人年龄:";
cin >> manager->contactArr[pos].age;
cout << "请输入联系人号码:";
cin >> manager->contactArr[pos].phoneNumber;
cout << "请输入联系人地址:";
cin >> manager->contactArr[pos].address;
cout << "修改联系人成功!!!" << endl;
}
system("pause");
system("cls");
} |
清空通讯录
|
1
2
3
4
5
6
7
|
void clearManager(ContactManager * manager)
{ manager->size = 0;
cout << "清空联系人成功!!!" << endl;
system("pause");
system("cls");
} |
运行截图