题目概要
要求编写一个程序,可以管理朋友条目.所用的知识点是“继承”.
程序的主菜单如下:
1.输入朋友条目
2.输出朋友条目
3.修改姓名
4.修改电话
5.修改地址
0.退出
分析:
(1) 编写一个新类$FreindEntry$,此类是$CommEntry$的子类;
(2) $FreindEntry$有数据成员$addr$,用于存放一个朋友条目的地址;
(3) 根据分析,需要新编写四个函数.
$void$ $input()$ ; //提示:如何使用父类的同名函数
$void$ $output()$; //提示:如何使用父类的同名函数
$void$ $setAddr(string$ $a)$;
$string$ $getAddr()$;
题目要求

代码
#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);
string get_name();
string get_tel();
private:
string name;
string tel;
};
class FriendEntry:public CommEntry{
public:
void inputcommEntry();
void outputcommEntry();
void update_addr(string change_addr);
string get_addr();
private:
string 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;
cout << "请输入该通讯录条目的名字: " ;
cin >> temp_name;
cout << "请输入该通讯录条目的电话: " ;
cin >> temp_tel;
update_name(temp_name);
update_tel(temp_tel);
}
void FriendEntry::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 FriendEntry::get_addr()
{
return addr;
}
void CommEntry::outputcommEntry()
{
cout << "请输入查看的通讯录条目查看的内容选项(1为名字,2为电话,0为全部): ";
int op;
while(cin >> op)
{
if(op>=0&&op<=2)
break;
cout << "输入出错,请重新输入查看的通讯录条目查看的内容选项(1为名字,2为电话,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;
}
}
void FriendEntry::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 FriendEntry::update_addr(string change_addr)
{
addr=change_addr;
}
int main()
{
FriendEntry 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;
}