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

📄 7-1.cpp

📁 实现简单的电话本功能
💻 CPP
字号:
/*	电话本
    	编写C++程序完成以下功能:
(1)	实现简单电话本功能,用姓名来搜索电话号码;
(2)	用户输入姓名,程序查找并输出结果;
(3)	用户可以通过输入,添加姓名和电话号码;
(4)	用户可以删除姓名和电话号码;
(5)	电话本可以保存在指定文件中;
(6)	电话可被从指定文件中读入到内存。
*/
#include<iostream>
#include<stdlib.h>
#include<fstream>
#include<string>
using namespace std;
const int MAX=100;

class Address//单条电话记录 
{
      private:
          string name;
          string phone;
          bool status;//判断是否还存在记录 
      public:
             Address(){status=false;}//初始化时无记录 
             string getname()
             {
                    return name;
             } 
             string getphone()
             {
                    return phone;
             }
             bool getstatus(){return status;}
             void Input(string  n,string  p)//输入姓名及电话 
             {
                  name=n;
                  phone=p;
             }
             void Set(){ status=true;}//记录存在 
             void Clear(){ status=false;}//记录不存在 
             
             
};


class Addressbook//电话本 
{
      Address Item[MAX];//申请的电话本 
      int num;
      public:
             Addressbook(){num=0;}
             string Search();//输入姓名,找电话号码
             void  Enter();//添加新的电话记录
             void Delete ();//删除
             void Save();//保存
             void Read();//读入 
              
};

string Addressbook::Search()             
{
     string n;
     cout<<"请输入查找姓名:"<<endl;
     cin>>n;
     for(int i=0;i<MAX;i++){
        if(n==Item[i].getname()&&Item[i].getstatus()==true)
           return Item[i].getphone();
     }
}

void Addressbook::Enter()
{
     string n,p;
     int pointer=0;
     for(int i=0;i<num;i++){
             if(Item[i].getstatus()==false){
                  pointer=i;
                  break;
             }
     }
     if(pointer==num-1)
      pointer=num;
     cout<<"请输入姓名:"<<endl;
     cin>>n;
     cout<<"请输入电话号码:"<<endl;
     cin>>p;
     Item[pointer].Input(n,p);
     Item[pointer].Set();
     num++;
}

void Addressbook::Delete()
{
     string n;
     cout<<"请输入删除姓名:"<<endl;
     cin>>n;
     for(int i=0;i<MAX;i++){
        if(n==Item[i].getname()){
            Item[i].Clear();
            num--;
        }
     }
}

void Addressbook::Save()
{
     ofstream outfile("d:\\1.txt"); 
     if(!outfile){
              cout<<"无法打开"<<endl;
              }
     else{     
          for(int i=0;i<MAX;i++){
                  if(Item[i].getstatus()==true)
                   outfile<<Item[i].getname()<<Item[i].getphone()<<endl;
          }
          outfile.close();
     }
     
}
          
void Addressbook::Read()
{
     ifstream infile("d:\\1.txt"); 
     if(!infile){
              cout<<"无法打开"<<endl;
              }
     else{
             for(int i=0;i<MAX;i++){
                    if(!infile.eof()){
                       infile.read((char *)(&Item[i]), sizeof(Item[i]));
                       if(Item[i].getstatus()==true)
                         num++;
                    }
             }
     }
          infile.close();
     
}

int main()
{
    Addressbook A;
    string p;
    int ch;
    cout<<"0.结束\n1.用姓名来查找号码\n2.添加姓名和号码\n3.删除姓名和号码\n4.保存\n5.读取\n";
    do {
            cin>>ch;
        switch (ch){
                  case 0:break;              
                  case 1: {p=A.Search();
                          cout<<p<<endl;
                          break;
                          }
                  case 2: A.Enter();break;
                  case 3: A.Delete();break;
                  case 4: A.Save(); break;
                  case 5: A.Read();break;
                  default:cout<<"error";break;
           }            
               }
      while(ch!=0);
    
    system("pause");
    return 0;
}
         
             
             
     
     
     
              
             
      

⌨️ 快捷键说明

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