JAVA的图书管理系统的设计与实现.docx
- 文档编号:7334223
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:23
- 大小:377.86KB
JAVA的图书管理系统的设计与实现.docx
《JAVA的图书管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《JAVA的图书管理系统的设计与实现.docx(23页珍藏版)》请在冰豆网上搜索。
JAVA的图书管理系统的设计与实现
摘要
随着计算机及网络技术的飞速发展,Internet/Intranet应用在全球范围内日益普及,当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。
从而使我们从繁杂的事务中解放出来,提高了我们的工作效率。
目前学校图书馆的借阅工作部分还是手工管理,工作效率很低,并且不能及时了解图书的种类和学生们比较需求的图书等,不能更好的适应当前学生的借阅要求.手工管理还存在这许多弊端,由于不可避免的人为因素,造成数据的遗漏、误报。
计算机信息化管理有着储存量大,速度快等许多优点,提供给我们的处理信息及时快捷,因此我们利用计算机提供给我们的信息对学生们的借阅过程形成一整套动态的管理。
本系统将会涉及到图书馆日常管理工作的基本常见细节,诸如新图书的入库登记,图书馆所有书籍的分类管理,图书的查询,图书的借阅、退还手续的登记,费旧图书的清理撤除等,本系统所要实现的这些功能基本上涵盖了图书馆的日常管理工作,基本能够满足校园图书馆的工作人员的管理需要。
在对本系统的具体开发过程当中,将采用Java语言进行开发,以Access实现后台数据库,本系统是完全基于图形化用户界面(GUI)的单机版本。
【关键字】信息化软件工程软件生命周期图形化用户界面
Abstract
ThefullnameofourSystemis:
TheManagementInformationSystemofCampus’sLibrary。
Atpresent,thecomputertechnologyisdevelopingever-growing,andthecampus’sinformationconstructionalsohavepushingon,bycontrast,themethodofmanagementinmanyuniversitylibraryisstillbyman,thelibrary’workersmustfacetothelargenumberofbooks,andalsofacetofallintothetrouble.Actually,theworkcanbedonebythecomputerwhichhaveamanagementinformationsystem。
Thentheheavyworkwillnotbedonebypeople,thelibrary'workerscanusecomputertomanagethebooks,andtheeverydayworkwillbeeasy.
Thisisthegoalwhichoursystemwanttoachievefinally.
TheprincipleofdevelopmenttooursystemwillbefollowingwithSoftwareEngineering,weusethetraditionalmodelwhichbecalledWaterfall,andthecourseofdevelopmentwillbedividedintosixstage.Wewilldevelopthesysteminsequence.
Oursystemcontainsmanyoperationsaboutlibrary’severydaywork,suchasRegisterNewBooks,ClassifyBooksaccordingtotheirsubjects,FindBooks,Disposeoldbooks,andsoon,oursystemcanfinishallofthework,andcanmeettherequirementsofthelibrary’sworkers.
Duringthedevelopmentofoursystem,weusethetoolofJAVAtodevelopit,oursystemisonthebasisoftheAccessDatabase.
【KeyWords】ManagementInformationSystem,SoftwareEngineering,Ja
一引论
(一)问题的定义
首先,图书馆的管理直接关系到在校大学生如何更好的使用图书,更充分的利用现有资源学习,提高自身素质.针对当今的大学图书馆藏书越来越多,学生借书越来越频繁,图书管理较为繁琐,图书馆管理工作人员付出的工作时间越来越多,得到的效率却很低这个现状.为提高工作效率,减轻图书馆工作人员的工作负担,决定开发学校图书馆管理系统软件,以帮助更好的实现图书馆的管理,让我们能更便捷的借阅图书,让老师能花最少的时间办理好借阅图书手续。
开发此图书馆管理系统软件,以供图书馆工作人员管理使用及学生和老师查询或者借书使用,方便操作者随时添加、查询、修改等。
为了我们提高软件开发的能力,学习JAVA编程的技巧,提高工作设计思想,通过本次的软件工程开发,开发人员与指导老师,能从中学习知识吸取经验,在技术和软件思想上同时得到锻炼和提高,从而使总体水升到一个新的高度.
开发此图书馆管理系统软件,也是对实现数字化图书馆管理的支持,现今各大学普遍存在着一个现象,图书的借阅手续都是由专门的老师来实现办理的,每当借阅高峰期时,排队借书的场面屡见不鲜,这样即耗费时间又使原本不太大的借书大厅拥挤不堪。
图书馆管理系统的实现,可以着眼于数字化借阅,简化学生图书查询流程,简化图书外借登记手续,即提高借阅效率又可实现图书借阅的完整进出记录,保证图书的合理使用,让广大师生受益。
(二)可行性分析
(1)技术可行性
图书借阅系统的建立,需要进行用户需求调查与分析,以确定系统目标,提出解决问题的详细方案,这是系统建设的重要环节。
要想使学生能够有效的借阅,功能上对系统的要求是全面的。
因此对用户的需求可分为三个方面:
一方面是图书管理人员对需要进行图书借阅的同学进行信息注册,获得借书证;二方面是学生通过计算机进行图书浏览;三方面是学生通过计算机进行图书借阅.
这三个方面形成了图书借阅的一个工作整体,利用计算机的自动化处理,可方便快捷地共享信息、交流信息,高效地协同工作。
在软硬件方面对系统的需求,软件要求易学,界面友好,容易掌握,可以很简单方便的进行图书借阅信息管理。
硬件的配置要求不能太高,这样可以很好的适应当前的学校图书馆的借阅.
图书馆长期的人工管理工作所投入的人力物力财力是相当之多的,本系统的建设成功,将在这几个方面大大节省资源,更重要的是,系统带来的轻松、便捷,使图书馆的日常管理工作不再那么烦琐。
从个人价值上看,本系统的开发成功亦是对本人长期学习成果的一种检验和一次实践,在个人能力水平上得到了很好的锻炼和提高,其价值也是明显的。
由于本系统管理的对象单一,都是校图书馆里的书,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂.因此,比较适合于采用数据库管理。
且学校用于图书馆管理的都是个人计算机,在存储量、速度方面都能满足数据库运行的要求.在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现.
本系统的设计是在WindowsXP中文版操作系统环境下,使用Java中文版开发成功的。
数据库是MIS中的重要支持技术,在MIS开发过程中,如何选择数据库管理是一个重要的问题,目前,数据库产品较多,每种产品都具有各自的特点和适用范围,因此,在选择数据库时,应考虑数据库应用的特点及适用范围,本系统所使用的后台数据库是Access数据库。
本系统选用的开发语言介绍如下:
选择了美国SUN公司推出的Java开发工具。
Java是第一个全面支持面向对象程序设计的数据库语言工具。
Java的主要特点有:
1、语言是简单的、小型的、结构中性的
2、强大的数据库开发功能
3、扩大了对SQL语言的支持
4、是面向对象的、高性能的、多线程的
5、是分布式的、面向网络
6、具有平台无关性
7、语言具有可移植性、是动态的
(2)经济可行性
此系统在开发方式上对系统的需求,由于学校图书馆的借阅是一种无商业利益的,所以系统设计开发的周期要短,在短时间内完成,减少开发成本,提高开发效率,方便、简单、实用是作为系统开发的指导思想。
本系统完全能够在校园图书馆管理工作中发挥重要作用,而作为个人,能在软件开发能力方面得到锻炼和提高也是十分重要的,本系统在此不注重任何社会经济目标.
二需求分析
设计数据库系统时,应该充分了解用户各方面需求,包括现有的以及将来可能增加的需求,数据库设计一般包括以下几个步骤:
1、数据库需求分析
2、数据库概念结构设计
3、数据库逻辑结构设计
数据库需求分析
用户的需求具体体现在各种信息的提供,保存,更新和查询。
这就要求数据库的结构能充分满足各种信息的输入和输出。
在仔细分析调查有关图书馆管理信息需求的基础上设计出如图所示的数据流程。
(1)数据流图
(1)、顶层数据流图
图3-1数据流图
(2)、0层数据流图
图3-2数据流图
针对图书馆管理系统的需求,通过对图书馆管理工作过程的内容和数据流程分析,设计出如下的数据项
①、图书入库信息,包括数据项有:
图书编号、书名、图书类别、出版日期、出版社名称、作者、定价、入库总数。
②学生信息,包括数据项有:
学生学号、姓名、性别、系别、班级
③、图书查询信息,包括数据项有:
图书编号、书名、图书类别、出版日期、出版社名称、作者、定价、入库总数.
④、借书信息,包括数据项有:
图书编号、书名、学生学号、姓名、系别、班级、是否归还.
(2)数据库逻辑结构设计
图书馆管理系统中数据库的各个表格设计结果如下:
(1)、图书入库信息表
列名
数据类型
说明
BookNo
Char
图书编号
BookName
Text
书名
BookClass
Text
图书类别
BookPub
Text
出版社
Author
Text
作者
BookTotal
Int
入库总数
Price
Currency
图书定价
Isorin
Boolean
是否在书库中的标志
Bookbirth
Date
图书入库的日期
Bookdemo
Text
图书的简单介绍
表3—1图书入库信息表
(2)、学生信息表
列名
数据类型
说明
StuNO
Int
学生的学号,唯一
StuNane
Char
学生姓名
StuSex
Boolean
性别
StuSpecial
Text
学生系别
StuClass
Char
学生所在班级
表3—2学生信息表
(3)、用户信息表
列名
数据类型
说明
UserName
Char
用户姓名
Password
Char
用户密码
UserType
Char
用户类型
表3—3用户信息表
(4)、图书信息表
列名
数据类型
说明
BookNO
Int
图书编号
BookName
Text
图书名称
BookTotal
Int
剩余库存量
BookDate
Date
借书日期
ReaderNo
Int
图书证号码
表3—4图书信息表
(3)数据库概念结构设计
得到上面的数据项就能够设计出以下各种实体以及它们的关系。
设计规划出的实体有:
图书信息实体、学生信息实体、管理员信息实体。
E-R图如下:
图3—3E—R图
三系统设计
(一)总体设计
本课题设计在充分进行用户需求分析的基础上把系统划分为九个子模块:
用户登陆、学生注册、图书入库、图书查询、图书删除、图书借阅、办理登记、借书证注销、用户退出。
这九个模块之间,紧密结合,共享信息资源,形成一种完美的学校图书馆借阅管理的解决方案.如图4-1
图4-1系统功能结构图
(二)详细设计
(1)各个模块的介绍
1、学生注册:
工作人员通过本系统对学生进行信息注册,发放借书证;
2、用户登陆:
工作人员用管理员用户登陆,学生用普通用户登陆;
3、图书入库:
工作人员通过本系统输入图书信息;
4、图书删除:
工作人员通过此模块删除无用的图书信息;
5、图书查询:
学生们通过此模块来查询自己所需要的图书;
6、读者借书:
学生通过此模块来完成借阅图书;
7、读者还书:
学生通过此模块来完成退还图书;
8、办理登记:
图书管理人员通过此模块来完成借书证办理;
9、借书证注销:
图书管理人员通过此模块来完成借书证注销;
10、用户退出:
退出此系统。
(2)流程图
图5—1系统流程图
(3)数据字典
(1)、名字:
注册信息
别名:
描述:
定义:
注册信息=学生学号+{系+级+班+姓名}
位置:
学生信息表
(2)、名字:
图书
别名:
图书信息
描述:
标识图书的一些相关信息
定义:
图书信息=书名+作者+出版社名+出版日期+图书编号+图书类别+入库总数+定价
位置:
图书信息表
(3)、名字:
入库总数
别名:
描述:
图书管所买进图书的总数
定义:
入库总数=1{数字}100
位置:
图书信息表
(4)、名字:
剩余库存量
别名:
描述:
在书被借出时,图书库里所剩的图书总数
定义:
剩余库存量=1{数字}100
位置:
图书信息表
(5)、名字:
图书证号码
别名:
借书证编号
描述:
唯一标识借书证的关键字
定义:
图书证号码=1{数字}8
位置:
图书信息表
(6)、名字:
用户姓名
别名:
用户名
描述:
用户的登录名
定义:
用户姓名=字母字符+字母数字串
位置:
用户信息表
(7)、名字:
图书编号
别名:
ISBN
描述:
图书的条形码
定义:
图书编号=字符串+字母数字串
字母数字串=0{字母或数字}9
位置:
图书信息表
(8)、名字:
学生的学号
别名:
学号
描述:
唯一标识学生的关键字
定义:
学生的学号=1{数字}8
位置:
学生信息表
(4)代码实现
1、系统默认界面
2、系统登陆界面
部分代码如下:
publicLogin()
{
JLabell1=newJLabel(”用户名:
”);
JLabell2=newJLabel(”密码:
");
JLabell3=newJLabel(”请选择用户类型:
”);
JButtonb1=newJButton(”确定”);
JButtonb2=newJButton("取消”);
JButtonb3=newJButton(”新用户注册");
t1.setText("");
t1。
setEditable(false);
t2。
setEditable(false);
t2。
setText(””);
t2。
setEchoChar(’*');
ch.add("——--—-—---”);
ch.add("系统管理员");
ch.add(”普通用户”);
JPanelp=newJPanel(newBorderLayout());
JPanelg=newJPanel(newGridLayout(4,1));
JPanelj=newJPanel(newFlowLayout());
j.add(b1);
j。
add(b2);
j。
add(b3);
p。
add(j,BorderLayout。
SOUTH);
3、登陆后的界面
4、图书录入界面
部分代码:
publicInputBook(){
JLabell1=newJLabel("图书编号:
");
JLabell2=newJLabel(”图书名称:
");
JLabell3=newJLabel("图书类别:
”);
JLabell4=newJLabel("图书出版日期:
”);
JLabell5=newJLabel("出版社名称:
");
JLabell6=newJLabel("图书入库总数:
”);
JButtonb1=newJButton(”入库登记”);
JButtonb2=newJButton(”重置");
ch.add(”--————-——-”);
ch。
add(”计算机类");
ch。
add(”医学类");
ch.add("农业类”);
ch.add("文学类");
ch。
add(”工程类");
Containerc=f。
getContentPane();
c.setLayout(newBorderLayout());
JPanelp=newJPanel(newBorderLayout());
JPanelg=newJPanel(newGridLayout(7,1));
JPanelj=newJPanel(newFlowLayout());
5、图书查询界面
部分代码:
try{
Class.forName(”sun.jdbc.odbc。
JdbcOdbcDriver”);
}catch(ClassNotFoundExceptione){
System。
out。
println("SQLException:
"+e。
getMessage());
}
try{
Connectionconn=DriverManager.getConnection("jdbc:
odbc:
Library”);
Statementstmt=conn。
createStatement();
ResultSetrs=stmt。
executeQuery(”select*frombook”);
while(rs.next()){
if(t1。
getText()。
equals(rs.getString(”BookNo"))){
t2。
setText(rs.getString(”BookName"));
t3。
setText(rs。
getString(”BookBirth"));
t4.setText(rs.getString("BookTotal"));
t5。
setText("”);
}
elseif(t1.getText()。
equals(””)){
JOptionPane。
showMessageDialog(null,”请输入您要查找的图书!
”,"警告",JOptionPane。
WARNING_MESSAGE);
break;
}
}
rs。
close();
stmt.close();
conn。
close();
}catch(SQLExceptionex){
JOptionPane。
showMessageDialog(null,ex。
getMessage(),"警告”,JOptionPane。
WARNING_MESSAGE);
}
6、图书删除界面
部分代码:
//删除图书按钮事件
bt2.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventE){
try{
Class。
forName("sun.jdbc.odbc。
JdbcOdbcDriver");
}catch(ClassNotFoundExceptione){
System.out.println("SQLException:
"+e。
getMessage());
}
try{
if(t1。
getText().equals(”")){
JOptionPane.showMessageDialog(null,"删除失败!
请输入您要删除的图书”,"提示信息",JOptionPane.INFORMATION_MESSAGE);
}
else{
Connectionconn=DriverManager。
getConnection("jdbc:
odbc:
Library");
Statementstmt=conn。
createStatement();
if(JOptionPane。
showConfirmDialog(null,"单击’是’删除该记录,单击'否'取消该操作!
","警告”,JOptionPane。
YES_NO_OPTION,JOptionPane.WARNING_MESSAGE)==JOptionPane.YES_OPTION){
Stringsql="deletefrombookwhereBookNo=’”+t1.getText()+”’”;
stmt。
executeUpdate(sql);
JOptionPane。
showMessageDialog(null,"该条记录已被删除成功!
”,”提示信息",JOptionPane.INFORMATION_MESSAGE);
stmt。
close();
conn。
close();
7、办理图书证界面
部分代码:
//登记按钮事件
b1。
addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
try{
Class.forName("sun.jdbc。
odbc.JdbcOdbcDriver”);
}catch(ClassNotFoundExceptionex){
System。
out.println("SQLException:
”+ex.getMessage());
}
try{
if(t1。
getText().equals("")||t2.getText()。
equals(”")||t4。
getText()。
equals("”)||t5。
getText()。
equals(””)||t6.getText().equals(”")){
JOptionPane。
showMessageDialog(null,"请输完该学生的完整信息!
","警告”,JOptionPane。
WARNING_MESSAGE);
}
else{
Connectionconn=DriverManager.getConnection("jdbc:
odbc:
Library”);
Statementstmt=conn.createStatement();
Stringsqlstr=”insertintostudentvalues('"+t1.getText()+”',’"+t2.getT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 图书 管理 系统 设计 实现