收藏 分销(赏)

图书管理系统java课程设计报告.doc

上传人:精*** 文档编号:3583601 上传时间:2024-07-10 格式:DOC 页数:60 大小:603.50KB
下载 相关 举报
图书管理系统java课程设计报告.doc_第1页
第1页 / 共60页
图书管理系统java课程设计报告.doc_第2页
第2页 / 共60页
图书管理系统java课程设计报告.doc_第3页
第3页 / 共60页
图书管理系统java课程设计报告.doc_第4页
第4页 / 共60页
图书管理系统java课程设计报告.doc_第5页
第5页 / 共60页
点击查看更多>>
资源描述

1、图书管理系统java课程设计报告焦作大学信息工程学院Java实训报告题目:图书管理系统班级:网络(1)班 姓名:张辉 学号: 12 月22日摘 要随着信息技术的发展,计算机已被广泛的应用于社会的各个领域,成为推动社会发展的技术动力。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中软件的开发技术特别是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品。特别是在校园里,各种软件的应用无处不在,为我们的学习和生活提供了方便。学校的图

2、书馆不但给我们提供看书学习的地方,还给我们提供了一套功能齐全的图书馆系统,方便我们搜索书籍、借阅图书。我们本次的Java课程设计的最终目标是实现一个图书馆管理系统,使其具有一般图书管理系统所具有的功能,能够实现管理员日志、管理员添加、管理员退出、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、书籍借阅与归还等功能。因为Java是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,因此用Java编程为我们本次程序的编写提供了方便。在设计中我们主要进行了数据库及类的设计,把整系统分成了15个类和5个表。经过应用awt、swing、sql、util等包,合理的添加了

3、按钮、菜单、文本框、文本区、表格等组件类,还包含窗口、面板等容器类,经过设计者合理的布局,完成了窗体的设计,并经过建立JDBC-ODBC桥接器连接到Access数据库后,向数据库发送SQL语句实现程序与数据库中表间的消息通信,从而实现了相应的图书馆管理系统的功能。本文主要分为绪论、系统功能介绍、数据库需求分析、系统功能实现、结论、致谢、参考文献7大块。在绪论中介绍了本次课设选题的缘由及思想。系统功能介绍中详细介绍了本图书管理系统的整体思想及其具体功能。在数据库需求分析中详细说明了数据库的需求分析、概念设计及表的设计。在系统功能实现中主要经过抓图来体现设计的结果。总之,我们的整体设计思想均在报告

4、中体现。关键词: 图书馆管理系统,Java程序设计语言,Access数据库目 录摘 要I第1章 绪 论1第2章 系统功能介绍22.1系统功能总框图22.2 模块功能介绍22.2.1 管理员模块功能介绍22.2.2 读者管理32.2.3书籍管理模块功能介绍32.2.4 书籍借阅与归还功能介绍42.2.5 借阅超时功能介绍42.3 组内任务分工4第3章 数据库设计53.1 数据库需求分析53.2 数据库概念结构设计53.3 数据库表的设计6第4章 系统功能实现84.1 管理员模块功能实现84.1.1 管理员登陆84.1.2 管理日志104.1.3 管理员添加功能实现114.1.4 管理员切换134

5、.2 读者管理模块功能实现144.2.1 读者添加144.2.2 读者修改154.2.3 读者查询174.2.4 读者删除184.3 书籍管理模块功能实现194.3.1 新书入库实现194.3.2查询功能实现214.4 书籍借阅与归还功能实现234.4.1 借阅书籍功能实现234.4.2 归还书籍功能实现254.5 借阅超时功能实现28结 论30致 谢31参考文献32第1章 绪 论随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。书籍做为人类的精神食粮,

6、在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。与此同时,为了管理大量的图书,图书管理系统也大量的出现,随着图书的大量增加,其管理难度也越来越大,如何优化管理也就成为了一个大众化的问题。现已有的图书管理系统,其功能已十分强大,为了便于管理员对图书管理系统进行妥善的管理和读者的查询,图书管理系统为管理员提供了管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库等功能,为读者提供了书籍查询、读者借阅信息查询、图书网上续借等很多功能。大学为我们提供了自由的学习环境,使我们有更多的时间到图书馆借阅书籍,让我们能够随时掌握各方面的知识,不断提

