ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:1.52MB ,
资源ID:27066787      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库原理及应用课设报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库原理及应用课设报告.docx

1、数据库原理及应用课设报告数据库课程设计报告系 (院): 计算机科学学院 专业班级: 软工* 姓 名: * 学 号: 20* 指导教师: * 设计时间: 2015.12.* 设计地点: 4教机房 一、课程设计目的通过对图书管理系统的系统分析、系统设计、编码和调试等工作的实践,熟悉管理信息系统的开发过程、设计方法及相关编程技术,熟练掌握数据库设计的基本理论及方法。二、设计任务及要求 要求完成一个具有一定实用价值的图书管理系统,主要任务包括: 在Microsoft SQL Server 2000/2005/2008环境下建立图书管理系统所使用的数据库,利用企业管理器或查询分析器建立各种数据库对象,包

2、括:数据表、视图、约束、存储过程和触发器等; 掌握ADO.NET编程技术,对MS SQL Server数据库进行连接和操纵; 掌握使用C#语言开发一个数据库应用系统的基本方法和步骤,熟悉一些基础功能的实现方法,如:数据维护(插删改等操作),数据查询、浏览和Excel导出,统计与报表,用户登录和权限管理等。 了解C/S或B/S应用程序的多层体系结构及三层架构方案设计思想,了解迭代式开发,熟悉面向对象设计方法及其分析与设计过程,了解UML文档及其开发过程中的作用。指导书说明:(1)开发环境与目标:微软 C#、SQL Server,基于C/S结构的Windows应用程序。(2)仅给出了部分功能的设计

3、与实现,以说明面向对象分析与设计的一般方法以及关键编程技术,其它功能部分需要自己完成。(3)为减少篇幅和降低阅读门槛,没有追求使用标准的UML设计文档和术语。三、需求分析 1.开发背景当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。2. 系统准备操作系统:Windows xp/7/8数据库系统:SQL

4、 Server 2005/2008/2012客户端开发工具:Eclipse KEPLER知识准备熟悉SQL Server 2005/2008/2012的使用;熟悉Java语言及其数据库编程技术。了解:迭代式开发过程、UML设计文档、设计模式;以及图书馆相关业务知识。3.迭代式开发迭代式开发(统一过程UP) 系统开发被组织成一系列固定的短期(一段为2-6周)小项目,称为迭代;每次迭代都产生可执行的系统。每次迭代都包括计划、需求、分析、设计、编码、测试等过程以及文档编写工作;第一次迭代考虑系统的核心功能,随后的迭代逐步扩展系统功能;每次迭代的成果(含需求、分析、设计、代码和文档等)均为下一次迭代的

5、工作基础,直至满足最终需求。这种开发过程是基于面向对象方法的。4. 系统分析系统边界与约定(1) 系统限定在实体书库的借阅和管理等业务范围;(2) 不考虑图书馆的电子书库、订购、情报、人事管理等业务;(3) 不考虑图书馆的跨区分布情况,如长江大学图书馆包括多个校区图书馆;(4) 不考虑图书的通借通还,如长江大学读者可在湖北省高校任何一家图书馆借还图书;(5) 不考虑珍藏图书的借阅业务;(6) 暂不考虑与校园一卡通系统的外部接口。一卡通系统为外部系统(外部参与者),卡内记录有身份及相关信息,该系统负责身份验证工作。(7) 期刊库和论文库的借阅和管理等业务可作为二期项目目标,视本系统使用情况而定。

6、需求概要(1) 图书管理系统的基本功能需求包括:读者管理、图书管理、借阅管理、用户登录与 用户管理等;其它功能需求包括:读者查询与预约借书*、统计与报表*、数据备份*、书架 管理*、期刊管理*、期刊借阅*、论文管理*、论文借阅*等。(* 表示留待以后的迭代周期完成,下同)(2) 相关领域概念:借书证(读者)、图书、借还书记录。(3) 系统外部参与者:读者、借书证管理员、图书管理员、借阅管理员、系统管理员。 将图书馆工作人员划分为借书证管理、图书管理、借阅管理等三类人员;系统管理员负责数据库和软件系统管理,包括各类管理员用户的创建和授权、数据库备份等工作5.功能概述 图书管理系统的一般用户具有以

