ImageVerifierCode 换一换
格式:DOC , 页数:27 ,大小:798.50KB ,
资源ID:9900245      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9900245.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(数据库课设报告-图书馆管理系统.doc)为本站上传会员【可****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据库课设报告-图书馆管理系统.doc

1、 课 程 设 计 课程名称____ 数据库_________ 题目名称 图书馆管理系统 学生学院____计算机学院_________ 专业班级___________ 学 号_____________ 学生姓名______ _________ 指导教师________左亚饶_________ 2013年 1 月 15 日 目录 1.课设概述 3 1.1 课设选题 3 1.2 课设背景 3 1.3 开发环境与工具 4 2.需求分析 4 2.1系统需求概述 4 2.2

2、 功能性需求 4 3.概要设计 5 3.1 系统总体设计 5 3.1.1逻辑结构设计 6 3.1.2软件架构设计 6 3.2 系统功能设计 7 3.2.1总体结构 7 3.2.1功能设计说明 9 3.3 数据库设计 10 3.3.1建库设计 10 3.4 界面设计 11 3.4.1主界面 11 3.4.2子界面A 12 4.详细设计 14 4.1 模块接口设计 14 5.系统测试 18 5.1 各模块测试 18 5.2 测试评价 22 5.3.1 充分性评价 22 5.3.2 缺陷与不足 22 5.3.3 改进建议 22 6.总结体会 23 参考文献

3、 24 27 1.课设概述 1.1 课设选题 图书馆管理系统实例 1.2 课设背景 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。 图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有

4、很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。 数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手

5、工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。 基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。 1.3 开发环境与工具 序号 类别 具体需求 备注 1 硬件 内存512M以

6、上 2 软件 Windows xp以上 Sql Server 2000+ eclipse + JDBC 驱动 2. 需求分析 2.1 系统需求概述 设计图书馆信息管理系统要考虑的问题很多。本程序的实例对实际系统作了适当的简化。需求概述如下: ①  系统能对书籍信息进行管理。书籍的信息包括:书籍名称、出版社、作者、出版社地址、出版日期、价格、书籍数量、书籍借出数量。书籍管理功能包括:添加书籍、修改书籍信息、删除书籍。添加书籍时。可设定新书数目,几本完全相同的书籍作为一条记录管理。 ②  系统不需要管理借阅者除姓名外的信

7、息。对每一名借阅者最多可借阅的书籍数目不做限定。 ③  借书时,管理人员记录借书者姓名、借阅书籍名称和借阅日期。 ④  还书时,管理人员记录还书者姓名、归还书籍名和还书日期。系统暂时不设定书籍的最长借阅时间。 ⑤  操作人员可以根据书籍名称、作者、出版社三者之一或者三者的任意组合查询书籍信息。系统暂时不具备模糊查询的功能。 ⑥  操作人员可以查询借阅某书籍的所有借阅者姓名;也可以查询借阅者借阅的所有书籍名称;还可以根据借阅者姓名、书籍名称查询借阅者的借书时间、还书时间。 ⑦  系统由图书馆工作人员操作、图书馆工作人员分为系统管理员、书籍管理员和借阅管理员三类。系统管理员具有所有操作权

8、限;书籍管理员具有书籍管理、查询信息权限但不具备管理借书还书事宜及管理用户权限;借阅管理员具有管理借书还书、查询信息权限,但不具备管理书籍和用户的权限。 ⑧  系统管理员负责管理系统用户,可以增减用户、修改用户密码和删除用户。 ⑨  所有操作人员凭账号和密码登陆系统。 2.3 功能性需求 u 用户登陆 u 用户管理:该功能又包含以下三项子功能: l 添加用户 l 修改用户密码 l 删除用户 u 书籍管理:书籍管理功能包括以下三项子功能: l 添加书籍 l 修改书籍 l 删除书籍 u 借书管理:该功能包括以下两项子功能: l 书籍出借 l 出借信息修改 u 还书管

9、理:该功能包括以下两项子功能: l 书籍还入 l 书籍还入信息修改 u 信息查询:该功能包括以下三项子功能: l 书籍信息查询 l 借阅信息查询 l 系统用户列表 3.概要设计 3.1 系统总体设计 系统包含五大功能:系统管理、书籍管理、借书管理、还书管理、信息查询。每个功能还可以进一步划分为若干个子功能。根据场景和用户权限分析,绘制成一个如图所示的用例总体图。 图书管理系统 3.1.1逻辑结构设计 采用C/S逻辑结构的设计。即每一个用户登录都要输入用户名和密码已验证身份。然后在后台数据库系统查询用户是否存