7、高自我、充实自我,但由于图书馆藏书成千上万,我们很难一本一本的去查找自己感兴趣的书籍,因此我们会经常见到学校为我们提供的图书管理系统,用时间长了便对此产生了兴趣,正好本次课程设计为我们提供了良好的机会,让我们亲自设计并实现了图书管理系统的部分功能。设计一个图书管理系统必不可少的必须对全管书籍进行分类汇总。而这就是我们所说的数据库设计的第一阶段:需求分析。在这一阶段除了对具体情况诸如实行对管理员的管理、对读者的管理、书籍管理、书籍的借阅与归还、借阅超时等功能的实现,还需要对用户的需求进行调查和分析,否则就失去了设计这个系统的意义了。对于界面的设计我们应该追求的是:美观、易读性强、清晰度高;原则是

8、:不能因为刻意追求美观而以整个界面的清晰度的牺牲作为代价,不能为了清晰度而抛弃对易读性的追求。再设计的过程中我们应该根据实际的情况进行设计,做到具体问题具体分析,不刻意追求原则。在对应的界面与Access数据库建立连接,并实现对应的SQL语句进行实现将产生的结果显示出来。并运用捕捉异常的方法,将异常信息显示出来。实现SQL语句的时候借助前台开发工具中关于数据处理的控件来完成。对于读者而言她们的需求是了解图书的基本情况,自己的借阅情况。总而言之就是实现对各个信息表的查询。对于图书管理员而言要实现的功能相对而言比较多,例如实现新书入库、Access数据库表的创立、系统的维护等等,这些都需要设计和实

9、现的。第2章 系统功能介绍2.1系统功能总框图 图书馆管理系统功能总框图,如图2-1所示。图书馆管理系统管理员读者管理书籍管理书籍借阅归还管理员管理日志管理员添加管理员切换读者添加读者信息修改读者删除新书入库书籍查询借阅书籍归还书籍借阅超时读者信息查询图2-1 系统功能框架图2.2 模块功能介绍2.2.1 管理员模块功能介绍1. 管理员登陆此模块主要是利用MenuBar添加菜单条,利用Menu和MenuItem添加菜单和菜单的各个参数,经过事件ActionEvent 能够实现进入各个模块如管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、借阅书籍、归

10、还书籍、借阅超时及退出的功能。2. 管理日志此模块能够清楚的显示出书籍借阅与归还的信息,包括书号、书名、图书证号、借/还、操作日期、已付款额。读者能够经过此模块实现的功能清楚的了解图书被借阅和归还的详细信息,从而给读者带来了很多方便。3. 管理员添加功能介绍此模块功能是增加新管理员的登陆帐户。在图书馆管理系统中必须有每一个管理者的帐户让其能够正常进行新图书证的办理、借阅书籍和归还书籍等系统管理。因此在管理员功能模块中增加了管理员添加这个功能。4. 管理员切换此模块的主要功能是进行管理员之间的切换,即单击管理员菜单下的管理员切换,就会退出当前管理员界面,从而出现管理员切换窗口,而另一管理员就能够

11、在管理员切换窗口中的用户名和密码两栏中经过输入自己的用户名和密码直接进入该系统。2.2.2 读者管理1. 读者添加此模块主要的实现功能是添加新的读者信息,即当有新的读者要看查看本图书馆中的书藉,能够经过此功能实现,当数据库中存在其新信息,即成为本图书馆的新一位读者。其中信息分别包括图书证号、学生姓名、性别、系别、班级,同时可有三项功能在此处实现,即添加、重置以及返回。2.读者修改此模块主要的实现功能对有信息更新的读者进行即时修改,以随时更新读者在数据库中的信息。本模块经过图书证号确定读者,可对读者信息的新图书证号、学短姓名、性别、系别、班级。此处可分别实现对该功能的修改、重置、返回。3. 读者

12、查询此模块主要可对所要了解的读者信息。即把读者的信息从数据库调出来,显示在该窗口中的文字区域。查询方式分别有按图书证查询、按姓名查询、按班级查询、按年级查询,并可经过办理入相应的关键字,更加缩小查询范围。此处可实现查询和返回功能。4. 读者删除此模块能够删除一些不再使用本系统的读者资料,从而达到对数据库中的清理,即清除一些不必要资料,此处有四种删除途径,分别为按图书证号删除、按姓名删除、按班级删除、安年级删除,并可经过所输入的关键字尽快找到所要删除的资料。此处可分别实现对该功能的修改、重置、返回。2.2.3书籍管理模块功能介绍1. 新书入库功能介绍此模块主要的实现功能是将新来的图书输入到图书馆

