数据库课程设计报告图书管理系统开发

上传人:1777****777 文档编号:39791803 上传时间:2021-11-12 格式:DOC 页数:28 大小:475.50KB
返回 下载 相关 举报
数据库课程设计报告图书管理系统开发_第1页
第1页 / 共28页
数据库课程设计报告图书管理系统开发_第2页
第2页 / 共28页
数据库课程设计报告图书管理系统开发_第3页
第3页 / 共28页
点击查看更多>>
资源描述
学生课程设计(论文)图书管理系统学生姓名: 同组姓名: 学生学号: 院(系): 计 算 机 学 院 年级专业: 09计算机科学与技术2班 指导教师: 2011年12月17日攀枝花学院本科学生课程设计任务书题目图书管理系统开发1、课程设计的目的使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容;使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现;把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)(1)建立一个完整的图书管理系统。首先建立以下几个表(仅供参考,可以改变):图书(1书号,书名,作者,价格,出版社,摘要) 读者(卡号,1姓名,性别,单位,类型,级别) 借阅(2书号,书名,1序号,卡号,借书时间,还书时间)(2)图书管理应用系统的开发,要求有以下子系统: A、图书和读者信息管理功能(要求:做到实体完整性,信息的录入、删除和修改功能) B、借书,还书功能(要求:做到参照完整性,并考虑用户自定义完整性,如不同读者类型的借书限制册和还书日期等约束条件的实现,还要有超期图书罚款处理功能)C、 系统维护:如数据的备份等3、主要参考文献1张莉 SQL SEVER数据库原理及应用 2萨师煊 王珊著.数据库系统概论第三版.高等教育出版社3 施伯乐 丁宝康 汪卫.数据库系统教程 高等教育出版社2003年第2版4庄成三等.数据库系统原理及其应用.电子工业出版社4、课程设计工作进度计划第1天 :选题、完成需求分析第2天 :数据库概念结构设计第3天:数据库逻辑结构设计及物理实现第4天:应用程序开发第5天: 程序调试分析和结果、编写课程设计报告指导教师(签字)日期年 月 日教研室意见: 年 月 日学生(签字): 接受任务时间: 年 月 日注:任务书由指导教师填写。课程设计(论文)指导教师成绩评定表题目名称图书管理系统开发评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名: 年月日27攀枝花学院学生课程设计 摘要摘 要伴随着社会信息量的与日俱增,作为信息存储的主要媒体之一的图书,其数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个每个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。图书管理系统软件需要必备比较完善的数据管理方式,具有数据操作方便高效迅速等优点。该系统需采用功能强大的数据库软件开发工具进行开发,并且需要具有很好的可移植性,可在应用范围较广的DOS、WINDOWS系列等操作系统上使用。除此以外,该系统可通过访问权限控制以及数据备份功能,确保数据的安全性。通过本次数据库课程设计,实现图书管理系统的基本功能,掌握数据库的基本概念,结合实际系统的操作和设计,巩固课堂教学内容;掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个图书管理系统数据库的设计与实现;将理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其实际动手能力。关键词: 数据库;图书管理系统;设计;基本功能攀枝花学院学生课程设计 目录目录摘 要31、需求分析51.1系统目标:51.2 数据需求:51.3 事务需求:51.4 系统开发平台:61.5 网络拓扑结构:72、解决方案82.1 E-R模型设计:82.1.1 实体列表:82.1.2 系统的E-R模型:82.2 设计数据库:92.2.1创建数据库:92.2.2创建数据表:93、系统实现103.1开发环境:103.2 程序调试情况:103.4 功能显示:103.5 结论:14结束语15参考文献16附录:部分源代码清单17JAVA连接数据库的基本类:17JSP连接java的首页:24攀枝花学院学生课程设计 需求分析1、需求分析1.1系统目标:本系统主要实现对图书馆的信息进行管理,图书馆的正常运营中总是面对大量的读者信息,图书信息以及两者相互作用产生的借书信息,因此要对读者资源,图书资源,借书信息进行管理。本系统的开发就是在于提高图书管理的工作效率,加强图书馆的管理,方便图书管理员。图书馆管理系统是图书馆管理工作中不可缺少的部分,它的内容对于图书馆的管理者和使用者来说都至关重要,所以图书管理系统应该能够为管理者或读者提供充足的信息和快捷的数据处理手段。但一直以来人们使用传统人工的方式进行图书管理和借阅管理,这种管理方式存在着许多缺点,如:效率低、易忘记、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,与世界接轨的重要条件。图书管理信息系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于后台数据库的建立要求建立起数据一致性和完整性强.数据安全性好的库。同时还要做好系统维护:如数据的备份等,1.2 数据需求:根据系统的需求,首先将要记录的信息分类,要记录的信息如下。(1)读者信息:卡号,姓名,性别,单位,类型,级别。(2)借阅信息:书号,书名,序号,卡号,借书时间,还书时间。(3)图书信息:1书号,书名,作者,价格,出版社,摘要。根据这些需要,本系统需要“读者信息”表,“借阅信息”表,“图书信息”表。1.3 事务需求:经过实际考虑、思考和分析,图书管理系统主要应该具有以下功能模块,如1.1图。1在读者信息管理部分,要求如下。可以浏览读者信息。可以对读者信息进行维护,包括添加及删除等操作。2在图书信息管理部分,要求如下。可以浏览书籍信息。可以对书籍信息进行维护,包括添加及删除等操作。3在借阅信息管理部分,要求如下。可以浏览借阅信息。注 销借阅信息管理图书信息管理读者信息管理用户登录图1.1 系统业务逻辑关系1.4 系统开发平台:前台:1、硬件要求:CPU: Pentium 4 2.0GHz以上IBM兼容机内存:512MB以上容量显卡:32MB或以上显存之AGP接口显卡2、软件要求:操作系统:Microsoft Windows 2000/XP开发工具:eclipse数据库服务器:1、 硬件要求:CPU: Pentium4 2.8GHz以上IBM兼容机内存:1024MB以上容量显卡:32MB或以上显存之AGP接口显卡2、 软件要求:操作系统:Microsoft Windows 2000 Server数据库服务器:Microsoft SQL 2000 Server网络设备:2块网卡:客户机D-Link DFE-650TX,服务器Intel PCLA8460B。路由器:一台SOHO路由器TL-R402M1.5 网络拓扑结构:本设计采用客户机/服务器(C/S)体系(图1.2),数据的储存管理功能较为透明性,可以合理均衡事务的处理,充分保证数据的完整性和一致性。客户机数据库服务器 图1.2 C/S模式结构攀枝花学院学生课程设计 解决方案2、解决方案数据库主要着重于数据对象的属性和数据对象之间的关系的分析。一般采用E-R图,即实体-关系模型来分析数据对象的属性和数据对象之间的关系。2.1 E-R模型设计:2.1.1 实体列表:实 体描 述读 者所有借读者,由卡号标识图 书图书馆所有图书,由书号标识借 阅书号、卡号、借书日期、还书日期等属性,由序号标识系统管理员系统维护人员2.1.2 系统的E-R模型:该图书管理系统的E-R模型,如下图(图2.1)所示mn书名借书时间性别卡号姓名读者单位类型级别图书书号借阅序号卡号号还书时间书号书名作者价格摘要出版社书名借书时间性别卡号姓名读者单位类型级别图书书号借阅序号卡号号还书时间书号书名作者价格摘要出版社 图 2.1 E-R模型2.2 设计数据库:2.2.1创建数据库:(1)在服务器资源管理器中的任一节点右击。(2)执行快捷菜单中的“新建数据库”命令,并在打开的“数据库属性”对话框中输入数据库名LibararyMangement然后设置其数据文件和事物日志。(3)单击“确定”按钮,则新建的数据库就会出现在服务器上。2.2.2创建数据表:创建数据库后,为Library数据库添加数据表,步骤如下。(1)在服务器资源管理器中右击数据库LibararyMangement下的“表”文件夹。在弹出的快捷菜单中执行“新建表”命令,出现表设计器。(2)添加表的字段和其他详细资料。各表数据结构如下表所示:表 名列 名数据类型长 度主 键读者信息卡号int4Yes姓名varchar20性别char4单位varchar20类型varchar20级别char4借阅信息序号int4Yes卡号int4书号char10借书时间varchar20还书时间varchar20图书信息书号char10Yes书名varchar50作者varchar20价格varchar50出版社varchar50表2.1 图书管理系统各表数据结构攀枝花学院学生课程设计 系统实现3、系统实现3.1开发环境:本系统使用java语言进行开发。需要配置java虚拟机的支持。适用内存不低于256M配备有Windows7,Linux,WindowsXP系统的计算机。3.2 程序调试情况:在数据连接时一定要注意窗体和相应显示控件的绑定关系。在把系统从一台计算机移植到另一台计算机时一定要把数据文件LibararyMangement.mdf和LibararyMangement_log.ldf同时移植,并对相应的提供服务的SQL Server服务器进行相应的修改以及密码设置及修改,否则数据正确连接并显示。3.4 功能显示:如图3.1各程序代码在eclipse中所示:图3.1各程序代码在eclipse中如图3.2所示数据库的建立的表:图3.2 据库的建立的表在运行程序连接数据库后,读出其中的部分数据,供管理员查询修改,增加的主界面如图3.3查询书本信息:图3.3查询书本信息在“书本信息”窗体中可以对读者信息进行维护操作,例如浏览读者信息,添加记录和删除记录等。单击“增加图书”,就会显示“图书信息”窗体,在该窗体中可以对图书信息进行维护操作。图书信息维护窗体如图3.4所示:图3.4 图书信息维护输入完毕后单击“增加”,就会显示“增加后结果”窗体,在该窗体中可以对出版社信息进行维护操作。增加后结果如图3.5:图3.5 增加后的结果选中微机原理单击“删除”,就会显示窗体如图3.6所示:图3.6 出版社信息窗体单击“借阅管理”,结果如图3.7所示:图3.7 查询借阅管理信息在主窗体上单击“增加借阅者信息”,那么就可增加借阅者如图3.8所示:图3.8 增加借阅者信息增加完后可以点击“增加”,同时可以单击“读者管理”和“书本管理”分别对其实现管理。在“查询书本信息”点击“读者管理”结果如图3.9所示:图3.9 查询读者信息在主窗体上单击“增加读者信息”,那么就可增加借阅者如图3.10所示:图3.10 增加读者信息3.5 结论:在这个系统的开发过程中,值得注意的几点有:(1)数据表的实现.首先要在数据库建立相应的数据。约束是相当重要的,建立相应的表,录入相应的数据。(2)在运行java连接数据库的时候也有爱注意SQL SERVER 2000的补丁。否则无法连接数据库,还有连接驱动的重要,一定要记得引进去。(3)java连接JSP的时候注意引进自己所写的JAVA程序包和SQL的包。否则无法成功的调用里面的类方法。(4)在JSP中传送数据给JAVA程序的时候要注意传送的值的类型,传过的值是STRING,有些需要转换成INT类型。注意设置为字体为UTF-8否者会出现传值的乱码,存入数据库的时候中文字就变成乱码了。攀枝花学院学生课程设计 结束语结束语我本次实验的课题是“图书管理系统”。 通过这次的实训设计,我学到了很多的东西,让我更进一步地了解了Java编程语言,对SQL数据库也有了更进一步的了解。不仅使我的知识面有所扩充,对于图书馆业务流程也熟悉了,而且也很好的应用了系统设计相关的软件。更好的将理论知识应用于实践中,在实践中能够及时的发现问题、解决问题。同时也阅读了大量相关书籍,提高了动手制作能力。虽然我这次的实训课题不是很难,但是在我自己亲手操作时,也还是遇到了不少的问题。通过自己的直接实践积累了项目设计的经验,而且还培养了自己运用所学知识独立完成和解决课题的能力,提高了程序设计能力,而且还达到事半功倍的效果,这是从书本上所学不到的!感谢在此次实训期间各位同学及老师对我的帮助、指导,谢谢!同时通过做课程设计,有几点感想,归纳如下:1. 扎实的理论基础:如果不掌握它们,很难写出高水平的程序。而这一点又是我们所缺乏的。通过此次课程设计让我们更加深刻地体会了理论与实际相结合的重要性,熟悉了科学地设计系统的流程,加深了对数据库知识的掌握。2. 多与别人交流:在系统的制作过程中也遇到不少疑惑和诸多问题,通过查询网络资料和向同学虚心询问,加之不舍的耐心,使得一切问题迎刃而解。3. 良好的编程风格:注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。根据事先的逻辑设计设计程序代码。再次感谢在此次实训期间各位同学及老师对我的帮助、指导,谢谢!攀枝花学院学生课程设计 参考文献参考文献1张莉 SQL SEVER数据库原理及应用 2萨师煊 王珊著.数据库系统概论第三版.高等教育出版社3施伯乐 丁宝康 汪卫.数据库系统教程 高等教育出版社2003年第2版4庄成三等.数据库系统原理及其应用.电子工业出版社5萨师煊,王珊,数据库系统概论(第三版). 北京:高等教育出版社,20006齐治昌,谭庆平,宁洪,软件工程(第二版).北京:高等教育出版社,20047David I.Schneider,Visual Basic.NET编程导论. 电子工业出版社,20038软件工程理论与实践 Shari Lawrence Pfleeger编 清华大学出版社,2010-29软件需求分析 Swapna Kishore编 机械工业出版社,200710数4据库原理及设计 陶宏才编 清华大学出版社 2008-8-1攀枝花学院学生课程设计 附录:部分源代码清单附录:部分源代码清单由于代码太多,就附录上一部分的程序:JAVA连接数据库的基本类:package Sql.zqw;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class DB public static Connection getConnection() Connection conn = null;try Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");conn = DriverManager.getConnection("jdbc:microsoft:sqlserver:/localhost:1433;databaseName=LibararyManagement", "zqww" , "zqw"); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace();return conn;public static void selectBook()String sql="select 书名,书号,作者,价格,出版社 ,摘要 from 图书"Connection conn=null;Statement st=null;ResultSet rs=null;tryconn=getConnection();st=conn.createStatement();rs=st.executeQuery(sql);while(rs.next()System.out.print("书名: "+rs.getString("书名");System.out.print(" 书号: "+rs.getInt("书号");System.out.print(" 作者: "+rs.getString("作者");System.out.print(" 价格: "+rs.getInt("价格");System.out.print(" 出版社: "+rs.getString("出版社");System.out.println(" 摘要: "+rs.getString("摘要"); catch(SQLException e) System.out.println("数据库连接出错");finallytry st.close();rs.close();conn.close(); catch (SQLException e) System.out.println("数据库关闭出错");e.printStackTrace();public static boolean addBook(book s)boolean bRs=false;String sql="INSERT INTO 图书(书名,书号,作者,价格,出版社 ,摘要) VALUES(?,?,?,?,?,?)"Connection conn=null;PreparedStatement pst=null;try conn=getConnection();pst=conn.prepareStatement(sql);pst.setString(1, s.getBookname();pst.setInt(2, s.getBooksno();pst.setString(3, s.getWriter();pst.setInt(4, s.getJiage();pst.setString(5, s.getChubanshe();pst.setString(6, s.getZhaiyao();int affect=pst.executeUpdate();if(affect=1)bRs=true; catch (SQLException e) e.printStackTrace();finallytry pst.close();conn.close(); catch (SQLException e) System.out.println("关闭数据库出错");return bRs;public static boolean deBook(int booksno)boolean bRs=false;String sql="delete from 图书 where 书号=?"Connection conn=null;PreparedStatement pst=null;tryconn=getConnection();pst=conn.prepareStatement(sql);pst.setInt(1, booksno);int affect=pst.executeUpdate();if(affect=1)bRs=true; catch(SQLException e) System.out.println("数据库连接出错");finallytry pst.close();conn.close(); catch (SQLException e) System.out.println("数据库关闭出错");e.printStackTrace();return bRs;public static boolean deLend(int booksno)boolean bRs=false;String sql="delete from 借阅 where 序号=?"Connection conn=null;PreparedStatement pst=null;tryconn=getConnection();pst=conn.prepareStatement(sql);pst.setInt(1, booksno);int affect=pst.executeUpdate();if(affect=1)bRs=true; catch(SQLException e) System.out.println("数据库连接出错");finallytry pst.close();conn.close(); catch (SQLException e) System.out.println("数据库关闭出错");e.printStackTrace();return bRs;public static boolean deReader(int booksno)boolean bRs=false;String sql="delete from 读者 where 卡号=?"Connection conn=null;PreparedStatement pst=null;tryconn=getConnection();pst=conn.prepareStatement(sql);pst.setInt(1, booksno);int affect=pst.executeUpdate();if(affect=1)bRs=true; catch(SQLException e) System.out.println("数据库连接出错");finallytry pst.close();conn.close(); catch (SQLException e) System.out.println("数据库关闭出错");e.printStackTrace();return bRs;public static boolean addLend(lend s)boolean bRs=false;String sql="INSERT INTO 借阅( 序号,卡号,书号,书名,借书时间,还书时间) VALUES(?,?,?,?,?,?)"Connection conn=null;PreparedStatement pst=null;try conn=getConnection();pst=conn.prepareStatement(sql);pst.setInt(1, s.getXuhao();pst.setInt(2, s.getKahao();pst.setString(3, s.getshuhao();pst.setString(4, s.getShuming();pst.setString(5, s.getJieshushijian();pst.setString(6, s.getHuanshushijian();int affect=pst.executeUpdate();if(affect=1)bRs=true; catch (SQLException e) e.printStackTrace();finallytry pst.close();conn.close(); catch (SQLException e) System.out.println("关闭数据库出错");return bRs;public static boolean addReader(reader s)boolean bRs=false;String sql="INSERT INTO 读者(卡号,姓名,性别,单位,类型,级别) VALUES(?,?,?,?,?,?)"Connection conn=null;PreparedStatement pst=null;try conn=getConnection();pst=conn.prepareStatement(sql);pst.setInt(1, s.getKahao();pst.setString(2, s.getXingming();pst.setString(3, s.getXingbie();pst.setString(4, s.getDanwei();pst.setString(5, s.getLeixing();pst.setString(6, s.getJibie();int affect=pst.executeUpdate();if(affect=1)bRs=true; catch (SQLException e) e.printStackTrace();finallytry pst.close();conn.close(); catch (SQLException e) System.out.println("关闭数据库出错");return bRs;JSP连接java的首页:<% page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><% page import="Sql.zqw.*" %><% page import="java.sql.*" %><!DOCTYPE html PUBLIC "-/W3C/DTD HTML 4.01 Transitional/EN" "http:/www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><style type="text/css">* text-align: center;font-size: 22px;table border: groove;border-color: Black;background: Orange;text-align: center;font-family: 仿宋;border-collapse: collapse;table td border: 1px solid #003399;width: 240px;heighth: 40px; table tr border: 1px solid #003399;.th1 background: blue;</style></head><body><h1 >查询书本信息</h1><%String sql="select 书名,书号,作者,价格,出版社 ,摘要 from 图书"Connection conn=null;Statement st=null;ResultSet rs=null;conn=DB.getConnection();st=conn.createStatement();rs=st.executeQuery(sql); %> <table border="2"> <tr class="th1"> <td>书名</td> <td>书号 </td> <td>作者 </td> <td>价格 </td> <td>出版社</td> <td>摘要</td> <td>操作</td> </tr> <% while(rs.next() %> <tr> <td> <%=rs.getString("书名") %></td> <td> <%=rs.getInt("书号") %> </td> <td><%=rs.getString("作者") %> </td> <td> <%=rs.getInt("价格") %></td> <td> <%=rs.getString("出版社")%></td> <td> <%=rs.getString("摘要")%></td> <td><a href="delBook.jsp?booksno=<%=rs.getInt("书号")%>">删除</a></td> </tr> <%> </table> <% rs.close();st.close();conn.close();%><a href="addBook.jsp">增加图书</a><a href="selectLend.jsp">借阅管理</a><a href="selectReader.jsp">读者管理</a></body></html>
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!