C++课程毕业设计———通讯管理系统(代码)

#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
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值