10、在,返回给用户一个结果。用户根据自己的权限进行相应的操作。 关系模型为(满足第三范式3NF): 用户表UserTable(ID,用户名,用户密码,用户权限), 书籍表books(ID,书名,出版社,作者,地址,日期,价格,网址,购书总数量,已借走数量), 借阅表booksBrowse(ID,名称,出版社,作者,地址,日期,价格,网址,购书总数量,已借走数量)。 ID字段均被设置为“标识”,标识种子为1,增量为1。被设置为“标志”的字段的数据必须为数值类型。 3.1.2软件架构设计 采用Java的软件架构,采用了Java 包中的JDBC链接SQL Server 2000数据库的包。

11、界面GUI设计采用了Java的图形界面设计包如swing和awt组件构成了用户界面。 3.2 系统功能设计 3.2.1总体结构 系统开发了以下用户场景: 场景名称:用户登录 参与执行者实例:系统用户、本软件系统界面、数据库 前置条件:软件已经打开、数据库已经连接 事件流:1 用户单击“用户登录”菜单项 2 系统弹出一个子窗口,用户在子窗口输入登录账号和密码 3 系统查询数据库用户列表,判断此账号是否存在,账号和密码是否吻合 4 如果账户存在并且账号和密码吻合,系统将根据该账号锁对应的操作权限设定用 户所能操作的菜

12、单选项 后置条件:用户已经登录,用户可以操作有权使用的菜单项 场景名称:添加用户 参与执行者实例:系统用户、本软件系统界面、数据库 前置条件:软件已经打开、数据库已经连接、用户具有添加新用户的权限 事件流:1 用户单击“用户添加”菜单项 2 系统弹出一个子窗口,用户在子窗口输入新增用户的登入名、登入密码和权限 3 系统向数据库用户表新增一条记录 后置条件:已新增用户,新用户可以使用指定登入名和密码登入 场景名称:修改用户密码 参与执行者实例:系统用户、本软件系统界面、数据库 前置条件:软件已经打开、数据库已经连接、该用户具有

13、修改其他用户密码的权限 事件流:1 用户单击“修改用户密码”菜单项 2 系统弹出一个子窗口,用户在子窗口输入欲修改用户的登入名、原密码和新密码 3 系统向数据库用户表刷新一条记录 后置条件:用户密码已经修改,可进行后续操作 场景名称:删除用户 参与执行者实例:系统用户、本软件系统界面、数据库 前置条件:软件已经打开、数据库已经连接、该用户具有删除其他用户的权限 事件流:1 用户单击“删除用户”菜单项 2 系统弹出一个子窗口,用户在子窗口输入欲删除用户的登入名、密码 3 系统向数据库用户表删除此记录

14、 后置条件:指定用户已经被删除 场景名称:添加书籍 参与执行者实例:系统用户、本软件系统界面、数据库 前置条件:软件已经打开、数据库已经连接、该用户具有添加书籍的权限 事件流:1 用户单击“添加书籍”菜单项 2 系统弹出一个子窗口,用户在子窗口输入欲添加书籍的书籍名称、出版社、作者、出版社地址、出版日期、价格、新增数目、备注 3 系统向数据库书籍表新增一条记录 后置条件:书籍已经添加,可以进行后续操作 场景名称:修改书籍 参与执行者实例:系统用户、本软件系统界面、数据库 前置条件:软件已经打开、数据库已经连接、该用户具有修

15、改书籍的权限 事件流:1 用户单击“修改书籍”菜单项 2 系统弹出一个子窗口,用户在子窗口输入欲修改书籍的书名 3 用户修改书籍的基本信息 4 系统向数据库书籍表刷新书籍记录 后置条件:书籍信息已经修改 场景名称:书籍出借 参与执行者实例:系统用户、本软件系统界面、数据库 前置条件:软件已经打开、数据库已经连接、该用户具有出借书籍的权限 事件流:1 用户单击“书籍出借”菜单项 2 系统弹出一个子窗口,用户在子窗口输入借阅者姓名、借阅书籍名称、借阅日期、备注等信息 3 系统查询数据库

16、书籍表,判断所借书是否还有库存本 4 若有,系统向数据库借阅表新增一条记录 5 系统修改数据库书籍表中该书籍的借出册数 后置条件:书籍借出,借出册数加1 。。。。省略的几个表和上述表类似,这里就不再阐述了。 场景名称:查看用户列表 参与执行者实例:系统用户、本软件系统界面、数据库 前置条件:软件已经打开、数据库已经连接、该用户具有查看用户列表的权限 事件流:1 用户单击“查看用户列表”菜单项 2 系统查询数据库用户表,以表格的形式显示所有用户登入名和权限 后置条件:满足条件的记录已经找到,可以进行其他查询或其他操作

