




免费预览已结束,剩余29页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕 业 设 计 报 告课题: 图书管理系统 学院: 软件学院 班级: xxxxxxxxxxx 学号: xxxxxxxxxxxxx 学生: xxxxxxxxxx 指导教师: xxxxxxx 装订交卷日期:2013年4月20日毕业设计成绩评定表指导教师评语(包含学生在毕业实习期间的表现):成绩(平时成绩): 指导教师签名:年 月 日评阅教师评语:成绩(评阅成绩): 评阅教师签名:年 月 日答辩情况记录:(不安排答辩的学生此表不填)答辩成绩:答辩委员会主任(或答辩教师小组组长)签名:年 月 日总评成绩:装订顺序: (1)封面(2)毕业设计成绩评定记录(3)毕业设计任务书(4)毕业设计报告标题、中文摘要及关键词(5)正文(6)附录(7)参考文献毕业设计成绩评定表:注:未安排答辩者平时成绩与评阅成绩分别占总评成绩的40%、60%;参加答辩者平时成绩占、卷面评阅成绩、答辩成绩分别占总评成绩40%、20%和40%。总评成绩记优秀、良好、中等、及格、不及格五等级计分。软件学院制毕业设计任务书一、设计课题:图书管理系统二、设计目的:方便对于图书馆对于图书的管理,针对不同的角色的用户登录,不同的操作,用户信息的管理包括账号、密码及借书、还书,和查看图书的类型,管理员有权利对图书信息进行增删查改,以及对借书情况的查看。三、设计要求 本课题设计要求如下:1、用户登录注册登录注册后用户可以查看是否有自己需要的图书以及借书情况。2、用户浏览图书用户通过对图书的名称可以浏览是否有这种图书的信息。3、借书用户可以查看借的图书以及还书期限。4、管理员对图书的权限管理员对图书的进行管理,如新增,删除,修改图书分类等功能。5、管理员对用户管理管理员登录系统后管理用户和管理图书。四、毕业设计报告要求:毕业设计报告由以下几部分组成:1、标题封面:标题要求简洁、确切、鲜明。2、毕业设计成绩评定记录表(教师等填写)3、毕业设计任务书(指导教师提供)4、目录5、正文6、附录五、设计进度计划:11月15日-12月15日 查阅资料、系统功能分析、模块设计、数据库设计12月16日- 2月25日 代码设计、调试 2 月 26日- 3月25日 撰写毕业设计报告3 月 26日- 4月 20 日毕业设计报告修改 5月 初 毕业设计答辨六、毕业答辨需提交的材料:1、完整的系统代码(光盘或磁盘)2、毕业设计报告学 生:周金洋 指导教师签名:2013年4月20日摘要随着科学技术的迅猛发展,计算机应用水平的提高的扩大,原来传统的图书管理,已不能满足现在这个社会大量的书籍的管理了。图书管理系统是学校管理机制中重要的一环。图书馆代表着一间学校或者地区的文化标志。图书馆丰富的图书资源能够带给我们重要并且优越的学习资源。本次设计用MyEclipse开发工具和SQL SERVER 2005数据库来基于C/S模式开发这个图书管理系统。该系统要解决的图书管理所要解决的问题,可以满足图书管理基本要求,包括增、删、改、查等功能。该系统能根据用户的需求,快捷方便的为读者提供借阅服务。 关键词:图书管理系统,数据库,JAVA目 录1 系统简述11.1 图书系统开发的背景及意义11.2 开发环境11.3 开发工具介绍22 软件需求分析42.1功能需求42.2 系统性能42.3 数据流图(DFD)53 软件概要设计63.1 确定设计方案63.2 模块的划分63.3 数据库设计94 软件详细设计144.1 用户管理144.2读者注册174.3书籍信息查询界面 如图4-3194.4书籍信息记录195 数据库概要225.1与数据库的连接代码如下:225.2数据库设计概述236 软件测试266.1 软件测试的方法与步骤267 结束语288 附录298.1参考文献291 系统简述1.1 图书系统开发的背景及意义图书管理是每个学校及教育机构都必须面对的一个工作,以前人们对于图书的管理使用的是人工方式管理,这种方式存在着许多的不足与缺陷,比如,对于图书的查找效率很低,不容易马上查找到自己需要的资料,并且维护和更新的工作很繁琐;对于现在各式各样的图书的增加,其工作量也大大的增加了,着就必然会造成图书管理人员工作强度的加强。以前的人工管理图书的方法已经跟不上时代的步伐,必须有新的管理方式来代替人工管理,随着计算的发展,使人们得生活变得更方便了,对于图书的管理也发生了改变。使用计算机对图书进行管理有着人工管理无法比拟的优点,比如,查找迅速,能够迅速的找到自己需要的图书,方便管理,存储量大,工作强度低等等。这些优点能够极大的提高对于图书管理的效率,因此图书管理系统的开发是十分必要的。1.2 开发环境 开发环境:WindowsXP 开发工具:MyEclipse8.5 数据库系统:SQL Server 20081.3 开发工具介绍1.3.1 Java语言介绍Java语言诞生于20世纪90年代初,是由sun公司出的一种面向对象的一种编程语言,其强大的功能是其他编程语言无法比拟的。Java语言特别适合Internet应用程序的开发。由于Java程序具有不依赖机器结构,它的平台无关性,可靠性高,安全稳定的特点,因此在计算机网络中占据关键地位。Java是一种简单的,跨平台,面向对象,分布式的,可移植性的语言,在Java中万物皆对象。1.3.2 SQL简介SQL Server 是一个关系数据库管理系统它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的于1988 年推出了第一个OS/2 版本在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了Microsoft 将SQL Server 移植到Windows NT系统上专注于开发推广SQL Server 的Windows NT 版本Sybase 则较专注于SQL Server在UNIX 操作系统上的应用在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。 SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。2 软件需求分析2.1功能需求1.对于新买的图书具有登记功能;2.对于图书的查询和修改,当图书发生变化时可以及时修改,比如。图书录入错误或者图书遗失;3.图书的借阅以及还书登记功能,这个功能是主要的功能记录学生的借书信息和还书信息并录入进数据库;4.对于学生的信息,能够增,删,改,查,比如学生毕业了,就要删除学生的信息,新生进来就要增加新生的信息。2.2 系统性能 1.系统的性能要求(1)统一处理的准确性和及时性(2)系统的开放性和可扩充性(3)系统的易用性和易维护性 2系统的数据要求(1)数据录入和处理的准确性和实时性。(2)数据的一致性与完整性。(3)数据的共享与独立性。2.3 数据流图(DFD)图书借书、还书管理员登录查询添加修改删除读者信息表 2-33 软件概要设计3.1 确定设计方案 图书管理系统后台前台读者对自己的信息的查询管理员对数据库的增,删,改,查 表3-13.2 模块的划分主页:通过此页可以看到本站的总体结构,并可以通过链接进入到商品区域中进行一系列的操作管理员管理:用户注册身份验证,信息修改读者(1)读者对图书的浏览。(2)读者信息:读者信息与借阅情况查询,管理员根据读者编号返回读者的基本信息、读者借书表和超期图书。(3)读者登记:添加读者,管理员输入编号(系统自动生成)、学号、姓名、日期(系统默认)、学院、系别、年龄、性别和简介等信息来注册读者。(4)读者修改:可从表中直接选择要修改的读者,或者直接输入正确的读者编号,即可返回读者信息,修改即可。(5)读者删除:可从表中直接选择要删除的读者,或者直接输入正确的读者编号,即可返回读者信息,删除即可。图书管理:(1)图书登记:根据图书编号(自动生成)、图书名称、出版社、加入数量、标准ISBN、图书作者、图书价格、入馆时间(系统当前时间)等信息为数据库添加新图书。(2)图书修改:从表中选择要修改的图书,或者直接输入正确的图书编号即可修改图书的相关信息,如图书名称、出版社、图书作者、图书价格等信息。 (3)图书遗失:图书遗失处理,通过读者编号返回读者信息和读者借书信息,在读者借书信息中选择已遗失的图书,确认图书遗失。留言管理:对客户提出的问题进行回复等操作。后台用户管理:管理员登录管理员验证编辑管理员3.3 数据库设计图 3-3数据库表图书管理员表的设计就是对图书的管理员进行管理以及一些管理员的个人信息。图 3-4 管理员表CREATE TABLE dbo.administrators(a_number int NOT NULL,a_name char(20) NOT NULL,a_sex char(5) NULL,a_age int NULL,PRIMARY KEY CLUSTERED (a_number ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY该表的设计主要是方便对图书的分类,和对图书的查询,在实际应用中图书管理员就是根据图书类型的不同将之分列在不同的类型,以方便读者的借阅寻找,表的具体结构设计如下:图 3-5图书表CREATE TABLE dbo.books(b_number int NOT NULL,b_name char(30) NOT NULL,b_author char(10) NOT NULL,b_publishing char(30) NOT NULL,b_publishTime char(20) NULL,b_genre char(20) NULL,b_price float NULL,b_supplier char(30) NOT NULL,b_adminNumber int NULL,PRIMARY KEY CLUSTERED (b_number ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY该表的设计是用于对读者借阅图书进行管理,表中图书ID属性是对借阅图书的唯一性识别标识,读者ID号记录借阅的相应读者。 图 3-6 借书表CREATE TABLE dbo.borrow(brw_id int NOT NULL,brw_people char(20) NOT NULL,brw_time char(20) NOT NULL,brw_booksName char(40) NOT NULL,brw_peopleNumber int NOT NULL,brw_booksNumber int NOT NULL,PRIMARY KEY CLUSTERED (brw_id ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY读者信息表的设计是为了图书馆管理员对读者进行管理,其中读者ID是唯一的,是读者在借阅图书时需要输入对读者身份进行识别的信息,表的具体结构设计如下:图 3-7读者表CREATE TABLE dbo.reader(r_number int NOT NULL,r_name char(20) NOT NULL,r_age int NULL,r_status char(10) NOT NULL,r_sex char(5) NULL,PRIMARY KEY CLUSTERED (r_number ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY图 3-8 供应商表CREATE TABLE dbo.supplier(s_name char(20) NOT NULL,s_address char(20) NOT NULL,s_phoneNumber char(20) NOT NULL,PRIMARY KEY CLUSTERED (s_name ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY) ON PRIMARY4 软件详细设计4.1 用户管理1.管理员登录界面的实现:管理员输入用户名和密码才能进入系统主界面,进行相关操作。 2.功能:管理员登录图书管理系统。 实现要点: (1).输入项:管理员帐号和密码。 (2).输出项:信息提示(用户名/密码无效,请确认您拥有管理员帐号)或者进入系统主界面。 (3).说明:管理员输入帐号和密码进入系统主界面进行相关操作。 (4).窗体界面:图5.1所示图 4-1登录表具体代码实现如下:/构造方法public LoginUI() /windows样式的设置 。 try UIManager.setLookAndFeel(com.sun.java.swing.plaf. +windows.WindowsLookAndFeel); catch (Exception e) /初始化控件frame = new JFrame();mainPanel = new JPanel(null);lblUserName = new JLabel(管理员:);lblPassWord = new JLabel(密 码:);mini_normal = new ImageIcon(imagemini_normal.png);mini_down = new ImageIcon(imagemini_down.png);close_normal = new ImageIcon(imageclose_normal.png);close_down = new ImageIcon(imageclose_down.png);icon = new ImageIcon(imagelogin.jpg);lblImage = new JLabel(icon);lblMini = new JLabel(mini_normal);lblClose = new JLabel(close_normal);cmdLogin = new JButton(登录);register = new JButton(注册);txtUserName = new JTextField(15);txtPassWord = new JPasswordField(15);/设置控件提示信息txtUserName.setToolTipText(请输入用户名);txtPassWord.setToolTipText(请输入密码);cmdLogin.setToolTipText(登录请点击);/设置背景图片frame.setContentPane(lblImage);imagePanel = frame.getContentPane();/BorderLayout bl = new BorderLayout();imagePanel.setLayout(new BorderLayout();mainPanel.setOpaque(false);/设置主容器背景透明化imagePanel.add(mainPanel,BorderLayout.CENTER);/向背景容器添加主容器/lblMini.setBounds(433,-1,28,20);lblClose.setBounds(461,-1,39,20);lblUserName.setBounds(120,100,80,24);lblPassWord.setBounds(120,174,80,24);txtUserName.setBounds(200,100,150,24);txtPassWord.setBounds(200,174,150,24);cmdLogin.setBounds(180, 240, 70, 24);register.setBounds(280,240,70,24);mainPanel.add(lblUserName);mainPanel.add(lblPassWord);mainPanel.add(lblMini);mainPanel.add(lblClose);mainPanel.add(txtUserName);mainPanel.add(txtPassWord);mainPanel.add(cmdLogin);mainPanel.add(register);/监听事件lblMini.addMouseListener(new LoginUIEvent(this);lblClose.addMouseListener(new LoginUIEvent(this);cmdLogin.addActionListener(new LoginUIEvent(this);register.addActionListener(new LoginUIEvent(this);txtUserName.addKeyListener(new LoginUIEvent(this);txtPassWord.addKeyListener(new LoginUIEvent(this);lblMini.addKeyListener(new LoginUIEvent(this);lblClose.addKeyListener(new LoginUIEvent(this);/设置窗体的可拖动性frame.addMouseListener(new MouseAdapter() /按下(mousePressed 不是点击,而是鼠标被按下没有抬起) public void mousePressed(MouseEvent e) origin.x = e.getX(); /当鼠标按下的时候获得窗口当前的位置 origin.y = e.getY(); ); frame.addMouseMotionListener(new MouseMotionAdapter() public void mouseDragged(MouseEvent e) /拖动(mouseDragged 指的不是鼠标在窗口中移动,而是用鼠标拖动) Point p = frame.getLocation(); /当鼠标拖动时获取窗口当前位置 /设置窗口的位置,窗口当前的位置 + 鼠标当前在窗口的位置 - 鼠标按下的时候在窗口的位置 frame.setLocation(p.x + e.getX() - origin.x, p.y + e.getY() - origin.y); ); /设置窗体属性frame.setSize(500,333);frame.setUndecorated(true);frame.setVisible(true);frame.setLocation(400,200);4.2读者注册读者注册登记界面的实现:注册读者。如图4-2图4-24.3书籍信息查询界面 如图4-3图4-34.4书籍信息记录4.41新书入库、借书、还书 如图4-4-1图4-4-14.42借书信息记录 如图4-4-2图 4-4-24.43书信息记录 如图4-4-3图 4-4-35 数据库概要5.1与数据库的连接代码如下:public class DAOConnection /定义常量static final String DRIVER_STR = com.microsoft.sqlserver.jdbc.SQLServerDriver;/驱动字符串static final String URL_STR = jdbc:sqlserver:/127.0.0.1:1433;DatabaseName=BooksManager;/连接数据库static final String USER_STR = sa;/用户名static final String PWD =429616;/密码public static Connection con = null; /创建连接对象/获取连接的静态方法public static Connection getConnection()tryClass.forName(DRIVER_STR);if(con=null )/当连接未创建或关闭时,加载驱动启动连接| con.isClosed()con = DriverManager.getConnection(URL_STR,USER_STR,PWD);System.out.println(数据库连接成功!);catch(Exception e)e.printStackTrace();return con;/关闭连接/*public static void close()try con.close(); catch (SQLException e) e.printStackTrace();*/5.2数据库设计概述数据库是整个系统的基石,数据库的设计优劣直接影响到整个系统的设计成败。 数据库是数据管理的最新技术。十多年来数据库管理系统已从专用的应用程序发展成为通用的系统软件。由于数据库具有数据结构化,最低冗余度,较高的程序与数据独立性,易于扩充,易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的。因此不仅大型计算机及中小型计算机,甚至微型机都配有数据库管理系统。 数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用性和相容性,提高了决策的可靠性。目前,数据库已经成为现代信息系统不可分割的重要组成部分。数据库技术也是计算机领域中发展最快的技术之一。 数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。 设计数据库必须遵循一定的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。整个系统所包括的信息有图书信息、读者信息、留言信息、图书借阅信息、图书归还信息、系统用户信息、读者类型信息。可将这些信息抽象为下列系统所需要的数据项和数据结构: (1)图书信息(编号,图书名称,图书类型,作者,译者,ISBN号,价格,出版社,所在书架,入库时间,管理员) (2)图书类型(编号,名称) (3)读者信息(编号,姓名,性别,读者类型,出生年月,证件号码,登记日期, 管理员)(4)读者类型(名称,可借阅图书本数) (5)图书借阅信息(图书编号,读者ID,借出时间,应还时间,是否归还,管理员) (6)图书归还信息(图书编号,读者ID,归还时间,管理员)(7)用户(编号,用户名称,密码)数据库表之间的关系如图5-2所示:图5-26 软件测试 6.1 软件测试的方法与步骤 在开发软件系统的过程中需要面对错综复杂的问题因此在软件生存周期的每个阶段都不可避免地会产生错误。测试目的在于发现错误而执行一个程序的过程,测试重要发现一个发现其中尚未发现的错误。 为了设计出有效地测试方案按照下面准则进行测试所有测试都应追溯到用户需求。6.1.1 主模块测试要点数据库连接情况:正常情况,数据库文件缺少,外部系统异常。系统设置获取:正常情况,外部系统异常。对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年建筑行业资深工程师面试指南及热点预测题详解
- 法律知识培训中学生民法典主题班会动态模板
- 2022年采购主任中层岗位竞聘培训
- 傣家竹楼教学课件
- 动画教学课件制作
- 新解读《GB-T 36761-2018工业用乙二胺》
- 甘肃省兰州市第五十八中学2024-2025学年高一下学期期末物理试卷(含答案)
- 2024-2025学年上海市松江九峰实验学校八年级(下)3月月考数学试卷(含答案)
- 新解读《GB-T 28827.1-2022信息技术服务 运行维护 第1部分:通 用要求》
- 新解读《GB-T 6374-2018凿岩机械与气动工具 尾柄和衬套配合尺寸》
- DB11-T1834-2021 城市道路工程施工技术规程高清最新版
- 穴位敷贴中医护理技术操作规范
- 冷却塔投标文件
- 手工电弧焊焊接头基本形式与尺寸
- 青年教师专业成长课题结题报告
- 农村公路安全生命防护工程施工方案
- 开拓进取:零碳汽车的材料脱碳之路
- (完整版)自我护理能力量表ESCA
- M2激光模式测量
- 网吧企业章程范本
- 充电站竣工报告(施工单位)
评论
0/150
提交评论