13、管理系统的书库当中,其中主要按如下信息往书库中输入,这部分的操作主要是便于书库合理的管理,有利于读者能够对新书有一个更详细的了解。其中包括如下信息:新书书号、新书名称、新书出版日期、新书出版社、入库数量、编写作者、新书单价。2. 书籍查询功能介绍在图书馆管理系统中书籍查询是最基本的功能,读者能够根据自己的需求来查询想要借阅的书籍。本系统是用Java应用程序和Access数据库一起开发的其中利用Java来编程实现功能的代码和布置运行界面。界面是由检索项、检索词和显示文本区三个部分组成的用户根据自己的需要在检索项中选择自己所要按什么字段进行查询,其中书籍查询功能的检索项中能够按书号查询、按书名查询

14、、按作者名查询、按出版社查询、按入库时间查询等基础查询。选择检索项后用户只要在检索词中添写自己所要查询的内容并确定键确认后用户要查询的内容就能够在显示文本区中显示出来。用户能够根据显示的信息得知自己所要借阅书籍的情况。2.2.4 书籍借阅与归还功能介绍1. 借阅书籍功能介绍此模块主要实现读者可凭有效的图书证号,借阅图书馆内未借出的图书。输入图书证号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。经过输入有效的图书编号,查询该图书的全部信息(包括书号、书名、作者、出版社、是否借出、价格)。借阅成功后,将该图书证号、书号、借

15、阅日期、应还日期信息插入到数据库的表中进行记录。2. 归还书籍功能介绍此模块主要实现读者凭所要归还图书的图书证号归还图书。输入所要归还的图书编号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数),供读者确认信息。还书成功后,从数据库中删除该书的借出记录,并修改数据库中的相应信息。2.2.5 借阅超时功能介绍此模块主要实现显示过期图书的信息(包括图书证号、书号、借阅日期、应还日期)提醒读者还书。2.3 组内任务分工组内分工情况如下表2-1所示。表2-1 组内分工情况表组长邹刚读者添加、查询、修改、删除。组员罗姗姗书籍借阅与归还模块、借书超期限

16、子系统。李呈呈管理员添加、新书入库、按指定条件进行图书查询。刘兰兰数据库创立、登陆界面设计、管理员模块。第3章 数据库设计在此图书馆管理系统中,使用到了一个重要的连接,即与数据库Accesss相连。数据库中存有图书馆中所信息,包括读者信息、管理员资料、借阅与退还记录。所有与管理有关的数据皆在其中,是保证系统能够正常实现各种功能的一架桥。3.1 数据库需求分析 Admi表,即管理员表,记录了用户名和密码。 Admirz表,即管理日志表,记录了书号、书名、图书证号、借/还、操作日期、已付款额。 book表,即图书表,记录了书号、书名、作者、出版社、入库时间、是否借出、价格。 borrowbook表

17、,即借阅表,记录了图书证号、书号、借阅日期、应还日期。 person表,即读者表,记录了图书证号、姓名、性别、系别、班级。3.2 数据库概念结构设计图书馆管理系统E-R图,如图3-1。mn读者图书管理员性别系别班级姓名图书证号书号书名作者出版社会化密码用户名管理管理mnm借阅1入库时间是否借出价格图3-1 图书馆管理系统E-R图3.3 数据库表的设计Admi表表中记录了能够使管理员进入该系统的用户名及密码,如表3-1所示。表3-1 管理员信息表字段名称数据类型长 度备 注用户名文 本10密 码文 本15Admirz表表中记录借还书日志,用于存下所有对图书操作的记录,以便以后能够翻阅和查找,如表

18、3-2所示。表3-2 管理日志表字段名称数据类型长 度备 注书号文 本10书名文 本15作者文 本15出版社文 本15入库时间DATE15已付款额文 本10book表表中记录了库内所有图书的所有资料,如表3-3。表3-3 图书表字段名称数据类型长 度备 注书号文 本10书名文 本15作者文 本15出版社文 本15入库时间DATE15是否借出文 本10价格文 本10person表表中记录库中所有读者的相关信息,如表3-4所示。表3-4 读者表字段名称数据类型长 度备 注图书证号文 本10姓名文 本15性别文 本15系别文 本15班级文 本15borrowbook表表内记录了此时图书的借阅情况,如

