2022秋《软件系统设计与分析》周报告
实验名称 | 图书管理系统 |
---|---|
仓库地址 | 图书管理系统 |
本周进展:
一、主要进展:
本周组内主要展开的仍然是各组员对自己负责代码的检查和修改,增添部分主要是增加一些类、增加存储文件用于存储密码系统中的账号密码。
新增内容:
- 实现了用户管理员类的开发;
- 实现了图书管理员类的开发;
- 实现了密码系统及登录认证等功能,并添加相关的测试代码;
- 实现了基本数据结构的文件存放。
优化内容:
- 优化了时间类;
- 优化了用户和书本的数据管理。
二、部分具体功能实现:
文件存储与加载:通过fstream、sstream等相关库函数实现。
密码系统及登录认证:主要通过MD5和哈希表算法等算法实现密码加密和账号密码匹配,不同的类(用户类、用户管理员类、图书管理员)实现类似,并使用文件存储账号密码等信息(加密过的);
详细代码完成情况请见git仓库(图书管理系统)
目前仓库主要组成(大类包括一些数据结构与算法、文件存储加载、密码登录、类实现等信息):
三、本周遇到的问题以及如何解决:
1.怎么实现对结构体+vector的数据存放?
主要解决结构体类型的存放,与vector有关的操作大多可通过vector内置函数实现
在文件中只存放唯一的结构体数据时,可以分别把结构体中的每个变量分别进行存放(注意每个数据的存放大小),这样无需区分不同批次存放的数据、在存储方面没有规定的数据之间界限,只能通过记录数量等方式来体现;
在文件中需要区别每次存放行为或需要一些记录型的数据时,在上述方法的基础下还要加上类似制定协议的方法,指定开始符、结束符等特定字段(注意透明传输问题),使之能区分出每一次的存放行为(类似下图)。
2.如何测试各个函数功能?
主要通过黑盒测试和白盒测试两个测试方法展开。
黑盒测试:
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
白盒测试:
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。
测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
…