前言

在mooc上学习了链表中的顺序表和单链表,并使用单链表数据结构跟着老师完成通讯录创建。通过这次链表练习使用,做一些总结。

自顶向下设计探索。

功能需求

在功能实现上,通讯录主要包括,创建联系人,删除联系人,显示联系人,退出通讯录。

通讯录

  1. 创建联系人

    1. 联系人信息
    2. 插入到存储结构中
  2. 删除联系人
    1. 获取删除联系人编号
    2. 删除联系人
  3. 显示联系人
    1. 遍历存储结构
  4. 退出通讯录
    1. 退出控制台

软件设计

  1. 模块划分

    1. 主控模块(主函数)
    2. 命令读取模块
    3. 命令解析模块
    4. 命令处理模块
  2. 结构划分
    1. 链表结构

      1. 构建函数
      2. 析构函数
      3. 清空
      4. is空
      5. 长度
      6. 获取节点
      7. 节点位置
      8. 前驱
      9. 后继
      10. 插入
      11. 删除
      12. 插入头
      13. 插入尾
      14. 遍历
    2. 节点结构
      1. 数据域
      2. 指针域
      3. 函数
    3. 数据域结构
      1. 姓名
      2. 电话
      3. 函数

附录:


链表头文件相关声明定义

List.h

#ifndef LIST_H
#define LIST_H#include "Node.h"class List
{
public:List();~List();void ClearList();bool ListEmpty();int ListLength();bool GetElem(int i, Node *pNode);int LocateElem(Node *pNode);bool PriorElem(Node *pCurrentNode, Node *pPreNode);bool NextElem(Node *pCurrentNode, Node *pNextNode);bool ListInsert(int i, Node *pNode);bool ListDelete(int i, Node *pNode);bool ListInsertHead(Node *pNode);bool ListInsertTail(Node *pNode);void ListTraverse();private:Node *m_pList;int m_iLength;
};#endif

 

节点头文件相关声明定义 

Node.h

#ifndef NODE_H
#define NODE_H#include "Person.h"
class Node
{
public:Person date;Node *next;void printNode();
};#endif

  

数据域相关声明定义

Person.h

#ifndef PERSON_H
#define PERSON_H#include <string>
#include <ostream>using namespace std;class Person
{friend ostream &operator<<(ostream &out, Person &person);  //Global Function
public:string name;string phone;Person &operator=(Person &person);bool operator==(Person &person);
};#endif

  

转载于:https://www.cnblogs.com/stonebloom-yu/p/6585694.html

通讯录链表实现之C++相关推荐

  1. c语言通讯录链表结构体排序,写个通讯录 想要简单就全用的是结构体数组要求改成用链表的...专业的朋友看能不能最简洁的改一下...

    已结贴√ 问题点数:20 回复次数:10 写个通讯录 想要简单就全用的是结构体数组要求改成用链表的...专业的朋友看能不能最简洁的改一下 写个通讯录 想要简单就全用的是结构体数组...不符合要求 要改 ...

  2. 一个很Low的通讯录管理系统(但是能用)C/C++单链表实现

    通讯录管理系统的设计 问题需求分析 在计算机还未普及之前通讯管理都是由联系人采用名片,通讯录往往采用的是笔录手工记帐的方式来操作的.现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程 ...

  3. 单链表的应用---通讯录设计(数据结构课设)

    一.实验目的 1)熟悉并掌握线性表的逻辑结构.物理结构: 2)熟悉并掌握线性链表的存储结构.基本操作和具体函数的定义: 二.实验内容 设计一个含有多个菜单项的主菜单程序,然后再为这些菜单项配上相应的功 ...

  4. java单链表通讯录_[源码和文档分享]C++实现的基于链表的通讯录管理系统

    摘 要 随着计算机应用技术的快速发展和日益普及,网络也遍及到我们生活的每个角落,为我们的学习和工作带来极大的方便.很多人都使用过传统的纸质通讯录,与之不同的另外一种管理方式--程序通讯录管理.程序通讯 ...

  5. 通讯录(通过链表实现)

    通讯录(通过链表实现) 设计并实现一个简易的通讯录软件,管理个人通讯记录.一条通讯记录可包括: 姓名.工作单位.手机.住宅电话.E-Mail.家庭住址等(可自行增删,但不可过少). 该系统应实现以下基 ...

  6. 单位员工通讯录管理系统(线性表的应用)

    [问题描述] 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话.手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息的查询.修改.插入与删除.以及整个通讯录表的输出. ...

  7. 数据结构员工通讯录管理系统 C语言,数据结构课程设计报告单位员工通讯录管理系统.doc...

    班级:计科112 学号: 201100814203 姓名:冯贵阳 PAGE PAGE 42 数 据 结 构 课 程 设 计 实 验 报 告 目录 1.单位员工通讯录管理系统(线性表的应用)---- - ...

  8. c语言通讯录程序线性表,数据结构(C语言)课设1——单位员工通讯录管理系统(线性表应用)...

    数据结构(C语言)课设1--单位员工通讯录管理系统(线性表应用) 题目要求: 为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的手机号.及电子邮箱.其功能包括通讯录链表的建立.员工通讯信息 ...

  9. Java通讯录管理系统使用线性表任务台程序

    下载点此去 运行截图: 我自己选择的是通讯录管理系统,该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺序,控制语句是实现结构化程序设计的基础.该设计的任务是利用一个简单实用的菜单,通 ...

最新文章

  1. 声音定位研究中遇到的困难
  2. [Win32]一个调试器的实现(六)显示源代码
  3. android 按钮中断,android – 如何“中断”在AccessibilityService中执行的操作?
  4. android mvp 作用,Android MVP与MVC的区别和理解
  5. Spring For All 顶级Spring综合社区服务平台
  6. 矩阵快速幂 HDU3483
  7. mysql事件不定时执行_Mysql 中的事件//定时任务
  8. javascript闭包新认识
  9. 如何配置cocos2d-x安卓开发环境?
  10. 【R图秀】情人节快乐!
  11. Lazarus Coolbar and AnchroDocking
  12. MATLAB机器学习系列-10:遗传算法原理及其matlab遗传算法工具箱使用
  13. 加号和减号在一起怎么读_加号和减号
  14. 计算机网络信息管理制度,计算机网络及信息管理制度
  15. HARK学习(六)--AudioStreamFromWave
  16. 基于ESP32的蓝牙鼠标键盘(一)BleKeyboard.h函数解析
  17. 为什么我不看好人人网在美国上市
  18. 服务器U盘安装虚拟化,用Proxmox ISO镜像制作引导U盘
  19. File和MultipartFile互转
  20. MySQL开启ssl证书

热门文章

  1. 多个Activity关闭问题
  2. 100层楼2个鸡蛋,如何得知鸡蛋能承受几层的撞击
  3. form、document.all[].value的数字处理
  4. Windows环境变量
  5. 脸部螨虫和肥皂洗脸的问题
  6. Flink SQL Client注册Python UDF完整流程
  7. Intellij idea导入项目时没有目录结构
  8. Ubuntu下面Master PDF Editor背景颜色设置
  9. C++自定义直方图统计
  10. 5.1 最小二乘法,左逆,投影矩阵