7、下功能:(1) 登录验证 (2) 个人借阅信息查询图书管理系统的管理员具有以下功能:(1) 登录验证(2) 图书管理:删除,修改,查询,添加图书信息(3) 读者管理:删除,修改,查询,添加读者信息(4) 读者类型管理:删除,修改,查询,添加读者的读者类型(5) 浏览学生的借阅图书的情况6.领域模型领域概念小结读者=读者号(借书证号)、姓名、性别、所在单位、电话、邮箱地址、办证日期、照片、借书证状态、已借书数量、密码、管理角色。(借书证状态:有效、挂失、注销)读者类别=读者类别号、读者类别名称、可借书数量、可借书天数、可续借次数,罚款率,证件有效期。图书=书号、书名、作者、出版社、出版日期、IS

8、BN、分类号、语言、页数、单价、内容简介、图书封面、图书状态。(图书状态包括:在馆、借出、遗失、销毁、卖出)借阅信息=借书顺序号、读者号、书号、借书操作员、借书日期、应还日期、续借次数、还书操作员、还书日期,超期天数、应罚款金额、实际罚款金额。领域模型图 1 图书管理系统概念模型(V1)重要提示:在领域模型建立后、以及数据库设计完成后,均应检查所有的用例文档(检查重点:事件流、前置条件和后置条件),检查两者的一致性,发现缺漏点及矛盾之处,并进行修正。四、总体设计 4.1 数据库设计与实现1. 操作表(tb_operator)序号字段名数据类型说明1idintid(主键)2namevarchar

9、(12)姓名3sexvarchar(2)性别4ageint年龄4identityCardvarchar(30)身份证号5workdatedatetime工作时间6telvarchar(25)电话7adminbit管理员权限8passwordvarchar(10)密码2. 读者信息表(tb_reader)序号字段名数据类型说明1namevarchar(10)读者姓名2sexvarchar(2)性别,男/女3ageint年龄4identityCardvarchar (30)身份证5datedatetime日期6maxNumint最大借书量7telvarchar(50)电话8keepMoneymon

10、ey押金9zjint证件类型10zyInt11ISBNvarchar (13)国际书号12bztimedatetime办证日期3. 图书信息表(tb_bookInfo)序号字段名数据类型说明1ISBNVarchar(13)国际标准书号号【标识列,主键】2typeIdIntId3bookNamevarchar(40)书名4writervarchar(21)作者5translatorvarchar(30)翻译者6publishervarchar(50)出版社7datesmalldatetime出版日期8Pricemoney价格4. 借阅信息表(tb_borrow)序号字段名数据类型说明1idint

11、id【主键】2bookISBNvarchar(13)国际书号3operatorIdint操作者编号4readerISBNvarchar(13)读者编号5isbackint是否归还6borrowDateDateTime借书日期7backDateDateTime还书日期5. 订书表(tb_order)序号字段名数据类型说明1ISBNVarchar国际书号【主键】2datedatetime日期3numberint数量4operaterVarchar(6)操作员5checkAndAceeptint是否接收6zkfloat5. 库存表(tb_stockpile)序号字段名数据类型说明1ISBNvarch

12、ar(13)国际书号【主键】2Amountint数量4.2 三层架构简介采用三层体系结构,即表示层、业务逻辑层和数据访问层,如图 1所示,图中箭头表示调用和依赖关系。图 2 三层架构示意图表示层(USL):也称UI,提供交互式界面,形式:JFrame或HTML Web界面。业务逻辑层(BLL):实现业务功能,为表示层提供服务,形式:类库。数据访问层(DAL):实现数据访问功能(如数据库、文件等数据的读取、保存和更新),为业务逻辑层提供服务,形式:类。com.yan. dal.DAO类提供了对SQL Server数据库的一般访问方法。实体类(model):描述一个业务实体的类,也即应用系统所涉及

13、的业务对象。对数据库来讲,每个数据表对应于一个实体类,数据表的每个字段对应于类的一个属性。表示层、业务逻辑层、数据访问层都依赖于业务实体。各层之间数据的传递主要是实体对象,业务信息封装在实体对象中。4.3 搭建三层架构解决方案在Eclipse中创建新的Java项目,命名为LibraryMIS,包括4个包:com.yan.gui(Java窗口应用程序)、com.yan.dal(数据访问层),com.yan.model(实体类集合)、com.yan.bll(业务功能集合)。4.4 类总体设计(迭代1)实体类、数据访问层类、业务逻辑层类、表示层窗口类的初步设计,实体类、数据访问层、业务逻辑层的类设计

14、其中,实体类、数据访问和业务逻辑模块分别设置了一个抽象类(业务逻辑层为通用类),供模块中其他类继承和扩展。这有利于统一方法接口,便于不同层次之间的调用。4.5 Model层实体类设计在com.yan.model包中添加4个实体类:reader、operater、bookInfo、order、borrow、stockpile,分别对应4个数据库表。实体类的属性与数据库表结构保持一致(名称、类型);实体类应尽量简单,除了实体对象的复制与比较等方法外,不宜添加过多方法。例 reader类在com.yan.model包中添加新Java类reader.java。添加Java类文件reader.java表