17、 [说明系统按照功能划分的总体结构。可用结构图来描述系统的子系统划分情况;如果待实现系统比较简单,则可以直接描述系统中模块间关系的层次。结构图的基本组成部分是模块,模块用来标识一个功能,在结构图中表示了系统的层次关系和调用关系] 3.2.1功能设计说明 上述几个表很清楚的说明了每一个类到底在干什么和怎么实现的,每一个场景都包括了场景名称,参与执行者的类别说明,前置条件和引起的事件流说明,还有后置条件。这是我设计程序很可靠的保障,这让我思路很清楚而且知道每一个类之间的联系和区别之处。此外还有一个用户权限的设计表: 用户 功能 权限 系统管理员

18、 书籍管理员 借阅管理员 用户登录 √ √ √ 添加用户 √ × × 修改用户密码 √ × × 删除用户 √ × × 添加书籍 √ √ × 修改书籍 √ √ × 删除书籍 √ √ × 书籍出借 √ × √ 修改书籍借阅信息 √ × √ 书籍还入 √ × √ 修改书籍还入信息 √ × √ 书籍信息查询 √ √ √ 借阅信息查询 √ √ √ 查看用户列表 √ × × 3.3 数据库设计 3.3.1建库设计 本软件涉及的对象较多,仅仅构造一个数据库表示无法使数据库表满足

19、第三范式的。因此,根据构造关系数据表的有关理论,我构造了三个数据库表:用户表、书籍表和借阅表。这三个表的字段和字段数据类型如下面所示。 关系模型为(满足第三范式3NF): 用户表UserTable(ID,用户名,用户密码,用户权限), 书籍表books(ID,书名,出版社,作者,地址,日期,价格,网址,购书总数量,已借走数量), 借阅表booksBrowse(ID,名称,出版社,作者,地址,日期,价格,网址,购书总数量,已借走数量)。 3.4 界面设计 3.4.1主界面 根据系统功能,整理出系统菜单,如图所示: 3.4.2子界面A

