实验5 图书管理系统的详细设计
1.引言
1.1编写目的
编写本报告是为了在软件的实际开发过程中有个参考,也是对一个软件的最详细、最全面的综述,便于全面把握开发过程的实况。
1.2背景
本项目的名称:图书管理系统
本项目的任务提出者及开发者是图书管理系统软件开发小组,用户是高校图书馆借书。 本产品是针对电脑管理图书的需求设计的,可以完成读者登记、购入新书、读者借还书、等主要功能。
1.3定义
开发(develop):不是单纯指开发活动,还包括维护活动。
项目 (project):该词指的是向顾客或最终用户交付一个或多个产品的收管理的相关资源的集合。这个资源集合有着明确的始点和终点,并且一般是按照某项计划运行。这种计划通常会形成文件,并且说明要交付或实现的产品、所用的资源和经费、要做的工作和工作进度,一个项目可能有若干项目组成。
项目开发计划(project development plan):是一种把项目一定过程与项目如何推进连接起来的方案。
产品生命周期(product life cycle):是产品从构思到不可以再使用的持续时间。 MYSQL:数据库管理软件
Navicat:本系统使用的数据库图形化工具 DBMS:数据库管理系统
2.程序系统的结构 2.1软件功能结构
1、图书管理
增加书籍,删除书籍,查找书籍,修改书籍信息。 2、借阅管理
查找书籍,查看用户借阅
最新范本,供参考!
图1-系统功能框架结构图
2.2本设计概念和处理过程
根据客户需求及现实借阅图书过程,在系统在借阅图书过程中,为保护系统稳定与信息安全,用户登录过程要求拥有有身份登陆确认功能,为保证信息安全要求在身份确认时,3次错误输入信息锁定,一天后可在系统管理员处信息解锁确保信息安全。同时在图书借阅时,应拥有检索功能以方便用户查询图书信息。
用户提示 信息 身份确认程序 用户资料数据库 图书信息数据库 图书检索程序 图书借还程序 图书借阅数据库
图2读者借还图书处理流程图
最新范本,供参考!
管理员提示信身份确认程序 管理员数据库 图书更新程序 图书信息数据库 图3更新图书资料处理流程
2.3书管理系统总体设计示意图
1、浏览功能
列出当前数据库文件中图书信息、借阅信息等的所有记录。 可选定一项记录,显示所有域。
2、查询功能
书目匹配查询
3、添加功能
添加图书馆的图书
4、修改功能
修改图书信息
5、 删除功能
删除书籍信息
图4书管理系统层次图
最新范本,供参考!
2.5系统流程图
图5图书管理系统程序流程图
2.6 ER图
图书:书号,书名,作者,出版社,定价,总数量,剩余数量 管理员:编号,姓名,性别,年龄,电话,密码,身份类别 学生:学号,姓名,性别,所属系部,班级,密码,身份类型
最新范本,供参考!
图6-图书管理系统ER图
3 输入项和输出项
系统登陆模块:
输入项:当使用者选择自己的身份,输入相应的账号密码;
输出项:当输入的账号密码,存在且正确的时候,就进入了系统,可以看到有关个人和图书的详细信息了。
图书信息模块:
输入项:查询时输入书籍名称
输出项:当该图书信息正确且在书库中时,系统检索到相关信息的书籍,展示到该页面,以供读者参考查阅。
借书信息模块
输入项:输入读者学号,借阅数量
输出项:①当该图书未被借出时,就可以借阅了; ②当该图书已被借完,无法借阅该图书。 借书信息模块
输入项:输入读者学号,所借书籍的书号,借阅数量
最新范本,供参考!
4 流程逻辑
点击打开该系统,来到基本界面,选择登陆,并输入相应的账号和密码,系统将账号
和密码信息,与数据库中的信息进行比较,如果该账号和密码存在且正确,即登陆成功;如果该账号和密码,不正确,则弹出提示框,提醒重新输入账号和密码,再次与数据库中的信息进行比较。
登陆成功之后,可以借阅图书,输入相应的图书信息,系统将所输入的图书信息与数据库中的相应信息进行比较,判断输入信息是否吻合,不吻合则弹出提醒框,要求重新输入,否则显示相关内容。
当完成借阅图书操作之后,其他用户则不可再借阅已被借阅图书,只能借阅未被借阅图书。
5 算法设计
在用户登录时采用MD5加密算法降低用户信息泄露的可能性,在图书信息存储上采用数据库形式增加书籍信息的可操作性
public class Md5 { }
public final static String MD5(String s) { }
char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', }
'A', 'B', 'C', 'D', 'E', 'F' };
try {
byte[] btInput = s.getBytes();
// 获得MD5摘要算法的 MessageDigest 对象
MessageDigest mdInst = MessageDigest.getInstance(\"MD5\"); // 使用指定的字节更新摘要 mdInst.update(btInput); // 获得密文
byte[] md = mdInst.digest(); // 把密文转换成十六进制的字符串形式 int j = md.length;
char str[] = new char[j * 2]; int k = 0;
for (int i = 0; i < j; i++) { }
System.out.println(new String(str)); return new String(str); e.printStackTrace(); return null;
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf]; str[k++] = hexDigits[byte0 & 0xf];
} catch (Exception e) {
最新范本,供参考!
6 测试计划
每一个系统或者软件,在设计最初或者完成之后,都必须进行测试,以确保该系统或者该
软件是否符合预期效果或者是预期要求。因此,非常有必要制定一个详细而全面的测试计划。以下是本系统的简要测试计划:
6.1 测试范围
表-1 测试范围
主要内容 验证用户身份,进行权限 测试数据库检索代码的健壮性 测试图书借阅信息安全性,保证程序基本功能的正常运行 测试范围 系统登陆验证 信息检索功能测试 图书借阅信息测试 简要说明 功能性测试 功能性测试 功能性测试 6.2 测试方法
测试方法:黑盒测试。
注:黑盒测试:这种测试是在程序的接口处进行的测试,已经知道系统或产品的功能,可以通过测试来检验是否每个功能都能正常使用,因此这种测试方法又称为功能测试。
7 总结
详细设计是用户与维护人员的软件说明书,通过详细设计,用户可以直接了解到程序的功能设计,为用户掌握软件设计提供了方便。维护人员可以通过详细设计快速了解系统的流程设计,为后期系统维护,节约了时间和成本。
最新范本,供参考!