概述
系统中需要实现的功能如下:
- 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录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 1000
struct
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"
);
}
|
运行截图