目录题目简述--------------------------------01需求分析--------------------------------01数据结构--------------------------------01功能模块--------------------------------02程序设计--------------------------------02运行截图--------------------------------04分析总结--------------------------------08程序源码--------------------------------08Java语言程序设计课程报告-1-图书信息管理系统题目简述:题目名称:图书信息管理系统要求:使用图形用户界面,用数据库建立1或2个图书信息表,能连接数据库并实现查询、增加、删除、修改等功能。需求分析:图书信息管理系统应该具备图书的信息管理功能和流通管理功能。其中,信息管理功能包括查找,增加,修改,删除,显示全部信息等模块。流通管理功能包括图书借阅,归还等模块。因此分别设计各个模块,实现不同的功能。数据结构:用SQLSever建立数据库的表,用一张表存放图书的ID号码,图书名称,图书的所有者,图书状态,图书的使用者(允许为空)。具体设计如下图所示:图书ID,图书名称,图书所有者,图书的状态,图书使用者(允许为空)均为varchar(50)类型,在Java中可以方便的查询。图书存储信息的具体内容如下图所示:Java语言程序设计课程报告-2-功能模块:程序设计:主框架设计:主框架上方包含三个按钮,分别是“系统管理”、“图书信息管理”和“图书流通管理”,定义JMenuBar类的对象、JMenu类的对象和JMenuItem类的对象,分别表示菜单栏、菜单组和菜单选项,然后调用初始化函数,将不同类的对象通过setText()函数设定不同的文本,然后将其添加到窗口容器中。对每个按钮分别添加不同的消息监听,响应相应的消息,调用不同的类完成不同的功能。消息监听功能详见源代码bookMain类。图书信息管理模块包括增加图书,删除图书,编辑图书,查找图书和显示图书信息。具体的方法实现在bookBean中实现,当用户点击相应的按钮时,消息监听模块就会调用bookBean的构造函数产生一个bookBean的对象,然后通过对象调用bookBean类中的相应方法,完成事件的相应。增加图书信息模块:调用bookAdd类的构造函数产生一个该类的对象,在初始化函数中显示信息输入对话主程序窗口系统操作图书信息管理图书流通管理退出增加图书显示图书编辑图书查找图书删除图书图书借阅图书归还Java语言程序设计课程报告-3-框,提示用户输入图书ID,图书名称和图书所有者,由于刚增加的图书没有被借阅,所以图书状态和图书使用者为默认值,分别为空闲和null,因此用户不必输入这两个属性值。完成输入后,点击确定按钮,消息监听模块将调用bookBean的构造函数产生一个该类的对象,通过该对象调用bookBean的bookAdd函数,执行SQL语句,通过insert语句完成图书信息的增加插入功能。删除图书信息模块:调用bookDel类的构造函数产生一个该类的对象,在初始化函数中显示信息输入对话框,提示用户输入要删除图书的ID。完成输入后,点击确定按钮,消息监听模块将调用bookBean的构造函数产生一个该类的对象,通过该对象调用bookBean的bookDel函数,执行删除的SQL语句,通过delete语句完成图书信息的删除功能。修改图书信息模块:点击按钮后调用bookEdit类的构造函数产生一个该类的对象,在初始化函数中显示信息输入对话框,提示用户输入要修改图书的ID和其他图书信息,用户将信息输入完成后,点击确定按钮,消息监听模块将调用bookBean的构造函数产生一个该类的对象,通过该对象调用bookBean的bookEdit函数,执行修改的SQL语句,通过update语句完成图书信息的编辑功能。查找图书信息模块:点击按钮后调用bookSearch类的构造函数产生一个该类的对象,在初始化函数中显示信息输入对话框,提示用户输入要查找图书的ID,用户将信息输入完成后,点击确定按钮,消息监听模块将调用bookResult的构造函数产生一个该类的对象,通过该对象的构造函数,执行查找的SQL语句,通过select语句完成图书信息的查找功能,然后构造图标,将查询到的信息显示在图表中。显示图书信息模块:点击按钮后调用bookDisplay类的构造函数产生一个该类的对象,在该对象的构造函数中调用bookAllSearch函数,查询所有的图书信息,显示在表格中。图书流通管理模块包含图书的借阅与归还功能,其实就是对数据库中的某一记录集的某一属性进行修改。图书借阅模块:用户输入要借阅的图书名称和本人姓名,点击确定后,将调用bookBean的构造函数产生一个对象,通过该对象调用bookBook函数,修改数据库中的信息,将图书状态属性变为Java语言程序设计课程报告-4-已借,将图书用户属性变为用户姓名,完成图书的借阅功能。图书归还模块:用户输入要归还的图书名称,点击确定后,将调用bookBean的构造函数产生一个对象,通过该对象调用bookReturn函数,修改数据库中的信息,把图书的状态置为空闲,将图书用户置为空,从而完成图书的归还功能。备注:报告此部分未附源代码,详见程序源码部分。运行截图:图书信息增加:Java语言程序设计课程报告-5-图书信息修改:图书信息查询:Java语言程序设计课程报告-6-图书信息删除:图书信息显示:Java语言程序设计课程报告-7-图书借阅:图书归还:Java语言程序设计课程报告-8-分析总结:本程序在数据库设计方面可以改为多张表存储的方式,用三张表来记录图书信息,借阅关系和学生信息,这样可以减少数据冗余,还可以增加一些其他功能,比如图书挂失等功能。由于刚刚接触到Java界面设计,所以本程序在界面设计方面还有有待改进的地方。程序源码:DatabaseConn.javapackagebookDB;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassDatabaseConn{privateStatementstmt=null;ResultSetrs=null;privateConnectionconn=null;Stringsql;publicDatabaseConn(){}publicvoidOpenConn()throwsException{try{Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);conn=DriverManager.getConnection(jdbc:odbc:library);}catch(Exceptione){System.err.println(数据库连接:+e.getMessage());}}publicResultSetexecuteQuery(Stringsql){stmt=null;rs=null;try{stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=stmt.executeQuery(sql);}catch(SQLExceptione){System.err.println(查询数据:+e.getMessage());}returnrs;}publicvoidexecuteUpdate(Stringsql){stmt=null;rs=null;Java语言程序设计课程报告-9-try{stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=stmt.executeQuery(sql);conn.commit();}catch(SQLExceptione){System.err.println(更新数据:+e.getMessage());}}publicvoidcloseStmt(){try{stmt.close();}catch(SQLExceptione){System.err.println(释放对象:+e.getMessage());}}publicvoidcloseConn(){try{conn.close();}catch(SQLExceptionex){System.err.println(释放对象:+ex.getMessage());}}publicstaticStringtoGBK(Stringstr){try{if(str==null)str=null;elsestr=newString(str.getBytes(ISO-8859-1),GBK);}catch(Exceptione){System.out.println(e);}returnstr;}}packagebookDB;importjava.awt.AWTEvent;importjava.awt.BorderLayout;importjava.awt.Container;importjava.awt.Font;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjavax.swing.JFrame;importjavax.swing.JMenu;Java语言程序设计课程报告-10-importjavax.swing.JMenuBar;importjavax.swing.JMenuItem;bookMain.javapublicclassbookMainextendsJFrameimplementsActionListener{privatestaticfinallongserialVersionUID=1L;//----------建立菜单栏----------JMenuBarmainMenu=newJMenuBar();//--------------建立系统管理菜单组--------------JMenumenuSystem=newJMenu();JMenuItemitemExit=newJMenuItem();JMenumenubook=newJMenu();JMenumenuevent=newJMenu();JMenuItemitemAdd=newJMenuItem();JMenuItemitemEdit=newJMenuItem();JMenuItemitemDelete=newJMenuItem();JMenuItemitemSelect=newJMenuItem();JMenuItemitemBook=newJMenuItem();JMenuItemitemReturn=newJMenuItem();JMenuItemitemDisplay=newJMenuItem();//------------创建窗体模板对象--------------publicstaticbookInfom_stu=newbookInfo();publicbookMain(){enableEvents(AWTEvent.WINDOW_EVENT_MASK);this.setDefaultClo