之前学习C语言的时候,用链表实现过通讯录的基本功能。最近写了一个C++版本的通讯录,参考代码如下所示。
main.cpp
/*****************************************************
Copyright (C): 2017-2018
File name : main.cpp
Author : Zhengqijun
Date : 2017年02月12日 星期日 16时47分52秒
Description : 主函数
Funcion List : main()
*****************************************************/
#include "../../include/head.h"
personMessage pep;
vector<personMessage> person;
vector<personMessage>::iterator it;
int main()
{
//personMessage pep;
//vector<personMessage> person;
char ch = 0;
//system("clear");
while(ch != 'q')
{
if((ch != 'a') && (ch != 'c') && (ch != 'd') && (ch != 'f'))
{
system("clear");
ch = book_ui();
}
switch(ch)
{
case 'a':
{
ch = add_person();
break;
}
case 'c':
{
ch = change_person();
break;
}
case 'd':
{
ch = delete_person();
break;
}
case 'e':
{
ch = display_person();
break;
}
case 'f':
{
ch = find_person();
break;
}
case 'q':
{
cout << "Byebye!" << endl;
return 0;
break;
}
default:
{
cout << "input error!" << endl;
break;
}
}
}
return 0;
}
head.h
/*****************************************************
Copyright (C): 2017-2018
File name : head.h
Author : Zhengqijun
Date : 2017年02月12日 星期日 17时11分29秒
Description :
Funcion List :
*****************************************************/
#ifndef __HEAD_H__
#define __HEAD_H__
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <stdio.h>
#include <string.h>
using namespace std;
class personMessage
{
public:
personMessage();
personMessage(string s);
~personMessage();
personMessage& operator=(string s);
personMessage& operator=(personMessage& other);
/* sort排序算法需要重载'<',注意加const! */
bool operator<(const personMessage& p) const;
bool operator>(const personMessage& p) const;
bool operator<=(const personMessage& p) const;
bool operator>=(const personMessage& p) const;
bool operator==(string s);
friend istream& operator>>(istream& in, personMessage& p);
friend ostream& operator<<(ostream& out, personMessage& p);
int selectFla