19、表3-5所示。表3-5 借阅表字段名称数据类型长 度备 注图书证号文 本10书号文 本15借阅日期DATE15应还日期DATE15第4章 系统功能实现4.1 管理员模块功能实现4.1.1 管理员登陆此模块是整个系统最主要的部分,管理员能够经过此模块实现进入其余各个模块如管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、借阅书籍、归还书籍、借阅超时及退出的功能。图书管理系统管理员界面如图4-1所示。图4-1 图书管理系统管理员主要程序代码如下:public void actionPerformed(ActionEvent e) if(e.getSour

20、ce()=itemAdmiqh)this.dispose();In winin=new In(系统登陆);if(e.getSource()=itemtc)System.exit(0);if(e.getSource()=itemAdmixj)CreatAdmi creatAdmi=new CreatAdmi(管理员添加);if(e.getSource()=itemAdmirz)WinTable wintable=new WinTable(管理日志);if(e.getSource()=itemBookrk)AddInfy addInfy=new AddInfy();if(e.getSource()

21、=itemPersonlr)Winpersonadd winperson=new Winpersonadd(读者添加);if(e.getSource()=itemPersoncx)Winpersonsearch winperson=new Winpersonsearch(读者信息查询);if(e.getSource()=itemPersonxg)Winpersonmodify winperson=new Winpersonmodify(读者信息修改);if(e.getSource()=itemPersonsc)Winpersondelete winperson=new Winpersondel

22、ete(读者删除);if(e.getSource()=itemBookcx)Windowjj ok=new Windowjj();if(e.getSource()=itemchaoshi)day win=new day(); if(e.getSource()=itemBorrowjs)Borrowbook win=new Borrowbook(); if(e.getSource()=itemBorrowhs)Returnbook win=new Returnbook(); 4.1.2 管理日志此模块经过定义类WinTable继承顶层容器JFrame,再添加普通容器 JScrollPane、Jp

