java第三次作业-管理信息系统.doc_第1页
java第三次作业-管理信息系统.doc_第2页
java第三次作业-管理信息系统.doc_第3页
java第三次作业-管理信息系统.doc_第4页
java第三次作业-管理信息系统.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

陈聪Java语言课程期末作业Java语言课程期末作业题 目 第7题: 管理信息系统 学 院 计算机学院 专 业 班 别 学 号 姓 名 陈聪 2015年06月20日19一、课程题目 第7题:管理信息系统(3)图书馆管理系统 功能要求:用数据库建立1或2个图书信息表。(不限使用哪种数据库)具备管理图书功能:增加、删除、修改某些图书的信息。具备还书、借书功能。 界面要求:使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。二、题目分析与设计 1. 所使用的开发环境Eclipse,数据库使用SQL Server 2005 。2. 论述题目的需求。给出软件功能架构图。(1)题目的需求: 功能要求:用数据库建立1或2个图书信息表。具备管理图书功能:增加、删除、修改某些图书的信息。具备还书、借书功能。界面要求:使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。(2)软件功能架构图: 图书馆管理系统分为四大功能模块,分为基础数据维护,图书借阅管理,新书订购功能,系统维护。本系统各个部分及其包括的功能模块如图: 系统维护 图书馆管理 图书借阅管理 新书订购管理 基础数据维护读者信息管理验收新书新书订购密码管理用户管理图书查询图书还书管理图书借书管理图书类别管理图书信息管理3. 论述界面设计过程,指出其设计上的创意及组件的布局策略。(1)系统流程图如下图:(2) 系统界面设计:1)首先是图书馆管理系统登陆界面,如下图所示。输入用户名“我”,密码“c”。 2)单击“登录”,就会打开系统主界面,如下图所示:3)选择“基础数据维护”|“读者信息管理”|“读者信息添加”,出现以下界面,用于将读者相关信息添加至数据库表中。4) 选择“基础数据维护”|“读者信息管理”|“读者修改与删除”,出现以下界面,用于展示读者相关信息,实现修改与删除读者信息。5)选择“基础数据维护”|“图书类别管理”|“图书类别添加”,出现以下界面,用于添加图书类别。 6) 选择“基础数据维护”|“图书类别管理”|“图书类别修改”,出现以下界面,用于修改图书类别。 7) 选择“基础数据维护”|“图书信息管理”|“图书信息添加”,出现以下界面,用于添加图书信息。 8) 选择“基础数据维护”|“图书信息管理”|“图书修改”,出现以下界面,用于修改图书信息。 4. 论述程序逻辑的实现,包括类的设计、对象的协作过程等,必要时加以各种图形和表格辅助论述。不得以粘贴代码的方式代替设计部分。(1) 数据库连接及操作类的编写 数据库连接及操作类通常包括连接数据库的方法getConnection,执行查询语句的方法executeQuery(),执行更新操作的方法executeUpdate(),关闭数据库连接的方法close()。1)在Dao.java类的构造方法中创建数据库连接操作。在此类中首先定义数据库连接驱动包名,数据库连接路径,数据库连接用户名,密码等静态变量,然后在构造函数中实现数据库连接操作。在数据库连接代码中需要添加try.catch关键字,捕捉数据库连接时可能抛出的异常。关键代码如下:protected static String dbClassName = com.microsoft.sqlserver.jdbc.SQLServerDriver;protected static String dbUrl = jdbc:sqlserver:/localhost:1433;+ DatabaseName=db_library;protected static String dbUser = sa;protected static String dbPwd = cc;private static Connection conn = null;private Dao() try if (conn = null) Class.forName(dbClassName);conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); catch (Exception ee) ee.printStackTrace();2) 创建执行查询语句的方法executeQuery,其返回值为ResultSet结果集。首先需要初始化Dao对象,调用构造函数,从而获取数据库连接。executeQuery方法代码如下:private static ResultSet executeQuery(String sql) try if(conn=null)new Dao();return conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE).executeQuery(sql); catch (SQLException e) e.printStackTrace();return null; finally 3)创建执行更新操作的方法executeUpdate,它的返回值为int类型的整数,此返回值代表数据更新的操作是否成功,返回1代表成功,不成功则返回-1,其关键代码如下:private static int executeUpdate(String sql) try if(conn=null)new Dao();return conn.createStatement().executeUpdate(sql); catch (SQLException e) e.printStackTrace();return -1; finally 4)为了避免运行程序时资源浪费,优化项目的运行速度,需要在完成数据库操作后,关闭数据库连接,其关键代码如下:public static void close() try conn.close(); catch (SQLException e) e.printStackTrace();finallyconn = null;(2)登陆模块设计 登陆模块式图书馆管理系统的入口,在运行本系统后,首先进入的便是登陆窗体。在该窗体中,系统管理员可以通过输入正确的管理员名称与密码登陆到系统,当用户没有输入管理员的名称或密码时,系统将会弹出相应地提示信息。 在本系统中,登陆模块窗体继承了JFrame类。在设计登陆窗体前,需要初始化JPanel组件,然后设置JPanel的布局。依据登陆模块的整体布局,在登陆窗体中使用了BorderLayout布局管理器。BorderLayout布局管理器是JFrame的默认布局管理器,它可以让程序员选择每个组件的摆放位置,例如:Class Mypanel extendsJPanelsetLayout(new BorderLayout();add(button,BorderLayout.SOUTH);中部的面板使用GridLayout布局管理器。GridLayout布局管理器按照行和列来排行所以的组件例如:Panel.setLayout(new GridLayout(5,4);/在初始化时分别指定网格的行数和列数在南部的面板中使用FlowLayout布局管理器。中部面板放置用户名标签,用户名文本框与密码标签,密码文本框,其中用户名文本框使用JTextField组件,密码文本框使用JPasswordField组件,可以在初始化文本框指定时指定文本框时指定文本框的列数与文本框的初始值。例如:JTextField textField=new JTextField(Default input,20)/指定文本框列数和初始值JPasswordField password=new JPasswordFiled(20);/初始化密码框为了增加登陆窗体的美观,将密码框的回显字符设置为*,可以用如下代码进行设置:password.setEchochar(*);当窗体设计完成后,需要进行管理员登陆验证操作,这时需要为登陆按钮添加按钮监听事件。可以讲按钮监听事件写入内部类中,它实现ActionListener借口,在内部类中重写actionPerformed()方法,实现登陆验证操作。1)首先在BookLoginFrame类构造函数中设计登陆窗口的整体布局,包括添加窗体关闭按钮,最小化按钮,设置窗体大小等相关属性。2)为方便在登陆验证时取值与传值,需要创建一个对应于tb_operator表字段的JavaBean,这个类除了以数据表字段命名的成员变量之外,还创建与成员变量相对应的setXXX(),getXXX()方法。3)为了在其他窗体中取得当前登陆用户名称,需要在BookLoginIFrame.java类中创建一个Operator类型的成员变量,用户创建对应的setXXX()与getXXX()方法。4)分别为登陆按钮与重置按钮设置监听事件。5)在Dao类中创建登陆验证方法,在此方法中查询文本框中输入字符串是否与操作员数据表数据匹配,关键代码如下:(3)主窗体设计主窗体的设计中,使用到JMenuBar类来创建菜单栏,菜单栏的创建比较简单,使用JMenuBar的构造函数初始化菜单栏即可。例如:JMenuBar menubar=new JMenuBar(); /创建菜单栏frame.setJMenu=new JMenu(menuBar); /将菜单栏放入顶层框架JMenu editMenu=new JMenu(图书类别管理); /在菜单栏中创建顶层菜单menuBar.add(editzMenu); /将顶层菜单栏添加到菜单栏中JMenuItem exit=new JMenuItem(退出); /在菜单栏中创建菜单项editMenu.add(exit); /将菜单项添加到顶层菜单中editMenu.addSeperator(); /添加分隔符JMenu.bookTypeAdd=new JMenu(图书添加); /创建子菜单editMenu.add(bookTypeAdd);/在顶层菜单中添加子菜单1)创建Library类,在它的构造函数中设置主窗体相关属性,如窗体大小,窗体标题等相关属性,还可以为窗体设置背景图片,并调用创建菜单栏的方法。2)编写创建菜单栏方法,可以初始化JMenuBar类对象创建顶层菜单,并在顶层菜单上添加相关菜单项与子菜单,然后为菜单栏添加图标,为菜单栏添加图标可以使用JMenu类中的setIcon()方法进行添加。3)最后在Library.java类中的主函数中调用登陆窗体,如果登入成功,初始化Library.java对象,如果登入失败,则弹出提示对话框。(4)图书信息管理模块图书馆信息管理模块主要包括图书信息添加,图书信息修改两个功能。在图书馆信息添加窗体中管理员可以录入图书相关信息,包括名称,类别等。1)首先创建图书信息添加窗体。2)在图书馆信息添加窗体中添加按钮监听事件,在事件中的actionPerformed()方法中进行图书信息添加操作,在Dao类中编写。3)为“关闭”按钮添加按钮监听事件,主要将当前窗口关闭。三、测试分析1. 阐述扩展包(仅限于SUN官方发布)的部署过程,并将扩展包附于光盘源程序中;给出数据库的详细配置说明。(1)扩展包除了JavaSE-1.7,还添加了sqljdbc4.jar。(2)数据库设计1)数据库的树形结构图如图所示:2)tb_bookInfo(图书信息表)图书信息表包括图书编号,图书类别编号,书名,作者,译者,出版社,出版时间和价格等信息。3)tb_bookType(图书分类表)图书分类表包括编号,类别名称,可借天数和罚款金额等信息。4)tb_borrow(图书借阅表)图书借阅表包括,图书编号,读者编号,操作员编号,是否归还,借阅日期,归还日期等信息。主键设为自动增长(主键的标识规范设为是)。5)tb_operator(操作员信息表)操作员信息表主要包括编号,姓名,性别,年龄,身份证号,工作日期,电话,是否为管理员和密码等信息。6)tb_order(图书订购表)图书订购表主要包括图书编号,订购日期,订购数量,操作员,是否验收和折扣等信息。图书订购表以图书编号与图书信息表建立了关系。7)tb_reader(读者信息表)读者信息表包括条形码,姓名,性别,年龄,电话,押金,生日,职业,证件类型,办证日期,最大借书数量,证件号码等信息。8)tb_stockpile(库存信息表)库存信息表主要包括编号,库存数量等信息。库存信息表以库存编号与图书信息表建立了关系。9) 数据库中各个表间关系如图所示:2. 典型测试数据的构建,并且给出测试数据的预计结果(1) 读者信息添加测试: (2)图书类别添加测试:(3)图书信息添加测试: (4) 图书借阅测试:输入读者编号,回车,再输入书籍编号,回车,选中书籍,点击“借出当前图书”(5) 图书归还测试:输入读者编号,回车,选择书籍,点击“图书归还”3. 本程序的测试情况,与预计结果作对比。(1)读者信息添加测试结果:读者“陈聪”信息成功加入数据库。(2)图书类别添

温馨提示

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

评论

0/150

提交评论