基于C++二叉树链表实现同学录信息系统

1.问题描述

采用二叉树存储结构,建立二叉树同学录信息管理系统;实现对同学录的输出和查找,基于查找实现对同学录的修改和新增成员;采用递归的方式进行遍历搜索,从而实现对满足条件的某条同学信息的删除操作。
【基本要求】
一个完整的系统应具有以下功能:
(1)可通过键盘录入同学的基本信息(或通过记事本读入),并输出同学录信息。
(2)可按照学号、性别、姓名、电话查询同学录信息。
(3)可根据学号、姓名、电话为索引修改同学录信息。
(4)可添加新同学信息。
(5)可按照姓名、电话为索引删除同学录信息。
(6)退出系统。
【测试数据】
以本班同学的基本信息为测试数据,包括学号、姓名、性别、电话等。

2.功能需求

a.添加同学录信息:通过键盘录入同学的基本信息,包括学号、姓名等数据。
b.查询同学录信息:可按照学号、姓名、电话和性别查询同学录信息。
c.修改同学录信息:可按照学号、姓名、电话和性别修改同学录信息。
d.删除同学录信息:可按照学号、姓名、电话和性别删除同学录信息。
e.浏览同学录信息:可查看已添加同学录信息,方便对其进行操作。
f.存储同学录信息:可保存同学信息到磁盘,打开系统自动读取磁盘的同学信息。
g.正常退出系统:退出系统。

3.运行图


字体风格可以自由修改,界面设置都可以自由修改.....

4.代码

下载源代码
密码私聊!

5.运行问题

代码在不同的编译器上,由于编译器内部的代码检查不同,编译可能会报一些错误,请根据错误进行处理。
本系统是在vc2019上运行,也可以在C与C++程序设计学习与实验系统2010上运行,在vc2019上运行如果出现了以下错误
E0144"const char *" 类型的值不能用于初始化 "char *" 类型的实体
解决方法是:
项目>>属性>>C/C++>>语言>>符合模式,将符合模式由是改为否

6.文档资料

文档很多足够拿来写报告的,就是功能图需要自己画...

同学录资料大全

6.存在问题

1.输入字符的校验没有写,那时候不敢写太好,自行解决,也不难。
2.不可以在内存中单独全部删除同学信息然后去浏览全部同学信息会直接退出崩溃的,但是可以一次性删除同学信息,
为啥会出现这种问题呢,因为内存中的树的根节点不可以被删除呀,因为我把第一个同学的信息作为根节点了导致第一个同学不可以被删除,一旦删除,不可以调用根节点的指针了,
解决办法也很简单,自行创建一个空的根节点,就可以单独全部删除了,一次性删除同学信息这个功能是我清空了文本的内容,而不是在内存中清除的。这种叫野指针,导致读写失败,因为我用了全局指针变量,一旦连续调用就会出问题,比如你删除了最后一个同学信息,然后执行查询同学信息,就会导致根节点没有数据,没有数据,查询使用的是先判断后递归调用,它一直递归下去不就出问题了吗,解决办法就是留一个同学信息或者留一个案例同学信息或者自己申请内存空间,释放野指针。

7.程序的使用

添加信息,修改信息,删除信息是在内存中进行的,一旦关闭系统,你的操作等于没有操作,类似你写word文档,你写了好多文字,你没有保存,关了电脑,相当于白写,
因此执行添加信息,修改信息,删除信息操作想存储到磁盘永久化,必须执行存储功能!

代码不止一个版本,一个是通过简单窗口带颜色的绘画版本,一个手动通过cout和for循环菜单版本,一个类模板。

博客园后台私聊或加QQ:760013524获取技术支持或领取资料。
博客园后台私聊或加QQ:760013524获取技术支持或领取资料。
博客园后台私聊或加QQ:760013524获取技术支持或领取资料。

posted @ 2021-02-23 17:24  Newbe落花  阅读(419)  评论(3编辑  收藏  举报