c++:vector类编写简易通讯录
来源:互联网 发布:天刀捏详细步骤脸数据 编辑:程序博客网 时间:2024/06/06 07:37
Function.cpp:通讯录功能实现相关函数
#include <iostream>#include <vector>#include "Pon.h"#include "Function.h"extern Tel pon;extern vector<Tel> t;using namespace std;//-----------返回函数------------//void Function::pause(){ string ch; cout << "input any key to return:" << endl; cin >> ch; system("clear"); pon.interface(); (*this).choose();}//-----------查找函数------------//void Function::find(){ system("clear"); int count = 0; string name; cout<<"input the name:"<<endl; cin>>name; vector<Tel>::iterator it; system("clear"); cout<<"ID"<<" "<<"NAME"<<" "<<"PHONE"<<" "<<"ADDRESS"<<endl; cout<<"-----------------------"<<endl; for(it = t.begin(); it != t.end(); ++it) { if((*it) == name) { count += 1; cout<<*it<<endl; } } if(count == 0) { cout<<"cant't find the linkman"<<endl; } (*this).pause();}//------------删除函数-------------//void Function::del(){ system("clear"); if(t.empty()) { cout << "the addressbook is empty" << endl; (*this).pause(); } string name; cout << "input the name:" << endl; cin >> name; int count = 0; vector<Tel>::iterator it; cout<<"ID"<<" "<<"NAME"<<" "<<"PHONE"<<" "<<"ADDRESS"<<endl; cout<<"-----------------------"<<endl; for(it = t.begin(); it != t.end(); ++it) { if((*it) == name) { cout<< (*it) <<endl; count += 1; } } if(count == 0) { cout << "can't find the contact" << endl; (*this).pause(); } else if(count == 1) { string ch; do { cout << "delete the contact's message?(y)or(n)" <<endl; cin >> ch; } while(ch != "y" && ch != "n"); if(ch == "y") { system("clear"); for(it = t.begin(); it != t.end();) { if((*it) == name) { it = t.erase(it); cout << "delete successed" << endl; } else { ++it; } } } (*this).pause(); } else { int num = 0; string ch; do { cout << "delete the contact's message?(y)or(n)" <<endl; cin >> ch; } while(ch != "y" && ch != "n"); if(ch == "y") { int id; cout << "input the ID to delete" <<endl; cin >> id; system("clear"); for(it = t.begin(); it != t.end();) { if(*it == id && *it == name) { it = t.erase(it); cout << "delete successed" << endl; num++; } else { ++it; } } if(num == 0) { cout <<"id error!" <<endl; } } (*this).pause(); }}//----------显示函数-----------//void Function::display(){ system("clear"); if(t.empty()) { cout << "the addressbook is empty" << endl; (*this).pause(); } vector<Tel>::iterator it; cout<<"ID"<<" "<<"NAME"<<" "<<"PHONE"<<" "<<"ADDRESS"<<endl; cout<<"-----------------------"<<endl; for(it = t.begin(); it != t.end(); ++it) { cout<< (*it) <<endl; } (*this).pause();}//----------添加函数-------------//void Function::add(){ system("clear"); static int id = 0; if(t.empty()) { id = 0; } cout<<"please input the name, phone and address"<<endl; Tel temp(++id); cin>>temp; sort(t.begin(),t.end()); t.push_back(temp); (*this).pause(); return;}//------------修改函数-------------//void Function::change(){ system("clear"); if(t.empty()) { cout << "the addressbook is empty" << endl; (*this).pause(); } string name; cout << "input the name" << endl; cin >> name; int count = 0; vector<Tel>::iterator it; cout<<"ID"<<" "<<"NAME"<<" "<<"PHONE"<<" "<<"ADDRESS"<<endl; cout<<"-----------------------"<<endl; for(it = t.begin(); it != t.end(); ++it) { if((*it) == name) { cout<< (*it) <<endl; count += 1; } } if(count == 0) { cout << "can't find the contact" << endl; (*this).pause(); } else { string ch; do { cout << "change the contact's message?(y)or(n)" <<endl; cin >> ch; } while(ch != "y" && ch != "n"); if(ch == "y") { int id; int count = 0; cout << "input the ID to change" <<endl; cin >> id; system("clear"); for(it = t.begin(); it != t.end(); ++it) { if(*it == id && *it == name) { Tel chg_name; cout<< " input the name, phone and address" << endl; cin >> chg_name; chg_name = id; (*it) = chg_name; count++; } } if(count == 0) { cout << "id error!" <<endl; } } (*this).pause(); }}//------------选项选择函数-----------//void Function::choose(){ int ch; cin >> ch; switch(ch) { case 1: { (*this).add(); break; } case 2: { (*this).display(); break; } case 3: { (*this).del(); break; } case 4: { (*this).change(); break; } case 5: { (*this).find(); break; } case 6: { cout << "success to exit" << endl; break; } default: break; }}
Function.h:功能类定义
#ifndef _FUNCTION_H_#define _FUNCTION_H_class Function{ public: void choose(); void add(); void pause(); void display(); void find(); void change(); void del();};#endif
Pon.cpp:联系人类相关函数实现
#include <iostream>#include "Pon.h"using namespace std;Tel::Tel() //通讯类构造函数{}Tel::Tel(int num):id_(num) //通讯类转换构造函数{}Tel::~Tel() //通讯类析构函数{}//-----------界面函数-------------//void Tel::interface(){ printf("\t\t\t address_book \t\t\t\n"); printf("\t\t\t+--------------------------------+\t\t\t\n"); printf("\t\t\t+ +\t\t\t\n"); printf("\t\t\t+ 1.add 2.display +\t\t\t\n"); printf("\t\t\t+ 3.delete 4.change +\t\t\t\n"); printf("\t\t\t+ 5.find 6.exit +\t\t\t\n"); printf("\t\t\t+ +\t\t\t\n"); printf("\t\t\t+--------------------------------+\t\t\t\n"); printf("\t\t\t+ welcome +\t\t\t\n"); printf("\t\t\t+--------------------------------+\t\t\t\n"); cout<< "input your choose:" << endl;}//----------"=="运算符重载-------------//bool Tel::operator==(const string &s){ if((*this).name_ == s) { return true; } else { return false; }}//----------"<"运算符重载-------------//bool Tel::operator<(const Tel &tel) const{ return name_ < tel.name_;}//----------"="运算符重载-------------//Tel& Tel::operator=(int id){ (*this).id_ = id; return *this;}Tel& Tel::operator=(const Tel &s){ (*this).id_ = s.id_; (*this).name_ = s.name_; (*this).phone_ = s.phone_; (*this).address_ = s.address_; return *this;}//----------"=="运算符重载-------------//bool Tel::operator==(int id){ if((*this).id_ == id) { return true; } else { return false; }}//----------"<<"运算符重载-------------//ostream& operator<<(ostream &out,const Tel &tel){ out<<tel.id_<<" "; out<<tel.name_<<" "; out<<tel.phone_<<" "; out<<tel.address_<<" "; return out;}//----------">>"运算符重载-------------//istream& operator>>(istream &in,Tel &tel){ int id; string buffer_name; string buffer_phone; string buffer_address; cout<<"name:"<<endl; in>>buffer_name; cout<<"phone:"<<endl; in>>buffer_phone; cout<<"address:"<<endl; in>>buffer_address; tel.name_ = buffer_name; tel.phone_ = buffer_phone; tel.address_ = buffer_address; return in;}
Pon.h:联系人节点类
#ifndef _PON_H_#define _PON_H_#include <iostream>#include <string>#define MAX_SIZE 1024using namespace std;class Tel{ public: Tel(); Tel(int num); ~Tel(); friend ostream& operator<<(ostream &out,const Tel &tel); friend istream& operator>>(istream &in,Tel &tel); bool operator==(const string &s); bool operator==(int id); Tel& operator=(const Tel &s); Tel& operator=(int id); bool operator<(const Tel &tel) const; void interface(); private: int id_; string name_; string phone_; string address_;};#endif
0 0
- c++:vector类编写简易通讯录
- C语言编写简易通讯录
- sqlite3 编写简易通讯录
- 【c++】用c++的vector容器编写简单的通讯录
- 【C语言】 简易通讯录
- C语言简易通讯录
- c语言-简易通讯录
- 完成 简易通讯录 的编写
- C编写的通讯录
- C语言通讯录编写
- C语言实现简易通讯录
- C语言的简易通讯录
- 【简易通讯录】-----C语言实现
- C语言实现简易通讯录
- 简单数据库编写的简易通讯录
- c++利用STL编写简易通讯录
- 用C语言编写通讯录
- c语言模拟实现简易通讯录
- 有关Android活动——写给自己看
- 顺序结构、动态链表结构下的一元多项式的加法、减法等的实现
- 【redis】redis的bind配置
- JSP内容整理之JavaBeans与JSP动作元素
- 【Python学习】python不要使用任何模块名作为文件名(module 'xgboost' has no attribute 'DMatrix')
- c++:vector类编写简易通讯录
- react native Warning: setState(...): Can only update a mounted or mounting component.
- JavaScript中变量的声明以及如何使用
- HTML/CSS第一次作业(小薇学院任务)
- leetcode109
- 编写第一个Spring 的helloword
- crazy java(精粹版) 补充笔记--1(持续更新)
- 第五届省赛javaA组- 熊怪吃核桃
- 模板函数的另一种用法