图书管理系统详细设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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++) {
byte byte0 = md[i];
str[k++] = hexDigits[byte0 >>> 4 & 0xf];
str[k++] = hexDigits[byte0 & 0xf];
}
System.out.println(new String(str));
return new String(str);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}