20、 后面的子界面不再显示了。 4.详细设计 4.1 各模块接口设计 通过了以上分析场景和概要设计之后,现在可以详细绘制各个类流程图和实现过程了。(流程图采用Diagram Designer软件) 下面举例几个关键类的流程图,其他的是类似。 用户登录的流程图: 关键代码: public void actionPerformed(ActionEvent e) { if (e.getSource() == cancelBtn) { mainFrame.setEnable("else"); this.dispose();

21、 } else { char[] password = passwordTextField.getPassword(); String passwordSTR = new String(password); if (userTextField.getText().trim().equals("")) { JOptionPane.showMessageDialog(null, "用户名不可为空!"); return; } if (passwordSTR.equals("")) {

22、 JOptionPane.showMessageDialog(null, "密码不可为空!"); return; } String strSQL; strSQL = "select * from usertable where UserName='" + userTextField.getText().trim() + "'and Password='" + passwordSTR + "'"; rs = db.getResult(strSQL);

23、 boolean isExist = false; try { isExist = rs.first(); } catch (SQLException sqle) { System.out.println(sqle.toString()); } if (!isExist) { JOptionPane.showMessageDialog(null, "用户名不存在或者密码不正确!"); mainFrame.setEnable("else");

24、 } else { try { rs.first(); mainFrame.setEnable(rs.getString("power").trim()); db.closeConnection(); this.dispose(); } catch (SQLException sqle2) { System.out.println(sqle2.toString()); } }

25、 借阅信息查询: 关键代码: public void actionPerformed(ActionEvent e) { if (e.getSource() == clearBtn) { borrowedBookStudentTextField.setText(""); borrowedBookNameTextField.setText(""); borrowedDateTextField.setText(""); borrowedCommentTextField.s

26、etText(""); } else if (e.getSource() == cancelBtn) { this.dispose(); } else if (e.getSource() == yesBtn) { try { String strSQL = "select studentName,bookName,borrowDate,com from BookBrowse where studentName='" + borrowedBookStudent

27、TextField.getText().trim() + "'and bookName='" + borrowedBookNameTextField.getText().trim() + "'"; rs = db.getResult(strSQL); if (!rs.first()) { JOptionPane.showMessageDialog(null, "此学生没有借过书!或者没有此书!"); } else { borrowedBookStud

28、entTextField.setText(rs.getString(1).trim()); borrowedBookNameTextField.setText(rs.getString(2).trim()); borrowedDateTextField.setText(rs.getString(3).trim()); borrowedCommentTextField.setText(rs.getString(4).trim()); updateBtn.setEnabled(true);

29、 } } catch (Exception ex) { System.out.println(ex.toString()); } } else if (e.getSource() == updateBtn) { String strSQL = "update bookBrowse set borrowDate='" + borrowedDateTextField.getText().trim() + "',com='" + borrowedComment

30、TextField.getText().trim() + "' where studentName='" + borrowedBookStudentTextField.getText().trim() + "'and bookName='" + borrowedBookNameTextField.getText().trim() + "'"; if (db.updateSql(strSQL)>0) { JOptionPane.showMessageDialog(null, "更新成功!"); db.c

31、loseConnection(); this.dispose(); } else { JOptionPane.showMessageDialog(null, "更新失败!"); db.closeConnection(); this.dispose(); } } 其他测试模块请看文件中具体代码。 5.系统测试 5.1 模块测试 在数据库中只保留了一个系统管理员用户,方便操作。 输入用户名和密码。如上图所示的系统用户和密码。 系统菜单全

32、部激活,系统管理员可以进行所有操作。 添加lily为书籍管理员,密码初始化为0000 数据库中发生了相应的变化 添加书籍 相应数据库中发生变化,可见添加了一本书,名字叫做Java 书籍借出,可以看出目前只有一本书可借,因为书库里面只有一本书 从图中可以看出已经借出了一本书 选择借阅信息查询,可以看到名叫libai的学生借了一本书 相应数据库内容发生了变化 还书管理,输入还书者姓名和日期 相应数据库内容发生了变化 用户列表 帮助内容 5.2 测试评价 5.2.1 充分性评价 本图

33、书管理系统基本实现了一个图书馆中的基本功能。在界面上还是做得一般的,没有凸显出一个图书馆界面,但是总体上的感觉还行。各大功能模块的基本功能足够满足每一个用户的需要,能实现对数据库的增删查找功能,使用了Java的JDBC功能来实现。由于自己的数据库水平和Java水平的有限,所以在开发一个图书馆管理系统时还是显得比较乏力。在功能要求上,优点是突出了多级用户权限的功能,这方面是很有必要的也是整个系统最大的特点就是能够有多个权限功能。 5.2.2 缺陷与不足 本系统缺点也是比较多的,如GUI做的不过好,精简了很多图书馆的实际管理功能,数据库设计的不够规范,数据库的逻辑结构和物理结构设计没有考虑完整

34、虽然我们只是模拟图书馆的管理系统但是实际我们应该考虑更多因素,不仅仅局限于我们所想到的内容。在逻辑结构优化方面做的不够好。整个系统的搜索查找方面没有做够等等。 5.2.3 改进建议 针对GUI界面的设计和数据库优化方面可以做的更好,有些小细节要注意。 6.总结体会 这次数据库的实验可以来说是这三个课程设计中最难得了,因为我们要设计成一个小型数据库来实现某一个现实生活中存在的工作系统。因为要涉及到数据库知识和数据库与某一些高级语言的知识,所以要设计好一个好的小型数据库是不容易的。 总体来说我选择的是我熟悉的Java搭配上实验课所学的SQL Server的知识来构建一个图书馆管

35、理系统。在没有两个星期的设计过程中可以来说是困难重重,因为完全没用过Java的JDBC功能,所以要不断的查找Java的API文档才能了解它的工作原理。还好我挺过来了,实现了与数据库的链接。在图形界面上也就是GUI上面我用Java的强大的图形界面功能,所以大部分时间主要是链接数据库方面,反而在图形界面上我做的不是很好,知识简单设计了一下图形界面,包括各个菜单选项的实现,比较简洁的风格。 这次在数据库的链接方面花了很大功夫,主要是不明白JDBC如何才能连上SQL SERVER 2008,通过不断的找资料和上网查资料最后明白了,我们要先创建一个数据源,该数据源必须属于某一个数据库用户,然后通过JD

36、K本身自带的JDBC ODBC驱动器加载驱动然后指明路径,就可以连上数据库了。虽然花了两天功夫才弄明白,不过我觉得还是值得的,毕竟我以后就不会再犯同样的错误了,而且对于Java有了更深的了解了。 最后终于成功了,不过还是觉得收获很大的。对于以后我们了解一个数据库软件的如何实现有很大的帮助,这是非常必要的。数据库在我们生活中到处都存在,所以要设计好一个数据库要在逻辑结构设计方面下够功夫才行,否则的话会在后面实现阶段吃很大的苦头! 参考文献 1 数据库系统概论(第四版) 王珊 萨师煊著 高等教育出版社 2 Java + SQL Server项目开发实践 苏年乐编著 中国铁道出版社 3 Access 数据库项目案例导航 刘大玮 王永皎 编著 清华大学出版社

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服