图书管理系统java课程设计报告.docx
- 文档编号:11559942
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:36
- 大小:463.96KB
图书管理系统java课程设计报告.docx
《图书管理系统java课程设计报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统java课程设计报告.docx(36页珍藏版)》请在冰豆网上搜索。
图书管理系统java课程设计报告
焦作大学信息工程学院
《Java实训》报告
题目:
图书管理系统
班级:
网络
(1)班
姓名:
张辉
学号:
100302335
2011年12月22日
摘要
随着信息技术的发展,计算机已被广泛的应用于社会的各个领域,成为推动社会发展的技术动力。
而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发与信息技术市场的进一步的开拓。
软件产业已成为社会信息化进程中的一个战略性产业。
在软件技术的应用中软件的开发技术尤其就是应用型软件产品的开发技术成了重中之重。
不断开发适应用户需求、市场需要的新型软件产品。
尤其就是在校园里,各种软件的应用无处不在,为我们的学习与生活提供了方便。
学校的图书馆不仅给我们提供瞧书学习的地方,还给我们提供了一套功能齐全的图书馆系统,方便我们搜索书籍、借阅图书。
我们本次的Java课程设计的最终目标就是实现一个图书馆管理系统,使其具有一般图书管理系统所具有的功能,可以实现管理员日志、管理员添加、管理员退出、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、书籍借阅与归还等功能。
因为Java就是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定与多线程等特点,所以用Java编程为我们本次程序的编写提供了方便。
在设计中我们主要进行了数据库及类的设计,把整系统分成了15个类与5个表。
通过应用awt、swing、sql、util等包,合理的添加了按钮、菜单、文本框、文本区、表格等组件类,还包含窗口、面板等容器类,经过设计者合理的布局,完成了窗体的设计,并通过建立JDBC-ODBC桥接器连接到Access数据库后,向数据库发送SQL语句实现程序与数据库中表间的消息通信,从而实现了相应的图书馆管理系统的功能。
本文主要分为绪论、系统功能介绍、数据库需求分析、系统功能实现、结论、致谢、参考文献7大块。
在绪论中介绍了本次课设选题的缘由及思想。
系统功能介绍中详细介绍了本图书管理系统的整体思想及其具体功能。
在数据库需求分析中详细说明了数据库的需求分析、概念设计及表的设计。
在系统功能实现中主要通过抓图来体现设计的结果。
总之,我们的整体设计思想均在报告中体现。
关键词:
图书馆管理系统,Java程序设计语言,Access数据库
第1章绪论
随着社会经济的迅速发展与科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。
随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。
书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。
与此同时,为了管理大量的图书,图书管理系统也大量的出现,随着图书的大量增加,其管理难度也越来越大,如何优化管理也就成为了一个大众化的问题。
现已有的图书管理系统,其功能已十分强大,为了便于管理员对图书管理系统进行妥善的管理与读者的查询,图书管理系统为管理员提供了管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库等功能,为读者提供了书籍查询、读者借阅信息查询、图书网上续借等很多功能。
大学为我们提供了自由的学习环境,使我们有更多的时间到图书馆借阅书籍,让我们可以随时掌握各方面的知识,不断提高自我、充实自我,但由于图书馆藏书成千上万,我们很难一本一本的去查找自己感兴趣的书籍,因此我们会经常用到学校为我们提供的图书管理系统,用时间长了便对此产生了兴趣,正好本次课程设计为我们提供了良好的机会,让我们亲自设计并实现了图书管理系统的部分功能。
设计一个图书管理系统必不可少的必须对全管书籍进行分类汇总。
而这就就是我们所说的数据库设计的第一阶段:
需求分析。
在这一阶段除了对具体情况诸如实行对管理员的管理、对读者的管理、书籍管理、书籍的借阅与归还、借阅超时等功能的实现,还需要对用户的需求进行调查与分析,否则就失去了设计这个系统的意义了。
对于界面的设计我们应该追求的就是:
美观、易读性强、清晰度高;原则就是:
不能因为刻意追求美观而以整个界面的清晰度的牺牲作为代价,不能为了清晰度而抛弃对易读性的追求。
再设计的过程中我们应该根据实际的情况进行设计,做到具体问题具体分析,不刻意追求原则。
在对应的界面与Access数据库建立连接,并实现对应的SQL语句进行实现将产生的结果显示出来。
并运用捕捉异常的方法,将异常信息显示出来。
实现SQL语句的时候借助前台开发工具中关于数据处理的控件来完成。
对于读者而言她们的需求就是了解图书的基本情况,自己的借阅情况。
总而言之就就是实现对各个信息表的查询。
对于图书管理员而言要实现的功能相对而言比较多,例如实现新书入库、Access数据库表的创建、系统的维护等等,这些都需要设计与实现的。
第2章系统功能介绍
2、1系统功能总框图
图书馆管理系统功能总框图,如图2-1所示。
图书馆管理系统
管
理
员
读者管理
书籍管理
书籍借阅归还
管
理
员
管理日志
管理
员添加
管理员切换
读
者添加
读者信息修改
读者删除
新书入库
书籍查询
借阅书籍
归还书籍
借阅超时
读者信息查询
图2-1系统功能框架图
2、2模块功能介绍
2、2、1管理员模块功能介绍
1、管理员登陆
此模块主要就是利用MenuBar添加菜单条,利用Menu与MenuItem添加菜单与菜单的各个参数,通过事件ActionEvent可以实现进入各个模块如管理日志、管理员添加、管理员切
换、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、借阅书籍、归还书
籍、借阅超时及退出的功能。
2、管理日志
此模块可以清楚的显示出书籍借阅与归还的信息,包括书号、书名、图书证号、借/还、操作日期、已付款额。
读者可以通过此模块实现的功能清楚的了解图书被借阅与归还的详细信息,从而给读者带来了很多方便。
3、管理员添加功能介绍
此模块功能就是增加新管理员的登陆帐户。
在图书馆管理系统中必须有每一个管理者的帐户让其可以正常进行新图书证的办理、借阅书籍与归还书籍等系统管理。
所以在管理员功能模块中增加了管理员添加这个功能。
4、管理员切换
此模块的主要功能就是进行管理员之间的切换,即单击管理员菜单下的管理员切换,就会退出当前管理员界面,从而出现管理员切换窗口,而另一管理员就可以在管理员切换窗口中的用户名与密码两栏中通过输入自己的用户名与密码直接进入该系统。
2、2、2读者管理
1、读者添加
此模块主要的实现功能就是添加新的读者信息,即当有新的读者要瞧查瞧本图书馆中的书藉,可以通过此功能实现,当数据库中存在其新信息,即成为本图书馆的新一位读者。
其中信息分别包括图书证号、学生姓名、性别、系别、班级,同时可有三项功能在此处实现,即添加、重置以及返回。
2、读者修改
此模块主要的实现功能对有信息更新的读者进行即时修改,以随时更新读者在数据库中的信息。
本模块通过图书证号确定读者,可对读者信息的新图书证号、学短姓名、性别、系别、班级。
此处可分别实现对该功能的修改、重置、返回。
3、读者查询
此模块主要可对所要了解的读者信息。
即把读者的信息从数据库调出来,显示在该窗口中的文字区域。
查询方式分别有按图书证查询、按姓名查询、按班级查询、按年级查询,并可通过办理入相应的关键字,更加缩小查询范围。
此处可实现查询与返回功能。
4、读者删除
此模块可以删除一些不再使用本系统的读者资料,从而达到对数据库中的清理,即清除一些不必要资料,此处有四种删除途径,分别为按图书证号删除、按姓名删除、按班级删除、安年级删除,并可通过所输入的关键字尽快找到所要删除的资料。
此处可分别实现对该功能的修改、重置、返回。
2、2、3书籍管理模块功能介绍
1、新书入库功能介绍
此模块主要的实现功能就是将新来的图书输入到图书馆管理系统的书库当中,其中主要按如下信息往书库中输入,这部分的操作主要就是便于书库合理的管理,有利于读者能够对新书有
一个更详细的了解。
其中包括如下信息:
新书书号、新书名称、新书出版日期、新书出版社、入库数量、编写作者、新书单价。
2、书籍查询功能介绍
在图书馆管理系统中书籍查询就是最基本的功能,读者可以根据自己的需求来查询想要借阅的书籍。
本系统就是用Java应用程序与Access数据库一起开发的其中利用Java来编程实现功能的代码与布置运行界面。
界面就是由检索项、检索词与显示文本区三个部分组成的用户根据自己的需要在检索项中选择自己所要按什么字段进行查询,其中书籍查询功能的检索项中可以按书号查询、按书名查询、按作者名查询、按出版社查询、按入库时间查询等基础查询。
选择检索项后用户只要在检索词中添写自己所要查询的内容并确定键确认后用户要查询的内容就可以在显示文本区中显示出来。
用户可以根据显示的信息得知自己所要借阅书籍的情况。
2、2、4书籍借阅与归还功能介绍
1、借阅书籍功能介绍
此模块主要实现读者可凭有效的图书证号,借阅图书馆内未借出的图书。
输入图书证号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。
通过输入有效的图书编号,查询该图书的全部信息(包括书号、书名、作者、出版社、就是否借出、价格)。
借阅成功后,将该图书证号、书号、借阅日期、应还日期信息插入到数据库的表中进行记录。
2、归还书籍功能介绍
此模块主要实现读者凭所要归还图书的图书证号归还图书。
输入所要归还的图书编号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。
还书成功后,从数据库中删除该书的借出记录,并修改数据库中的相应信息。
2、2、5借阅超时功能介绍
此模块主要实现显示过期图书的信息(包括图书证号、书号、借阅日期、应还日期)提醒读者还书。
2、3组内任务分工
组内分工情况如下表2-1所示。
表2-1组内分工情况表
组长
邹刚
读者添加、查询、修改、删除。
组员
罗姗姗
书籍借阅与归还模块、借书超期限子系统。
李呈呈
管理员添加、新书入库、按指定条件进行图书查询。
刘兰兰
数据库创建、登陆界面设计、管理员模块。
第3章数据库设计
在此图书馆管理系统中,使用到了一个重要的连接,即与数据库Accesss相连。
数据库中存有图书馆中所信息,包括读者信息、管理员资料、借阅与退还记录。
所有与管理有关的数据皆在其中,就是保证系统能够正常实现各种功能的一架桥。
3、1数据库需求分析
⒈Admi表,即管理员表,记录了用户名与密码。
⒉Admirz表,即管理日志表,记录了书号、书名、图书证号、借/还、操作日期、已付款额。
⒊book表,即图书表,记录了书号、书名、作者、出版社、入库时间、就是否借出、价格。
⒋borrowbook表,即借阅表,记录了图书证号、书号、借阅日期、应还日期。
⒌person表,即读者表,记录了图书证号、姓名、性别、系别、班级。
3、2数据库概念结构设计
图书馆管理系统E-R图,如图3-1。
m
n
读者
图书
管理员
性别
系别
班级
姓名
图书证号
书号
书名
作者
出版社会化
密码
用户名
管理
管理
m
n
m
借阅
1
入库时间
就是否借出
价格
图3-1图书馆管理系统E-R图
3、3数据库表的设计
⒈Admi表
表中记录了可以使管理员进入该系统的用户名及密码,如表3-1所示。
表3-1管理员信息表
字段名称
数据类型
长度
备注
用户名
文本
10
密码
文本
15
⒉Admirz表
表中记录借还书日志,用于存下所有对图书操作的记录,以便以后可以翻阅与查找,如表3-2所示。
表3-2管理日志表
字段名称
数据类型
长度
备注
书号
文本
10
书名
文本
15
作者
文本
15
出版社
文本
15
入库时间
DATE
15
已付款额
文本
10
⒊book表
表中记录了库内所有图书的所有资料,如表3-3。
表3-3图书表
字段名称
数据类型
长度
备注
书号
文本
10
书名
文本
15
作者
文本
15
出版社
文本
15
入库时间
DATE
15
就是否借出
文本
10
价格
文本
10
⒋person表
表中记录库中所有读者的相关信息,如表3-4所示。
表3-4读者表
字段名称
数据类型
长度
备注
图书证号
文本
10
姓名
文本
15
性别
文本
15
系别
文本
15
班级
文本
15
⒌borrowbook表
表内记录了此时图书的借阅情况,如表3-5所示。
表3-5借阅表
字段名称
数据类型
长度
备注
图书证号
文本
10
书号
文本
15
借阅日期
DATE
15
应还日期
DATE
15
第4章系统功能实现
4、1管理员模块功能实现
4、1、1管理员登陆
此模块就是整个系统最主要的部分,管理员可以通过此模块实现进入其余各个模块如管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、借阅书籍、归还书籍、借阅超时及退出的功能。
图书管理系统管理员界面如图4-1所示。
图4-1图书管理系统管理员
主要程序代码如下:
publicvoidactionPerformed(ActionEvente)
{
if(e、getSource()==itemAdmiqh)
{
this、dispose();
Inwinin=newIn("系统登陆");
}
if(e、getSource()==itemtc)
{
System、exit(0);
}
if(e、getSource()==itemAdmixj)
{
CreatAdmicreatAdmi=newCreatAdmi("管理员添加");
}
if(e、getSource()==itemAdmirz)
{
WinTablewintable=newWinTable("管理日志");
}
if(e、getSource()==itemBookrk)
{
AddInfyaddInfy=newAddInfy();
}
if(e、getSource()==itemPersonlr)
{
Winpersonaddwinperson=newWinpersonadd("读者添加");
}
if(e、getSource()==itemPersoncx)
{
Winpersonsearchwinperson=newWinpersonsearch("读者信息查询");
}
if(e、getSource()==itemPersonxg)
{
Winpersonmodifywinperson=newWinpersonmodify("读者信息修改");
}
if(e、getSource()==itemPersonsc)
{
Winpersondeletewinperson=newWinpersondelete("读者删除");
}
if(e、getSource()==itemBookcx)
{
Windowjjok=newWindowjj();
}
if(e、getSource()==itemchaoshi)
{
daywin=newday();
}
if(e、getSource()==itemBorrowjs)
{
Borrowbookwin=newBorrowbook();
}
if(e、getSource()==itemBorrowhs)
{
Returnbookwin=newReturnbook();
}
}
4、1、2管理日志
此模块通过定义类WinTable继承顶层容器JFrame,再添加普通容器JScrollPane、Jpanel,然后通过BorderLayout布局创建界面,最后主要通过数组利用while循环在连接好的数据库中查找表Admirz中的内容,从而实现了可以清楚的显示出书籍借阅与归还信息的功能。
管理日志界面如图4-2所示。
图4-2管理日志
主要程序代码如下:
WinTable(Strings)
{
super(s);
try{Class、forName("sun、jdbc、odbc、JdbcOdbcDriver");
}
catch(ClassNotFoundExceptione)
{System、out、println(""+e);
}
try{con=DriverManager、getConnection("jdbc:
odbc:
sun","123","123");
sql=con、createStatement();
rs=sql、executeQuery("SELECT*FROMAdmirz");
while(rs、next())
{
k++;
}
}
catch(SQLExceptione)
{System、out、println(""+e);
}
try{con=DriverManager、getConnection("jdbc:
odbc:
sun","123","123");
sql=con、createStatement();
rs=sql、executeQuery("SELECT*FROMAdmirz");
a=newObject[k][6];
while(rs、next())
{
for(intj=0;j<6;j++)
{
if(j<5)
a[i][j]=rs、getString(j+1);
else
{
a[i][j]=rs、getDouble(j+1);
i++;
}
}
}
con、close();
}
catch(SQLExceptione)
{System、out、println(""+e);
}
table=newJTable(a,name);
Containercon=getContentPane();
getContentPane()、add(newJScrollPane(table),BorderLayout、CENTER);
setBounds(120,125,700,500);
setVisible(true);
validate();
addWindowListener(newDisposeListener());
}
}
4、1、3管理员添加功能实现
功能介绍:
该程序主要实现管理员的添加,以便于让实行对图书管理员的管理。
按照标
签提示输入信息,然后点击确定按钮。
首先判断管理员名文本框中输入的文本信息就是否符合大于3个字符并小于10个字符的规则,如果不符合规则,则提示错误,如果符合规则,再到Admi表中进行查询,如果相同则用提示框提示错误。
若无相同则可注册。
但还需要保证前后两次的密码相同,才能成功注册,管理员登陆窗口如图4-3所示。
图4-3管理员添加成功界面
主要程序代码如下:
publicvoidactionPerformed(ActionEventc)
{
Stringb=textUser、getText();
Stringd=textPassword1、getText();
Stringg=textPassword2、getText();
if(c、getSource()==buttonqk)
{textUser、setText(null);
textPassword1、setText(null);
textPassword2、setText(null);
}
if(c、getSource()==buttonEnter||c、getSource()==textPassword2)
{
if(b、length()<3||b、length()>10)
{
JOptionPane、showMessageDialog(null,"用户名应在3~10个字符之间");
textUser、setText(null);
}
else
{
try{Class、forName("sun、jdbc、odbc、JdbcOdbcDriver");
}
catch(ClassNotFoundExceptione)
{System、out、println(""+e);
}
try{con=DriverManager、getConnection("jdbc:
odbc:
sun","123","123");
sql=con、createStatement();
rs=sql、executeQuery("SELECT*FROMAdmiWHERE用户名="+"'"+b+"'");
if(rs、next())
{
Stringuser=rs、getString
(1);
if(b、equals(user))
{
JOptionPane、showMessageDialog(null,"此管理员已被注册","警告",JOptionPane、WARNING_MESSAGE);
}
}
else
{
if(d、equals(g))
{
sql、executeUpdate("INSERTINTOAdmiVALUES"+"("+"'"+b+"'"+","+"'"+d+"'"+")");
this、dispose();
JOptionPane、showMessageDialog(null,"管理员注册成功");
}
elseJOptionPane、showMessageDialog(null,"两次输入密码不一致","警告",JOptionPane、ERROR_MESSAGE);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 java 课程设计 报告