本文实例为大家分享了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++实现简单通讯录