图书管理系统课程设计报告基于JAVA和SQLServer
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
设计名称:《数据库原理与应用》课程设计
设计题目:图书管理系统的设计与开发
学生学号:
专业班级:
学生姓名:
学生成绩:
指导教师(职称):
完成时间:—
说明:
1、报告中的第一、二、三项由课程设计负责人在课程设计开始前填写并
发给每个学生;四、五两项(中英文摘要)由学生在完成课程设计后填写。
2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。
3、指导教师评语一栏由指导教师就学生在整个课程设计期间的表现、设
计完成情况、报告的质量等方面给出客观、全面的评价。
4、训练报告正文字数应不少于3000字,也可由指导教师根据本门课程设
计的具体情况酌情增加字数或内容。
5、平时表现成绩低于6分的学生,其课程设计成绩按不及格处理。
6、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适
用于学院各项课程设计),各教研室可根据本项课程设计的特点及内容做适当的调整,并上报学院批准。
成绩评定表
学生姓名:学号:班级:
目录
摘要 (II)
Abstract (III)
第一章课题背景 (1)
课题介绍 (1)
课题依据与内容 (2)
工具介绍 (2)
第二章设计简介及设计方案概述 (4)
需求分析 (4)
概念设计 (6)
第三章详细设计 (7)
逻辑设计 (7)
物理设计 (8)
第四章系统功能实现 (11)
登录模块功能实现 (11)
管理员模块功能实现 (17)
读者模块功能实现 (32)
总结 (36)
致谢 (37)
参考文献 (38)
摘要
对于日益扩大的图书馆,借阅者或工作人员查找特定的书目总是劳神费力,有时还没有结果。
为了缩短借阅者的等待时间,减轻管理人员的工作量,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书借阅信息管理效率的目的。
采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者,使图书馆管理人员工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。
系统的设计严格按照数据库设计的方法来进行,包括数据库的设计和应用程序的设计,两部分相辅相成。
在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。
采用结构化的功能模块设计系统功能,可读性好,易于扩充。
系统数据库用SQL Sever创建,前端开发使用JAVA语言和Eclipse开发工具实现。
图书馆基本功能全面,系统可读性好,易于维护、更新,安全性好。
关键词:图书管理系统;结构化;SQL Sever;JAVA;Eclipse
Abstract
For growing library, borrow or find specific bibliography staff always laborious, sometimes no results. So often we put a lot of manpower and financial resources but lack of
efficient management efficiency. To shorten the waiting time for the borrower to reduce the workload of staff, to facilitate the operation of its staff, improve the quality and level of management, so efficient, intelligent management, so as to improve the efficiency of information management books to borrow purposes. Generated using database technology library loan management system will greatly facilitate the borrower and simplify labor management and staff of the library, so that staff from the busy, complex work into a simple and efficient work.
Design of the system in strict accordance with the method for database design, including design of the database design and applications, two parts complement each other. On the programming and debugging using a top-down, stepwise refinement, the principle of gradual improvement. Structured functional module design system function, readable, easy to expand. System database used to create SQL Sever, front-end development using JAVA language and Eclipse development tools. Library of basic functions comprehensive, systematic readable, easy to maintain, update, security is good.
Keywords:Library management system; structuring; SQL Server; JAVA; Eclipse
第一章课题背景
以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者,使图书馆管理人员工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。
课题介绍
此小节从课题背景,课题目的与意义来详细的介绍课题。
课题背景
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,计算机被广泛应用于Windows系统环境。
计算机的好处在于它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了安全性。
图书管理包括的图书和用户借阅资料繁多,包含很多的信息数据的管理。
现今,有很多的图书管理系统都是初步开始使用,甚至尚未使用计算机进行信息管理。
?
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书管理系统开发所要解决的问题。
因此,有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的进行查询和修改图书情况等图书管理操作。
课题目的与意义
面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理。
因此,本课程设计要求制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。
提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。
通过此次课程设计提高独立分析问题、解决问题的能力,掌握信息管理系统的开发方法和步骤,熟悉从需求分析、数据库设计(概念结构设计、逻辑结构设计、物理结构设计)、编写程序、测试分析过程。
课题依据与内容
依据日益扩大的图书馆需求,为了做到高效、智能化管理,达到高效的进行图书借阅信息管理效率的目的。
采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者,使图书馆管理人员进入简单、高效的工作中。
系统结合JAVA语言和数据库基础,达到了小型图书管理系统的目的。
系统的设计严格按照数据库设计的方法来进行,包括数据库的设计和应用程序的设计,两部分相辅相成。
在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。
系统主要角色有管理员和读者,管理员有登陆,注册,修改密码,管理读者,管理图书,借还书籍,管理日志的功能;读者有管理员有登陆,注册,修改密码,查询图书的功能。
工具介绍
此系统主要使用了Eclipse和SQL Server。
Eclipse简介
Eclipse是着名的跨平台的自由(IDE)。
最初主要用来开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。
Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
许多软件开发商以Eclipse为框架开发自己的IDE。
在客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。
?Eclipse 附带了一个标准的插件集,包括Java 开发工具(Java Development Tools,JDT)。
SQL Server简介
SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),目前最新版本是2012年3月份推出的SQL SERVER 2012。
SQL是英文(Structured
Query?Language)的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
SQL被作为关系型数据库管理系统的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
第二章设计简介及设计方案概述整个应用系统的设计严格按照数据库设计的方法来进行,包括数据库的设计和应用程序的设计,两部分相辅相成。
数据库设计过程包含以下步骤:需求分析:系统的目的、用户需求、功能流程图;概念结构设计:用E-R图来描述实体及实体间的联系;逻辑结构设计:确定关系模式,各种约束的声明,同时给出系统的功能模块组成图,系统各模块功能;物理结构设计。
数据库的实施阶段:数据库用SQL SERVER等创建,前端开发使用JAVA实现。
需求分析
所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。
可以说需求分析是做系统之前必做的。
需求分析是软件工程中的一个关键过程。
在这个过程中,系统分析员和软件工
程师确定顾客的需要。
只有在确定了这些需要后,设计者才能够分析和寻求新系统的解决方法。
需求分析阶段的任务是确定软件系统功能。
用户需求
在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。
这样,就把一个大的系统分解成了几个小系统。
这里把系统划分为了三个模块:登录模块,管理员模块,读者模块。
模块分别能够实现以下功能:
(1)登录模块,实现登录功能,注册功能。
(2)管理员模块,实现管理员修改密码功能,读者管理功能,图书管理功能,新书入库功能,管理日志功能。
(3)读者模块,实现读者修改密码功能,信息修改功能,图书查询功能,借还书籍功能。
系统目标
根据需求分析及用户的沟通,该系统应达到以下目标:
(1)界面设计友好,美观。
(2) 数据存储安全,可靠。
(3) 信息分类清晰,准确。
(4)强大的查询功能,保证数据查询的灵活性。
(5)操作简单易用,界面清晰大方。
(6)系统安全稳定。
(7)开发技术先进,功能完备,扩展性强。
(8)占用资源少,对硬件要求低。
(9)提供灵活,方便的权限设置功能,使整个系统的管理分工明确。
流程图设计
根据相应的需求和概要的分析,设计的系统功能流程图如图所示。
图功能流程图
概念设计
概念设计是由分析用户需求到生成概念产品的一系列有序的、可组织的、有目标的设计活动,它表现为一个由粗到精、由模糊到清晰、由抽象到具体的不断进化的过程。
概念设计即是利用设计概念并以其为主线贯穿全部设计过程的设计方法。
概念设计是完整而全面的设计过程,它通过设计概念将设计者繁复的感性和瞬间思维上升到统一的理性思维从而完成整个设计。
E-R图设计
E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
本系统E-R图如图所示:
图图书馆管理系统E-R图
第三章详细设计
概念设计是由分析用户需求到生成概念产品的一系列有序的、可组织的、有目标的设计活动,它表现为一个由粗到精、由模糊到清晰、由抽象到具体的不断进化的过程。
概念设计即是利用设计概念并以其为主线贯穿全部设计过程的设计方法。
概念设计是完整而全面的设计过程,它通过设计概念将设计者繁复的感性和瞬间思维上升到统一的理性思维从而完成整个设计。
逻辑设计
逻辑设计就是把一种计划、规划、设想通过视觉的形式通过概念、判断、推理、论证来理解和区分客观世界的思维传达出来的活动过程。
逻辑设计比物理设计更理论化和抽象化,关注对象之间的逻辑关系,提供了更多系统和子系统的详细描述。
关系模型
概念结构设计所得的E-R模型是对用户需求的一种抽象的表达形式,它独立于任何一种具体的数据模型,因而也不能为任何一个具体的DBMS所支持。
为了能够建立起最终的物理系统,还需要将概念结构进一步转化为某一DBMS所支持的数据模型,然后根据逻辑设计的准则、数据的语义约束、规范化理论等对数据模型进行适当的调整和
优化,形成合理的全局逻辑结构,并设计出用户子模式。
这就是数据库逻辑设计所要完成的任务。
数据库逻辑结构的设计分为两个步骤:首先将概念设计所得的E-R图转换为关系模型;然后对关系模型进行优化,如图所示。
图逻辑结构设计过程
关系模型是由一组关系(二维表)的结合,而E-R模型则是由实体、实体的属性、实体间的关系三个要素组成。
所以要将E-R模型转换为关系模型,就是将实体、属性和联系都要转换为相应的关系模型。
本系统的关系模型转换如下:
Password(name,password,type)
Reader(readerno,name,sex,grade,depname,class)
Book(bookno,bppkname,price,author,press,intime,isborrow)
Managelog(bookno,bookname,readerno,bhandle,time,pay)
系统功能总框
图书馆管理系统功能总框图,如图所示。
图系统功能框架图
物理设计
数据库在物理上的存储结构与存储方法称为数据库的物理结构,它依赖于选定的数据库管理系统。
为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是物理设计。
基本表设计
本系统设计的基本表如下:
表
记录了可以使用户进入该系统的用户名密码及用户类型,如表3-1所示。
表3-1管理员信息表
字段名称数据类型长度唯一性约束非空约束备注
name nvarchar 50 unique Not null 用户名,主键
password nvarchar 50 Not unique Not null 密码
type char 10 Not unique Not null 用户类型
2.Reader表
记录了库中所有读者的相关信息,如表3-2所示。
表3-2读者表
字段名称数据类型长度唯一性约束非空约束备注readerno nvarchar 50 unique Not null学号,主键
name nvarchar 50 Not unique Not null姓名
sex nchar 10 Not unique Not null性别
grade nvarchar 50 Not unique null年级
depname nvarchar 50 Not unique null系别名
class nvarchar 50 Not unique null班级
表
记录了库内所有图书的所有资料,如表3-3所示。
表3-3 图书表
字段名称数据类型长度唯一性约束非空约束备注
bookno nvarchar 50 unique Not null书号
bookname nvarchar 50 Not unique Not null书名price nchar 10 Not unique Not null价格
author nvarchar 50 Not unique Not null作者
press nvarchar 50 Not unique Not null出版社
intime nvarchar 50 Not unique Not null入库时间isborrow nchar 50 Not unique null是否借出
表
记录借还书日志,用于存下所有对图书操作的记录,以便以后可以翻阅和查找,如表3-4所示。
表3-4 管理日志表
字段名称数据类型长度唯一性约束非空约束备注
bookno nvarchar 50 unique Not null书号
bookname nvarchar 50 Not unique Not null书名
readerno nvarchar 50 Not unique Not null学号
bhandle nvarchar 10 Not unique Not null借还书
time nvarchar 50 Not unique Not null操作日期
pay nvarchar 10 Not unique Not null已付款额
第四章系统功能实现
系统有3个模块:登录模块,管理员模块和读者模块。
登录模块实现登录功能,注册功能;管理员模块实现管理员修改密码功能,读者管理功能,图书管理功能,新书入库功能,管理日志功能;读者模块实现读者修改密码功能,信息修改功能,图书查询功能,借还书籍功能。
登录模块功能实现
此模块可以实现读者与管理员登陆,用户登陆的时候要选择用户类型,读者和管理员可以实现的操作不同,新的用户还可以点击注册按钮进行注册。
登录功能
功能介绍:此功能是整个系统的基础部分,分为管理员登录,读者登录和注册按钮。
管理员可以通过此功能实现其余各个功能如修改密码,读者管理,图书管理,新书入库,管理日志功能的功能。
读者可以通过此功能实现其余各个功能如修改密码,信息修改,图书查询,借还书籍功能。
新用户还可以通过此功能实现注册功能。
登录界面如图所示。
图登录界面
主要程序代码如下:
.
public void confirm()rim();
if(password)&&("管理员")){
(null,"登录成功","提示!",
;
new Administrator(name);
();
}
else if(password)&&("读者")){
new Reader(name);
();
}
else {
(null,"密码不正确","提示!",
;
}
读者界面如图所示。
图读者界面
注册功能
功能介绍:该程序主要实现管理员和读者注册,以便于新的管理员和读者能够登录使用图书管理系统。
按照标签提示输入信息,然后点击确定按钮。
首先在Password表中进行查询判断用户名文本框中输入的文本信息是否已经存在,如果存在,则提示用户名已经被占用。
如果符合规则,但还需要保证前后两次的密码相同,才能成功注册。
注册成功的同时,更新Password表,用户名,密码和用户类型被插入Password表。
完成注册后返回登录界面,用户就可以登录了。
注册界面如图所示。
图注册界面
主要程序代码如下:
public Register(){
rim();
(null,"用户名已经被占用,请更换!","提示!", ;
}
else{
if(repassword)){
String queryRegister="insert into Password(name,password,type) values('"+name+"','"+password+"','"+type+"');";
Statement sql2=();
(queryRegister);
(null,"注册成功,返回登录界面!","提示!", ;
new Login();
();
}
else {
(null,"2次密码不相同","提示", ;
}
}
管理员模块功能实现
管理员模块实现管理员修改密码,读者管理,图书管理,新书入库,借还书籍,管理日志的功能。
修改密码功能
功能介绍:该程序主要实现管理员修改密码,点击修改密码按钮,用户名自动显示,管理员需要按照标签提示输入信息,然后点击确定按钮。
首先在Password表中进行查询判断用旧密码本框中输入的文本信息是否正确,如果错误,则提示旧密码错误。
如果正确,但还需要保证新密码和重密码相同,才能成功修改密码。
修改密码成功的同时,更新Password表,下次管理员登录必须使用新密码。
管理员修改密码界面如图所示。
图修改密码界面
主要程序代码如下:
public void updateM()
{
Statement sql1=();
String queryPassword="SELECT password FROM Password where name='"+name+"' ";
ResultSet rspassword=(queryPassword);
if()){
if(repassword)){
Statement sql2=();
String queryRegister="update Password set password='"+newpassword+"' where name='"+name+"';";
(queryRegister);
(null,"密码修改成功!","提示!", ;
();
}
else {
(null,"2次密码不相同","提示!",
;
}
}
else{
(null,"原密码不正确!","提示!", ;
}
();
}
读者管理功能
功能介绍:该程序主要实现管理员对数据库中读者信息进行查询。
点击读者管理按钮,所有读者信息自动显示。
管理员还可以按照读者学号查询特定读者的信息。
查询时首先在Reader表中进行查询判断输入的读者学号是否存在,如果错误,则提示读者不存在。
如果正确,显示对应读者的所有信息。
查询之后,点击返回按钮,可以继续查询别的读者信息。
读者信息界面如图所示,读者信息查询如图所示。
图读者信息界面
图读者信息查询
主要程序代码如下:
public void showAllReader(){
.
}
public void showRecord().
Connection con=(dbURL, userName, userPwd);
String readerno1=().trim();
Statement sql1=();
String queryPassword="SELECT * FROM Reader where
readerno='"+readerno1+"' ";
ResultSet rs=(queryPassword);
if())
{
(null,"查询成功!","提示!", ;
();
.
}
else {
(null,"此读者不存在!","提示!", ;
}
图书管理功能
功能介绍:该程序主要实现管理员对数据库中书籍进行管理。
点击图书管理按钮,所有图书信息自动显示。
管理员还可以按照图书号查询特定图书的信息。
查询时首先在Book表中进行查询判断输入的图书号是否存在,如果错误,则提示图书不存在。
如果正确,显示对应图书的所有信息。
查询之后,点击返回按钮,可以继续别的操作。
输入图书号点击剔除按钮,如果图书号输入正确,则成功剔除图书。
成功剔除图书的同时,更新Book表,删除对应图书。
点击返回,可以看见图书数目减1,查询刚才剔除的图书,显示图书不存在。
图书管理界面如图所示,图书查询如图所示,图书剔除如图所示,返回界面如图所示。
图图书管理
图图书查询
图图书剔除
图返回界面
主要程序代码如下:
public void showAllBook(){
quals("")||().equals("")||().equals("")||
().equals("")||().equals("")||().equals(""))
{
(null,"请完善图书信息!",
"输入错误", ;
return;
}
rim();
if("是")&&("借书"))
(null,"书籍已经被借走,不能借阅!","提示!", ;
else if("否")&&("还书")||(null)&&("还书")){
(null,"书籍没有被借走,您不用归还!请检查信息是否填写错误!","提示!",;
}
else {
String queryRegister="insert into
ManageLog(bookno,bookname,readerno,bhandle,time,pay) "
+
"values('"+bookno+"','"+bookname+"','"+readerno+"','"+bhandle+"','"+time+"','"+pay+"');";
Statement sql2=();
(queryRegister);
if("借书")){
String is="是";
String queryUpdateBook1="update Book set isborrow='"+is+"' where bookno='"+bookno+"'";
Statement sql3=();
(queryUpdateBook1);
(null,"借阅成功!请于一个月之类归还,不然要收取每天1元的费用!","提示!", ;
}
else if ("还书")){
String no="否" ;
String queryUpdateBook2="update Book set isborrow='"+no+"' where bookno='"+bookno+"'";
Statement sql4=();
(queryUpdateBook2);
}
(null,"操作成功!","提示!",
;
();
}
}
else {
}
();
AVA2 实用教程.北京:清华大学出版社,2006
[2] 朱仲杰.JAVA2 全方位学习.北京:机械工业出版社,2006
[3] 张思民.JAVA程序设计实践教程.北京:清华大学出版社,2006
[4] 汤一平.Java 语言程序设计.北京:科学出版社,2006
[5] 刘艺.Java 程序设计大学教程. 北京:机械工业出版社,2006
[6] 耿祥义.Java课程设计.北京:清华大学出版社,2003
[7] 王珊.数据库系统概论(第5版).北京:高等教育出版社,2014。