2022秋《软件系统设计与分析》周报告

组别:第六组      周次:第三周(2022.9.26-2022.10.2)

实验名称图书管理系统
仓库地址图书管理系统: 由用户系统和图书系统构成;基于哈希密码技术和splay自平衡多关键值查找树等算法实现的图书管理系统.

2022秋《软件系统设计与分析》周报告本周进展:一、主要进展:二、目前人员分工安排:小组人员(有改动):人员分工(有改动):三、本周小组各成员完成任务情况(有改动):四、本周遇到的问题以及如何解决:1.使用splay树进行图书管理和用户管理的具体实现?2.上述操作中,怎么具体实现查找图书的过程?参考文献:

本周进展:

一、主要进展:

本周组内主要展开的是各组员对上周自己负则代码的检查和修改以及相关知识的学习,增加的新内容并不多。

新增内容:

  1. 实现适用于用户管理的splay树;

  2. 实现较初级的时间类等开发;

  3. 实现简单的密码的文件读取函数。

优化内容:

  1. 优化存储文件结构;

  2. 优化了认证注册的函数;

  3. 优化了用户类函数的某些功能。

二、本周小组各成员完成任务情况(有改动)

小组成员本周完成任务情况下周准备做些什么
实现适用于用户管理的splay树1.想优化数据结构的查找插入效率,在已有算法上进一步简化时间复杂度 2.下周想借助C语言库函数实现时间类的储存与加减运算
重写了信息存储功能实现能够适配所有的存储类
研究了各个软件前端的样式,基本复制qq的登录界面想实现与后端对接
进行 功能界面的设计&解决与后端的交互问题 相关理论知识的学习 主要形式为bilibili网课和网上搜集的教程 具体实现还在搞继续上周没完成的工作 并梳理好窗口间的调用逻辑以及将后端提供的接口设置在相应的控件上
优化了认证注册的函数,基本完成密码的文件读取函数准备进行测试,继续优化
进行用户管理员类、图书仓库管理员类的开发进行用户管理员类、图书仓库管理员类的开发
进行用户管理员类、图书仓库管理员类的开发进行用户管理员类、图书仓库管理员类的开发
实现时间类函数(如时间类的打印和加减等)继线实现时间类函数
对用户类进行初步测试、检查并测试各个函数之前的接口能否顺利对接尝试拼凑部分功能完整但还未与某些基础功能对接的函数(比如用户类、图书仓库管理员类等于存储文件有关函数的连接)

详细代码完成情况请见git仓库(图书管理系统: 由用户系统和图书系统构成;基于哈希密码技术和splay自平衡多关键值查找树等算法实现的图书管理系统.

目前仓库主要组成(大类包括一些数据结构与算法、文件存储加载、密码登录、类实现等信息):

三、本周遇到的问题以及如何解决:

1.使用splay树进行图书管理和用户管理的具体实现?

splay树:二叉查找的一种改进数据结构–伸展Splay Tree)。

特点:不会保证树一直是平衡的,但各种操作的平摊时间复杂度是O(log n),因而,从平摊复杂度上看,二叉查找树也是一种平衡二叉树.

 

使用splay树进行图书管理和用户管理中,每个节点维护一个key数组 ,每个key值对应一个图书/用户条目的全部信息 ,用于与哈希操作共同合作,从而实现较快地找到找到对应图书信息。

2.上述操作中,怎么具体实现查找图书的过程?

首先,哈希表采用链地址法(拉链法),参考下图(上周介绍过)。

 

当我们要查找一个指定名称的书 ,先将其名称哈希成值,然后在表里查找对应的id ,再通过对应的id查找到节点 ,接着在这个节点的key数组里O(n)扫一遍找到对应的条目(遍历),直至找到对应图书,然后进行相应操作(输出信息,或增删查改)

......

参考文献:

http://t.csdn.cn/cRE5i

Splay树详解 - 秦淮岸灯火阑珊 - 博客园

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值