⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3.1.cpp

📁 ENJOY YOURSELF! ENJOY YOURSELF!
💻 CPP
📖 第 1 页 / 共 2 页
字号:
                               else
                               {
                                      cout<<"主叫"<<me.fromNumber<<"发送短信给"<<me.toNumber<<":"<<endl;
                                      cout<<me.shortmessage<<endl;
                                      ofstream infile("介质.txt",ios_base::out);
                                      strcpy(back.fromNumber,me.toNumber);
                                      strcpy(back.toNumber,me.fromNumber);
                                      strcpy(back.shortmessage,"$message$");
                                      infile<<back.toNumber<<setw(15)<<back.fromNumber<<setw(15)<<back.shortmessage<<endl;
                               }
                        }
                 }
     }
                        
             
}

//定义类:MyPhone作为电话本的类
 
class MyPhone
{
      public:
             char name[length];
             char m_Number[length];
             char f_Number[length];
             void print();
};

//MyPhone类中电话本的打印函数
 
void MyPhone::print()
{
     cout<<setiosflags(ios_base::left)<<setw(15)<<name<<setw(20)<<m_Number<<setw(20)<<f_Number<<endl;
}

//声明两个函数用于查找和输入用户 

void input();                          
void search();        

//主函数的实现:
 
void CellPhone::phoneBook()
{
      int i=1,key;
      cout<<"欢迎使用电话本,请输入希望的操作:(正整数)"<<endl;      
      cout<<"(1-查询电话     2-添加电话     0-退出号码本)"<<endl;
      cin>>key;
      while (key!=0)                                //////////////////////
      {                                             //通过用一个选择函数//
            switch (key)                            //来确定操作,然后再// 
            {                                       //分别调用相应的函数// 
                   case 1:                          //////////////////////
                        search();
                        break;
                   case 2:
                        input();
                        break;
                   case 0:
                        cout<<"退出!"<<endl;
                        break;
                   default:
                        cout<<"错误的输入,请重新输入:(正整数)"<<endl;
                        break; 
            }
            cout<<"请继续输入操作:"<<endl;         //再次输入需要的操作 
            cout<<"(1-查询电话     2-添加电话     0-退出号码本)"<<endl;
            cin>>key;
      }
}

//////////////////////////////////////////
//查找函数的实现:                       //
//    此函数用于查找已存电话本里面的电话//
//号码,除此以外,本函数还可以在已查找的电//
//话基础上对其进行操作:即修改该号码,或者//
//删除该号码                            //
//////////////////////////////////////////
 
void search()
{
     int key=1,choice;                               //定义key用于控制循环,choice用于存放选项 
     MyPhone me;                                     //声明me这个对象用于临时存放输入 
     list <MyPhone> Link;                            //声明列表Link用于将电话本存入内存 

     ifstream infile("电话本1.txt",ios_base::in);     //打开电话本文件 
     while (infile)                                  //将其内容读入内存 
           {
           infile>>me.name>>me.m_Number>>me.f_Number;
           Link.push_back(me);
           }                                         ////////////////////////////////////
     list <MyPhone> ::iterator p=Link.end(),q;       //问题:读入会把最后一个对象读入2次// 
     q=p;                                            //     因此只能再次将其清除       //
     q--;                                            ////////////////////////////////////
     Link.erase(q);     
     cout<<"请输入需要查询的用户名:"<<endl;         //输入需要查找的用户名 
     cin>>me.name;
     p=Link.begin();
     while(p!=Link.end()&&key!=0)                    //用while循环查找 
     {
           if(strcmp((*p).name,me.name)==0)          //如果存在则打印该用户 
           {
                   cout<<"您所查找的电话如下:"<<endl;                     
                   (*p).print();
                   key=0;
           }
           else
           {
                   p++;
           }
     }
     if(key==1)                                       //如果不存在则打印"不存在" 
     {
           cout<<"对不起,不存在你所查找的电话"<<endl;
     }
     else                                             //如果存在则进入对该用户的操作 
     {
           cout<<"请输入需要对此号码的操作:(正整数)"<<endl;
           cout<<"(1-修改该用户  2-删除该用户  其他-返回)"<<endl; 
           cin>>choice;
           switch (choice)                            //以switch选择输入的操作 
           {
                  case 1:                             //选择修改,则将新内容复制给原对象 
                       cout<<"请输入修改后的用户名:"<<endl;
                       cin>>me.name;
                       strcpy((*p).name,me.name);
                       cout<<"请输入修改后的手机号:"<<endl;
                       cin>>me.m_Number;
                       strcpy((*p).m_Number,me.m_Number);
                       cout<<"请输入修改后的座机号:"<<endl;      
                       cin>>me.f_Number;
                       strcpy((*p).f_Number,me.f_Number);
                       cout<<"修改已成功!"<<endl;
                       break;
                  case 2:                              //选择删除,则将当前对象删除 
                       q=p;
                       Link.erase(q);
                       cout<<"该用户已被成功删除!"<<endl;
                       break;
                  default:
                       cout<<"返回初始页面"<<endl; 
                       break;
           }
           ofstream infile("电话本1.txt",ios_base::out);//完成操作后,将列表存入文件 
           list <MyPhone> ::iterator p=Link.begin();
           while (p!=Link.end())
           {
                 infile<<setiosflags(ios_base::left)<<setw(15)<<(*p).name
                 <<setw(20)<<(*p).m_Number<<setw(20)<<(*p).f_Number<<endl;
                 p++;
           }
     }
     infile.close();                                   //最后关闭文件 
}

//输入用户函数的实现
 
void input()
{
     int i=1;                                          //定义i用于控制循环 
     MyPhone me;                                       //声明me用于临时存放输入 
     list <MyPhone> Link;                              //声明Link列表,将文件读入内存 
     ifstream infile("电话本1.txt",ios_base::in);       //打开文件 
     while(infile)                                     //将其读入内存 
     {
           infile>>me.name>>me.m_Number>>me.f_Number;
           Link.push_back(me);
     }
     infile.close();
     cout<<"请输入需要添加的用户名:"<<endl;           //输入需要添加的用户名 
     cin>>me.name;
     list <MyPhone> ::iterator p=Link.begin();
     while(p!=Link.end()&&i!=0)                        //察看列表中是否有同名的对象 
     {
            if(strcmp((*p).name,me.name)==0)
            {
                   i=0;
            }
            else
            {
                   p++;
            }
     }
     if(i==0)
     {
            cout<<"对不起,已经有同名的用户存在"<<endl;//如果有则打印已有同名 
     }
     else                                              //否则继续输入手机号和座机号 
     {                                     
            cout<<"请输入需要添加的用户的手机号码:"<<endl;
            cin>>me.m_Number;
            cout<<"请输入需要添加的用户的座机号码:"<<endl;
            cin>>me.f_Number;
            ofstream infile("电话本1.txt",ios_base::app);//将输入追加到文件后 
            infile<<setiosflags(ios_base::left)<<setw(15)<<me.name
            <<setw(20)<<me.m_Number<<setw(20)<<me.f_Number<<endl;
            
            cout<<"用户已添加成功!"<<endl; 
            infile.close();                              //关闭文件 
     }
}                                     
                               

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -