图书管理系统java_第1页
图书管理系统java_第2页
图书管理系统java_第3页
图书管理系统java_第4页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品文档1. 管理员登陆此模块主要是利用 MenuBar 添加菜单条,利用 Menu 和 MenuItem 添加菜单和菜单的各个参数,通过事件 ActionEvent 可以实现进入各个模块如管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、借阅书籍、归还书籍、借阅超时及退出的功能。2. 管理日志此模块可以清楚的显示出书籍借阅与归还的信息,包括书号、书名、图书证号、借 /还、操作日期、已付款额。读者可以通过此模块实现的功能清楚的了解图书被借阅和归还的详细信息,从而给读者带来了很多方便。3. 管理员添加功能介绍此模块功能是增加新管理员的登陆帐户。在图书馆

2、管理系统中必须有每一个管理者的帐户让其可以正常进行新图书证的办理、借阅书籍和归还书籍等系统管理。所以在管理员功能模块中增加了管理员添加这个功能。4. 管理员切换此模块的主要功能是进行管理员之间的切换,即单击管理员菜单下的管理员切换,就会退出当前管理员界面,从而出现管理员切换窗口,而另一管理员就可以在管理员切换窗口中的用户名和密码两栏中通过输入自己的用户名和密码直接进入该系统。2.2.2 读者管理1. 读者添加此模块主要的实现功能是添加新的读者信息,即当有新的读者要看查看本图书馆中的书藉,可以通过此功能实现,当数据库中存在其新信息,即成为本图书馆的新一位读者。其中信息分别包括图书证号、学生姓名、

3、性别、系别、班级,同时可有三项功能在此处实现,即添加、重置以及返回。2.读者修改此模块主要的实现功能对有信息更新的读者进行即时修改,以随时更新读者在数据库中的信息。本模块通过图书证号确定读者,可对读者信息的新图书证号、学短姓名、性别、系别、班级。此处可分别实现对该功能的修改、重置、返回。3. 读者查询此模块主要可对所要了解的读者信息。即把读者的信息从数据库调出来,显示在该窗口中的文字区域。查询方式分别有按图书证查询、按姓名查询、按班级查询、按年级查询,并可通过办理入相应的关键字,更加缩小查询范围。此处可实现查询和返回功能。4. 读者删除此模块可以删除一些不再使用本系统的读者资料,从而达到对数据

4、库中的清理,即清除一些不必要资料,此处有四种删除途径,分别为按图书证号删除、按姓名删除、按班级删除、安年级删除,并可通过所输入的关键字尽快找到所要删除的资料。此处可分别实现对该功能的修改、重置、返回。.精品文档2.2.3 书籍管理模块功能介绍1. 新书入库功能介绍此模块主要的实现功能是将新来的图书输入到图书馆管理系统的书库当中, 其中主要按如下信息往书库中输入 , 这部分的操作主要是便于书库合理的管理,有利于读者能够对新书有一个更详细的了解。其中包括如下信息:新书书号、新书名称、新书出版日期、新书出版社、入库数量、编写作者、新书单价。2. 书籍查询功能介绍在图书馆管理系统中书籍查询是最基本的功

5、能,读者可以根据自己的需求来查询想要借阅的书籍。本系统是用 Java 应用程序和 Access 数据库一起开发的其中利用 Java 来编程实现功能的代码和布置运行界面。界面是由检索项、检索词和显示文本区三个部分组成的用户根据自己的需要在检索项中选择自己所要按什么字段进行查询,其中书籍查询功能的检索项中可以按书号查询、按书名查询、按作者名查询、按出版社查询、按入库时间查询等基础查询。选择检索项后用户只要在检索词中添写自己所要查询的内容并确定键确认后用户要查询的内容就可以在显示文本区中显示出来。用户可以根据显示的信息得知自己所要借阅书籍的情况。2.2.4 书籍借阅与归还功能介绍1. 借阅书籍功能介

6、绍此模块主要实现读者可凭有效的图书证号,借阅图书馆内未借出的图书。输入图书证号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数) ,供读者确认信息。通过输入有效的图书编号,查询该图书的全部信息(包括书号、书名、作者、出版社、是否借出、价格) 。借阅成功后,将该图书证号、书号、借阅日期、应还日期信息插入到数据库的表中进行记录。2. 归还书籍功能介绍此模块主要实现读者凭所要归还图书的图书证号归还图书。输入所要归还的图书编号后,可显示了该图书证持有者的全部信息(包括借书证号、姓名、性别、所在班级、所属系部、当前可借阅图书个数) ,供读者确认信息。