23、anel,然后经过BorderLayout布局创立界面,最后主要经过数组利用while循环在连接好的数据库中查找表Admirz中的内容,从而实现了能够清楚的显示出书籍借阅与归还信息的功能。管理日志界面如图4-2所示。图4-2 管理日志主要程序代码如下:WinTable(String s)super(s);try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException e)System.out.println(+e);try con=DriverManager.getConnection(jdbc:odbc

24、:sun,123,123);sql=con.createStatement();rs=sql.executeQuery(SELECT * FROM Admirz);while(rs.next()k+;catch(SQLException e)System.out.println(+e);try con=DriverManager.getConnection(jdbc:odbc:sun,123,123);sql=con.createStatement();rs=sql.executeQuery(SELECT * FROM Admirz);a=new Objectk6;while(rs.next(

25、)for(int j=0;j6;j+)if(j5)aij=rs.getString(j+1);elseaij=rs.getDouble(j+1);i+;con.close();catch(SQLException e)System.out.println(+e);table=new JTable(a,name);Container con=getContentPane();getContentPane().add(new JScrollPane(table),BorderLayout.CENTER);setBounds(120,125,700,500);setVisible(true);val

26、idate();addWindowListener(new DisposeListener();4.1.3 管理员添加功能实现功能介绍:该程序主要实现管理员的添加,以便于让实行对图书管理员的管理。按照标签提示输入信息,然后点击确定按钮。首先判断管理员名文本框中输入的文本信息是否符合大于3个字符并小于10个字符的规则,如果不符合规则,则提示错误,如果符合规则,再到Admi表中进行查询,如果相同则用提示框提示错误。若无相同则可注册。但还需要保证前后两次的密码相同,才能成功注册,管理员登陆窗口如图4-3所示。图4-3 管理员添加成功界面主要程序代码如下: public void actionPerf

27、ormed(ActionEvent c)String b=textUser.getText();String d=textPassword1.getText();String g=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()10)JOptionP

28、ane.showMessageDialog(null,用户名应在310个字符之间);textUser.setText(null);elsetry Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException e)System.out.println(+e);try con=DriverManager.getConnection(jdbc:odbc:sun,123,123);sql=con.createStatement();rs=sql.executeQuery(SELECT * FROM Admi WHERE

29、 用户名=+b+);if(rs.next()String user=rs.getString(1);if(b.equals(user) JOptionPane.showMessageDialog(null,此管理员已被注册,警告,JOptionPane.WARNING_MESSAGE);elseif(d.equals(g) sql.executeUpdate(INSERTINTOAdmi VALUES+(+b+,+d+);this.dispose();JOptionPane.showMessageDialog(null,管理员注册成功); else JOptionPane.showMessag

30、eDialog(null,两次输入密码不一致,警告,JOptionPane.ERROR_MESSAGE); con.close(); catch(SQLException e)System.out.println(+e);4.1.4 管理员切换此模块功能是退出当前管理员界面,进入管理员切换窗口,另一用户能够经过输入自己的用户名和密码直接进入该系统。但此用户名和密码都必须与已经连接好的数据库中表Admi中的用户名和密码相吻合。管理员切换界面如图4-4所示。图4-4 管理员切换主要程序代码如下:public void windowClosing(WindowEvent e)e.getWindow(

31、).dispose();4.2 读者管理模块功能实现4.2.1 读者添加功能介绍:添加新的读者,使其能够进入图书系统阅览图书,读者添加如图4-5所示。 图4-5 读者添加主要程序代码如下: public void actionPerformed(ActionEvent e)if(e.getSource()=button1) / 添加String ch=text1.getText();if(ch.length()!=5)JOptionPane.showMessageDialog(null,请输入5位图书证号!);text1.setText(null);else/连接数据库String numbe

32、r,name,sex,dept,classes,record,insertStr;number=text1.getText();name=text2.getText();if(box1.getState()=true)sex=box1.getLabel();elsesex=box2.getLabel();dept=text3.getText();classes=text4.getText();rs=sql.executeQuery(SELECT * FROM person WHERE 图书证号=+number+);if(rs.next()JOptionPane.showMessageDialo

33、g(null,此图书证号已存在,警告,JOptionPane.WARNING_MESSAGE);text1.setText(null);record=(+number+,+name+,+sex+,+dept+,+classes+);insertStr=INSERT INTO person VALUES+record;sql.executeUpdate(insertStr); JOptionPane.showMessageDialog(null,添加成功!);con.close();4.2.2 读者修改功能介绍:对读者需要修改的资料进行重定义,读者信息修改如图4-6所示。图4-6 读者信息修改主

34、要程序代码如下:public void actionPerformed(ActionEvent e) if(e.getSource()=button1) /修改String ch=text1.getText();if(ch.length()!=5)JOptionPane.showMessageDialog(null,请输入5位图书证号!);text1.setText(null);elsetry/连接数据库String number,name,sex,dept,classes,newnum,record,updateStr;newnum=text5.getText();number=text1.

35、getText();name=text2.getText();if(box1.getState()=true)sex=box1.getLabel();elsesex=box2.getLabel();dept=text3.getText();classes=text4.getText();sql=con.createStatement();rs=sql.executeQuery(SELECT * FROM person where 图书证号=+newnum+);if(rs.next()rs1=sql.executeQuery(SELECT * FROM person where 图书证号=+nu

36、mber+);if(rs1.next()JOptionPane.showMessageDialog(null,此图书证号已存在,警告,JOptionPane.WARNING_MESSAGE);text1.setText(null);elseupdateStr=UPDATE person SET 图书证号=+number+,+姓名=+name+,+性别=+sex+,+系别=+dept+,+班级=+classes+WHERE 图书证号=+newnum+;sql.executeUpdate(updateStr);JOptionPane.showMessageDialog(null,修改成功!);el

37、seJOptionPane.showMessageDialog(null,查无此人!);/连接数据库con.close();4.2.3 读者查询功能介绍:能够对数据库中已有的读者信息进行查询。读者查询如图4-7。图4-7读者信息查询主要程序代码如下:public void actionPerformed(ActionEvent e) if(e.getSource()=button1 | e.getSource()=text) / 查询area.setText(null);if(str=按图书证号查询 | str=null) & text.getText()!=null)boolean flag

38、=true,f=true;String num=text.getText();/连接数据库rs=sql.executeQuery(SELECT * FROM person where 图书证号=+num+); while(rs.next()f=false;String number=rs.getString(图书证号);String name=rs.getString(姓名);String sex=rs.getString(性别);String dept=rs.getString(系别);String classes=rs.getString(班级);if(flag)area.append(图书证号为+num+的学生信息如下:);flag=false;area.append(n姓名:+name+ 性别:+sex+ 系别:+dept+ 班级:+classes+n);if(f)area.append(查无此人!);catch(SQLException c)System.out.println(c);4.2.4 读者删除功能介绍:删除数据库中已有信息。读者删除如图4-8所示。图4-8 读者删除主要程序代码如下:if(e.getSource()=button1) / 删除area.setText(null);if(str=按图书证号删除 | st

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服