




已阅读5页,还剩83页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
哈尔滨学院软件学院 课程设计说明书 题目:图书管理系统 院(系)软件学院 专 业软件工程 年 级09-3 班 姓 名刘立威学 号 指导教师 谷庆棫、张晓 欢 职 称 2011 年 8 月 15 日 目 录 摘摘 要要.3 第一章第一章 需求分析需求分析.4 1.1. 编写目的.4 1.1.1 背景说明.4 1.2 任务概述任务概述.4 1.2.1. 目标.4 1.2.2. 用户的特点.5 1.2.3. 假定与约束.5 1.3. 需求规定需求规定.5 1.4. 时间特性要求.6 1.4.1. 灵活性.6 1.5. 输入输出要求.6 1.6. 数据管理能力要求.7 1.7. 故障处理要求.7 1.8. 运行环境设定运行环境设定.8 1.8.1. 设备.8 1.8.2. 支持软件.8 1.8.3. 接口.8 1.8.3.1 用户接口.8 1.8.4. 控制.8 第二章第二章 开发工具介绍及数据库设计开发工具介绍及数据库设计.9 2.1 系统开发工具简介 .9 2.2 系统数据库实现 .10 第三章第三章 概要设计概要设计.11 3.1.11 3.1.1 .11 第四章第四章 详细设计详细设计.12 第五章第五章 系统测试运行系统测试运行.13 5.1 测试目的 .13 5.2 测试方案 .13 5.3 测试内容 .13 总总 结结.20 参考文献参考文献.21 附附 录录.22 摘 要 随着学校的发展,学生人数日益增多,高校图书馆的管理工作变得烦琐,而传统的人工 管理方式已不能满足数量巨大的图书和其借阅信息的管理要求,经详细分析其有如下缺点: 图书合学生信息不易维护,数量巨大。 查询不方便,借阅和还书速度过慢。 各种信息的记录靠手写,数据容易丢失。 为了弥补上述缺陷,便于图书维护和借阅工作,提高借阅和还书的效率,开发出此管理 系统,实现图书管理信息化。 关键词:图书 管理 Abstract With the development of the school, increasing the number of students, university library management has become cumbersome, and the traditional manual management methods can not meet the huge number of books and information management requirements of its lending, the detailed analysis which has the following disadvantages: books together is not easy to maintain student information, a huge number. query convenient, books to borrow and also too slow. Records of all kinds of information by hand, the data easy to lose. To compensate for these shortcomings, easy maintenance and borrow books work, borrow and return books to improve the efficiency of the development of this management system, library management information. Keywords: Library management 第一章 需求分析 1.1. 编写目的 需求的编写是为了研究图书管理系统软件的开发途径和应用方法。同时它也是进行项 目策划、概要设计和详细设计的基础,是维护人员进行内部维护,信息更新,验收和测试 的依据。本需求的预期读者是与图书管理系统软件开发有联系的决策人,开发组成人员, 扶助开发者,支持本项目的领导和公司人员,软件验证者。 1.1.1 背景说明 人工管理图书的手续繁索、效率低下给具有强烈时间观念的管理人员带来了诸多不便, 学校图书馆缺少一套完善的图书管理软件,为了对图书的管理方便,因此必须开发图书管 理系统。 随着计算机技术的不断应用和提高,计算机已经深入到社会生活的各个角落。而采用 手工管理图书的方法,不仅效率低、易出错、手续繁琐,而且耗费大量的人力。为了满足 图书馆管理人员对图书馆书籍,读者资料,借还书等进行高效的管理,在工作人员具备一 定的计算机操作能力的前提下,特编此图书管理系统软件以提高图书馆的管理效率。 1.2 任务概述 1.2.1. 目标 建立的图书管理系统,要把图书馆的图书管理、读者管理、图书借阅管理等日常管理 工作实行计算机统一管理,以提高工作效率和管理水平。 1.2.1.1 开发意图 a. 为了图书管理系统更完善; b. 为了学校图书馆对图书的管理更方便; c. 为了减轻图书管理人员的工作负担。 1.2.1.2 应用目标 通过本系统软件,能帮助图书馆管理人员利用计算机,快速方便地对图书馆书籍, 读者资料,借还书等进行高效的管理。 1.2.1.3 作用及范围 本软件适用于教育界,它是比较完善的系统管理软件,对图书馆的书籍,读者资料, 借还书等可以进行方便的管理。 1.2.2. 用户的特点 本软件的使用对象有学校图书馆的系统管理员(更新维护系统) ,图书管理人员(办理 借阅,归还图书)和读者(查询图书) 。 备注:会汉语、懂计算机的基本操作就可以利用该软件进行所需操作 1.2.3. 假定与约束 技术约束:技术约束: 本项目的设计是在 Java 程序设计语言的条件下进行的,技术设计采用软硬一体化的 设计方法。 环境约束:环境约束: 运行该软件所适用的具体设备必须是奔腾 4、内存 256 兆以上的计算机; 1.3. 需求规定 1、理解需求 理解需求是在问题及其最终解决方案之间架设桥梁的第一步。开发者只有和用户充分 理解了需求之后才能开始设计系统,否则,对需求定义的任何改进,设计上都必须大量的 返工。 下面是对系统的终端用户和客户调研后得到的需求规格说明书。 (1)在启动系统后,首先是登陆界面,根据用户输入判断用户身份是否合法。合法用户分为 普通用户和系统管理员,其中,系统管理员拥有所有权限,而普通用户没有用户管理权限。 (2)进入读者信息维护界面,可以对读者信息进行添加、删除、修改和查询操作,并且可以 遍历记录。 (3)进入图书信息维护界面,可以对图书信息进行添加、删除、修改和查询操作,并且可以 遍历记录。 (4)进入读者借还书界面,可以实现读者借书、还书和查阅读者借阅记录的功能,并在读者 借还书时,对相应数据库数据进行修改。 (5)系统客户端运行在 Windows 平台下,服务器可以运行在 Windows 或 Unix 平台下。系统 还应该有一个较好的图形用户界面。 (6)系统应该有很好的可扩展性。 2、需求分析 需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题,通过对用户 业务问题的分析,确定系统的功能需求。这个步骤是对理解需求的升华,直接关系到该系 统的质量。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通机制,因 此,系统的需求分析也应该是开发人员和用户或客户一起完成的。 系统功能模块划分 根据开发者和客户的需求分析后,可以把系统功能分为两个大的个功能模块: (1)读者管理模块 包括:读者登记,查询,借书,还书,删除等功能 (2)图书管理模块 包括:图书添加,查询等功能 1.4. 时间特性要求 在软件方面,响应时间,更新处理时间都比较快且迅速,完全满足用户要求。 1.4.1. 灵活性 当用户需求,如操作方式,运行环境,结果精度,数据结构于其他软件接口等发生变化 时,设计的软件要做适当调整,灵活性非常大。 1.5. 输入输出要求 查询书目:输入关键字为书名,作者,索引号,按照精确匹配为主,再索引关联字。 输出时列出索引到的所有书目信息,具体信息包括内容摘要、目录号、作者信息、书名、 价格、流水号、购买日期等。方便读者查找。 借阅图书:通过设备识别图书和读者(借阅证)的流水号(条形码) ,向数据库传送 信息,然后在数据库索引图书信息和读者信息是否符合要求,符合要求待图书管理员确认 后再更新相关数据,并将这些数据存入借书文件,最后输出显示存储成功;否则报错。 1.6. 数据管理能力要求 定时整理数据:定时整理数据:系统管理员根据市场图书行情定时整理系统数据库,对图书的借阅 情况、读者的管理情况、书库的增减等均可有计算机执行,并将运行结果归档。 查询库存量查询库存量:能随时查询书库中图书的库存量,以便准确、及时、方便地为读者提 供借阅信息,但不能修改数据,无信息处理权,即可以打印清单、浏览数据等,管理权限由 系统管理员掌握和分配。 1.7. 故障处理要求 a. 内部故障处理 在开发阶段可以随即修改数据库里的相应内容。 b. 外部故障处理 对编辑的程序进行重装载时,第一次装载认为错,修改。第二次运行,在需求调用时出错, 有错误提示,重试。 c. 本软件可能产生的错误为数据库的错误信息,应由数据库管理员对数据库进行维护。为 了确保系统恢复的能力,数据库管理员要定期对数据库进行备份。 1.8. 运行环境设定 1.8.1. 设备 硬件、外部设备(P4 微机一台、打印机一台) 运行本软件所要求的硬设备的最小配置: a. 奔腾 4 代、内存 256M; b. IO 设备:显示器、鼠标、键盘; 1.8.2. 支持软件 说明为运行本软件所需要的支持软件,如: a.操作系统:Windows98 及以上版本 b.数据库:MYsql。 1.8.3. 接口 1.8.3.1 用户接口 本产品的用户一般需要通过终端进行操作,进入主界面后点击相应的窗口,分别进入相对 应的界面(如:输入界面、输出界面)。用户对程序的维护,最好要有备份。 1.8.4. 控制 本软件是以中文版 Windows 98 及其以上版本的操作系统来控制软件运行。 第二章 开发工具介绍及数据库设计 2.1 系统开发工具简介 eclipse-galileoEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。 就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。 幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 Eclipse 最初是由 IBM 公司开发的替代商业软件 Visual Age for Java 的下一 代 IDE 开发环境,2001 年 11 月贡献给开源社区,现在它由非营利软件供应商 联盟 Eclipse 基金会(Eclipse Foundation)管理。 2003 年,Eclipse 3.0 选择 OSGi 服务平台规范为运行时架构。 2007 年 6 月,稳定版 3.3 发布。2008 年 6 月发布代号为 Ganymede 的 3.4 版。2009 年 7 月发布代号为 GALILEO 的 3.5 版。 Eclipse 是著名的跨平台的自由集成开发环境(IDE)。最初主要用来 Java 语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如 C+和 Python 的开发工具。Eclipse 的本身只是一个框架平台,但是众多插件的支持 使得 Eclipse 拥有其他功能相对固定的 IDE 软件很难具有的灵活性。许多软件 开发商以 Eclipse 为框架开发自己的 IDE。 Eclipse 最初由 OTI 和 IBM 两家公司的 IDE 产品开发组创建,起始于 1999 年 4 月。IBM 提供了最初的 Eclipse 代码基础,包括 Platform、JDT 和 PDE。 目前由 IBM 牵头,围绕着 Eclipse 项目已经发展成为了一个庞大的 Eclipse 联 盟,有 150 多家软件公司参与到 Eclipse 项目中,其中包括 Borland、Rational Software、Red Hat 及 Sybase 等。Eclipse 是一个开发源码项目,它其实是 Visual Age for Java 的替代品,其界面跟先前的 Visual Age for Java 差不多, 但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插 件,因此越来越受人们关注。近期还有包括 Oracle 在内的许多大公司也纷纷加 入了该项目,并宣称 Eclipse 将来能成为可进行任何语言开发的 IDE 集大成者, 使用者只需下载各种语言的插件即可。 虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目 标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员, 因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样 东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成 开发环境而言,所有工具开发人员都具有同等的发挥场所。 基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服 务和数据库访问的支持。 2.2 系统数据库实现 1.表 book 字段名称数据类型 图书名文本 图书号文本(主键) 单价文本 作者文本 出版社文本 ISBN文本 2.表 user 字段名称数据类型 用户名文本(主键) 密码文本 第三章 概要设计 3.1.1 系统流程图 1. 2. 输入密码 判断 失败 成功 系统开始 判断 退出 图书查询图书入库图书删除图书概览修改密码 退出 第四章 详细设计 4.1.1 设计流图 基本信息录入 基本信息录入 数据库 数据库 基本信息录入 数据库 基本信息录入 数据库 借阅信息录入 读者信息返回 书籍信息返回 读者信息设置书籍信息设置 读者登记 读者信息管理书籍信息管理 书籍登记 读者信息管理书籍信息管理 借阅信息管理 第五章 系统测试运行 5.1 测试目的 1.认软件质量,其一方面是确认软件做了所期望的事情,另一方面是确认软件以正确的 方式来做这件事情。 2.提供信息,比如提供给开发人员或经理的反馈信息,为风险评估所准备信息。 5.2 测试方案 1.知道源代码所以运用白盒测试。每一个语句的功能都进行测试,分批进行从开始一直 测试下去,一项一项的测试功能。 5.3 测试内容 1 登录界面测试 2 登陆后进入主界面 . 3.进入图书浏览 4.图书查询 5.图书查询成功 6.添加图书 7.添加图书后浏览 8 删除图书 9.图书删除成功 10.图书删除后浏览 11.用户修改密码 测试完毕! 总 结 这次 JAVA 的项目设计是一次对专业知识的综合应用,扩充和深化。也是理论运用于实 际的一次锻炼。通过这次设计,我不仅温习了课上的知识,还深刻体会了项目的设计的基 本思想。从中也知道了自己的种种不足。知道了自己在学习中不认真所留下的后果。总之 这次项目的设计是我受益匪浅。 参考文献 1. Y,Daniel Liang 著 万波 郑海梅 潘蓉 李娜 译ava 语言程序设计基础篇机械工业出 版社 2008.6 2.陈明 编著软件工程导论机械工业出版社 2009.10 3.吴亚峰 索依娜 著30 天学通 javaWeb 项目案例开发电子工业出版社 2009.7 附 录 源代码 package we; /*主界面*/ /*本类为用户界面*/ import .*; import java.sql.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.util.*; import javax.swing.*; import javax.swing.border.*; import java.util.*; class Book extends JFrame implements ActionListener JButton QueryScore=new JButton(图书查询); JButton QueryXuefen=new JButton(图书入库); JButton jiangfa=new JButton(图书删除); JButton xuanke=new JButton(图书概览); JButton gaiMima=new JButton(修改密码); JMenuBar mb = new JMenuBar();/菜单栏 JPanel jp=new JPanel();/用来填放子模块 Container cp=getContentPane(); String username; Book() Book(String username) this.username=username; mb.add(QueryScore); mb.add(QueryXuefen); mb.add(jiangfa); mb.add(xuanke); mb.add(gaiMima); cp.add(mb,North); / 设置边框 jp.setBorder(BorderFactory.createTitledBorder(Borde rFactory .createLineBorder(Color.blue, 2),null, TitledBorder.CENTER, TitledBorder.TOP); jp.setLayout(new BorderLayout(); JLabel label1 = new JLabel(new ImageIcon(4.jpg); jp.add(label1); /* JLabel JL=new JLabel(欢迎登陆 ,SwingConstants.CENTER); jp.add(JL,North);*/ JLabel label2 = new JLabel(new ImageIcon(2.jpg); /jp.add(label2,South); JScrollPane scrollpane=new JScrollPane(jp); cp.add(scrollpane); setTitle(欢迎登陆); Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize(); int x=screen.width;/*取得显示器窗 口的宽度*/ int y=screen.height;/*取得显示器窗 口的高度*/ /setSize(x,y); /*让系统窗口平铺整个显示器窗口 */ setSize(600,600); int xcenter=(x-600)/2; int ycenter=(y-600)/2; setLocation(xcenter,ycenter);/*显示在窗口中央 */ setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); /注册临听器 QueryScore.addActionListener(this); QueryXuefen.addActionListener(this); jiangfa.addActionListener(this); xuanke.addActionListener(this); gaiMima.addActionListener(this); public void actionPerformed(ActionEvent e) String cmd=e.getActionCommand(); if (cmd.equals(图书查询) new QueryBook(); if (cmd.equals(图书入库) new BookIn(); if (cmd.equals(图书删除) new RemoveBook(); if (cmd.equals(图书概览) new BookBrower().showRecord(); if (cmd.equals(修改密码) new UpdateMima(username); public static void main(Stringargs) new Book(); package we; /*图书概览*/ import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.util.*; import java.sql.*; class BookBrower implements ActionListener JFrame f; Container cp; JPanel jpS,jpanelWest; JButton jbt1,jbt2;/按钮,查询、取消、修改 JLabel label,L;/标签 /定义文本框 JTable table;/用来接收数据库中返回的信息 Object columnName=图书名,图书号,单价, 作者,出版社,ISBN 码; Object ar =new Object806; String sno; String count=xx; BookBrower() f=new JFrame(); cp=f.getContentPane(); / 初始化面板、按钮、标签、 文本框 jpS=new JPanel(); jpanelWest=new JPanel(); /- - jbt1=new JButton(确定); jbt2=new JButton(返回); /- - label=new JLabel(图书概览,SwingConstants.CENTER); label.setForeground(Color.blue); L=new JLabel(书库现在共有图书+count+本); /- - table=new JTable(ar,columnName);/ar 存放表中的 数据,columnname 表示列名 JScrollPane scrollpane = new JScrollPane(table); /- - /布局,添加控件 jpS.add(jbt1); jpS.add(jbt2); JPanel jpanel=new JPanel(); jpanel.add(label); JPanel pp4=new JPanel(); JPanel jpE=new JPanel(); cp.add(jpanel,North); JPanel jp=new JPanel(); /jp.add(scrollpane); JPanel p=new JPanel();/用来放两个表 p.setLayout(new BorderLayout(); p.add(L,North); p.add(scrollpane); cp.add(pp4,West); cp.add(p,Center); cp.add(jpS,South); cp.add(jpE,East); /- - Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screen=kit.getScreenSize(); int x=screen.width;/*取得显示器窗口 的宽度*/ int y=screen.height;/*取得显示器窗口 的高度*/ f.setSize(400,330); int xcenter=(x-350)/2; int ycenter=(y-330)/2; f.setLocation(xcenter,ycenter);/*显示在窗口中 央*/ f.setVisible(true); /- - jbt1.addActionListener(this);/注册监听器 jbt2.addActionListener(this); /* f.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );*/ /- - int i=0; public void showRecord() while(i=0) ari0=; ari1=; ari2=; ari3=; ari4=; ari5=; i-; i=0; try Class.forName(Constant.DATABASE_TYPE_MYSQL); catch(ClassNotFoundException e)System.out.println(加载驱动程序失败!); try Connection con=DriverManager.getConnection(Constant.MYSQL_URL, Constant.MYSQL_USERNAME,Constant.MYSQL_PASSWORD); String s=select * from book ; Statement sql=con.createStatement(); ResultSet rs=sql.executeQuery(s); while(rs.next() String bname=rs.getString(1); String bno=rs.getString(2); String price=rs.getString(3); String writer=rs.getString(4); String publish=rs.getString(5); String indate=rs.getString(6); ari0=bname; ari1=bno; ari2=price; ari3=writer; ari4=publish; ari5=indate; i+; count=+i+; L.setText(书库现在共有图书+count+本); f.repaint(); con.close(); catch(SQLException g) System.out.println(E Code+g.getErrorCode(); System.out.println(E M+g.getMessage(); public void actionPerformed(ActionEvent e) String cmd=e.getActionCommand(); if(cmd.equals(确定) f.hide(); if(cmd.equals(返回) f.hide(); public static void main(String arg) BookBrower a=new BookBrower(); a.showRecord(); package we; /*图书入库*/ import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.util.*; import java.sql.*; import javax.swing.text.JTextComponent; /extends JFrame class BookIn implements ActionListener JFrame f3; Container cp; JPanel jp1,jp2,jp3,jp4,jp,jpanelWest; JButton jbt1,jbt2;/按钮:确定、取消、 JLabel label;/标签 JTextField tf1,tf2,tf3,tf4,tf5,tf6; /定义文本 框 JLabel label1,label2,label3,label4; String sno; BookIn() f3=new JFrame(); cp=f3.getContentPane(); / 初始化面板、按钮、标签、 文本框 jp1=new JPanel(); jp2=new JPanel(); jp3=new JPanel(); jp4=new JPanel(); jpanelWest=new JPanel(); jp=new JPanel(); /- - jbt1=new JButton(确定); jbt2=new JButton(取消); /- - label=new JLabel(图书入库,SwingConstants.CE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025贵州紫云自治县格凸河镇天然林林管员及护林员招聘11人考试备考试题及答案解析
- 含技术培训技术服务合同
- 建筑施工机械租赁合同协议
- 聚焦2025年:房地产企业多元化战略与产业链协同效应创新研究报告
- 2025年工业互联网平台NFV在边缘计算中的应用实践报告
- 直播电商2025年主播影响力与消费者行为营销策略分析
- 中医院入编考试题目及答案
- 中医院笔试题目及答案
- 民办教育机构合规运营与品牌形象塑造策略2025年创新发展研究报告
- 中医药膳食试题及答案
- 桥架支吊架安装标准图-桥架支吊架图集
- (3.1.1)-野外地质工作安全(一)
- GB/T 845-2017十字槽盘头自攻螺钉
- GB/T 328.20-2007建筑防水卷材试验方法第20部分:沥青防水卷材接缝剥离性能
- FZ/T 01093-2008机织物结构分析方法织物中拆下纱线线密度的测定
- 军工产品技术状态管理讲义课件
- 压力管道安装许可规则-TSG D3001-2021
- 互联网医院建设方案
- SQL注入技术原理及实战
- 东方通——数据中心项目数据交换平台技术方案
- 医学精品课件口腔开髓
评论
0/150
提交评论