7、还书成功后,从数据库中删除该书的借出记录,并修改数据库中的相应信息。2.2.5 借阅超时功能介绍此模块主要实现显示过期图书的信息(包括图书证号、书号、借阅日期、应还日期)提醒读者还书。3.1 数据库需求分析 Admi 表,即管理员表,记录了用户名和密码。 Admirz 表,即管理日志表,记录了书号、书名、图书证号、借 /还、操作日期、已付款额。.精品文档 book 表,即图书表,记录了书号、书名、作者、出版社、入库时间、是否借出、价格。 borrowbook 表,即借阅表,记录了图书证号、书号、借阅日期、应还日期。 person表,即读者表,记录了图书证号、姓名、性别、系别、班级。3.2 数据

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

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

10、.精品文档第 4 章 系统功能实现4.1 管理员模块功能实现4.1.1 管理员登陆此模块是整个系统最主要的部分,管理员可以通过此模块实现进入其余各个模块如管理日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、借阅书籍、归还书籍、借阅超时及退出的功能。图书管理系统管理员界面如图 4-1 所示。图 4-1 图书管理系统管理员主要程序代码如下:public void actionPerformed(ActionEvent e)if(e.getSource()=itemAdmiqh)this.dispose();In winin=new In( 系统登陆 );i

11、f(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()=itemPersonlr)Winpersonadd winperson=new Winpe

12、rsonadd(读者添加 );if(e.getSource()=itemPersoncx)Winpersonsearch winperson=new Winpersonsearch(读者信息查询 );if(e.getSource()=itemPersonxg)Winpersonmodify winperson=new Winpersonmodify(读者信息修改 );if(e.getSource()=itemPersonsc)Winpersondelete winperson=new Winpersondelete(读者删除 );if(e.getSource()=itemBookcx)Wind

13、owjj 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、Jpanel,然后通过 BorderLayout 布局创建界面,最后主要通过数

14、组利用 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:sun,123,123);sql=con.crea

15、teStatement();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()for(int j=0;j6;j+)i

16、f(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);validate();addWindowLi

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

18、tionEvent 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)JOptionPane.sh

