#include<iostream>
#include<fstream>
#include<cstring>
#include<cstdlib>
using namespace std;
class shoujilianxiren//手机联系人类
{
protected:
string name;
string phone_number;
public:
shoujilianxiren(string = " " ,string = " " );//带有默认值
void enter_data();//输入姓名和手机号码
void set_name( string );
void set_phone_number( string );
void modify();//修改数据成员的数据
void display();//展示手机联系人信息
string get_name();
string get_phone_number();
friend class phone_tongxunlu;
friend class sim;
friend istream&operator >> ( istream & , shoujilianxiren &);
friend ostream&operator << ( ostream & , shoujilianxiren &);
};
shoujilianxiren::shoujilianxiren(string NAME,string PHONE_NUMBER):name(NAME),phone_number(PHONE_NUMBER){
}
void shoujilianxiren :: enter_data()
{
cout<<"请输入该联系人的姓名:"<<endl;
cin>>name;
cout<<"请输入该联系人的手机号码:"<<endl;
cin>>phone_number;
}
void shoujilianxiren::set_name(string X)
{
name=X; }
void shoujilianxiren::set_phone_number(string X)
{
phone_number=X; }
void shoujilianxiren::modify()
{
cout<<"请输入该联系人修改后的姓名:"<<endl;
cin>>name;
cout<<"请输入该联系人修改后的手机号码号码:"<<endl;
cin>>phone_number;
}
void shoujilianxiren ::display()
{
cout<<"该联系人的姓名:"<<name<<endl;
cout<<"该联系人的手机号码:"<<phone_number<<endl;
}
string shoujilianxiren::get_name()
{
return name; }
string shoujilianxiren::get_phone_number()
{
return phone_number; }
istream& operator >> ( istream &in , shoujilianxiren& p)
{
cout<<"请输入该联系人的姓名:"<<endl;
in>>p.name;
cout<<"请输入该联系人的手机号码:"<<endl;
in>>p.phone_number;
return in;
}
ostream& operator << ( ostream &out, shoujilianxiren& p)
{
out<<p.name<<" "<<p.phone_number<<endl;
return out;
}
class tongxunpu//通讯簿抽象类
{
public:
virtual void zengjia()=0;
virtual void shanchu()=0;
virtual void xiugai()=0;
virtual void chaxun()=0;
virtual void display()=0;
};
class phone_tongxunlu:public tongxunpu//手机通讯簿类
{
shoujilianxiren people[1000];
static int num2;
public:
phone_tongxunlu();
~phone_tongxunlu();
void zengjia();
void shanchu();
void xiugai();
void chaxun();
void display();//展示手机通讯簿中所有人的信息
friend class user;
};
int phone_tongxunlu::num2=0;
phone_tongxunlu::phone_tongxunlu()
{
ifstream instuf("d:\\手机联系人.txt",ios::in);
if(!instuf)
{
cout<<"打不开此文件"<<endl; abort();
}
while(instuf>>people[num2].name>>people[num2].phone_number)
{
num2++;
instuf>>people[num2].name>>people[num2].phone_number;//读第二个联系人
}
instuf.close();
}
phone_tongxunlu::~phone_tongxunlu()
{
ofstream outstudf("d:\\手机联系人.txt",ios::out);
if(!outstudf)
{
cout<<"打不开文件"<<endl; abort();
}
for(int i=0;i<num2;i++)
outstudf<<people[i].name<<" "<<people[i].phone_number<<endl;
outstudf.close();
}
void phone_tongxunlu::zengjia()
{
cin>>people[num2];
num2++;
}
void phone_tongxunlu::shanchu()
{
cout<<"请输入想要删除的联系人的手机号码:";
string number;
cin>>number;
int flag;
int i=0;
while(i<num2)
{
if(people[i].get_phone_number()==number)//该联系人在通讯簿中
{
flag=i;//记录需要删除的联系人的位置
num2--;//总人数减1
break;
}
else
i++;
};
if(i==num2)//该联系人不在通讯簿中
{
cout<<"抱歉,删除失败,未查找到此人"<<endl;
return ;
}
for(int j=flag;j<num2;j++)
{
people[j]=people[j+1
C++课程毕业设计———通讯管理系统(代码)
最新推荐文章于 2024-01-11 08:04:06 发布