定义一个Friend类,包括姓名,性别,年龄,电话,邮箱,QQ号码,单位等属性和对这些属性的操作函数,再定义通讯录类,实现通讯录列表、查询、修改、删除、保存、退出等功能
#include<bits/stdc++.h>
using namespace std;
class phone_contact
{
protected:
string name;
string tell;
public:
phone_contact(string name1="0",string tell1="0")
{
name=name1;
tell=tell;
}
void set_(string name1="0",string tell1="0")
{
name=name1;
tell=tell1;
}
void modify();//修改
string get_name()
{
return name;
}
string get_tell()
{
return tell;
}
friend ostream & operator<<(ostream & output,phone_contact &);//因为ofstream是ostream类的一个子类,
friend istream & operator >>(istream &input,phone_contact &);//所以,只需要对<<运算符按照之前的方法重载一次即可
};
/*手机类phone_contact成员函数的定义*/
void phone_contact::modify()//修改手机信息
{
string new_name,new_tell;
int n;
cout<<"请选择你要修改的信息:1.仅修改手机号 2.仅修改姓名 3.修改手机号和姓名:";
cin>>n;
switch(n)
{
case 1:
cout<<"请输入新手机号:";
cin>>new_tell;
tell=new_tell;
cout<<"修改存储信息成功"<<endl;
break;
case 2:
cout<<"请输入新姓名:";
cin>>new_name;
name=new_name;
cout<<"修改手机存储信息成功"<<endl;
break;
case 3:
cout<<"请输入新手机号以及姓名:";
cin>>new_tell>>new_name;
name=new_name;
tell=new_tell;
cout<<"修改手机手机存储信息成功"<<endl;
break;
default:
cout<<"输入错误!"<<endl;
}
}
ostream & operator<<(ostream & output,phone_contact & a)//重载输出运算符
{
output<<a.get_name()<<" "<<a.get_tell()<<endl;
return output;
}
istream & operator >>(istream & input,phone_contact & b)
{
string name2,tell2;
cout<<"请输入 姓名 手机号:";
input>>name2>>tell2;
b.set_(name2,tell2);
return input;
}
/*第二个类:手机卡类的定义及成员函数的定义*/
class card_contact:public phone_contact
{
string address;
string QQ;
public:
card_contact(string a="0",string b="0",string address2="0",string QQ2="0"):phone_contact(a,b)
{
address=address2;
QQ=QQ2;
}
void set_(string a="0",string b="0",string address2="0",string QQ2="0")
{
phone_contact::set_(a,b);
address=address2;
QQ=QQ2;
}
string get_address()
{
return address;
}
string get_QQ()
{
return QQ;
}
void modify();
friend ostream & operator<<(ostream & output,card_contact &);
friend istream & operator >>(istream &input,card_contact &);
};
void card_contact::modify()//修改手机卡信息
{
string new_name,new_tell,new_address,new_QQ;
int n;
cout<<"请输入你所修改内容对应的操作:1.仅修改姓名 2.仅修改手机号 3.仅修改籍贯 4.仅修改 QQ 5.修改以上所有内容"<<endl;
cin>>n;
switch(n)
{
case 1:cout<<"请输入新姓名:";
cin>>new_name;
name=new_name;
cout<<"修改手机卡存储信息成功"<<endl;
break;
case 2:cout<<"请输入新手机号:";
cin>>new_tell;
tell=new_tell;
cout<<"修改手机卡存储信息成功"<<endl;
break;
case 3:cout<<"请输入新籍贯:";
cin>>new_address;
address=new_address;
cout<<"修改手机卡存储信息成功"<<endl;
break;
case 4:cout<<"请输入新QQ:";
cin>>new_QQ;
QQ=new_QQ;
cout<<"修改手机卡存储信息成功"<<endl;
break;
case 5:cout<<"请输入 新姓名 新手机号 新籍贯 以及新QQ:";
cin>>new_name>>new_tell>>new_address>>new_QQ;
name=new_name; tell=new_tell;
address=new_address; QQ=new_QQ;
break;
default: cout<<"输入错误!"<<endl;
}
}
ostream & operator<<(ostream & output,card_contact &a)
{
output<<a.get_name()<<" "<<a.get_tell()<<" "<<a.get_address()<<" "<<a.get_QQ()<<endl;
return output;
}
istream & operator >>(istream &input,card_contact &a)
{
string name3,tell3,address3,QQ3;
cout<<"请输入 姓名 手机号 籍贯 QQ号:";
input>>name3>>tell3>>address3>>QQ3;
a.set_(name3,tell3,address3,QQ3);
return input;
}
/*定义第三个类:address_list抽象类*/
class address_list//抽象类 通讯薄类封装函数用于支持多态
{
public:
virtual void add()=0;//添加联系人
virtual void cut_bytell(string bytell)=0;//删除 通过
virtual void cut_bytell2(string bytell2)=0;//直接删除
virtual void display()=0;//显示所有联系人的信息
virtual void change_bytell(string bytell)=0;//修改
virtual void query_byname(string byname)=0;//修改
};
/*第四个类:公有继承于抽象类*/
class phone_list:public address_list//手机通讯薄类
{
int number;
vector<phone_contact>my_phonelist;
public:
phone_list();//读取文件,创建联系人对象数组
void add();
void cut_bytell(string bytell);
void cut_bytell2(string bytell2);
void display();
void change_bytell(string bytell);
void query_byname(string byname);
void copy_set(string pname,string ptell);
void clear_phone();//"清空通讯录"
int get_number()
{
return number;
}
string get_name(int i)//返回第i个联系人的名字
{
return my_phonelist[i].get_name();
}
string get_tell(int i)//返回第i个联系人的手机号
{
return my_phonelist[i].get_tell();
}
~phone_list();//析构函数存入
};
phone_list::phone_list()
{
number=-1;
char name4[20],tell4[20];
phone_contact p;
ifstream fin("D://my_phonelist.txt",ios::in);
if(!fin){cout<<"con't open file";abort();}
char s[100];
fin.getline(s,100);
fin.getline(s,100);
fin.getline(s,100);
fin.getline(s,100);
while(fin>>name4>>tell4&&strcmp(name4,"Noname")!=0)
{
p.set_(name4,tell4);
my_phonelist.push_back(p);
number++;
}
fin.close();
}
void phone_list::clear_phone()
{
my_phonelist.clear();
number=-1;
}
void phone_list::add()
{
if(number>999){cout<<"手机通讯录已满!"<<endl;return;}
phone_contact p;
cin>>p;
my_phonelist.push_back(p);
number++;
cout<<"添加成功!"<<endl;
}
void phone_list::cut_bytell(string bytell)//删除
{
if(number<0){cout<<"没有可以删除的联系人!"<<endl;return;}
while(1)
{
int flag=0;
for(int i=0;i<=number;i++)
{
if(my_phonelist[i].get_tell()==bytell)
{
flag=1;
number--;
break;
}
}
if(flag==1) {cout<<"删除成功"<<endl;return;}
else if(flag==0)
{
int choose;
cout<<"通讯录内没有此联系人,继续查找删除请输入1,取消请输入0";
cin>>choose;
if(choose==1) continue;
else return;
}
}
}
void phone_list::cut_bytell2(string bytell2)
{
while(1)
{
int flag=0;
for(int i=0;i<=number;i++)
{
if(my_phonelist[i].get_tell()==bytell2)
{
flag=1;
number--;
break;
}
}
if(flag==1) {cout<<"在手机上发现同一电话号码信息并删除成功"<<endl;return;}
else
{
cout<<"未在手机上发现删除人联系信息 "<<endl;
return;
}
}
}
void phone_list::display()
{
for(int i=0;i<=number;i++)
cout<<my_phonelist[i]<<endl;
}
void phone_list::change_bytell(string bytell)//修改
{
if(number<0) return;
while(1)
{
int flag=0;
for(int i=0;i<=flag;i++)
{
if(my_phonelist[i].get_tell()==bytell)
{
flag=1;
my_phonelist[i].modify();
break;
}
}
if(flag==1) return;
else
{
int choose;
cout<<"未查到修改的联系人"<<endl;
cout<<"1.继续查找 phone2.取消"<<endl;
if(choose==1) continue;
else return;
}
}
}
void phone_list::copy_set(string pname,string ptell)
{
for(int i=0;i<=number;i++)
{
if(my_phonelist[i].get_name()==pname&&my_phonelist[i].get_tell()==ptell)
{
cout<<"所复制联系人的信息中,有原本原来已经存在,跳过存在联系人的复制"<<endl;
return ;
}
}
phone_contact temp;
temp.set_(pname,ptell);
my_phonelist.push_back(temp);
number++;
}
void phone_list::query_byname(string byname)
{
if(number<0) {cout<<"没有可以查询的联系人"<<endl;return;}
while(1)
{
int flag=0;
for(int i=0;i<=number;i++)
{
if(my_phonelist[i].get_name()==byname)
{
cout<<my_phonelist[i]<<endl;
flag=1;
break;
}
}
if(flag==1) return;
else
{
int choose;
cout<<"未查询到联系人"<<endl;
cout<<"1.继续查询 2.取消"<<endl;
cin>>choose;
if(choose==1) continue;
else return;
}
}
}
phone_list::~phone_list()
{
ofstream fout("D://my_phonelist.txt",ios::out);
if(!fout)
{
cout<<"con't open file"<<endl;
abort();
}
fout<<"*********************************************"<<endl;
fout<<" 手机通讯录 *"<<endl;
fout<<"*********************************************"<<endl;
fout<<"姓名"<<"\t\t手机号"<<endl;
for(int i=number;i>=0;i--)
{
fout<<my_phonelist[i]<<endl;
}
fout.close();
}
/*第5个类:定义手机卡通信类*/
class card_list:public address_list//手机通讯薄类
{
int number;
vector<card_contact>my_cardlist;
public:
card_list();//读取文件,创建联系人对象数组
void add();
void cut_bytell(string bytell);
void display();
void change_bytell(string bytell);
void cut_bytell2(string bytell2);
void query_byname(string byname);
void copy_set(string pname,string ptell);
void clear_card();//清空手机卡
int get_number()
{
return number;
}
string get_name(int i)//返回第i个联系人的名字
{
return my_cardlist[i].get_name();
}
string get_tell(int i)//返回第i个联系人的手机号
{
return my_cardlist[i].get_tell();
}
~card_list();//析构函数存入
};
card_list::card_list()
{
number=-1;
char name4[20],tell4[20],address4[20],QQ4[20];
card_contact p;
ifstream fin("D://my_cardlist.txt",ios::in);
if(!fin){cout<<"con't open file";abort();}
char s[100];
fin.getline(s,100);
fin.getline(s,100);
fin.getline(s,100);
fin.getline(s,100);
while(fin>>name4>>tell4>>address4>>QQ4&&strcmp(name4,"Noname")!=0)
{
p.set_(name4,tell4,address4,QQ4);
my_cardlist.push_back(p);
number++;
}
fin.close();
}
void card_list::clear_card()
{
my_cardlist.clear();
number=-1;
}
void card_list::add()
{
if(number>999){cout<<"手机通讯录已满!"<<endl;return;}
card_contact p;
cin>>p;
my_cardlist.push_back(p);
number++;
cout<<"添加成功!"<<endl;
}
void card_list::copy_set(string pname,string ptell)
{
for(int i=0;i<=number;i++)
{
if(my_cardlist[i].get_name()==pname&&my_cardlist[i].get_tell()==ptell)
{
{
cout<<"所复制的信息有原本存在的,跳过其中存在的联系人"<<endl;
return;
}
}
}
card_contact temp;
temp.set_(pname,ptell,"NOaddress","NoQQ" );
my_cardlist.push_back(temp);
number++;
}
void card_list::cut_bytell(string bytell)//删除
{
if(number<0){cout<<"没有可以删除的联系人!"<<endl;return;}
while(1)
{
int flag=0;
for(int i=0;i<=number;i++)
{
if(my_cardlist[i].get_tell()==bytell)
{
flag=1;
number--;
break;
}
}
if(flag==1) {cout<<"删除成功"<<endl;return;}
else if(flag==0)
{
int choose;
cout<<"通讯录内没有此联系人,继续查找删除请输入1,取消请输入0";
cin>>choose;
if(choose==1) continue;
else return;
}
}
}
void card_list::cut_bytell2(string bytell2)
{
while(1)
{
int flag=0;
for(int i=0;i<=number;i++)
{
if(my_cardlist[i].get_tell()==bytell2)
{
flag=1;
number--;
break;
}
}
if(flag==1) {cout<<"在手机卡上发现同一号码的联系人信息并删除成功"<<endl;return;}
else if(flag==0)
{
cout<<"未在手机卡上发现同一号码的联系人信息:"<<endl;
return;
}
}
}
void card_list::display()
{
for(int i=0;i<=number;i++)
cout<<my_cardlist[i]<<endl;
}
void card_list::change_bytell(string bytell)//修改
{
if(number<0) return;
while(1)
{
int flag=0;
for(int i=0;i<=number;i++)
{
if(my_cardlist[i].get_tell()==bytell)
{
flag=1;
my_cardlist[i].modify();
break;
}
}
if(flag==1) return;
else
{
int choose;
cout<<"未查到修改的联系人"<<endl;
cout<<"1.继续查找 2.取消"<<endl;
cin>>choose;
if(choose==1) continue;
else return;
}
}
}
void card_list::query_byname(string byname)
{
if(number<0) {cout<<"没有可以查询的联系人"<<endl;return;}
while(1)
{
int flag=0;
for(int i=0;i<=number;i++)
{
if(my_cardlist[i].get_name()==byname)
{
cout<<my_cardlist[i]<<endl;
flag=1;
break;
}
}
if(flag==1) return;
else
{
int choose;
cout<<"未查询到联系人"<<endl;
cout<<"1.继续查询 2.取消"<<endl;
cin>>choose;
if(choose==1) continue;
else return;
}
}
}
card_list::~card_list()
{
ofstream fout("D://my_cardlist.txt",ios::out);
if(!fout)
{
cout<<"con't open file"<<endl;
abort();
}
fout<<"*********************************************"<<endl;
fout<<" 手机卡通讯录 *"<<endl;
fout<<"*********************************************"<<endl;
fout<<"姓名"<<"\t\t手机号"<<"\t\t籍贯"<<"\t\tQQ"<<endl;
for(int i=number;i>=0;i--)
{
fout<<my_cardlist[i];
}
fout.close();
}
/*第 6个类,菜单类*/
class menu
{
public:
void descript();
void main_menu();
void add_menu();
void cut_menu();
void query_menu();
void change_menu();
};
void menu::change_menu()
{
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"$$ 请选择在哪个通讯录修改联系 $$"<<endl;
cout<<"$$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$$"<<endl;
cout<<"$$ 1. 手机通讯录 $$"<<endl;
cout<<"$$ 2. 手机卡通讯录 $$"<<endl;
cout<<"$$ 3. 同时修改手机和手机卡的通讯录 $$"<<endl;
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"请输入你的选择:"<<endl;
}
void menu::descript()
{
cout<<"*************************************************************"<<endl;
cout<<"* 系统默认对手机联系人在my_phonelist.txt文件中进 *"<<endl;
cout<<"* 行读写,默认对手机卡联系人在my_cardlist.txt文件中进 *"<<endl;
cout<<"* 行读写,0键退出系统保存文件。 *"<<endl;
cout<<"*************************************************************"<<endl;
}
void menu::main_menu()
{
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"$$ 请输入相应的操作 $$"<<endl;
cout<<"$$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$$"<<endl;
cout<<"$$ 1. 新建联系人 $$"<<endl;
cout<<"$$ 2. 删除一个联系人 $$"<<endl;
cout<<"$$ 3. 修改联系人的信息 $$"<<endl;
cout<<"$$ 4. 查询联系人的信息 $$"<<endl;
cout<<"$$ 5. 浏览所有人的信息 $$"<<endl;
cout<<"$$ 6. 将联系人的信息从手机卡转移到手机 $$"<<endl;
cout<<"&& 7. 将联系人的信息从手机转移到手机卡 $$"<<endl;
cout<<"$$ 0. 退出程序,保存文件 $$"<<endl;
cout<<"$$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$$"<<endl;
cout<<"$$ 欢迎使用通讯录系统 $$"<<endl;
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"请输入你的选择:"<<endl;
}
void menu::add_menu()
{
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"$$ 请选择添加联系人到哪个通讯录 $$"<<endl;
cout<<"$$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$$"<<endl;
cout<<"$$ 1. 手机通讯录 $$"<<endl;
cout<<"$$ 2. 手机卡通讯录 $$"<<endl;
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"请输入你的选择:"<<endl;
}
void menu::cut_menu()
{
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"$$ 请选择在哪个通讯录删除联系 $$"<<endl;
cout<<"$$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$$"<<endl;
cout<<"$$ 1. 手机通讯录 $$"<<endl;
cout<<"$$ 2. 手机卡通讯录 $$"<<endl;
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"请输入你的选择:"<<endl;
}
void menu::query_menu()
{
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"$$ 请选择在哪个通讯录查找联系人 $$"<<endl;
cout<<"$$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$$"<<endl;
cout<<"$$ 1. 手机通讯录 $$"<<endl;
cout<<"$$ 2. 手机卡通讯录 $$"<<endl;
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"请输入你的选择:"<<endl;
}
void menu_display_menu()
{
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"$$ 请选择你要显示哪个通讯录的所有联系人 $$"<<endl;
cout<<"$$~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~$$"<<endl;
cout<<"$$ 1. 手机通讯录 $$"<<endl;
cout<<"$$ 2. 手机卡通讯录 $$"<<endl;
cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl;
cout<<"请输入你的选择:"<<endl;
}
/*第7个类:user类*/
class user
{
phone_list my_phone;
card_list my_card;
menu my_menu;
public:
user();
void add();
void cut();//利用基类指针,调用相应的通讯簿对象(手机通讯簿或手机卡通信簿)的增加函数完成联系人的添加。实现动态联编,体现出多态特点。(下同)
void display();
void change();
void query();
void move_tophone();
void move_tocard();
void copy_tophone();
void copy_tocard();
~user();
};
user::user()
{
cout<<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl;
cout<<" 欢迎进入通讯录管理系统 "<<endl;
cout<<" 你目前的手机联系人有:"<<my_phone.get_number()+1<<"人"<<endl;
cout<<" 你目前的手机卡联系人有:"<<my_card.get_number()+1<<"人"<<endl;
cout<<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"<<endl;
}
void user::add()
{
my_menu.add_menu();
address_list *p;
int choose;
cin>>choose;
switch(choose)
{
case 1: p=&my_phone;
p->add();
break;
case 2: p=&my_card;
p->add();
break;
default: cout<<"输入错误,操作介绍"<<endl;
return ;
}
}
void user::query()
{
my_menu.query_menu();
address_list *p;
int choose;
string byname;
cin>>choose;
switch(choose)
{
case 1: p=&my_phone;
cout<<"请输入查询的联系人姓名:";
cin>>byname;
p->query_byname(byname);
break;
case 2: p=&my_card;
cout<<"请输入查询的联系人姓名:";
cin>>byname;
p->query_byname(byname);
break;
default: cout<<"输入错误,操作结束"<<endl;
return ;
}
}
void user::cut()
{
my_menu.cut_menu();
address_list *p;
int choose;
string bytell;
cin>>choose;
switch(choose)
{
case 1:p=&my_phone;
cout<<"请输入要删除的手机号:";
cin>>bytell;
p->cut_bytell(bytell);
cout<<"正在检测手机卡上是否有该联系人信息:"<<endl;
p=&my_card;
p->cut_bytell2(bytell);
break;
case 2:p=&my_card;
cout<<"请输入要删除的手机号:";
cin>>bytell;
p->cut_bytell(bytell);
cout<<"正在检测手机上是否有该联系人信息:"<<endl;
p=&my_phone;
p->cut_bytell2(bytell);
break;
default: cout<<"输入错误,操作结束"<<endl;
return ;
}
}
void user::change()
{
my_menu.change_menu();
address_list *p;
int choose;
string bytell;
cin>>choose;
switch(choose)
{
case 1:p=&my_phone;
cout<<"请输入要修改的手机号:";
cin>>bytell;
p->change_bytell(bytell);
break;
case 2:p=&my_card;
cout<<"请输入要修改的手机号:";
cin>>bytell;
p->change_bytell(bytell);
break;
case 3:
cout<<"对手机里的信息进行修改 "<<endl;
p=&my_phone;
cout<<"请输入要修改的手机号:";
cin>>bytell;
p->change_bytell(bytell);
cout<<"对手机卡里的信息进行修改"<<endl;
p=&my_card;
cout<<"请输入要修改的手机号:";
cin>>bytell;
p->change_bytell(bytell);
break;
default: cout<<"输入错误,操作结束"<<endl;
return ;
}
}
void user::display()
{
address_list *p;
p=&my_phone;
cout<<"手机联系人:"<<endl;
p->display();
p=&my_card;
cout<<"手机卡联系人:"<<endl;
p->display();
}
void user::copy_tocard()
{
if(my_phone.get_number()<0) {cout<<"手机通讯录当前没有联系人!"<<endl; return;}
for(int i=0;i<=my_phone.get_number();i++)
{
if(my_card.get_number()>999) {cout<<"手机通讯录容量已满!无法增加新联系人!"<<endl; return ;}
my_card.copy_set(my_phone.get_name(i),my_phone.get_tell(i));
}
cout<<"操作成功!"<<endl;
}
void user::copy_tophone()
{
if(my_card.get_number()<0) {cout<<"手机卡通讯录当前没有联系人!"<<endl; return;}
for(int i=0;i<=my_card.get_number();i++)
{
if(my_phone.get_number()>999) {cout<<"手机通讯录容量已满!无法增加新联系人!"<<endl; return ;}
my_phone.copy_set(my_card.get_name(i),my_card.get_tell(i));
}
cout<<"操作成功!"<<endl;
}
void user::move_tocard()
{
if(my_phone.get_number()<0) {cout<<"手机通讯录当前没有联系人!"<<endl; return;}
for(int i=0;i<=my_phone.get_number();i++)
{
if(my_phone.get_number()>999) {cout<<"手机卡通讯录容量已满!无法增加新联系人!"<<endl; return ;}
my_card.copy_set(my_phone.get_name(i),my_phone.get_tell(i));
}
my_phone.clear_phone();
cout<<"操作成功!"<<endl;
}
void user::move_tophone()
{
if(my_card.get_number()<0) {cout<<"手机卡通讯录当前没有联系人!"<<endl; return;}
for(int i=0;i<=my_card.get_number();i++)
{
if(my_phone.get_number()>999) {cout<<"手机卡通讯录容量已满!无法增加新联系人!"<<endl; return ;}
my_phone.copy_set(my_card.get_name(i),my_card.get_tell(i));
}
my_card.clear_card();
cout<<"操作成功!"<<endl;
}
user::~user()
{
cout<<"谢谢使用本系统!您的联系人已存入相关文件中!"<<endl;
}
int main()
{
menu my_menu;
user me;
my_menu.descript();
int choose=1,c;
while(choose!=0)
{
my_menu.main_menu();
cin>>choose;
switch(choose)
{
case 0:
break;
case 1:
me.add();
break;
case 2:
me.cut();
break;
case 3:
me.change();
break;
case 4:
me.query();
break;
case 5:
me.display();
break;
case 6:
cout<<"请选择 1.复制 2移动"<<endl;
cin>>c;
switch(c)
{
case 1:
me.copy_tophone();
break;
case 2:
me.move_tophone();
break;
default:
cout<<"操作错误!"<<endl;
break;
}
break;
case 7:
cout<<"请选择 1.复制 2移动"<<endl;
cin>>c;
switch(c)
{
case 1:
me.copy_tocard();
break;
case 2:
me.move_tocard();
break;
default:
cout<<"操作错误!"<<endl;
break;
}
break;
}
}
return 0;
}