c++实现简单通讯录

  

本文实例为大家分享了c++实现简单通讯录的具体代码,供大家参考,具体内容如下

  

<强>说明:

  

1程序中运用到两个类,一个类是人,另一个是类列表。前者存储用户信息,后者主要用于操作,如增删改查等。但由于本程序中没有涉及到太复杂的功能,用户信息可以由一个简单的结构体表示,但是为了以后拓展方便,和达到学习运算符重载的目的,还是使用了类。

  

2类列表中的Reflush()方法用户刷新文件内容,即每次修改了向量后要将最新内容写入到文件,因此增删改操作中都要调用该操作,这种方法在数据库开发中常用的到,以小见大。

  

3,陈列()方法设置字符左对齐,便于美观。另外std:: cout.width(15)设置输出字符域宽度,只对下一次输出有效。

  

4判断文本文件是否为空还有另一种方法,即字符串类中()的空方法,但为了读取方便没有采用。

  

5其实对于通讯录的操作只是在类内的向量容器中进行,只有最后刷新的时候同步到磁盘文件中。

  

6一些函数中设置多个返回值有利于判断操作的情况。

  

的人。h与cpp文件:

        的ifndef PERSON_H_   #定义PERSON_H_   # include & lt; string>      类人   {   公众:   std:: string名称;   std:: string电话;   公众:   人();   ~人();   int操作符==(const Person&p);//重载==运算符,本程序中并没有用的到   私人:      };         # endif//! PERSON_H_            # include“Person.h”      人:人()   {   }      人::~人()   {   }      int人::操作符==(const Person&p)   {   如果这个→名称==p.name)   {   如果(这→电话==p.tel)   返回0;   其他的   返回1;   }   其他的   返回2;   }      

List.h文件:

        的ifndef LIST_H_   #定义LIST_H_   # include & lt; vector>   # include“Person.h”   类列表   {   公众:   列表();   ~列表();   空白Showfile();//显示通讯录   int Readfile();//从磁盘读取文件   空白添加();   空白Reflush();//刷新数据,即重新写入磁盘   空白德尔();   无效的搜索();   私人:   std:: vectormyfile;   };      内联空白陈列();//输出格式控制   # endif      

List.cpp文件:

        # include“List.h”   # include & lt; iostream>   # include & lt; fstream>   # include & lt; string>      列表:列表()   {   }      列表::~列表()   {   }      虚空一套()//输出格式控制,即左对齐   {   std:: cout。setf (std:: ios_base::左,std:: ios_base::调整域);   }   空白列表:Showfile ()   {   std:: vector祝辞p.name>的在p.tel)//读取后存入向量容器中   {   行+ +;   myfile.push_back (p);   }      这→Showfile ();   std:: cout & lt; & lt;“总:\ t & lt; & lt;行& lt; & lt;“\ tinfos \ n”;   readfile.close ();   返回行;   }   其他的   {   std:: ofstream外部档案;//磁盘中不存在文件的话则创建   outfile.open (“mylist.txt”);   如果(! outfile.is_open ())   {   std:: cout & lt; & lt;“文件不是创建! \ n”;   返回1;   }   其他的   {   std:: cout & lt; & lt;“文件不存在,但我们创造了>//接触。cpp:定义控制台应用程序的入口点。//# include“stdafx.h”   # include“List.h”   # include & lt; stdlib.h>   # include & lt; iostream>   使用名称空间性病;      int菜单()   {   int num;   cout & lt; & lt;“* * * * * * * * * * * * * * * * * * * *”& lt; & lt;endl;   cout & lt; & lt;* 1 *添加“& lt; & lt;endl;   cout & lt; & lt;“* 2德尔*”& lt; & lt;endl;   cout & lt; & lt;“搜索* * 3”& lt; & lt;endl;   cout & lt; & lt;“* 4 *”& lt; & lt;endl;   cout & lt; & lt;退出“* 5 *”& lt; & lt;endl;   cout & lt; & lt;“* * * * * * * * * * * * * * * * * * * *”& lt; & lt;endl;   cout & lt; & lt;“输入全国矿工工会:”;   ,cin祝辞的在num;   返回num;   }      int _tmain (int命令行参数个数,_TCHAR * argv [])   {   mylist列表;   mylist.Readfile ();   int num=菜单();   bool标志=1;   而(旗帜)   {   开关(num)   {   案例1:   mylist.Add ();   打破;   案例2:   mylist.Del ();   打破;   案例3:   mylist.Search ();   打破;   案例4:   mylist.Showfile ();   打破;   例5:   cout & lt; & lt;“再见。\ n”;   返回0;   默认值:   cout

c++实现简单通讯录