目 录
1 绪论
1.1 项目概述
现在越来越多的人喜欢看书,对于自己买书看过一遍又觉得图书造成了浪费,于是团队开发了一款图书管理系统(自助借还书),分别有用户和管理不同的身份,用户可以注册登录,对于用户可以实现自助借还书、对个人信息进行查询修改等功能;管理员只能登录,对于管理员实现了添加图书、删除图书、修改图书、添加管理员、以及修改个人信息等功能。
1.2 项目意义
图书管理系统,实现了对图书的借阅和对图书管理的规范化、系统化。 这个图书管理系统给人们图书借阅提供了很大便利,打破了传统图书管理方式对书籍检索困难和管理效率低的困境。
用户可以使用这个系统查询和借阅自己需要的图书,这样可以节省许多找图书的时间。同时也有利于提高管理员对图书管理的工作效率,减少管理员的工作量,管理员还可以通过图书管理系统实现对图书的管理,比如:图书的添加、图书的修改、图书的删除。这个图书管理系统还有图书借阅的功能,它可以告诉用户和管理员图书的借阅状态,管理员还可以查询借阅图书的人信息,借书人是否归还图书,以及借书人借阅的日期,如果超出借阅时间管理员可以提醒用户超出了借阅时间,抓紧时间来归还图书。
图书管理系统具有提高工作效率,节约时间等积极作用,在信息时代下使图书发挥了最大的作用。
** **
2 开发工具和相关技术简介
本项目是图书管理系统。开发环境:JDK1.8、MySQL5.5;开发语言:Java语言;开发技术:JDBC、MySQL数据库、Java基础知识、MVC三层架构、GUI等。本章将对开发工具和相关技术进行简单介绍。
2.1 Eclipse简介
2.2 Java语言介绍
Java语言是一种高级的面向对象的程序设计语言。高级语言是与低级语言相对,低级语言指的是汇编语言,高级语言指的是类似java、c、c++等常用语言。面向对象是java的核心思想,在java中,所有事物都可以看作对象,比如说一个人、一棵树。 Java语言编写的程序,可以不受平台限制,也就是跨平台,从PC到手机都有Java开发的程序和游戏,Java程序可以在任何计算机、操作系统和支持Java的硬件设备上运行。 Java是于1995年由Sun公司推出的一种极富创造力的面向对象的程序设计语言,它是由有Java之父的Sun研究院院士詹姆斯.戈士林博士亲手设计而成的,并完成Java技术的原始编译器和虚拟机。
2.3 MySQL简介
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。数据库是一个以某种有组织的方式存储的数据集合,它是一个按数据结构来存储和管理数据的计算机软件系统。理解数据库的一种最简单的办法是将其想象为一个文件柜,这个文件柜只是一个存储数据的空间,而数据库就是这么一个空间。
数据库管理系统(Database Management System, DBMS)是用于创建、管理、和维护数据库时所使用的软件,用以管理数据库,一定程度上,用户都是在操作DBMS,所以日常的数据库概念一般就是指DBMS。MySQL是一种DBMS,而且是一种一个小型的开源的关系型数据库管理系统。2008年1月16日MySQL AB被Sun公司收购。而2009年,SUN又被Oracle收购。就这样如同一个轮回,MySQL成为了Oracle公司的另一个数据库项目。
MySQL它在世界范围内得到了广泛的安装和使用,应该是使用人数最多的数据库软件了,因为它有着这样的特性:
成本——MySQL是开源软件,可以免费使用和修改。
性能——MySQL性能很好处理速度很快。
简单——MySQL很容易安装和使用,对新手友好。
MySQL数据库软件也是使用最常用的数据库管理语言:结构化查询语言(SQL)进行数据库管理和操作。
2.4 JDBC技术简介
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于SQL语句的Java API,由一组类和接口组成,通过调用这些类和接口所提供的方法,可以使用标准的SQL语言来存取数据库中的数据。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用,将Java语言和JDBC结合起来使程序员只须写一遍程序就可以让它在任何平台上运行。
MIS 管理员们都喜欢 Java 和 JDBC 的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的 开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于 商务上的销售信息服务, Java 和JDBC 可为外部客户提供获取信息更新的更好方法。
3 系统需求分析
3.1 系统可行性分析
3.1.1技术可行性分析
图书管理系统主要应用了Java语言,MySQL数据库,GUI界面等知识。项目组成员使用GUI界面插件来设计图书管理系统的界面。使用MySQL数据库来存储用户信息、管理员信息、以及图书信息。因为项目组成员学习过Java语言,同时也会使用GUI界面和数据库,所以图书管理系统在技术方面可行。
3.1.2经济可行性分析
在设计图书管理系统和实现图书管理系统均是由项目组成员共同完成,人工方面所需花费为0元。实现图书管理系统我们所用的用到的Eclipse、GUI、MySQL数据库等软件都是免费的,所以项目组实现系统方面的花费也为0元。因此项目组设计和实现图书管理系统所需的花费为0元,所以在经济方面可行。
3.1.3操作可行性分析
项目组开发的图书管理系统操作简单,用户只需要注册和登录就可以使用本系统进行查询借还书等。管理员操作也很简单,管理员需找到相应的按钮进入界面就可以进行工作。因为操作简单易懂,所以操作可行性可行。
3.1.4法律可行性
3.2 系统需求分析
3.2.1 登录、注册界面需求分析
该系统分别有用户和管理员不同的身份,用户可以注册账号,管理员不可以,用户和管理员都可以登录系统,通过账号密码以及验证码的校验即可登录成功。
图3-2-1用户角色关系图
3.2.2 用户功能需求分析
当用户登录成功后跳到用户管理的界面,用户可以实现查询全部图书、借阅图书、归还图书、修改个人信息、查询个人信息、修改密码、注销账号、退出系统的功能。
图3-2-1用户界面模块图
3.2.3 管理员功能需求分析
当管理员登陆成功跳到管理员管理的界面,管理员可以实现查询全部图书、添加图书、删除图书、修改图书、修改个人信息、查询个人信息、新增管理员、删除管理员、修改密码、退出系统的功能。
图3-2-3管理员界面模块图
3.3 组内成员分工
表3-1 组内成员分工情况表
序号 姓名 组内角色 小组分工 备注 1 周杰 项目经理 登录、注册、查询全部图书、借书、还书、查询,修改个人信息(用户) 2 潘晓雨 架构师 用户首页、修改密码(用户)、注销账号、添加,删除,修改图书 3 卢燃 DBA 管理员首页、退出系统、修改,查询个人信息(管理员) 4 王沛哲 开发兼运维 添加管理员,删除管理员、修改密码(管理员)
说明:组内角色:组长为项目经理;其他人分别为编码、测试、架构师等。
3.4 进度安排
进度安排如表3-2所示。
表3-2 进度安排表
阶段 持续时间 阶段描述 输出 构思阶段 1天 需求分析 需求说明,功能模块图 设计阶段 2天 系统设计 设计说明-可以画流程图;数据库设计 是现阶段 8天 编写代码 项目工程源代码 1天 系统测试 进行黑盒测试(功能测试)-测试说明 运行阶段 1天 部署、运行 系统使用说明、运维报告-答辩
4 系统设计
4.1 系统设计
根据系统的实际功能需求分析,对系统功能部分进行了设计。
登录功能设计
用户或者管理员输入正确的账号和密码,以及验证码即可登录成功,之后跳到相应的页面。验证码是随机的,看不清的话可以更新。用户还实现了注册的功能。
注册功能设计
用户需要输入账号,密码,确认密码,其中不可以和数据库中已有的账号相同,确认密码要和输入的密码相同方可注册成功,判断重名做了异步交互,确认密码做了伪异步交互。
查询全部图书功能设计
用户可以查询出全部的图书,也可根据书名进行模糊查询。
借书功能设计
用户可以根据图书编号进行借阅图书,可以选择借阅时间,并且只可以续借一次,下面会展示该用户已经借过的书籍
还书功能设计
用户可以根据图书编号来进行还书,下方展示用户已借的图书
修改个人信息功能设计
用户可以修改个人的信息,修改成功保存到数据库
查询个人信息功能设计
用户可以查询到数据库中自己的信息
修改密码
修改密码功能是根据在用户登录后可以进行的功能,修给密码是通过用户名来修改的。在用户登录后点击修改密码按钮后就会出现修改密码界面,用户需要输入原密码,新密码和确认新密码,只有在原密码,新密码和确认新密码都输入正确后方可修改密码。修改成功或者不成功都会有弹窗提示。功能图见图4-11
表4-1-1修改密码
注销
用户如果想要不在使用本系统,可以选择注销,当用户点击注销按钮,就会进入注销页面,用户点击“是”按钮就可注销,点击后会有弹窗提示注销成功或失败。功能如图4-1-2
图4-1-2注销
添加图书
图4-1-3添加图书
修改图书
修改图书是管理员可以用的功能,用户没有修改图书的权限,修改图书是根据图书的编号来修改的,当修改图书时需要先输入需要修改的图书编号,在输入需要的信息,就可以修改图书。功能如图4-1-4
图4.1.4修改图书
删除图书
删除图书,是管理员权限,用户不可以添加图书,管理员可以根据图书编号来删除图书,输入图书编号后点击删除按钮既可以删除图书。功能如图4-1-5
图4-1-5删除图书
4.2 数据库设计
根据系统需求分析设计了5张表,分别为用户登录表,管理员登录表,个人信息表,图书表,借阅记录表。
用户登录表主要记录了用户的账号和密码信息,如表4-2-1所示
表4-2-1 用户登录表
序号 字段名 数据类型 约束 是否为空 说明 1 id int(10) 主键 否 用户ID 2 username varchar(20) 否 用户名 3 password varchar(20) 否 密码
管理员登录表主要记录了管理员的账号和密码信息,如表4-2-2所示。
表4-2-2 管理员登录表
序号 字段名 数据类型 约束 是否为空 说明 1 id int(10) 主键 否 管理员ID 2 admin_name varchar(20) 否 管理员名 3 password varchar(20) 否 密码
个人信息表主要记录了用户或者管理员的一些个人信息,如表4-2-3所示。
表4-2-3 个人信息表
序号 字段名 数据类型 约束 是否为空 说明 1 id int(10) 主键 否 个人信息ID 2 name varchar(10) 是 姓名 3 student_number varchar(20) 是 学号 4 class varchar(20) 是 班级 5 major varchar(20) 是 专业 6 sex varchar(1) 是 性别 7 college varchar(20) 是 学院 8 age int(3) 是 年龄 9 user_id int(20) 是 关联用户表 10 admin_id int(20) 是 关联管理员表
图书表主要记录了图书的一些信息,如表4-2-4所示。
表4-2-4 图书表
序号 字段名 数据类型 约束 是否为空 说明 1 book_id int(10) 主键 否 图书 id 2 book_name varchar(20) 否 书名 4 book_press varchar(20) 否 出版社 5 book_price Decimal(6,2) 否 价格 6 book_edition varchar(10) 否 版次 7 book_state varchar(10) 否 借阅状态
图书记录表主要记录了用户借书的一些信息,如表4-2-5所示。
表4-2-5 图书记录表
序号 字段名 数据类型 约束 是否为空 说明 1 id int(10) 主键 否 唯一id 2 book_id int(10) 否 图书 id 3 user_id int(10) 否 借书的用户 4 book_out_date datetime 否 借出日期 5 book_in_date datetime 否 归还日期 6 book_in_count int(1) 否 续借次数
5 系统实现
5.1 系统首页功能实现
5.1.1 登录功能实现
用户或者管理员输入正确的账号和密码,以及验证码即可登录成功,之后跳到相应的页面。验证码是随机的,看不清的话可以更新。用户还实现了注册的功能。
图5-1-1登录功能模块
5.1.2 注册功能实现
用户需要输入账号,密码,确认密码,其中不可以和数据库中已有的账号相同,确认密码要和输入的密码相同方可注册成功,判断重名做了异步交互,确认密码做了伪异步交互。
图5-1-2注册功能模块
5.2 用户功能实现
5.2.1 查询全部图书功能实现
用户可以查询出全部的图书,也可根据书名进行模糊查询。
图5-2-1-1查询全部图书功能模块
图5-2-1-2模糊查询功能模块
5.2.2 借书功能实现
用户可以根据图书编号进行借阅图书,可以选择借阅时间,并且只可以续借一次,下面会展示该用户已经借过的书籍。
图5-2-2-1借书功能模块
图5-2-2-2续借功能模块
5.2.3 还书功能实现
用户可以根据图书编号来进行还书,下方展示用户已借的图书。
图5-2-3还书功能模块
5.2.4 修改个人信息功能实现
用户可以修改个人的信息,修改成功保存到数据库。
图5-2-4修改个人信息功能模块
5.2.5 查询个人信息功能实现
用户可以查询到数据库中自己的信息。
图5-2-5查询个人信息功能模块
5.2.6 用户界面实现
用户登录后,就会进入用户界面,用户可以自行选择功能,点击按钮。用户界面如图5-2-6
图5-2-6用户界面
5.2.7 修改密码界面实现
用户在用户界面点击修改密码后,可进入修改密码界面。修改密码界面如图5-2-7所示。
图5-2-7修改密码界面
5.2.8 注销界面实现
用户在用户界面点击注销按钮后,可进入注销界面。注销界面如图5-2-8所示。
图5-2-8注销界面
5.3 管理员功能设计
5.3.1 添加图书界面实现
管理员在管理员界面,点击图书添加按钮,可进入图书添加界面。界面如图5-3-1所示。
图5-3-1添加图书界面
5.3.2 图书修改界面
管理员在管理员界面,点击图书修改按钮,可进入图书修改界面。界面如图5-3-2所示。
图5-3-2图书修改界面
5.3.3 图书删除界面实现
管理员在管理员界面,点击图书删除按钮,可进入图书删除界面。界面如图5-3-3所示。
图5-3-3图书删除界面
5.3.4 新增管理员界面实现
通过输入用户名密码来进行新增管理员。新增管理员界面如图5-3-4所示。
图5-3-4 新增管理员界面
5.3.5 删除管理员界面实现
通过输入管理员的姓名来进行删除管理员的操作。删除管理员界面如图5-3-5所示。
图5-3-5 删除管理员界面
5.3.6 修改密码界面实现
通过输入原密码,新密码与确认密码来进行修改密码的操作。修改密码界面如图5-3-6所示。
图5-3-6 修改密码界面
5.3.7 管理员首页实现
管理员登陆后,就会进入管理员界面,管理员就可以自行选择。点击按钮。管理员界面如图5-3-7。
图5-3-7管理员首页
5.3.8 修改个人信息界面实现
管理员在管理员界面点击修改个人信息后,可进入修改个人信息界面。修改个人信息界面如图5-3-8。
5-3-8修改个人信息界面
5.3.9 查询个人信息界面实现
管理员在管理员界面点击查询个人信息后,可进入查询个人信息界面。查询个人信息界面如图5-3-9。
5-3-9查询个人信息界面
6 系统测试
6.1 注册登录功能模块测试
表 6-1 注册登录功能测试表
编号 测试功能 输入描述 预期结果 运行结果 C01 用户注册 输入账号、密码 提示注册成功 与预期结 果一致 C02 用户登录 输入账号、密码、验证码 跳转到用户首页 与预期结 果一致 C03 管理员登录 输入账号、密码、验证码 跳转到管理员首页 与预期结 果一致
注册登录功能模块测试主要登录是针对用户和管理员,注册是针对用户,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
6.2 用户首页功能模块测试
表 6-2 用户首页功能测试表
编号 测试功能 输入描述 预期结果 运行结果 C04 查询全部图书 无 查询到所有图书 与预期结 果一致 C05 借阅图书 输入图书编号 提示借阅成功,展示已借阅的图书 与预期结 果一致 C06 归还图书 输入图书编号 提示归还成功,展示已借阅的图书 与预期结 果一致 C07 修改个人信息 输入要修改的个人信息 提示修改成功 与预期结 果一致 C08 查询个人信息 无 显示出用户的个人信息 与预期结 果一致 C09 修改密码 1.输入原密码 2.输入新密码和确认新密码 3.点击修改按钮 密码变为新密码 与预期结 果一致 C10 注销 1.点击注销按钮 2.点击是 用户被注销,信息被删除 与预期结 果一致 C11 退出系统 点击按钮 退出程序 与预期结 果一致
用户首页功能模块测试主要是针对用户所做的一些操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
6.3 管理员首页功能模块测试
表 6-3 管理员首页功能测试表
编号 测试功能 输入描述 预期结果 运行结果 C12 查询全部图书 无 查询到所有图书 与预期结 果一致 C13 添加图书 1. 进入管理员界面 2. 点击添加图书按钮 3. 在添加图书界面输入信息 点击添加按钮 数据库中出现新添加的图书 与预期结 果一致 C14 删除图书 1.进入管理员界面 2.点击删除图书按钮 3.输入图书编号 4.点击删除按钮 图书在数据库中被删除 与预期结 果一致 C15 修改图书 1.进入管理员界面 2.点击修改图书按钮 3.输入修改信息 4.点击修改按钮 图书信息被修改 与预期结 果一致 C16 修改个人信息 输入要修改的个人信息 提示修改成功 与预期结 果一致 C17 查询个人信息 无 显示出用户的个人信息 与预期结 果一致 C18 添加管理员 1.输入用户名和密码2.点击添加和重置按钮 输入正确的用户名和密码后会添加成功,否则会提示密码错误,重置按钮会清空输入 与预期结 果一致 C19 删除管理员 1. 输入管理员用户名 2. 点击删除按钮 输入正确的用户名会删除成功,错误则提示不正确 与预期结 果一致 C20 修改密码 1. 输入原密码 2. 输入新密码和确认的新密码 3. 点击修改和重置按钮 输入新的密码与原密码不同会修改成功,新输入的密码相同或者与确认密码不一致则会提示错误 与预期结 果一致 C21 退出系统 点击按钮 退出程序 与预期结 果一致
管理员首页功能模块测试主要是针对管理员所做的一些操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
6.4 总结
主要是对该课题设计并实现的所有功能模块进行测试,并给出测试表格和验证结果。结果表明本课题经过测试,所有功能都符合需求分析并且均能正常实现。
7 结论和心得
学生1姓名:潘晓雨
心得:
在这次课程设计中,我们是小组进行的,在小组合作的过程中我学会了很多,学到了很多新的知识,也让我认识到了小组沟通的重要性,大家一起做综合项目沟通是最重要的,当你遇到问题的时候,不知道怎么解决的时候,和大家沟通一下或许你会有以外的收获。
学生2姓名:王沛哲
心得:
通过这一次对图书管理系统的团队项目课程设计,我感触颇深,这不仅仅是一次项目设计,更是考验了我们团队对Java的掌握以及组内的沟通探讨。这一次实训,让我们初见了团体项目的设计流程与分工,还让我们更一步地加深了对Java的认知。我们需要通过自己努力克服在编程时遇到的困难,同时还要在一定程度上帮助队友解决疑惑,这不仅更加增进了我们之间的默契,而且还加深了友谊。在以后的学习过程中,我会更加努力地学习和研究Java知识,争取早日取得良好的成绩。
学生3姓名:周杰
心得:
在本次Java课程设计中,从最初的没有想法到现在可以做出来一个完整的图书管理系统,我们大家都付出了很大的努力,不断和老师沟通,确保每一个细节都做到位,我们都接触到了很多新的知识,也遇到了很多的问题,但这些并没有打败我们,新知识不会,大家都去及时的学习;遇到问题,我们一起解决,解决不了的寻求老师的帮助。我真真切切的感受到了团队的力量,团队中的每一员都是非常重要的,我们也都学会了共进退,团队的力量始终要比一个人的力量大。
学生4姓名:卢燃
心得:
在这次集体课程设计中我在我们小组学习到了好多新知识,也认识到了组内沟通的重要性,小组内沟通好最重要,不知道怎么解决的问题要和大家沟通会有意外的收获。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/290258.html