图书管理系统java课程设计报告.docx
《图书管理系统java课程设计报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统java课程设计报告.docx(49页珍藏版)》请在冰豆网上搜索。
图书管理系统java课程设计报告
课程设计
课程设计题目:
Java程序设计课程设计
----图书管理系统
查阅有关数据库设计、java程序设计、面向对象程序设计等资料,进一步加深对课程内容的理解,利用程序设计的基本思想进行程序的开发,进一步掌握编程方法和技巧,提高学生用程序的思想来解决实际问题的能力。
本课程设计主要涉及到需求分析、总体设计、详细设计以及底层数据库设计几个主要环节。
2.设计的主要内容及要求
(1)写出系统的需求分析。
(2)写出数据库设计。
(3)写出系统的详细设计及各模块的功能。
(4)编写代码,开发系统。
3.对设计说明书撰写内容、格式、字数的要求
(1)学生应撰写的内容为:
中文摘要和关键词、目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
(2)装订格式:
封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、结论、致谢、参考文献。
(3)课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
4.设计完成后应提交成果的种类、数量、质量等方面的要求
(1)每组提交一份课程设计报告。
(2)每组提交一份课程设计成品。
5.时间进度安排
顺序
阶段日期
计划完成内容
备注
1
6.15
查阅资料,充分解读题目内容,小组分工。
2
6.16
进行系统的需求分析及。
数据库概念结构设计,逻辑结构设计。
3
6.17
进行系统的详细设计,确定各功能模块及模块间接口数据。
4
6.18
单元模块编程及调试。
5
6.19
单元模块编程及调试。
6
6.22
单元模块集成。
7
6.23
单元模块集成。
8
6.24
系统功能测试。
9
6.25
检查成品。
10
6.26
撰写课程设计报告。
6.主要参考资料(文献)
[1]耿祥义.JAVA2实用教程.北京:
清华大学出版社,2006
[2]朱仲杰.JAVA2全方位学习.北京:
机械工业出版社,2006
[3]张思民.JAVA程序设计实践教程.北京:
清华大学出版社,2006
[4]汤一平.Java语言程序设计.北京:
科学出版社,2006
[5]刘艺.Java程序设计大学教程.北京:
机械工业出版社,2006
java程序设计课程设计成绩评定表
学生姓名:
指导教师评审意见
评价内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1
5
4
3
2
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
5
4
3
2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
5
4
3
2
指导教师评审成绩
(加权分合计乘以8)
分
加权分合计
指导教师签名:
年月日
评阅教师评审意见
评价内容
具体要求
权重
评分
加权分
查阅
文献
查阅文献有一定广泛性;有综合归纳资料的能力
0.2
5
4
3
2
工作量
工作量饱满,难度适中。
0.5
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3
5
4
3
2
评阅教师评审成绩
(加权分合计乘以4)
分
加权分合计
评阅教师签名:
年月日
答辩小组评审意见
评价内容
具体要求
权重
评分
加权分
学生汇报
汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。
0.5
5
4
3
2
答辩
思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。
0.5
5
4
3
2
答辩小组评审成绩
(加权分合计乘以8)
分
加权分合计
答辩小组教师签名:
年月日
课程设计总评成绩
分
摘要
随着信息技术的发展,计算机已被广泛的应用于社会的各个领域,成为推动社会发展的技术动力。
而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。
软件产业已成为社会信息化进程中的一个战略性产业。
在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。
不断开发适应用户需求、市场需要的新型软件产品。
尤其是在校园里,各种软件的应用无处不在,为我们的学习和生活提供了方便。
学校的图书馆不仅给我们提供看书学习的地方,还给我们提供了一套功能齐全的图书馆系统,方便我们搜索书籍、借阅图书。
我们本次的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);