15、字段映射为实体类属性的基本方法如下:private String Name; public String getName() return Name; public void setName(String Name) this. Name = Name; 4.6BLL层类设计BLL层类的成员函数设计,可在实现用例的过程中去发现和完成,用例实现主要包括UI层窗口类、BLL层类、DAL层类等方法的设计与实现。4.7部分重要代码五、详细设计与实现 5.1部分代码实现1.连接数据库protected static String dbClassName = com.microsoft.sqlserver

16、.jdbc.SQLServerDriver; protected static String dbUrl = jdbc:sqlserver:/localhost:1433; + DatabaseName=Library;SelectMethod=Cursor; protected static String dbUser = sa; protected static String dbPwd = 9109005439enter; protected static String second = null; private static Connection conn = null; priva

17、te Dao() try if (conn = null) Class.forName(dbClassName).newInstance(); conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd); else return; catch (Exception ee) ee.printStackTrace(); 2.对数据库的操作示例:public static Operater check(String name, String password) int i = 0; Operater operater=new Operater()

18、; String sql = select * from tb_operator where name= + name + and password= + password + and admin=1; ResultSet rs = Dao.executeQuery(sql); try while (rs.next() String names = rs.getString(1); operater.setId(rs.getString(id); operater.setName(rs.getString(name); operater.setGrade(rs.getString(admin)

19、; operater.setPassword(rs.getString(password); if (names != null) i = 1; catch (Exception e) e.printStackTrace(); Dao.close(); return operater; 3.model层示例:bookInfo.javapackage com.yan.model;import java.sql.Date;public class BookInfo private String ISBN; private String typeid; private String writer;

20、private String translator; private String publisher; private Date date; private Double price; private String bookname; public String getBookname() return bookname; public void setBookname(String bookname) this.bookname = bookname; public Date getDate() return date; public void setDate(Date date) thi

21、s.date = date; public String getISBN() return ISBN; public void setISBN(String isbn) ISBN = isbn; public Double getPrice() return price; public void setPrice(Double price) this.price = price; public String getPublisher() return publisher; public void setPublisher(String publisher) this.publisher = p

22、ublisher; public String getTranslator() return translator; public void setTranslator(String translator) this.translator = translator; public String getTypeid() return typeid; public void setTypeid(String typeid) this.typeid = typeid; public String getWriter() return writer; public void setWriter(Str

23、ing writer) this.writer = writer; 4.bll层示例1:主界面Library.javapackage com.yan.bll;import java.awt.BorderLayout;import java.awt.Dimension;/import java.awt.Dialog.ModalExclusionType;import java.awt.event.ComponentAdapter;import java.awt.event.ComponentEvent;import .URL;import javax.swing.ImageIcon;import

24、 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;import javax.swing.WindowConstants;import javax.swi

25、ng.border.BevelBorder;import com.yan.gui.BookLoginIFrame;import java.awt.Font;/* * 主窗体 * */public class Library extends JFrame private static final JDesktopPane DESKTOP_PANE = new JDesktopPane(); public static void main(String args) try UIManager.setLookAndFeel(UIManager .getSystemLookAndFeelClassNa

26、me(); new BookLoginIFrame();/登录窗口 catch (Exception ex) ex.printStackTrace(); public static void addIFame(JInternalFrame iframe) / 添加子窗体的方法 DESKTOP_PANE.add(iframe); public Library() super(); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); /setModalExclusionType(ModalExclusionType.APPLICATIO

27、N_EXCLUDE); setLocationByPlatform(true); setSize(800, 600); setTitle(图书馆管理系统); JMenuBar menuBar = createMenu(); / 调用创建菜单栏的方法 setJMenuBar(menuBar); final JLabel label = new JLabel(); label.setBounds(0, 0, 0, 0); label.setIcon(null); / 窗体背景 DESKTOP_PANE.addComponentListener(new ComponentAdapter() publ

28、ic void componentResized(final ComponentEvent e) Dimension size = e.getComponent().getSize(); label.setSize(e.getComponent().getSize(); label.setText(); ); DESKTOP_PANE.add(label,new Integer(Integer.MIN_VALUE); getContentPane().add(DESKTOP_PANE); /* * 创建工具栏 * * return JToolBar */ private JMenuBar createMenu() / 创建菜单栏的方法

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1