> # ♻️ 资源
> **大小:** 3.27MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010761**](https://www.yuque.com/sxbn/ks/100010761)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87430311**](https://download.csdn.net/download/s1t16/87430311)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 个人通讯录管理系统
## 问题描述
主要内容:
个人通讯录是记录了同学(包含一起上学的学校名称)、同事(包含共事的单位名称)、朋友(包含认识的地点)、亲戚(包含称呼)等与本人有关人员的数据集。
具体要求:
提供录入个人信息、修改个人信息(姓名和出生日期除外)、删除个人信息等编辑功能。
提供按姓名查询个人信息的功能。
提供查找在 5 天之内过生日的人员的信息,以便发出祝贺电话或 E-mail。
按照姓名或出生日期排序,显示输出。
统计在给定月份出生的人数,并显示输出。
能列出全体人员的姓名、出生日期、电话和 email 地址。
能分别列出同学、同事、朋友、亲戚的所有信息。
用菜单形式提供程序的各种功能的选择。
## 系统设计
## 开发环境:
控制台版本:VS2015
Qt 界面版本:Qt_5_6_0_MinGW_32bit
控制台版本与界面版本:
程序共有两个版本,控制台版本和界面版本。在程序设计之初,我们为了由易到难循序渐进,我们先在控制台下实现通讯录的各个功能。在完成并完善了控制台下最初版本之后,再设计并实现最终的界面版本。
类体系设计:
程序结构中以 Person 类为基类,以 Relative、Friend、Colleague 和 Classmate 为其派生类。程序通过生成这四个派生类的对象来存储通讯录联系人信息。基类 Person 类中包含了姓名、电话、地址等基本信息,每一个派生类各自增加了不同的数据成员以及相应返回其数据成员的成员函数。
程序中还定义了 AddressBook 类,这个类严格意义来说就是我们所理解的通讯录。其数据成员中包含了一个 Person 类型的指针数组。其成员函数共有七个,七个函数可对该 Person 类型指针数组进行操作,以完成题目所要求的添加联系人、删除联系人、显示所有联系人并排序等功能。
类体系设计框架如图。
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391109833-2f1cc0a9-e9e8-4657-8409-3b9d2b0c5227.png#averageHue=%233c3332&from=url&id=lFM7q&originHeight=504&originWidth=955&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
类定义:(图片代码中有注释详细说明)
基类 Person 类:
数据成员:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391109896-bcdd3c93-bbf1-4861-809a-8294d16d88a3.png#averageHue=%23201f1e&from=url&id=NSBul&originHeight=231&originWidth=415&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
成员函数:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391109959-84e5b07b-2ccd-4bc3-89fa-0cbccb78ac9f.png#averageHue=%231f1e1e&from=url&id=AU9LM&originHeight=363&originWidth=877&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
派生类 Relative:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110021-2e6609d0-e785-43ad-812e-0c12bfd85260.png#averageHue=%231f1f1e&from=url&id=kq4kh&originHeight=204&originWidth=1076&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
派生类 Colleague:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110090-9ebc119f-6e70-428f-942d-1f3e46d4dc83.png#averageHue=%231e1e1e&from=url&id=ZX1iU&originHeight=241&originWidth=1190&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
派生类 Friend:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110211-a08828cf-26e9-4b73-a065-af3c1010fab7.png#averageHue=%231e1e1d&from=url&id=BF0j8&originHeight=182&originWidth=1057&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
派生类 Classmate:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110277-bb95f0e5-d1e7-4555-9e71-c717507cca35.png#averageHue=%231e1e1d&from=url&id=gacak&originHeight=194&originWidth=1134&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
通讯录类 Addressbook:
头文件:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110351-01b44a34-2ef6-4d59-8836-c92605992885.png#averageHue=%231f1e1e&from=url&id=vZzll&originHeight=553&originWidth=923&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
Cpp 文件:
通讯录 Addressbook 类各部分功能:
输入联系人信息:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110407-3edd70fd-4517-4e79-b33e-bbfe892c4522.png#averageHue=%231f1f1e&from=url&id=f3dJq&originHeight=479&originWidth=978&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
删除联系人:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110509-c400f0b7-98e2-459a-8eee-24bb7d7128bf.png#averageHue=%23201f1f&from=url&id=ttF3h&originHeight=434&originWidth=552&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
对联系人进行排序:
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110570-30e80015-a724-4b17-8767-d73a1a7fd921.png#averageHue=%231f1f1f&from=url&id=tUyga&originHeight=546&originWidth=768&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
保存到文件夹
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110660-6d056ff8-d333-4fa1-b936-0d364f8a83ab.png#averageHue=%2321201f&from=url&id=u7Elj&originHeight=711&originWidth=1004&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
读取文件
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110729-14c2b5fd-bcd4-40d3-a610-00c5e6203acc.png#averageHue=%23222120&from=url&id=GUpLW&originHeight=494&originWidth=569&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110796-19c23a8c-374e-42c7-ba17-3ae4db1102e4.png#averageHue=%23222120&from=url&id=jRwFi&originHeight=489&originWidth=522&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
查找联系人
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1715391110854-8816489a-c7ef-4b7d-b14d-3685c1bfc3d9.png#averageHue=%231f1f1e&from=url&id=E6FwF&originHeight=282&originWidth=656&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
另外需要说明的是,控制台版本中基类 Person 类设为抽象类,函数 Print、Print2 为纯虚函数。(Print 输出中文如“姓名、电话号码”等等,Print2 则输出相应的具体成员信息) 四个派生类都有其版本的虚函数以满足输出不同信息的要求。
因为读写兼容性问题(二进制文本读写和虚函数似乎不兼容,这个问题我们一直未能解决。目前已将该情况向老师说明,但暂时还未得到解决)因此我们在控制台版本中继续采用抽象类以及虚函数,并将二进制文本读写改为文本读写。在界面版本中我们则放弃采用抽象类和虚函数,继续使用二进制文本读取。
神仙别闹
- 粉丝: 4236
- 资源: 7516
最新资源
- 基于Html和Shell的“老罗投资/知行合一日拱一卒投资人生”主题设计源码
- 基于Java的OnlineMusic在线音乐播放器设计源码
- comsol多场耦合 水合物降压降压开采THMC,注气驱替甲烷THM,地质封存等多场耦合收敛技术,相关地质能源开采类多场耦合仿真案列分析,包括岩土类地质灾害防护,煤层气、页岩气开采,咸水封存co2,H
- 模糊逻辑控制(FLC)Matlab simulink仿真搭建模型: 提供以下帮助 波形纪录 参考文献 仿真文件 原理解释 电机参数说明 仿真原理结构和整体框图
- 基于ThinkPHP5+Vue3的RBAC权限控制前后端分离管理系统设计源码
- 基于.Net6架构的轻量级前后端分离微服务开发框架设计源码
- 主机厂基于Simulink MBD新能源电动汽车主驱电驱控制器算法模型及开发资料,量产模型,量产软件,量产代码,软件架构设计,输入输出定子,单元测试,MIL测试资料 Sumlink MCU电机控制策
- 基于微信小程序的JavaScript/TypeScript答题小程序设计源码
- 基于QT框架的语音图像识别与数据库操作综合练手小demo设计源码
- FDTD超材料吸收器吸收光谱
- 基于Vue框架的求职招聘系统移动端(Uniapp)设计源码
- 电压型同步发电机(VSG)离网仿真模型,包含电压电流双闭环,有功无功外环控制,阻抗 仅模型 MATLAB的2018以上版本都可以
- 基于MATLAB和Python的多种数据分析方法与图表生成设计源码
- 台式三轴自动螺丝机(sw16可编辑+工程图+bom)全套技术资料100%好用.zip
- 基于Vue框架的酒店管理小程序设计源码
- 基于TypeScript的鸿蒙移动应用程序个人日记本设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