《java版图书管理系统课程设计报告(共74页).doc》由会员分享,可在线阅读,更多相关《java版图书管理系统课程设计报告(共74页).doc(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 数据库原理及应用课程设计说明书题目: 图书馆管理系统 院 系: 计算机学院 专业班级: 10计科2 学 号: 学生姓名: xxx 指导教师: xxx 第一章 系统概述 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机网被广泛应用于管理信息系统的外部环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息处理,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与管理信息系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。图书馆作为一
2、种信息资源的集聚地,图书和用户借阅资料繁多,包含很多的信息数据的管理。该软件最终的使用者是学校,公司,图书馆管理者,并提供以下的功能:1. 默认页提供关于图书馆管理系统的基本信息;2. 图书馆管理者可以根据读者信息创建读者的帐户;3. 如果读者输入的 ID 在数据库不存在,系统将显示错误页;4. 图书馆管理者必须先登录才能在了解图书馆的详细信息和自己的基本信息,并可以对图书进行添加、查找、修改、注销等的操作,还可对读者进行管理与归类;5. 读者必须先登录才能对图书进行借阅、归还、续借等操作。第二章 需求分析2.1 需求2.1.1功能需求2.1.1.1登录界面 为了方便进行管理,我们设置了一个统
3、一的登陆界面。对于不同身份的人由系统自动判断。2.1.1.1.1 用户登录(1) 用户信息此模块包括用户的姓名、密码、年龄和性别。(2) 图书信息此模块包括图书的类别、名称、作者、出版社、以及图书馆里的现有数量。(3) 借阅图书此模块包括借阅图书的用户、借阅的时间。(4) 密码的更改管理员可根据自己的喜好更改自己的登录密码。登 陆 界 面借阅管理系统数据维护新书订购管理基础数据维护 登录界面流程图2.1.1.2 图书信息管理2.1.1.2.1图书清单1.图书名 2.图书编号 3.类型 4.作者5.已借出的本数 6.所剩本数 2.1.1.2.2新进图书信息2.1.1.2.3图书查询 (1) 按作
4、者(2) 按图书名2.1.1.2.4图书信息的更新及删除图书信息管理图 书 清 单图 书 查 询新 书 订 购 信 息 购 信 息图 书 信 息 的 更 新对图书信息进行修改,添加或删除。2.1.1.3 用户信息管理用户自己可以查看的基本信息,通过用户的信息便于管理员有效的管理用户的借阅信息,可以让自己了解自己的借阅情况。2.1.1.3.1 个人基本信息1. 学号 2. 姓名 3. 密码 4. 年龄 5. 性别 6. 生日 7. 电话号码2.1.1.3.2 功能1. 能借阅的书本数量2. 已借书数量3. 曾经借过的书及所借时间4. 用户信息的更改2.1.1.3.3 查询1.管理查询管理员可以查
5、询图书馆里的藏书情况,用户的基本信息情况2.用户查询用 户 信 息 管 理用户可以查询图书馆里的藏书情况和自己的借阅信息2.1.1.3.4 注销和修改用户信息 读者基本信息查 询功 能用户信息的更改学 号用 户 查 询管 理 员 查 询已 借 书 数 量能借阅的书本数量姓 名用户信息管理流程图2.1.1.4 图书借阅管理2.1.1.4.1 图书借书管理(1) 读者查询方式按类型(如小说类、专业类、杂志类)或按出版日期等查询,系统给与提示,若按其中一种查询系统会给出这类查询的所有信息。(2) 图书的借阅查找到读者所需的书本,若该书没有被借阅或还有库存,则借阅成功,记录借阅的图书的基本信息,借阅的
6、日期和借阅者的详细信息。图书借书管理读者查询方式图书的借阅按 类 型按出版日期借阅成功借阅失败借书管理流程图2.1.1.4.2 图书还书管理(1)退还图书的详细信息如退还信息,图书信息(2)还书读者的详细信息(3)罚款计算方式设定归还期限,超过归还期限不退还图书者按超过天数增加借阅费用;若没有超期就无需罚款。(4)赔偿方式针对退还时图书损坏或丢失者,照原价赔偿。图书还书管理返还图书信息返还读者信息罚款计算方式赔偿方式还书管理流程图2.1.2数据需求图书事务处理书名m用户ID密码借阅操作管理用户图书ID管理员ID密码管理图书图书馆管理员nmnmnn总体E-R属性图图书信息图书编号定 价ISBN号
7、书 名作 者出版社出版日期书库到馆日期图书属性图借 阅编 号书目编号读者编号借阅日期应还日期 借阅信息属性图用 户 信 息用户编号证件编号用户类别姓 名性 别密 码用户信息属性图2.1.3性能需求说明程序对运行时间、存储空间和计算精度的特殊要求2.1.3.1运行时间1. 用户登录请求、个人信息填写完毕后的提交、个人信息更改、删除的操作,响应时间应该在1.5s之内用户不应感到系统有延迟的时间;2. 管理者对图书进行信息查询,返回记录在100行之内的,响应时间应不超过2s,超过100行记录的情况,应该进行分页显示结果信息;3. 统计分析涉及的数据表众多且数据量大,统计分析时要求系统响应速度快。2.
8、1.3.2存储空间存储过程要是存储已经编译好并经过优化的放置于数据库服务器端SQL语句,这些语句可供应用程序直接调用。因为存储过程是为各功能模块提供能访问的数据接口。2.1.3.3计算精度1、个人信息:真实,准确。2、对图书和读者进行信息查询,应执行不完全匹配的模糊查询;2.2 环境2.2.1运行环境描述运行软件系统所需的软、硬件环境。2.2.1.1 软件环境:操作系统:Windows XP数据库:SQL 2000前台环境:java设计软件:Eclipse 3.7 PowerDesigner 1.52.2.1.2 硬件环境:Cpu:Pentium 166 MHz 以上,内存至少128 MB,硬
9、盘空间80 M,显示器800*600或更高分辨率。数据库服务器硬件需求:具有 Pentium III 处理器且满足以下要求的计算机:最低 256MB 内存最小 20 GB 硬盘鼠标键盘接口:系统之间不提供应用程序级别的接口,数据共享通过SQL 2000数据库表的公共访问来实现。2.2.2开发环境描述开发软件系统所需的软、硬件环境。2.2.2.1 软件环境:操作系统:Windows XP 开发软件:本系统需用SQL 2000和java平台,以java为编程语言,PowerDesigner 1.5作为数据库辅助设计软件2.2.2.2 硬件环境:Cpu: Pentium 166 MHz 以上,内存至
10、少128 MB,硬盘空间80 M,显示器800*600或更高分辨率。数据库服务器:具有 Pentium III 处理器且满足以下要求的计算机:最低 256MB 内存最小 20 GB 硬盘鼠标键盘接口:系统之间不提供应用程序级别的接口,数据共享通过SQL2000数据库表的公共访问来实现。 第三章 软件设计3.1 总体设计3.1.1 软件结构设计借书还书图书预定查询读者信息注销读者信息修改读者信息读者登记系统设置管理员信息维护信息统计查询新书验收查询图书信息删除图书信息修改图书信息图书馆管理系统登录系统借阅管理新书订购管理基础数据维护系统维护图书馆管理系统总体结构设计3.1.2 数据库设计将ERD
11、模型导成关系模型,并进行数据的规范化(达到3范式)。最后以表单的形式给出数据库中的具体表的结构以及字段的说明。设计数据库的索引,数据库的视图等对象。 表2-1 XX表字段名类型长度约束说明XHChar6主键学号XMChar20姓名 数据库关系表对程序当中所采用的数据库相关的名称和标识符、在数据库当中的位置、定义、度量单位、格式和值域、敏感程度、数据项名、缩写词和代码,包括用于数据库的规格说明等进行定义。3.1.3 其它3.1.3.1 故障处理维护要求1. 在数据访问、增改时,用户输入一些不合理的数据的时候,能够进行一些合理的提示信息,不能因为输入错误而导致系统的错误,或者窗口关闭;2数据库要求
12、有备份机制,以防止数据的全部丢失;3.1.3.2 安全保密要求1安全性进行图书跟读者的信息查询和信息的修改,必须是已经登录的用户。2可扩充性系统在开发完毕以后,应允许在后续的改进中进行功能的扩展或者功能的重新解释和实现。c健壮性系统应该保证在一次开机三个月之内稳定运行,数据库在一些事故中能够在系统安装好之后,两小时内恢复。3.2 模块详细设计3.2.1 读者模块设计借阅者(borrower):主要以自助服务为主,读者通过客户端浏览器登录系统,进行一些权限之内的自主操作,服务器端对其操作进行反馈。读者第一次登录系统需阅读图书馆管理系统操作手册,并按规定进行后续操作,以方便管理和操作。读者在操作中
13、遇到困难,可随时阅读我们的在线帮助手册,并可提交意见,以便我们对系统改进。借阅者可在线进行以下操作:a 查询图书信息(未登录也可)b 修改自身资料c 预定图书d 对系统进行反馈(给出建议和意见)借阅者的活动图3.2.2图书管理员模块设计 图书管理员(Librarian):管理员需登录系统,经过系统认证后,获取对系统的操作权限。图书管理员的操作一般是是由借阅者先提出请求,得到认可后完成请求,并将结果反馈给借阅者,是双方的一个互动的过程。图书管理员一般可进行以下操作:a 借书b 还书c 图书续借d 超期罚款图书管理员的活动图3.2.3 管理员模块设计管理员(Administrator):系统管理员
14、具有系统操作的最高权限,其操作也具有不可逆性,所以系统管理员的操作一定要慎之又慎,以防对系统或数据产生致命性损坏。系统管理员的操作一般是自主操作,当然有时也会收到图书管理员的一些操作请求,并给予其一定帮助,以保证图书管理员操作的效率。系统管理员一般可进行以下操作:a 图书管理:包括新书入库、修改图书信息、删除图书、查询图书信息等b 读者管理:包括读者登记、修改读者信息、读者注销、查询读者信息等c 数据库管理:包括数据库的备份和恢复等d 系统设置:包括对系统信息的设置和图书管理员的管理等 馆长进行读者和图书信息维护的活动图 第四章 系统实现4.1 登录模块4.1.1模块界面 1.用户登陆 2.系
15、统主窗口 3.操作员窗口4.读者添加窗口4.1.2功能说明扼要说明本模块(或本组模块)的功能,需要输入/输出的数据项,描述输入数据的输入形式和验证手段,以及对界面操作过程需要特别注意的地方进行说明。4.1.3原代码清单1.登录窗口package com.wsy;import java.awt.BorderLayout;import java.awt.Dimension;/import java.awt.Dialog.ModalExclusionType;import java.awt.event.ComponentAdapter;import java.awt.event.ComponentE
16、vent;import .URL;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JDesktopPane;import javax.swing.JFrame;import javax.swing.JInternalFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JToolBar;import javax.swing.UIManager
17、;import javax.swing.WindowConstants;import javax.swing.border.BevelBorder;import com.wsy.iframe.BookLoginIFrame;import com.wsy.util.CreatecdIcon;/* * 主窗体 * */public class Library extends JFrame private static final JDesktopPane DESKTOP_PANE = new JDesktopPane();public static void main(String args) t
18、ry UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();new BookLoginIFrame();/登录窗口 catch (Exception ex) ex.printStackTrace();public static void addIFame(JInternalFrame iframe) / 添加子窗体的方法DESKTOP_PANE.add(iframe);public Library() super();setDefaultCloseOperation(WindowConstants.EXIT_ON_
19、CLOSE);/setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);setLocationByPlatform(true);setSize(800, 600);setTitle(图书馆管理系统);JMenuBar menuBar = createMenu(); / 调用创建菜单栏的方法setJMenuBar(menuBar);JToolBar toolBar = createToolBar(); / 调用创建工具栏的方法getContentPane().add(toolBar, BorderLayout.NORTH);fi
20、nal JLabel label = new JLabel();label.setBounds(0, 0, 0, 0);label.setIcon(null); / 窗体背景DESKTOP_PANE.addComponentListener(new ComponentAdapter() public void componentResized(final ComponentEvent e) Dimension size = e.getComponent().getSize();label.setSize(e.getComponent().getSize();label.setText(););
21、DESKTOP_PANE.add(label,new Integer(Integer.MIN_VALUE);getContentPane().add(DESKTOP_PANE);/* * 创建工具栏 * * return JToolBar */private JToolBar createToolBar() / 创建工具栏的方法JToolBar toolBar = new JToolBar();toolBar.setFloatable(false);toolBar.setBorder(new BevelBorder(BevelBorder.RAISED);JButton bookAddButt
22、on=new JButton(MenuActions.BOOK_ADD);/ImageIcon icon=CreatecdIcon.add(bookAdd.bmp);/创建图标方法ImageIcon icon=new ImageIcon(Library.class.getResource(/bookAddtb.jpg);/添加菜单栏图标bookAddButton.setIcon(icon);bookAddButton.setHideActionText(true);/bookAddButton.setToolTipText(fjdkjfk);/图片上提示字toolBar.add(bookAdd
23、Button);/toolBar.add(MenuActions.BOOK_MODIFY);/在工具栏中添加图书修改与删除图标JButton bookModiAndDelButton=new JButton(MenuActions.BOOK_MODIFY);ImageIcon bookmodiicon=CreatecdIcon.add(bookModiAndDeltb.jpg);/创建图标方法bookModiAndDelButton.setIcon(bookmodiicon);bookModiAndDelButton.setHideActionText(true);toolBar.add(bo
24、okModiAndDelButton);JButton bookTypeAddButton=new JButton(MenuActions.BOOKTYPE_ADD);ImageIcon bookTypeAddicon=CreatecdIcon.add(bookTypeAddtb.jpg);/创建图标方法bookTypeAddButton.setIcon(bookTypeAddicon);bookTypeAddButton.setHideActionText(true);toolBar.add(bookTypeAddButton);JButton bookBorrowButton=new JB
25、utton(MenuActions.BORROW);ImageIcon bookBorrowicon=CreatecdIcon.add(bookBorrowtb.jpg);/创建图标方法bookBorrowButton.setIcon(bookBorrowicon);bookBorrowButton.setHideActionText(true);toolBar.add(bookBorrowButton);JButton bookOrderButton=new JButton(MenuActions.NEWBOOK_ORDER);ImageIcon bookOrdericon=Createcd
26、Icon.add(bookOrdertb.jpg);/创建图标方法bookOrderButton.setIcon(bookOrdericon);bookOrderButton.setHideActionText(true);toolBar.add(bookOrderButton);JButton bookCheckButton=new JButton(MenuActions.NEWBOOK_CHECK_ACCEPT);ImageIcon bookCheckicon=CreatecdIcon.add(newbookChecktb.jpg);/创建图标方法bookCheckButton.setIc
27、on(bookCheckicon);bookCheckButton.setHideActionText(true);toolBar.add(bookCheckButton);JButton readerAddButton=new JButton(MenuActions.READER_ADD);ImageIcon readerAddicon=CreatecdIcon.add(readerAddtb.jpg);/创建图标方法readerAddButton.setIcon(readerAddicon);readerAddButton.setHideActionText(true);toolBar.a
28、dd(readerAddButton);JButton readerModiAndDelButton=new JButton(MenuActions.READER_MODIFY);ImageIcon readerModiAndDelicon=CreatecdIcon.add(readerModiAndDeltb.jpg);/创建图标方法readerModiAndDelButton.setIcon(readerModiAndDelicon);readerModiAndDelButton.setHideActionText(true);toolBar.add(readerModiAndDelBut
29、ton);JButton ExitButton=new JButton(MenuActions.EXIT);ImageIcon Exiticon=CreatecdIcon.add(exittb.jpg);/创建图标方法ExitButton.setIcon(Exiticon);ExitButton.setHideActionText(true);toolBar.add(ExitButton);return toolBar;/* * 创建菜单栏 */private JMenuBar createMenu() / 创建菜单栏的方法JMenuBar menuBar = new JMenuBar();J
30、Menu bookOrderMenu = new JMenu(); / 初始化新书订购管理菜单bookOrderMenu.setIcon(CreatecdIcon.add(xsdgcd.jpg);bookOrderMenu.add(MenuActions.NEWBOOK_ORDER);bookOrderMenu.add(MenuActions.NEWBOOK_CHECK_ACCEPT); JMenu baseMenu = new JMenu();/ 初始化基础数据维护菜单baseMenu.setIcon(CreatecdIcon.add(jcsjcd.jpg);JMenu readerMana
31、gerMItem = new JMenu(读者信息管理);readerManagerMItem.add(MenuActions.READER_ADD);readerManagerMItem.add(MenuActions.READER_MODIFY);JMenu bookTypeManageMItem = new JMenu(图书类别管理);bookTypeManageMItem.add(MenuActions.BOOKTYPE_ADD);bookTypeManageMItem.add(MenuActions.BOOKTYPE_MODIFY);JMenu menu = new JMenu(图书
32、信息管理);menu.add(MenuActions.BOOK_ADD);menu.add(MenuActions.BOOK_MODIFY);baseMenu.add(readerManagerMItem);baseMenu.add(bookTypeManageMItem);baseMenu.add(menu);baseMenu.addSeparator();baseMenu.add(MenuActions.EXIT);JMenu borrowManageMenu = new JMenu(); / 借阅管理borrowManageMenu.setIcon(CreatecdIcon.add(jy
33、glcd.jpg);borrowManageMenu.add(MenuActions.BORROW); / 借阅borrowManageMenu.add(MenuActions.GIVE_BACK); / 归还borrowManageMenu.add(MenuActions.BOOK_SEARCH); / 搜索JMenu sysManageMenu = new JMenu(); / 系统维护sysManageMenu.setIcon(CreatecdIcon.add(jcwhcd.jpg);JMenu userManageMItem = new JMenu(用户管理); / 用户管理userM
34、anageMItem.add(MenuActions.USER_ADD);userManageMItem.add(MenuActions.USER_MODIFY);sysManageMenu.add(MenuActions.MODIFY_PASSWORD);sysManageMenu.add(userManageMItem);menuBar.add(baseMenu); / 添加基础数据维护菜单到菜单栏menuBar.add(bookOrderMenu); / 添加新书订购管理菜单到菜单栏menuBar.add(borrowManageMenu); / 添加借阅管理菜单到菜单栏menuBar.
35、add(sysManageMenu); / 添加系统维护菜单到菜单栏return menuBar;package com.wsy.iframe;import java.awt.BorderLayout;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt
36、.event.KeyEvent;import java.text.SimpleDateFormat;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JFormattedTextField;import javax.swing.JInternalFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JPasswordField;im
37、port javax.swing.JRadioButton;import javax.swing.JTextField;import com.wsy.dao.Dao;import com.wsy.util.MyDocument;public class UserAddIFrame extends JInternalFrame private JTextField textField_5;private JTextField textField_4;private JFormattedTextField textField_3;private JTextField textField_2;pri
38、vate JTextField textField_1;private JTextField textField;private JPasswordField textField_6;private JButton button;private ButtonGroup buttonGroup = new ButtonGroup();final JRadioButton radioButton1,radioButton2;/* * Create the frame */public UserAddIFrame() super();setIconifiable(true);setClosable(
39、true);setTitle(用户信息添加);setBounds(120, 120, 450, 320);final JPanel panel = new JPanel();getContentPane().add(panel); button = new JButton();button.setText(保存);panel.add(button);button.addActionListener(new ActionListener()public void actionPerformed(ActionEvent arg0) if(arg0.getSource()=button)if(tex
40、tField.getText().length()=0)JOptionPane.showMessageDialog(null, 用户名不能为空);return;if(textField.getText().length()12)JOptionPane.showMessageDialog(null, 用户名位数不能大于十二位);return;if(textField_2.getText().length()=0)JOptionPane.showMessageDialog(null, 年龄不能为空);return;if(textField_3.getText().length()=0)JOptio
41、nPane.showMessageDialog(null, 日期不能为空); return;if(textField_4.getText().length()=0)JOptionPane.showMessageDialog(null, 电话不能为空);return;if(textField_4.getText().length()!=11)JOptionPane.showMessageDialog(null, 电话号必须是十一位);return;if(textField_5.getText().length()=0)JOptionPane.showMessageDialog(null, 押金不能为空);return;if(textField_6.getText().length()=0)JOptionPane.showMes