2022秋《软件系统设计与分析》周报告
实验名称 | 图书管理系统 |
---|---|
仓库地址 | https://gitee.com/zhao-puyi/library-management-system.git |
文章目录
本周进展:
一、主要进展(有改动):
本周组内主要展开了前后端衔接,总体工作的收尾。
在前后端衔接中,很遗憾我们最终并没有完全实现前后端的衔接,还有许多部分仍是前后端分离的状态,计划最终项目状态是纯代码运行状态,并附带部分前端制造效果。
在代码测试与优化过程中,除了遇到许多代码拼接时遇到的问题(如重定义、不兼容等),我们还发现:1.许多代码只具备一对一解决问题的功能,并没有实现一对多解决问题的功能,还有可优化的空间;2.不同的编译器在同一个报错问题上处理方式会有区别,在这个编译器不报错,在那个编译器就会报错。
二、部分具体功能实现(有改动):
密码系统及登录认证(通过MD5和哈希表实现):
- 登录认证功能(包括用户登录认证、用户管理员登录认证、图书管理员登录认证);
- 注册功能(包括用户注册、用户管理员注册、图书管理员注册);
- 密码修改功能(包括用户密码修改、用户管理员密码修改、图书管理员密码修改)。
数据结构与算法:
- 适用于图书管理的树(包括增删改查、获取根、遍历等);
- 适用于用户管理的树(包括增删改查、获取根、遍历等);
- 规定的结构体变量及一些全局变量;
- 哈希表;
- MD5。
文件存储与加载:
- 存取基础用户信息;
- 存取用户管理员信息;
- 存取图书管理员信息;
- 存储哈希表信息;
- 存储部分全局变量信息。
用户与管理员系统:
- 基础用户模块(包括借还书、展示个人借还记录、展示已借图书信息、处理欠款信息等);
- 用户管理员模块(包括增减用户、展示用户、查询用户等);
- 图书管理员模块(包括增减书、展示某一书名/作者对应书信息、查询某一图书条目的全部借阅记录等)。
三、本周小组各成员完成任务情况(有改动):
本周主要是前后端人员线下共同执行前后端代码拼接。
详细代码完成情况请见git仓库(https://gitee.com/zhao-puyi/library-management-system.git)
目前仓库主要组成(大类包括一些数据结构与算法、文件存储加载、密码登录、模块实现等信息):
五、本周遇到的问题以及如何解决(有改动):
本周遇到的问题主要是来自拼接各个模块代码的过程,包括不恰当引用头文件造成重定义、无法解析符号、已声明、不兼容、未初始化等问题(LNK2001, LNK2005, LNK 2019),主要通过extern、inline对部分变量、函数进行唯一声明或定义来解决。
1.在读取文件时使用vector变量配合read函数进行读取,无法成功读取
解决方法:放弃vector变量的使用,用特定的变量配合read函数进行读取,成功读取。
2.在存取文件的过程中,在变长vector类型的存储部分使用类似编码的方式写入,若在同一个程序下既执行存储文件,又执行读取文件,则不会报错;但如果在同一个程序下只执行读取文件,则会在读取文件部分报错,这种问题因编译器而异,在VS2019标准的编译器上可执行。
…
参考文献:
http://t.csdn.cn/0Kbvm
http://t.csdn.cn/lNgyG