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

​组别:第六组      周次:第二周(2022.9.19-2022.9.25)

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

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

        本周进展:

                一、化基本需求为具体框架(几个文件、几个类、几个结构体、几个数据结构):

                二、目前人员分工安排:小组人员(有改动):人员分工(有改动)

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

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

                        1.如何针对B+树特点实现快速查找?

                        2.使用的是哪种哈希表?

                参考文献:

本周进展:

一、化基本需求为具体框架(几个文件、几个类、几个结构体、几个数据结构):

  1. 三个二进制文件(用户信息文件、管理员信息文件、图书信息文件

  1. 三个类(用户类、图书管理员类、图书仓库管理员类

  1. 四个结构体(书(script_item)、借书信息条款(brorrow_item)、还书信息条款(return_item)

  2. 三个数据结构有关原理(平衡搜索树(用于管理用户信息和图书信息)B+树、MD5 字符串仿射+hash-table 用于两类管理员的登入登出、哈希表:通过名称查询用书ID+通过姓名查询用户ID)

一些具体实现:

结构体:

书:类型编号、用书ID、用书名称、作者、出版社、出版日期、库存数量、单价、版号、借 书记录、还书记录、已借书数量

借书条款:借书人、借书人ID、图书ID、图书名称、借书时间

还书条款:还书人、还书人ID、图书ID、图书名称、还书时间、是否违规

日期:年、月、日、时

数据结构有关原理:

B+树:1.检索指定ID的图书、用户;2.删除指定ID的图书、用户;3.插入新图书、用户

hash-table:检索指定名称的图书/用户ID

密码判定:录入密码——>(经过MD5)16字节大端序地址——>(经过哈希)value

检索密码:哈希表实现

实现函数:录入密码至库(哈希表)

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

小组成员本周完成任务情况下周准备做些什么
1实现了基于splay树的用户管理系统和md5算法实现基于用户管理的splay树
2实现了对定长信息的存取与维护实现对变长vector的读取,基本完成信息管理模块
3实现登录界面的简单复刻,研究了一下如何对接。将登录界面与主界面串联开发
4研究如何把密码系统及登录认证/登录 注册 密码修改 与前端对接上基本实现功能界面的设计以及解决与后端的交互问题
5实现三类人员登录认证,注册,密码修改建hash表
6进行用户类、图书管理员类的初步开发,学习并将B+树和哈希表等数据结构连接到各个类成员函数的接口上进行图书仓库管理员类的初步开发,完善功能函数代码

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

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

 

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

1.如何针对B+树特点实现快速查找?

B+树一些相关的特点:

B+树内部有两种结点,一种是索引结点,一种是叶子结点。

B+树的索引结点并不会保存记录,只用于索引,所有的数据都保存在B+树的叶子结点中。而B树则是所有结点都会保存数据。

B+树的叶子结点都会被连成一条链表。叶子本身按索引值的大小从小到大进行排序。即这条链表是 从小到大的。多了条链表方便范围查找数据。

B树的所有索引值是不会重复的,而B+树 非叶子结点的索引值 最终一定会全部出现在 叶子结点中。

通过索引结点来快速对应到相应的叶子结点,并且由于索引结点不像普通B树那样也存储数据,B+树的数据查找等功能很快。

2.使用的是哪种哈希表?

链地址法(拉链法),参考下图。

 

......

参考文献:

http://t.csdn.cn/fJRDq

http://t.csdn.cn/Ehb7o

http://t.csdn.cn/JgKIz

http://t.csdn.cn/0J4cN

http://t.csdn.cn/XntGa

http://t.csdn.cn/WMoUP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值