C++实现简单版通讯录管理系统攻略
一、需求分析
通讯录是日常生活中广泛使用的一种记录联系人信息的工具。本次需求是实现一个简单的通讯录管理系统,主要包含如下功能:
- 添加联系人
- 显示所有联系人
- 查找联系人
- 删除联系人
- 修改联系人
根据以上需求,我们可以设计通讯录管理系统的主要数据结构是一个联系人类 Contact 类,包含姓名、手机、性别、等私有成员,以及相应的公有成员函数。
二、代码实现
1. Contact类
#include <iostream>
#include <cstring>
using namespace std;
class Contact{
public:
char name[20];
char mobile[12];
char gender;
char hobby[50];
Contact(){}
Contact(char na[],char mob[],char gen,char hob[]){
strcpy(name,na);
strcpy(mobile,mob);
gender=gen;
strcpy(hobby,hob);
}
void show(){
cout << "姓名: " << name << endl;
cout << "手机: " << mobile << endl;
cout << "性别: " << gender << endl;
cout << "爱好: " << hobby << endl;
}
};
2. ContactBook类
#include <iostream>
#include <cstdio>
#include <cstring>
#include "Contact.h"
using namespace std;
class ContactBook{
public:
Contact contacts[100];
int size = 0;
void add(Contact contact){
contacts[size++] = contact;
}
int search(char name[]){
for (int i=0; i<size; ++i){
if (strcmp(contacts[i].name,name) == 0){
return i;
}
}
return -1;
}
void erase(char name[]){
int index = search(name);
if (index == -1){
cout << "通讯录中没有找到此人!" << endl;
}
else{
for (int i = index; i < size-1; i++){
contacts[i] = contacts[i+1];
}
size--;
cout << "已删除" << endl;
}
}
void modify(char name[]){
int index = search(name);
if (index == -1){
cout << "通讯录中没有找到此人!" << endl;
}
else{
char mob[12], gen, hob[50];
cout << "请输入姓名: ";
cin >> name;
cout << "请输入手机号码: ";
cin >> mob;
cout << "请输入性别: ";
cin >> gen;
cout << "请输入爱好: ";
cin >> hob;
Contact contact(name, mob, gen, hob);
contacts[index] = contact;
cout << "已修改" << endl;
}
}
void showAll(){
if (size == 0){
cout << "通讯录为空!" << endl;
}
else{
for (int i=0; i<size; ++i){
cout << "第" << i+1 << "个联系人:" << endl;
contacts[i].show();
cout << endl;
}
}
}
void showByName(char name[]){
int index = search(name);
if (index == -1){
cout << "通讯录中没有找到此人!" << endl;
}
else{
cout << "找到联系人:" << endl;
contacts[index].show();
}
}
};
3. 主函数
#include <iostream>
#include "ContactBook.h"
using namespace std;
int main(){
ContactBook contactBook;
while (true){
system("cls");
cout << "通讯录管理系统" << endl;
cout << "-----------------" << endl;
cout << "1. 添加联系人" << endl;
cout << "2. 显示所有联系人" << endl;
cout << "3. 查找联系人" << endl;
cout << "4. 删除联系人" << endl;
cout << "5. 修改联系人" << endl;
cout << "6. 退出程序" << endl;
cout << "-----------------" << endl;
cout << endl;
int op;
cin >> op;
switch (op)
{
case 1:{
char name[20], mob[12], gen, hob[50];
cout << "请输入姓名: ";
cin >> name;
cout << "请输入手机号码: ";
cin >> mob;
cout << "请输入性别: ";
cin >> gen;
cout << "请输入爱好: ";
cin >> hob;
Contact contact(name, mob, gen, hob);
contactBook.add(contact);
cout << "已添加" << endl;
system("pause");
break;
}
case 2:{
contactBook.showAll();
system("pause");
break;
}
case 3:{
char name[20];
cout << "请输入要查找的姓名:";
cin >> name;
contactBook.showByName(name);
system("pause");
break;
}
case 4:{
char name[20];
cout << "输入要删除的联系人姓名:";
cin >> name;
contactBook.erase(name);
system("pause");
break;
}
case 5:{
char name[20];
cout << "输入要修改的联系人姓名:";
cin >> name;
contactBook.modify(name);
system("pause");
break;
}
case 6:{
cout << "感谢您的使用!" << endl;
system("pause");
return 0;
}
}
}
return 0;
}
三、示例说明
1. 添加联系人
输入3个联系人,查看上传是否成功。命令如下:
1
charles 13913254654 m music
已添加
1
rose 15545678954 f reading
已添加
1
lucy 13312345678 f travelling
已添加
2
第1个联系人:
姓名: charles
手机: 13913254654
性别: m
爱好: music
第2个联系人:
姓名: rose
手机: 15545678954
性别: f
爱好: reading
第3个联系人:
姓名: lucy
手机: 13312345678
性别: f
爱好: travelling
2. 删除联系人
输入两个联系人,删除其中一个联系人,查看是否删除成功,命令如下:
1
green 12016549843 m music
已添加
1
jack 13888999876 m dance
已添加
2
第1个联系人:
姓名: green
手机: 12016549843
性别: m
爱好: music
第2个联系人:
姓名: jack
手机: 13888999876
性别: m
爱好: dance
4
输入要删除的联系人姓名:green
已删除
2
第1个联系人:
姓名: jack
手机: 13888999876
性别: m
爱好: dance
以上是简单版通讯录管理系统的实现,可根据实际需要对代码进行完善和扩展。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现简单版通讯录管理系统 - Python技术站