19、owMessageDialog(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

20、 用户名 =+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(INSERTINTOAdmiVALUES+(+b+,+d+);this.dispose();JOptionPane.showMessageDialog(null,管理员注册成功 );else JOptionPane.sho

21、wMessageDialog(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

22、 e)e.getWindow().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);els

23、e/连接数据库String number,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 *FROMperson WHERE图书证 号=+number+);if(rs.next()JOpti

24、onPane.showMessageDialog(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 读者修改功能介绍:对读者需要修改的资料进行重定义,

25、读者信息修改如图4-6 所示。图 4-6 读者信息修改主要程序代码如下 :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;n

26、ewnum=text5.getText();number=text1.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 *FROMperson where 图 书 证 号=+newnum+);if(rs.next()rs1=sql.executeQuery

27、(SELECT * FROM person where 图书证号=+number+);if(rs1.next()JOptionPane.showMessageDialog(null,此图书证号已存在,警告 ,JOptionPane.WARNING_MESSAGE);text1.setText(null);else.精品文档updateStr=UPDATE person SET 图书证号 =+number+,+ 姓名 =+name+,+ 性别 =+sex+,+ 系别 =+dept+,+ 班级=+classes+WHERE图书证号 =+newnum+;sql.executeUpdate(updat

28、eStr); JOptionPane.showMessageDialog(null,修改成功! );elseJOptionPane.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

29、= 按图书证号查询 | str=null) & text.getText()!=null)boolean flag=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.

30、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.get

31、Source()=button1)/ 删除area.setText(null);if(str= 按图书证号删除 | str=null) & text.getText()!=null) String num=text.getText();tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);catch(ClassNotFoundException c)System.out.println(+c);/ 连接数据库rs=sql.executeQuery(SELECT * FROM person where 图书证号 =+num+); if(rs.next()a

32、rea.append(该信息已删除! );String delStr=DELETE FROM person WHERE 图书证号 =+num+;sql.executeQuery(delStr);con.close();catch(SQLException c)System.out.println(c);4.3 书籍管理模块功能实现4.3.1 新书入库实现功能介绍 : 此界面主要完成的功能是往数据库 book 表中添加新书的记录, 在 book 表中可查看最新的记录。在新书信息输入的过程中,会出现一些异常处理,如某个字段的信息没有填写;新书信息输入字段的过程中,输入的字段类型与给定的字段类型与输

33、入不匹配(如:货币、日期);输入的信息长度超过给定的字段长度等。如果填写的内容正确则可以成功将新书添加入库,新书入库窗口如图 4-9 所示。.精品文档图 4-9 添加新书入库界面主要程序代码如下:public void actionPerformed(ActionEvent c) i f (c.getSource()=button2) this.dispose();if (c.getSource()=button1)/ 连接数据库rs=stm.executeQuery(select 书号 from book where 书号 = +textField1.getText() + );if (rs

34、.next()JOptionPane.showMessageDialog(null, 此书号已存在 !, 警告,JOptionPane.WARNING_MESSAGE);return;float m;String str1,str2,str3,str4,str6,str7,str8,str9,str10;str1=textField1.getText();str10=未借出 ;m=Float.parseFloat(str9);str=(+str1+,+str3+,+str8+,+str6+,+str7+,+str10+,+m+);String insert=INSERT INTO book(书

35、号 ,书名 ,作者 ,出版社 ,入库时间 ,是否借出 ,价格 ) VALUES+str;stm.executeUpdate(insert);textField1.setText();JOptionPane.showMessageDialog(null, 增加信息成功 !);con.close();catch (Exception e)JOptionPane.showMessageDialog(null, 请认真检查各项 !然后重试 ., 异常警告 ,JOptionPane.WARNING_MESSAGE);.精品文档4.3.2 查询功能实现功能介绍:本系统包含两项一是检索项令一个是检索词,在检

36、索项中用户可以根据自己的需求来选择所要查询的项目并在检索词中添写自己所要查询的内容。本系统副带四个按钮:确定、取消、查看全库,该图书馆管理系统的查询界面如图4-10 所示。图 4-10 查询系统界面在该系统中为了用户使用方便还设有查看全库一项,用户可以通过这一功能来查看全库的图书,所查询的内容将在下方的文本区中显示,其界面4-11 所示。图 4-11 查看全库信息使用检索词必须得满足一定的查询条件才可以执行,用户必须得在检索项中选择查询方式并添好检索词才可查询否则系统会显示未找到您要查找的内容并给以提示,如图 4-12 所示。图 4-12 检索项按书号查询.精品文档主要程序代码如下:publi

37、c void itemStateChanged(ItemEvent e)area.setText(null);String name=choice1.getSelectedItem();area.append( 请您在检索项中输入您要查找的内容: );public void actionPerformed(ActionEvent e)if (e.getSource()=button2)/取消键text1.setText(null);else if (e.getSource()=button3)/返回键this.dispose(); else if (e.getSource()=button4)

38、/ 查看全库Connection con; Statement sql; ResultSet rs;try/ 建立数据源 Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch(ClassNotFoundException c)System.out.println(+c);trycon=DriverManager.getConnection(jdbc:odbc:sun,);sql=con.createStatement(); rs=sql.executeQuery(select * from book );while(rs.next()String

39、 bookname=rs.getString(书名 );String auther=rs.getString(作者 );String chubanshe=rs.getString(出版社 );String bookno=rs.getString(书号 );String data=rs.getString(入库时间 );String yesorno=rs.getString(是否借出 );area.append(n书号 :+bookno);area.append(书名 :+bookname);area.append(作者 :+auther);area.append(出版社 :+chubanshe

40、);.精品文档area.append(n 入库时间 :+data);area.append(是否借出 :+yesorno);con.close();catch(SQLException c) System.out.println(+c);4.4 书籍借阅与归还功能实现4.4.1 借阅书籍功能实现输入图书证号 “0001后”点击查看按钮,可显示该读者信息,若输入图书证号错误,点击查看按钮则会弹出借书证错误对话框,如图 4-13 所示。输入图书编号 “0000003按”回车键,可显示该图书信息, 若输入图书编号错误, 按回车键则会弹出图书编号错误对话框, 如图 4-14 所示。点击借阅按钮则会弹出

41、图书借阅成功对话框。 借阅书籍功能的具体实现如图 4-15 所示。图 4-13 借书证错误图 4-14 图书编号错误图 4-15 借阅书籍.精品文档主要程序代码如下:public void actionPerformed(ActionEvent e)if(e.getSource()=tj)if(!tscard.getText().equals(null)&!tsid.getText().equals(null)String str1,str2;str1=tsid.getText();str2=tscard.getText();tryClass.forName(sun.jdbc.odbc.Jdb

42、cOdbcDriver);catch(ClassNotFoundException c)System.out.println(+c);/连接数据库rs=sql.executeQuery(SELECT * FROM person where 图书证号=+str2+);String ls1=null,ls2=null,ls3=null;int is1=0;if(rs.next()ls2=str2;con.close();/连接数据库rs=sql.executeQuery(SELECT*FROMbookwhere书号=+str1+);if(rs.next()if(rs.getString(是否借出 ).equals(未借出 )ls1=str1;ls3=rs.getString(书名 );con.close();/连接数据库.精品文档rs=sql.executeQuery(SELECT count(书号 ) FROM borrowbook where 图书证号 =+str1+);rs.next();is1=rs.getInt(1);con.close();/连接数据库if(ls1=str1&ls2=str2&is15) Date da=new Date();int y=da.getYear()+1900;int m=da.getMonth()+1;int d=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论