




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库课程设计报告系 (院):计算机科学学院专业班级:软工 *姓名:*学号:20*指导教师:*设计时间:设计地点:4 教机房1/19目录一、课程设计目的.3二、设计任务及要求. . 3三、需求分析 . . 3四、总体设计 . . 5五、详细设计与实现. . 9六、课程设计小结. .错误!未定义书签。18七、指导老师意见 : . . 192/19一、课程设计目的通过对图书管理系统的系统分析、 系统设计、 编码和调试等工作的实践, 熟悉管理信息系统的开发过程、设计方法及相关编程技术,熟练掌握数据库设计的基本理论及方法。二、设计任务及要求要求完成一个具有一定实用价值的图书管理系统,主要任务包括:在
2、Microsoft SQL Server 2000/2005/2008 环境下建立图书管理系统所使用的数据库,利用企业管理器或查询分析器建立各种数据库对象,包括:数据表、视图、约束、存储过程和触发器等;掌握 ADO.NET编程技术,对MS SQL Server数据库进行连接和操纵;掌握使用C#语言开发一个数据库应用系统的基本方法和步骤,熟悉一些基础功能的实现方法,如:数据维护(插删改等操作),数据查询、浏览和Excel导出,统计与报表,用户登录和权限管理等。了解 C/S 或 B/S 应用程序的多层体系结构及三层架构方案设计思想,了解迭代式开发,熟悉面向对象设计方法及其分析与设计过程,了解UML
3、 文档及其开发过程中的作用。指导书说明:( 1)开发环境与目标:微软C#、 SQL Server,基于 C/S 结构的 Windows 应用程序。( 2)仅给出了部分功能的设计与实现,以说明面向对象分析与设计的一般方法以及关键编程技术,其它功能部分需要自己完成。( 3)为减少篇幅和降低阅读门槛,没有追求使用标准的UML 设计文档和术语。三、需求分析1.开发背景当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制, 不仅提高了工作效率, 而且大大的提高了其安全性。 尤其对于复杂的信
4、息管理,计算机能够充分发挥它的优越性。 计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。2. 系统准备操作系统: Windows xp/7 /8数据库系统:SQL Server 2005/2008/2012客户端开发工具:Eclipse KEPLER知识准备熟悉 SQL Server 2005/2008/2012 的使用;熟悉 Java语言及其数据库编程技术。了解:迭代式开发过程、UML 设计文档、设计模式;以及图书馆相关业务知识。3/193.迭代式开发迭代式开发(统一过程UP) 系统开发被组织成一系列固定的短期(一段为2-6 周)小项目,称为 迭代 ;每次迭代都产
5、生可执行的系统。 每次迭代都包括计划、 需求、 分析、设计、编码、 测试等过程以及文档编写工作; 第一次迭代考虑系统的核心功能, 随后的迭代逐步扩展系统功能;每次迭代的成果(含需求、分析、设计、代码和文档等)均为下一次迭代的工作基础,直至满足最终需求。这种开发过程是基于面向对象方法的。4. 系统分析系统边界与约定(1) 系统限定在实体书库的借阅和管理等业务范围;(2) 不考虑图书馆的电子书库、订购、情报、人事管理等业务;(3) 不考虑图书馆的跨区分布情况,如长江大学图书馆包括多个校区图书馆;(4) 不考虑图书的通借通还,如长江大学读者可在湖北省高校任何一家图书馆借还图书;(5) 不考虑珍藏图书
6、的借阅业务;(6) 暂不考虑与校园一卡通系统的外部接口。一卡通系统为外部系统(外部参与者),卡内记录有身份及相关信息,该系统负责身份验证工作。(7) 期刊库和论文库的借阅和管理等业务可作为二期项目目标,视本系统使用情况而定。需求概要(1) 图书管理系统的基本功能需求包括:读者管理、图书管理、借阅管理、用户登录与用户管理等;其它功能需求包括:读者查询与预约借书* 、统计与报表 * 、数据备份 * 、书架管理 * 、期刊管理 * 、期刊借阅 * 、论文管理 * 、论文借阅 * 等。( * 表示留待以后的迭代周期完成,下同)(2) 相关领域概念:借书证(读者) 、图书、借还书记录。(3) 系统外部参
7、与者:读者、借书证管理员、图书管理员、借阅管理员、系统管理员。将图书馆工作人员划分为借书证管理、图书管理、 借阅管理等三类人员;系统管理员负责数据库和软件系统管理,包括各类管理员用户的创建和授权、数据库备份等工作5. 功能概述图书管理系统的一般用户具有以下功能:( 1) 登录验证( 2) 个人借阅信息查询图书管理系统的管理员具有以下功能:( 1) 登录验证( 2) 图书管理:删除,修改,查询,添加图书信息( 3) 读者管理:删除,修改,查询,添加读者信息( 4) 读者类型管理:删除,修改,查询,添加读者的读者类型( 5) 浏览学生的借阅图书的情况6. 领域模型领域概念小结读者 =读者号 (借书
8、证号)、姓名、性别、所在单位、电话、邮箱地址、办证日期、照片、4/19借书证状态、已借书数量、密码、管理角色。(借书证状态:有效、挂失、注销)读者类别 =读者类别号、读者类别名称、可借书数量、可借书天数、可续借次数,罚款率,证件有效期。图书 =书号、书名、作者、出版社、出版日期、ISBN、分类号、语言、页数、单价、内容简介、图书封面、图书状态。(图书状态包括:在馆、借出、遗失、销毁、卖出)借阅信息 =借书顺序号、读者号、书号、借书操作员、借书日期、应还日期、续借次数、还书操作员、还书日期,超期天数、应罚款金额、实际罚款金额。领域模型图 1图书管理系统概念模型(V1)重要提示: 在领域模型建立后
9、、 以及数据库设计完成后, 均应检查所有的用例文档 (检查重点:事件流、前置条件和后置条件) ,检查两者的一致性,发现缺漏点及矛盾之处,并进行修正。四、总体设计4.1 数据库设计与实现1. 操作表 (tb_operator)序号字段名数据类型说明1idintid(主键 )2namevarchar(12)姓名3sexvarchar(2)性别4ageint年龄4identityCardvarchar(30)身份证号5workdatedatetime工作时间6telvarchar(25)电话7adminbit管理员权限5/198passwordvarchar(10)密码2. 读者信息表 (tb_re
10、ader)序号字段名数据类型说明1namevarchar(10)读者姓名2sexvarchar(2)性别,男 / 女3ageint年龄4identityCardvarchar (30)身份证5datedatetime日期6maxNumint最大借书量7telvarchar(50)电话8keepMoneymoney押金9zjint证件类型10zyInt11ISBNvarchar (13)国际书号12bztimedatetime办证日期3. 图书信息表 (tb_bookInfo)序号字段名数据类型说明1ISBNVarchar(13)国际标准书号号【标识列,主键】2typeIdIntId3bookN
11、amevarchar(40)书名4writervarchar(21)作者5translatorvarchar(30)翻译者6publishervarchar(50)出版社7datesmalldatetime出版日期8Pricemoney价格4. 借阅信息表 (tb_borrow)序号字段名数据类型说明1idintid【主键】2bookISBNvarchar(13)国际书号3operatorIdint操作者编号4readerISBNvarchar(13)读者编号5isbackint是否归还6borrowDateDateTime借书日期7backDateDateTime还书日期6/195. 订书表
12、 (tb_order)序号字段名数据类型说明1ISBNVarchar国际书号【主键】2datedatetime日期3numberint数量4operaterVarchar(6)操作员5checkAndAceeptint是否接收6zkfloat5. 库存表 (tb_stockpile)序号字段名数据类型说明1ISBNvarchar(13)国际书号【主键】2Amountint数量4.2 三层架构简介采用三层体系结构,即表示层、业务逻辑层和数据访问层,如 错误!未找到引用源。所示,图中箭头表示调用和依赖关系。图 2三层架构示意图表示层( USL):也称 UI,提供交互式界面,形式: JFrame 或
13、 HTMLWeb界面。业务逻辑层( BLL):实现业务功能,为表示层提供服务,形式:类库。数据访问层( DAL):实现数据访问功能(如数据库、文件等数据的读取、保7/19存和更新),为业务逻辑层提供服务,形式:类。 com.yan. dal.DAO 类提供了对 SQL Server 数据库的一般访问方法。实体类 (model) :描述一个业务实体的类,也即应用系统所涉及的业务对象。对数据库来讲, 每个数据表对应于一个实体类, 数据表的每个字段对应于类的一个属性。表示层、业务逻辑层、数据访问层都依赖于业务实体。各层之间数据的传递主要是实体对象,业务信息封装在实体对象中。4.3 搭建三层架构解决方
14、案在 Eclipse 中创建新的 Java 项目,命名为 LibraryMIS ,包括 4 个包:(Java 窗口应用程序)、(数据访问层),(实体类集合)、(业务功能集合)。4.4类总体设计(迭代1 )实体类、数据访问层类、业务逻辑层类、表示层窗口类的初步设计 , 实体类、数据访问层、业务逻辑层的类设计其中,实体类、数据访问和业务逻辑模块分别设置了一个抽象类 (业务逻辑层为通用类),供模块中其他类继承和扩展。这有利于统一方法接口,便于不同层次之间的调用。4.5 Mod el 层实体类设计在包中添加 4 个实体类:reader 、operater 、bookInfo 、order 、 borr
15、ow 、 stockpile ,分别对应 4 个数据库表。实体类的属性与数据库表结构保持一致(名称、类型);实体类应尽量简单,除了实体对象的复制与比较等方法外,不宜添加过多方法。例 reader 类在包中添加新 Java 类 reader.java 。添加 Java 类文件 reader.java表字段映射为实体类属性的基本方法如下:private String Name;public String getName() return Name;public void setName(String Name) this. Name = Name;8/194.6BLL 层类设计BLL 层类的成员函
16、数设计,可在实现用例的过程中去发现和完成,用例实现主要包括 UI 层窗口类、 BLL层类、 DAL层类等方法的设计与实现。4.7 部分重要代码五、详细设计与实现5.1 部分代码实现1.连接数据库protectedstaticStringdbClassName=;protectedstaticStringdbUrl="jdbc:sqlserver:/localhost:1433;"+ "DatabaseName=Library;SelectMethod=Cursor"protectedstaticStringdbUser="sa"pro
17、tectedstaticStringdbPwd ="9109005439enter"protectedstaticStringsecond=null;privatestaticConnectionconn =null;privateDao() tryif( conn =null) Class.forName ( dbClassName ).newInstance();conn = DriverManager.getConnection( dbUrl,dbUser ,dbPwd);elsereturn;catch(Exception ee) ee.printStackTrac
18、e();9/192.对数据库的操作示例: publicstaticOperater check(String name, String password) inti = 0;Operater operater=new Operater();String sql ="select * from tb_operator where name='"+ "' and password='"+ password +"'and admin=1"ResultSet rs = Dao.executeQuery(sql)
19、;trywhile(rs.next() String names = rs.getString(1);operater.setId(rs.getString("id");operater.setName(rs.getString("name" );operater.setGrade(rs.getString("admin");operater.setPassword(rs.getString("password");if(names !=null) i = 1;+ name;catch(Exception e) e
20、.printStackTrace();Dao. close();returnoperater;3.model 层示例: bookInfo.javapublicclassBookInfo privateStringISBN ;privateStringtypeid;privateStringwriter;privateStringtranslator;privateStringpublisher;privateDatedate ;privateDoubleprice;privateStringbookname ;10/19publicString getBookname() returnbook
21、name ;publicvoidsetBookname(String bookname) this. bookname = bookname;publicDate getDate() returndate ;publicvoidsetDate(Date date) this. date= date;publicString getISBN() returnISBN ;publicvoidsetISBN(String isbn) ISBN = isbn;publicDouble getPrice() returnprice;publicvoidsetPrice(Double price) thi
22、s. price= price;publicString getPublisher() returnpublisher;publicvoidsetPublisher(String publisher) this. publisher= publisher;publicString getTranslator() returntranslator;publicvoidsetTranslator(String translator) this. translator= translator;publicString getTypeid() returntypeid;publicvoidsetTyp
23、eid(String typeid) this. typeid= typeid;11/19publicString getWriter() returnwriter;publicvoidsetWriter(String writer) this. writer= writer;4.bll 层示例 1:主界面 Library.java/* 主窗体*/public class Library extends JFrame private static final JDesktopPane DESKTOP_PANE = new JDesktopPane(); public static void m
24、ain(String args) 12/19try UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName();new BookLoginIFrame();/登录窗口 catch (Exception ex) ex.printStackTrace();public static void addIFame(JInternalFrame iframe) / 添加子窗体的方法 DESKTOP_PANE.add(iframe);public Library() super();setDefaultCloseOperation(
25、WindowConstants.EXIT_ON_CLOSE);/setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);setLocationByPlatform(true);setSize(800, 600);setTitle(" 图书馆管理系统");JMenuBar menuBar = createMenu(); /调用创建菜单栏的方法setJMenuBar(menuBar);final JLabel label = new JLabel();label.setBounds(0, 0, 0, 0);la
26、bel.setIcon(null); /窗体背景DESKTOP_PANE.addComponentListener(new ComponentAdapter() public void componentResized(final ComponentEvent e) Dimension size = e.getComponent().getSize();label.setSize(e.getComponent().getSize();label.setText("<html><img width=" + size.width + " height
27、="+ size.height + " src='"+ this.getClass().getResource("/backImg.jpg")+ "'></html>"););DESKTOP_PANE.add(label,new Integer(Integer.MIN_VALUE);getContentPane().add(DESKTOP_PANE);/* 创建工具栏* return JToolBar*/13/19private JMenuBar createMenu() /创建菜单栏的方法
28、JMenuBar menuBar = new JMenuBar();JMenu bookOrderMenu = new JMenu(); /初始化新书订购管理菜单bookOrderMenu.setFont(new Font(" 华文行楷 ", Font.PLAIN, 14); bookOrderMenu.setIcon(CreatecdIcon.add("xsdgcd.jpg"); bookOrderMenu.add(MenuActions.NEWBOOK_ORDER); bookOrderMenu.add(MenuActions.NEWBOOK_CHE
29、CK_ACCEPT);JMenu baseMenu = new JMenu();/初始化基础数据维护菜单baseMenu.setFont(new Font(" 华文行楷 ", Font.PLAIN, 14);baseMenu.setIcon(CreatecdIcon.add("jcsjcd.jpg");JMenu readerManagerMItem = new JMenu("读者信息管理");readerManagerMItem.add(MenuActions.READER_ADD);readerManagerMItem.add(M
30、enuActions.READER_MODIFY);JMenu bookTypeManageMItem = new JMenu(" 图书类别管理 "); bookTypeManageMItem.add(MenuActions.BOOKTYPE_ADD); bookTypeManageMItem.add(MenuActions.BOOKTYPE_MODIFY);JMenu menu = new JMenu(" 图书信息管理");menu.add(MenuActions.BOOK_ADD);menu.add(MenuActions.BOOK_MODIFY);
31、baseMenu.add(readerManagerMItem);baseMenu.add(bookTypeManageMItem);baseMenu.add(menu);baseMenu.addSeparator();baseMenu.add(MenuActions.EXIT);JMenu borrowManageMenu = new JMenu(); borrowManageMenu.setFont(new Font(" 华文行楷 ", Font.PLAIN, 14); borrowManageMenu.setIcon(CreatecdIcon.add("jyglcd.jpg");borrowManageMenu.add(MenuActions.BORROW); /借阅borrowManageMenu.add(MenuActions.GIVE_BACK); / 归还 borrowManageMenu.add(MenuActions.BOOK_SEARCH); / 搜索JMenu sysM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 历史期末专题复习提纲2024-2025学年统编版七年级历史下册
- 交通设备制造业数字化转型中的智能制造与产品生命周期管理实践报告
- 社区心理健康服务在2025年的发展现状与推广策略报告
- 智能信用体系在共享出行平台的应用与推广报告
- 国产医疗器械2025年市场竞争力:技术创新与品牌影响力分析报告
- 装备制造业2025年自主研发与产业链协同创新研究报告
- 生态修复工程2025年生物多样性保护与生态修复项目生态修复生态系统恢复路径研究报告
- 供应链金融如何优化中小企业供应链金融资源配置与风险管理报告
- 2025年养老地产市场需求变化与适老化产品设计趋势分析报告
- 2025年BIM技术在建筑项目全过程管理中的信息化管理与智能决策报告
- 2024-2025年燃气安全生产操作人员及管理人员安全知识考试题库与答案
- 2019北师大版高中英语单词表全7册
- 核技术在安检领域的应用
- 起重吊装演练方案
- 宁夏固原市第六中学2022-2023学年七年级上学期分班考试语文检测卷
- 煤矿综采队液压支架检修和维护管理制度
- 北师大版生物八年级下册23章1节生物的生存依赖一定的环境(44张)课件-课件
- 上海市闵行区2024年五年级数学第二学期期末学业水平测试试题含解析
- NB∕SH∕T 0001-2019 电缆沥青标准规范
- DL∕T 5342-2018 110kV~750kV架空输电线路铁塔组立施工工艺导则
- 2024江苏扬州市高邮市交通产业投资集团有限公司招聘17人笔试备考题库及答案解析
评论
0/150
提交评论