题目概要
使用面向对象的编程编写一个通讯录条目管理程序.
问题:在通讯录管理程序中,通讯录是由通讯录条目组成的.通讯录条目由姓名、电话组成的。可以进行输入、输出、修改姓名、修改电话.
程序的主界面如下所示:
测试程序:
1.输入通讯录条目
2.输出通讯录条目
3.修改姓名
4.修改电话
0.退出
题目要求

代码
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
class CommEntry{
public:
int displaymenu();
void inputcommEntry();
void outputcommEntry();
void update_name(string change_name);
void update_tel(string change_tel);
void update_addr(string change_addr);
private:
string name;
string tel;
string addr;
string get_name();
string get_tel();
string get_addr();
};
int CommEntry::displaymenu()
{
int op;
cout << "-------------功能菜单-------------" << endl;
cout << " 1.输入通讯录条目" << endl;
cout << " 2.输出通讯录条目" << endl;
cout << " 3.修改通讯录条目姓名" << endl;
cout << " 4.修改通讯录条目电话" << endl;
cout << " 5.修改通讯录条目地址" << endl;
cout << " 0.退出系统" << endl;
cout << "----------------------------------" << endl;
cout << "请输入你要选择的功能编号(0-5): ";
while(cin >> op)
{
if(op>=0&&op<=5)
break;
else
cout << "输入出错,请重新输入你要选择的功能编号(0,5): ";
}
return op;
}
void CommEntry::inputcommEntry()
{
string temp_name,temp_tel,temp_addr;
cout << "请输入该通讯录条目的名字: " ;
cin >> temp_name;
cout << "请输入该通讯录条目的电话: " ;
cin >> temp_tel;
cout << "请输入该通讯录条目的地址: " ;
cin >> temp_addr;
update_name(temp_name);
update_tel(temp_tel);
update_addr(temp_addr);
}
string CommEntry::get_name()
{
return name;
}
string CommEntry::get_tel()
{
return tel;
}
string CommEntry::get_addr()
{
return addr;
}
void CommEntry::outputcommEntry()
{
cout << "请输入查看的通讯录条目查看的内容选项(1为名字,2为电话,3为地址,0为全部): ";
int op;
while(cin >> op)
{
if(op>=0&&op<=3)
break;
cout << "输入出错,请重新输入查看的通讯录条目查看的内容选项(1为名字,2为电话,3为地址,0为全部): ";
}
if(op==1||op==0)
{
string temp_name=get_name();
cout << "该通讯录条目的名字: " << temp_name << endl;
}
if(op==2||op==0)
{
string temp_tel=get_tel();
cout << "该通讯录条目的电话: " << temp_tel << endl;
}
if(op==3||op==0)
{
string temp_addr=get_addr();
cout << "该通讯录条目的地址: " << temp_addr << endl;
}
}
void CommEntry::update_name(string change_name)
{
name=change_name;
}
void CommEntry::update_tel(string change_tel)
{
tel=change_tel;
}
void CommEntry::update_addr(string change_addr)
{
addr=change_addr;
}
int main()
{
CommEntry data;
while(1)
{
int op=data.displaymenu();
if(op==1)
data.inputcommEntry();
else if(op==2)
data.outputcommEntry();
else if(op==3)
{
string temp_name;
cout << "请输入要修改的通讯录条目的名字: ";
cin >> temp_name;
data.update_name(temp_name);
}
else if(op==4)
{
string temp_tel;
cout << "请输入要修改的通讯录条目的电话: ";
cin >> temp_tel;
data.update_tel(temp_tel);
}
else if(op==5)
{
string temp_addr;
cout << "请输入要修改的通讯录条目的地址: ";
cin >> temp_addr;
data.update_addr(temp_addr);
}
else if(op==0)
break;
}
return 0;
}