数据冒险之单链表(简易通信录)
来源:互联网 发布:win7网络图标变成灰色 编辑:程序博客网 时间:2024/04/29 15:03
Node和LIst的定义与实现基本不改变,上篇已经详细给出,这里仅仅将部分改变的内容粘贴出来,要想完整实现通信录还需要把Node.h、Node.cpp、List.h、List.cpp补充完整,也可发挥自己创造实现一些新的东西。
Node.h 这里只是数据类型发生了变化
#ifndef NODE_H#define NODE_H#include"Person.h"class Node{public://int data; //现在是Person类型,这里int注释掉Person data;Node *next;void printNode();};#endif
Node.cpp见上篇,没什么改变
List.cpp 也只是由于数据类型发生变化所以赋值操作需要注释掉重载,其他的均不改变
#include<iostream>#include"List.h"using namespace std;List::List(){m_pList = new Node;//m_pList->data = 0; //现在是Person类型,需要赋值运算符重载m_pList->next = NULL;m_iLength = 0;}Person.h
#ifndef PERSON_H#define PERSON_H#include<string>#include<ostream>using namespace std;class Person{friend ostream &operator<<(ostream &out, Person &person);public:string name;string phone;//赋值运算符重载Person&operator=(Person &person);//判等运算符重载bool operator==(Person &person);};#endif
Person.cpp
#include"Person.h"#include<iostream>using namespace std;ostream &operator<<(ostream &out, Person &person){out << person.name << "-------" << person.phone << endl;return out;}//赋值运算符重载Person &Person::operator = (Person &person){this->name = person.name;this->phone = person.phone;return *this;}//判等运算符重载bool Person::operator==(Person &person){if (this->name == person.name && this->phone == person.phone){return true;}}
main.cpp
#include<iostream>#include"List.h" using namespace std;//菜单函数int menu(){//显示菜单cout << "功能菜单" << endl;cout << "1.新建联系人" << endl;cout << "2.删除联系人" << endl;cout << "3.浏览通信录" << endl;cout << "4.退出通信录" << endl;cout << "请输入:";int order = 0;cin >> order;return order;}//新建联系人void createPerson(List* pList){Node node;cout << "请输入姓名:";cin >> node.data.name;cout << "请输入电话:";cin >> node.data.phone;//两种方式都可以/*Person person;cout << "请输入姓名:";cin >> person.name;cout << "请输入电话:";cin >> person.phone;node.data = person;*/pList->ListInsertTail(&node);}//删除联系人void deletePerson(List* pList){Node node;int i = 0;cout << "请输入所要删除联系人编号:";cin >> i;cout << "已经删除第" << i << "个联系人!" << endl;pList->ListDelete(i-1, &node);cout << "删除联系的姓名是:" << node.data.name << endl;cout << "删除联系的电话是:" << node.data.phone << endl;}int main(void){int userOder = 0;List *pList = new List();while (userOder!=4){userOder = menu();switch (userOder){case 1:cout << "用户指令---->>新建联系人:" << endl;createPerson(pList);break;case 2:cout << "用户指令---->>删除联系人:" << endl;deletePerson(pList);break;case 3:cout << "用户指令---->>浏览通信录:" << endl;pList->ListTraverse();break;case 4:cout << "用户指令---->>退出通信录:" << endl;break;default:break;}}delete pList;pList = NULL;return 0;}
阅读全文
0 0
- 数据冒险之单链表(简易通信录)
- 数据冒险之单链表
- 数据冒险之二叉树(数组)
- 数据冒险之栈
- SQLITE3写简易通信录
- 数据冒险之队列实例
- 数据冒险之顺序表
- 数据冒险之栈应用(数制转换、括号匹配)
- 数据冒险之二叉树(链表实现)
- 简易的通信录-完成增删查找
- 数据冒险
- 数据冒险之顺序表应用
- 数据冒险之图以及最小生成树
- Android之使用ContentResolver对通信录中的数据进行简单操作
- ContentResolver(通信录操作)
- 网络通信之简易聊天室(UDP实现)
- AT指令之通信录PDU编码
- 换手机 之导入通信录
- C++ 学习笔记01
- nginx
- POJ 1017:Packets
- SqlServer转换为Mysql的一款工具推荐(mss2sql)
- easyui datagrid 隐藏行号 获取行号
- 数据冒险之单链表(简易通信录)
- tomcat闪退配置修改配置文件版本
- Unity给物体替换材质球
- 基于vuejs+Element的注册插件的编写
- JS组件系列——表格组件神器:bootstrap table
- JS模板引擎
- 网络请求、数据存储的权限
- git常用命令
- IP、TCP、UDP首部详解