摘 要
随着现代科学技术的进步人类社会正逐走向信息化。图书馆拥有丰富的文献信息资源是社会信息系统的重要组成部分在信息社会中的作用愈来愈重要。我国图书馆计算机等信息技术的应用起步于20世纪70年代末期随着改革开放的步伐得以迅速发展特别是90年代以后我国图书馆信息网络建设取得了较大发展图书馆信息化建设迈上了一个新台阶。本文介绍了在C#环境下开发图书管理信息系统的过程。文章介绍了图书馆管理信息系统的系统分析部分包括可行性分析、图书借阅流程分析等系统设计部分主要介绍了系统功能设计和数据库设计及代码设计系统实现部分说明了几个主要模块的算法本系统界面友好操作简单比较实用。系统主要完成了管理员登录功能、新建、删除管理员功能、读者信息管理功能对数据库内图书信息、借阅信息和读者信息进行查询、添加、删除功能对图书信息的查询、添加、删除功能。
关键词:C#,数据库管理,图书,借阅
目 录
1可行性分析 ................................................................................................................... 1
1.1 问题描述 ........................................................................................................... 1 1.2 可行性分析研究 ............................................................................................... 1
1.2.1 技术可行性 ............................................................................................ 1 1.2.2 经济可行性 ............................................................................................ 2 1.2.3 操作可行性 ............................................................................................ 2 1.2.4数据需求分析 ......................................................................................... 2 1.2.5结论意见 ................................................................................................. 2
2项目开发计划 ............................................................................................................... 3
2.1 编写目的 ........................................................................................................... 3 2.2 项目背景 ........................................................................................................... 3 2.3 项目概述 ........................................................................................................... 3 2.4 项目开发计划 ................................................................................................... 4 2.5 交付期限 ........................................................................................................... 4 3需求分析 ....................................................................................................................... 5
3.1数据流图 ............................................................................................................ 7 3.2数据字典 ............................................................................................................ 8 4概要设计 ..................................................................................................................... 10
4.1 总体设计 ......................................................................................................... 10 4.2概念结构设计 .................................................................................................. 10 4.3 数据库概念设计 .............................................................................................. 11 4.4 数据库逻辑结构设计 ...................................................................................... 11 4.5物理结构设计 .................................................................................................. 13 4.6连接数据库的特点 .......................................................................................... 14 4.7实体联系E-R图 .............................................................................................. 15 4.8逻辑结构设计 .................................................................................................. 18 5 详细设计 .................................................................................................................... 19
5.1 程序流程图 ..................................................................................................... 19
5.2 用户界面设计 ................................................................................................. 20
5.2.1 一般交互设计 ...................................................................................... 20 5.2.2 信息显示设计 ...................................................................................... 20 5.2.3 数据输入设计 ...................................................................................... 21 5.3 程序设计过程 ................................................................................................. 22
5.3.1 登录界面 .............................................................................................. 25 5.3.2 图书添加操作及修改 .......................................................................... 25 5.3.3 读者信息添加操作及修改 .................................................................. 27 5.3.4 借阅归还操作及修改 .......................................................................... 27
6软件测试 ..................................................................................................................... 29
6.1测试方法和步骤 .............................................................................................. 29 6.2测试用例及结果 .............................................................................................. 30 7总结 ............................................................................................................................. 33 致 谢 ............................................................................................................................ 34 参考文献 ........................................................................................................................ 35
1可行性分析
1.1 问题描述
人工管理图书的手续繁索、效率低下给具有强烈时间观念的管理人员带来了诸多不便学校图书馆缺少一套完善的图书管理软件为了对图书的管理方便因此必须开发图书管理系统。随着计算机技术的不断应用和提高计算机已经深入到社会生活的各个角落。而采用手工管理图书的方法不仅效率低、易出错、手续繁琐而且耗费大量的人力。为了满足图书馆管理人员对图书馆书籍读者资料借还书等进行高效的管理在工作人员具备一定的计算机操作能力的前提下特编此图书管理系统软件以提高图书馆的管理效率。
1.2 可行性分析研究
可行性分析研究是软件开发中的一个重要的环节。当接受一个软件开发任务,就进入软件生命的第一个阶段,即进行可行性的研究。并不是所有问题具有简单的解决办法,许多问题不能在预定的规模之内解决。因此通过可行性的研究分析可以知道相关问题。
有无可行性的解决方法,进而避免人力、物力和才力的浪费。在现行系统初步调查的基础上就可以提出新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。系统目标应充分体现,直接为图书管理系统服务,并且,程序可以分期分批实现。但是,需要指出的是,系统目标是不可能在总体规划阶段就提得非常具体,它还将在开发过程中逐步明确和定量化。以达到更加出色的程序系统。可是,目标的提法不尽相同,例如:
(1)提高图书管理效率,减轻劳动强度; (2)提高信息处理速度和准确性;
(3)为管理者提供更方便、科学的服务项目。
1.2.1 技术可行性
技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬、软件配置能否满足开发者需要等。根据客户提出的系统功能、性能及实现系统的各项约束条件,根据新系统目标来衡量所需的技术是否具备。本系统是一个数据库管理和查询的系统,现有的技术已较为成熟,硬件、软件的性能要求、环境条件
等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发。
1.2.2 经济可行性
应用此系统将会在很多时候,很大程度节省人力,财力,提高效率,清晰明了的报表资料,高效的数据处理等,而开发时期不耗费很多人力、财力,故在经济方面既不会有困难同时有很大的价值。
1.2.3 操作可行性
主要是了解图书管理的相关人员对开发信息系统是否支持,现有图书馆管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。图书馆管理人员积极支持该系统开发,使新系统能够充分的发挥作用;系统操作简单,易于理解,只要管理人员有一定的计算机基础,经过短时间的培训就可以使用图书管理系统。
1.2.4数据需求分析
数据库需求分析调查的重点是“数据”和“处理”,通过调查、收集和分析,获得用户对数据库的需求。
信息需求:指用户需要从数据库中获得信息的内容与性质,及在数据库中需要存储那些数据。
处理要求:指用户需要完成什么处理能力。明确用户对数据有什么样的处理要求从而明确数据之间的关系。
该系统的功能集中表现为对图书信息的录入、更新、删除、查询、统计,因此需求集中表现为对“数据”的需求。
1.2.5结论意见
在我们经过认真地可行性研究,系统基本上做到了在技术、经济、运行、法律上的可行。因此相信在按照计划上实施的前提下,全系统的设计将会按时、高质量完成。所以系统研制和开发是可以马上进行的。
2项目开发计划
2.1 编写目的
为了研究图书管理系统软件的开发途径和应用方法。同时它也是进行项目策划、概要设计和详细设计的基础是维护人员进行内部维护信息更新验收和测试的依据。本需求的预期读者是与图书管理系统软件开发有联系的决策人开发组成人员扶助开发者。
2.2 项目背景
在计算机不断发展的今天,计算机已经运用到各个领域,由手工的操作到计算机的操作是一个大的飞跃,代替了复杂的容易出错的人工操作,节省了大量的时间,提高了正确性,提高了数据的可靠性。因此每个图书馆使用计算机建立自己的管理系统是迫在眉睫,图书馆管理根据业务发展的需要,决定建立一个图书管理系统,以代替单一的人工管理。这种管理比人工操作的管理更方便,更简单。
2.3 项目概述
1.工作内容
建立的图书管理系统
要把图书馆的图书管理、读者管理、图书借阅管理等日常管理工作实行计算机统一管理以提高工作效率和管理水平。
2.开发要求
通过本系统软件能帮助图书馆管理人员利用计算机快速方便地对图书馆书籍读者资料借还书等进行高效的管理。
系统的总体设计目标:利用计算机网络、数据库和开发平台,结合现有的软件和硬件基础,分析并设计一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的管理系统,为决策者和管理者提供充足的信息、快捷的查询和有效的管理方式。
1.根据可行性研究的结果和客户的要求,分析现有情况及问题,采用C/S结构,将图书馆管理系统划分为:新书订购管理、图书管理、读者管理、借阅管理、信息查询等;
2.系统架构可以选择采用C/S结构。数据库系统可采用Access2007,开发工具选用vs2010。
3.图书馆管理系统所涉及的信息有图书、读者、借阅、图书管理员等方面,可通过系统流程图、业务流程图、数据流程图和数据字典对其进行描述,在分析和设计的基础上,提出系统的总体框架并进行详细设计,为系统实现做准备。
2.4 项目开发计划
1.任务分解
分四个大的阶段进行开发,第一阶段完成本系统的数据流图跟E-R图;第二阶段完成概要设计跟详细设计;第三阶段完成用C#编写界面以及连接数据库;第四阶段书写文档。
2.关键问题
各模块之间的联系和后台数据库的完成。使用目前的设备与现有开发技术完全可以开发出该系统,总的来说该项目没有较大的技术难点与其他的一些风险因素。对于出现的一些小难点总都能得到解决。
2.5 交付期限
所要开发的系统较简单,所有开发工作用户要求要在两周内完成,完成该课设的最迟时间为2015年12月25日。
3需求分析
需求分析是从客户的需求中提取出软件系统能够帮助用户解决的业务问题通过对用户业务问题的分析确定系统的功能需求。这个步骤是对理解需求的升华直接关系到该系统的质量。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通机制。因此系统的需求分析也应该是开发人员和用户或客户一起完成的。本系统需要建立一个图书信息库,包括基本信息表。通过对图书信息表中各个文件的操作来实现系统的具体功能。该系统包括基管理员,图书,读者,管理等模块。在进行一个项目的设计之前,先要进行必要的需求分析,需求分析在软件的开发过程中至关重要。经分析该系统的系统流程图,见图3.1所示。
管理员信息管理 图书信息管理 借阅归还 读者信息管理 新增管理员 删除管理员 修改管理员信息 新增图书信息 修改图书信息 删除图书信息 查询图书信息 借阅图书 归还图书 新增读者信息 修改读者信息 删除读者信息 查询读者信息 退出系统 用户登陆 主界面 图3.1 系统流程图
本系统主要有以下功能模块:
(1)登陆功能:登陆系统为身份验证登录。管理员登录通过不同的用户名和密码进入零配件管理界面。
(2)录入新信息功能:对于管理员,包括新图书信息和新读者信息,新管理员信息的录入功能,信息一旦提交就存入到后台数据库中。
(3)借阅功能:管理员可以查询并显示自己所要查询图书的信息;管理员可以输入对象姓名,查询出的信息显示在界面上进行借阅操作。
(4)维护功能:管理员可以对读者信息、图书信息和管理员信息进行添加、删除、更改等维护工作。
图书馆管理系统的功能要求:实现图书信息的管理:新增、更改、删除;通过密码实现用户身份验证。
该系统各个功能模块主要包括供图书信息管理、读者信息管理、管理员信息管理、借阅和归还图书等;
系统要实现基本信息录入、修改、查询等功能: (1)基本数据输入:输入需求各零配件的读者信息。
(2)图书管理:包括出版社、价格及数量记录的管理,同时实现图书的增加、修改、删除和需求记录的功能。
(3)借阅管理:实现对图书的借阅管理以及借阅人的管理。
(4)综合查询:实现对图书的基本信息、借阅归还记录信息、读者信息等信息的查询。
本系统的主要用户是图书馆管理人员,管理人员起着决定性的作用。管理员可以使用搜索,添加,删除功能,数据维护具有完善的数据管理维护功能。
通过实际调查,根据市场目前应用要求,人数规模以及设计的预期估计的应用需求,对一些成功案例进行分析借鉴后,本系统应具有以下功能特点:
(1)具有友好的用户界面;
(2)系统使用了图书编号来进行信息维护。 (3)在系统中使用了图书编号使操作变得简单。 (4)有完善的借阅归还功能,方便操作。 (5)借阅归还能产生记录,方便查询图书的信息。
根据以上系统功能要求,系统将以B/S模式提供界面友好,运行稳定,提供同时在线人数较多的浏览窗口。
3.1数据流图
该系统数据流程图见图3.2所示。
L1 图书信息 J1 图书状态信息 借阅信息 借阅信息 读者 借归阅还图图书 书 借阅 图书 图书信息 查询图书信息 借阅信息 处理 借阅 生成借阅信息 借阅信息 管 理 员 J1 借阅信息 归还图书 J1 归还信息 归还信息 归还信息 管理员 接收信息 产生归还信息 图书信息 归还信息 处理归还信息 归还信息 传输归还信息 出库信息 处理图书 L1 图书信息 J1 归还信息 图3.2 系统数据流图
数据流图由四种基本的元素构成:数据流(Data Flow),处理(Process),数据存储和数据源(数据终点)。
数据流(Data Flow):为具有名称且有流向的数据,用标有名称的箭头表示,一个数据可以是记录、组合项或基本项。
处理(Process):表示对数据所进行的加工和变换,在图中用矩形框表示。指向处理数据流为该处理的输入数据,离开处理的数据为处理的输出数据。
数据存储:表示用文件方式或数据库形式所存储的数据,堆砌进行的存取分别以指向或离开数据存储的箭头表示。
:圆或椭圆表示加工 :双杠表示数据存储 :方框表示数据的源点或终点 :箭头表示数据流 数据源及数据终点:表示数据的来源或数据的去向,可以是一个组织或人员,它处于系统范围之外,所以又称它为外部实体,它是为了帮助理解系统界面而引入的,一般只出现在数据流图的起点和终点。
3.2数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
由于本次设计是小型软件系统的开发,所以采用卡片形式书写数据字典。每张卡片上保存描述一个数据的信息这样做更新和修改起来比较方便,而且能单独处理描述每个数据的信息。下面将列出若干数据元素的数据卡片信息。
数据字典卡片:
名字:图书编号 别名: 描述:惟一地标识图书馆中一个特 定图书的关键域 定义:图书编号=8{字符}8
位置:借阅/归还 名称:图书清单 别名:图书报表 描述:图书借阅/归还的描述 定义:图书编号+名称+数量+读者 位置:存储数据库中 名字:图书生产单位 别名:出版社 描述:标识图书生产的单位 定义:出版社名 名称:图书现存量清单 别名:现存清单 描述:图书现存量描述 定义:图书号+图书名+图书本数
名字:借阅/归还记录 别名:图书进出报表 描述:每次借阅图书描述 定义:图书编号+名称+数量 位置:输出到存储数据库 名字:购买数量 别名:新增图书 描述:某种图书的新增 定义:书名+数量+出版社+日期 位置:图书信息 名字:删除数量 别名:旧书处理 描述:某种图书一次被处理的数量 定义:书名+数量+出版社+日期 位置:图书信息
4概要设计
4.1 总体设计
通过这个阶段的工作将划分出组成系统的物理元素。
系统概要设计的基本目的是用比较抽象的概括方式确定系统如何完成预定的任务,也就是要确定系统的配置物理方案。软件结构设计时应该遵循的最主要的原理是模块,让模块彼此间的接口关系应该尽量简单。
4.2概念结构设计
1.概念结构于数据库逻辑结构和支持数据库的DBMS。概念结构即概念模型,其主要特点是:
(1)概念模型是反映现实世界的一个真实模型。
概念模型应能真实,充分反映现实世界,能满足用户对数据的处理要求。 (2)概念模型应能易于理解。
概念模型只有被用户理解后,才可以与设计者交换意见,参与数据库的设计。 (3)概念模型应当易于更改。
由于现实世界会发生变化,这就需要改变概念模型,易于更改的概念模型有利于修改和扩充。
(4)概念模型应易于向数据模型转换。
概念模型最终要转换为数据模型。设计概念模型时应当注意,使其有利于向特定的数据模型转换。
2.概念结构设计的方法
设计概念结构通常有四类方法:
(1)自顶向下:即首先定义全局概念结构的框架,然后逐步细化。
(2)自底向上:即首先定义各局部应用的概念结构,然后将它们集成起来得到全局概念模式。
(3)逐渐扩张:首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他的概念结构,直至总体概念结构。
(4)混合策略:即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结
构。其中最经常采用的策略是自底向上的方法。即自顶向下地进行需求分析,然后再自底向上地设计概念结构。这个报刊订阅系统就用这种方法。
概念结构设计的步骤:
第一步是进行局部视图的设计:由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。因此我们先逐一的设计分E-R图。
第二步是进行视图的集成:各子系统的E-R图设计好之后,下一步就是要将所有的分E-R图合成一个系统的总E-R图,一般有两个方式,多个分E-R图一次集成,另一种是一次集成两个分E-R图。我想采用一次集成两个分E-R图的方式。
4.3 数据库概念设计
数据库一般分为三级模式:外模式,概念模式和内模式。外模式也就是不同用户所对的数据视图,它将数据库内部抽象的数据及其互相之间的关系表示为简单、直观的应用界面。概念模式是数据库中全部数据的逻辑结构和特征描述,通常以某种数据模型为基础。内模式是对数据的物理结构和存储方式的描述。
在这里我们将要设计的是数据库的概念模式,通过对库存零配件管理系统的内容和数据流程分析及E-R图,设计如下数据项和数据结构。
图书信息包括:图书号,数量,书名,价格,出版社等。 读者信息包括:姓名,编号,借阅本数,借阅书名,密码等。 管理员信息包括:姓名,登录号,登录密码等信息。
图书状态信息包括:编号,姓名, 借阅书号,借阅时间等信息。 数据库概念结构设计,是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及他们之间的关系,为后面的逻辑结构设计打下基础。
4.4 数据库逻辑结构设计
在数据库设计中相当重要的一步就是将概念模型转化为计算机上DBMS所支持的数据模型,例如,将E-R图模型转化为关系模型,道理很简单,我们设计概念模型基本上都是一些抽象的关系,在再数据库设计的实现过程中,在计算机上有效地表示出这些关系就成了数据库设计的关键。
根据图书馆管理系统的功能要求,选取Acces2007作为后台数据库。 在上面的实体和实体之间的E-R图设计基础上,形成数据库中的表格及表格之间的关系。
该数据库由5个表组成:图书表,读者表,管理员表,图书状态表。 主要表的结构设计 1.图书信息
需求单位表是对图书信息进行统计,包括图书号,数量,书名,价格,出版社等。
表4-1 图书信息结构表
字段名称 图书号 数量 书名 价格 出版社 2.读者信息
读者表是对读者信息的统计,读者信息包括:姓名,编号,借阅本数,借阅书名,密码等。
表4-2 读者信息结构表
字段名称 姓名 编号 借阅本数 借阅书名 密码
数据类型 string string string string string 长度 60 30 20 80 40 是否允许为空 是 是 是 是 是 说明 Book number number Book name Price Publishing house 数据类型 string int int string string 长度 90 50 20 40 40 是否允许为空 是 是 是 是 是 说明 Name Number Borrow number Borrow name Password
3.管理员信息
管理员信息是对管理员信息的统计,姓名,登录号,登录密码等信息。
表4-3 管理员信息结构表
字段名称 姓名 登录号 登录密码 数据类型 string string string 长度 40 50 20 是否允许为空 是 是 是 说明 Name User Password 4.图书状态信息
图书状态信息是对图书信息的描述其中包括:编号,姓名,借阅书号,借阅时间等信息。
表4-4 管理员信息结构表
字段名称 编号 姓名 借阅书号 借阅时间 数据类型 string string string string 长度 90 50 20 40 是否允许为空 是 是 是 是 说明 Realname Name Borrow number Borrow time 4.5物理结构设计
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最合适应用要求的物理结构的过程,就是数据库发的物理设计。
物理设计的任务是确定所有属性的类型、宽度与取值范围,设计出基本表的主键,将所有的表名与字段名英文化(现在很多软件能支持中文字段,如Access 2007),实现物理建库,完成数据库物理设计字典。数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,不同的数据库产品所提供的物理环境、存取方法和存储结构有很大差别,能供设计人员使用的设计变量、参数范围也很不相同,因此没有通用的物理设计方法可遵循,只能给出一般的设
计内容和原则。希望得到设计优化的物理数据库结构,使得数据库上运行的各种事务响应时间小、存储空间利用率高、事务吞吐率大。为此,首先对要运行的事务进行详细分析,获得选择物理数据库设计所需要的参数。其次,要充分了解所用的RDBMS的内部特征,特别是系统提供的存取方法和存储结构。
1.在物理设计阶段主要的任务包括: (1)为关系模式选择存取方法
(2)设计关系、索引等数据库文件的物理结构
存取方法的选择有索引存取方法的选择、聚簇存取方法的选择以及HASH存取方法的选择。确定数据库的存储结构主要是确定数据的存放位置与确定系统配置.
2.数据库的物理设计通常分为两步:
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构; (2)对物理结构进行评价,评价的重点是时间和空间效率。
如果评价结果满足原设计要求,则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。
对于数据库查询事务,需要得到如下信息: 3.查询的关系
(1)查询条件所涉及的属性 (2)连接条件所涉及的属性 (3)查询的投影属性。
4.对于数据更新事务,需要如下信息: (1)被更新的关系
(2)每个关系上的更新操作条件所涉及的属性 (3)修改操作要改变的属性值。
4.6连接数据库的特点
当开发环境通过连接到数据库上之后,在设计中使用数据库画笔可实现对该数据库中表格,视图等的操作,如创建表,修改表,删除表,增加/删除记录。
设计中设计数据窗口的时候,通过对话框实现与数据的连接。在应用程序中
则一般是在应用程序对象中书写连接数据库的程序代码,使得应用程序开始运行并实现与数据库的连接。
4.7实体联系E-R图
数据库的概念设计做充分需求分析,对所有涉及到的数据都要求有所考虑,并充分考虑不同来源的数据是否有矛盾、是否有冗余、数据量大小、每个数据项名称、类型、长度、取值范围,数据项之间关系以及数据项要求的操作及操作频度等,这也是十分艰巨而繁琐却有必要的工作步骤。E-R 模型的组成元素有实体、属性、联系。E-R 模型用 E-R 图表示。实体是用户工作环境中所涉及的事务,属性是对实体特征的描述。
图书表包括了图书号,书名,数量,出版社,价格等信息。 读者表包括姓名,编号,借阅本数,借阅书名和密码等信息。 管理员表的信息包括他的姓名,登录程序的用户名和密码。 借阅情况信息包括:编号,姓名,借阅书号,借阅时间等信息。 E-R图如下图所示
书名 图书号 图书 数量 价格 图4.1 图书实体E-R图
出版社
姓名 用户名 管理员 图 4.2 管理员实体E-R图
姓名 密码 电话 借阅 编号 借阅书号 图 4.3 借阅实体E-R图
姓名 编号 读者 借阅本数 密码
图 4.4 读者实体E-R图
用户名 姓名 密码 借阅书名 管理员 n 管理 书名 图书号 出版社 价格 数量 图 4.5E-R图总图
借阅名 n 图书 n 编号 读者 密码 借阅数 姓名
4.8逻辑结构设计
逻辑结构设计阶段的任务是将概念结构设计阶段所得到的概念模型转换为具体DBMS所能支持的数据模型,即逻辑结构。关系模型的逻辑结构是一组关系模式的集合。将E-R图转换为关系模型就是要将实体型、实体的属性和实体型之间的联系转换为关系模式。
由ERD导出一般关系模型的四条原则。
一个1:1联系可以转换为一个的关系模式,也可以与任意一端对应的关系模式合并。如果软换为一个的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式何明,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
一个1:n联系可以转换为一个的关系模式,也可以与n端对应的关系模式合并。如果转换为一个的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系项链呢的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。
E-R图是由实体型、实体的属性和实体之间的联系三个要素组成的,所在将E-R图转换为关系模型实际上就是要将实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:
一个实体型变换为一个关系模式,其属性变为关系的属性,其主标识变为关系的主码。
从此次设计出的E-R图中,可知对于实体型间有1:n和m:n的联系,可以转换为一个的关系模式。
5 详细设计
详细设计阶段的根本目标是确定应该如何具体地实现所要求的系统,包括了用户界面设计,程序过程设计等步骤。
5.1 程序流程图
程序流程图的优点是对控制流程的描绘很直观,易于掌握。借阅系统首先要实现的是对图书信息的查询,从数据库中获取图书信息,对比信息判断是否能借阅成功,借阅流程图见图5.1所示。
管理员 输入查询的信息 是 否 查询相应信息 是否输入出错 是否满足 是 否 确定借阅 否
是 借阅 结束 图5.1 借阅流程图
5.2 用户界面设计 5.2.1 一般交互设计
一般交互涉及信息显示、数据输入、和系统整体控制等方面。 1.一致性
为客户交互界面中的菜单选择、命令输入、数据显示以及众多的其他功能,使用一致的格式。
在设计的过程中,基本上保持了系统的格式一致。 2.信息的反馈
向用户及时提供视觉和听觉的信息反馈,以保证在用户和系统之间及时地建立双向通信。
在本系统设计过程中,基本做到了信息的及时反馈,在信息显示的大部分窗体中包括了刷新按钮,会对数据库中的数据进行及时地显示。另外,在进行错误操作是,会弹出提示窗口错误的信息。
3.执行有较大影响的操作前提示用户确认
在设计过程中,如果用户要执行删除操作,以及对数据库的读写操作时,都会有窗体弹出询问继续操作或者予以提示。
4.减少两次操作间需要记忆的内容
为了避免用户为下一步操作而记忆大量数据,所以在设计过程中在需要数据传递的窗体中设置全局变量,来传递数据。
5.对话、移动和思考的效率
尽量减少用户击键的次数,在设计时考虑到了用户屏幕的布局以减少用户鼠标移动的距离,尽量避免用户在操作中发生疑问的情况。
6.允许错误
允许用户的错误操作尽量不对系统造成伤害。 7.按功能对动作分类,并据此设计屏幕布局
屏幕布局尽量将软件所具有的所有功能在主页面展示,界面一目了然。
5.2.2 信息显示设计
应当尽量为用户提供的界面显示完整的、明确的和容易理解的。这样才能满
足用户的需求。使用不同的方式显示信息:用文字、图形、声音,按位置、移动和大小,使用颜色和省略等方式传达信息。
1.只显示与当前工作有关的信息
在用户操作有关系统的特定功能的信息时,不必看到与之无关的数据、菜单和图形。
2.使用便于用户迅速吸收数据的方式来表示数据
在系统设计的过程中,较多地使用了图表的形式表示数据,例如在分析中就使用了卡片的形式表现了复杂的数据。这样,用户可以直观的体会到图表所表示的含义。
3.使用一致的标记、标准的缩写和可预知的颜色
为了使系统所表达的含义准确、无误,就必须适用一致的标记、标准的缩写和可以预知的缩写,这样用户就无需参照其他信息源就能理解,而正确地适用软件。
4.产生有意义的错误信息
对于系统在运行过程中产生的错误尽量给用户返回一个容易理解的错误信息,以使用户保持对系统的信任,和系统的可用性。
5.使用窗口分隔不同类型的信息
使用不同的窗口显示、保存不同类型的信息。 6.高效率的使用显示屏
当使用多窗口时,应该有足够的空间使得每个窗口至少都能显示出一部分。此外,屏幕的大小应该选得和应用系统的类型相匹配。
5.2.3 数据输入设计
用户的大部分时间用在选择菜单命令、键入数据和向系统提供输入。在系统中,键盘是主要的输入介质,但是鼠标等设备的也是重要的输入手段,所以,对于他们的数据输入操作有如下约定:
1.保持信息显示和数据输入间的一致性
为了方便用户的使用,鼠标应当尽量减少操作的幅度。 2.保持显示信息和输入信息之间的一致性
对于用户来说,要保证其输入的数据在显示上与其他显示的视觉特征(例如:文字大小、颜色、位置等)要一致。
5.3 程序设计过程
程序过程设计主要是在借助过程设计工具的情况下,对程序的具体实现过程进行设计。程序的主要部分设计在这个环节完成。参考程序如下:
1.登录窗口
private string myConnectionString =
@\"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\图?书酣?馆Y.accdb\";
private void Form1_Load(object sender, EventArgs e) {
this.Text = \"登录\"; }
int cishu = 3;
private void button1_Click(object sender, EventArgs e) {
if (textBox1.Text == \"\")
MessageBox.Show(\"请填写完整输入框不能为空!\提示\");
else{
string sa = this.textBox1.Text; string pass = this.textBox2.Text; OleDbConnection OleDbConnection(myConnectionString);
cnn.Open();
string sql = string.Format(\"select count(8) from 管理员 where 登录号='{0}'and 登录密码='{1}'\
OleDbCommand cmd = new OleDbCommand(sql, cnn);
cnn = new
int num = Convert.ToInt32(cmd.ExecuteScalar()); try {
if (num > 0) 机会!\");
{
MessageBox.Show(\"登录成功!?\"); 主界面f1 = new 主界面(); f1.ShowDialog(); this.Close(); } else {
cishu = cishu-1;
MessageBox.Show(\"登录失败!还有\"+cishu+\"次? if (cishu == 0) {
MessageBox.Show(\"登录失败!\"); this.Close(); } } }
catch (Exception ex) {
MessageBox.Show(\"错误异常:\" + ex); } finally {
cnn.Close();
} } } } }
登录入口 Y 判断用户名密码存在 N 判断次数是否超过3次 N Y 登录成功 登录失败 图5.2登录流程
5.3.1 登录界面
在用户登录时,在输入用户名和密码及用户类型的前提下将其与数据库中的数据进行对比,若一致,则打开主窗体,若不一致提示错误,并要求再次输入,若输入次数超过三次,则关闭系统。对于登录界面的测试主要是针对于登录时能否正确的判断出用户和他输入的秘密是否正确。对于错误的输入是否能正确的判断出来,还有对于输入错误的次数也有限定。登录界面见截图5.3所示,当密码输入错误时见截图5.4所示。
图5.3 登录界面图 图5.4登录失败界面图
5.3.2 图书添加操作及修改
管理员查询某图书时图书名及图书号与数据库中的数据不相一致,系统提示所查图书在数据里为无,即图书馆里没有该图书。然后管理员可根据图书信息管理条件存储图书。图书添加见截图5.5和截图5.6所示。
图5.5 图书新增界面图
图5.6 图书信息修改界面图
5.3.3 读者信息添加操作及修改
管理员查询某读者信息时与数据库中的数据不相一致,系统提示所查读者在数据里为无,即图书馆里没有该读者注册信息。管理员还可根据读者信息管理条件存储新增修改读者信息。具体操作见截图5.7所示。
图5.7 读者信息修改
5.3.4 借阅归还操作及修改
管理员查询某图书信息与数据库中的数据不相一致,系统提示所查图书在数据里为有无,即图书馆里没有该书了已经借阅完。管理员还可根据读者需求条件查询图书信息。当借阅成功时,及时修改读者,图书,借阅记录的信息具体操作见截图5.8和截图5.9所示。
图5.8 借阅操作 图5.9 归还操作
6软件测试
一个软件开发完成后,并不能投入使用,而需要有好长时间的测试。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。
在本次设计中,涉及到的主要模块有五个,即图书借阅,图书归还,图书信息管理,读者信息管理,管理员信息管理它们之间的联系决定了在测试中必须将上述五个功能模块进行统一的测试。
在设计模块时,应尽力向高内聚、低偶合的思想方面靠拢。
6.1测试方法和步骤
软件的测试方法有两种,一种是黑盒测试(功能测试),另外一种是白盒测试(结构测试)。
在本次软件的测试工作中,由于水平的,仅仅对软件的各个功能模块进行了测试,并对各个模块之间的接口进行了详细的测试(用黑盒测试法)。
测试的步骤:
由于该系统是一个小系统,可以把整个系统作为一个单独的实体来测试。当然,在测试的过程中可以分模块、分阶段来进行。大型软件系统通常是有若干个子系统组成,且每个子系统由由许多模块组成。
6.2测试用例及结果
这次测试主要采用黑盒测试法(功能测试),通过输入和得出的结果与预期相比较。
1.登录测试
登陆界面的测试,分别采用以下几种情况,输入用户名和密码正确或是不正确的操作,具体如下表6-1所示。
表6-1登录窗口测试表
序号 A1 A2 A3 A4 A5
2.图书信息查询模块的测试
这次测试的是对于信息的查询是否正确,能否正确的判断出输入信息的对错,具体如下表6-2所示。
表6-2查询图书信息测试表
序号 S1 输入查询图书号 1 结果(正确\\错误) 查询成功显示对象信息(正确) S2 S3 Asd 空 查询失败结果为空(正确) 查询失败弹出警告窗口(正确)
用户名框 空 sa as sa qwe 密码框 空 321 321 123 12434 结果(正确\\错误) 登录失败(正确) 登录成功(正确) 登录失败(正确) 登录失败(正确) 登录失败(正确)
这是对信息添加的测试,主要是输入图书,读者和管理员信息录入的测试。面对输入信息能做出正确的判断,对于输入的信息能否给出正确的提示,信息是否录入数据库中,具体如下表6-3所示。
表6-3添加信息测试表
序号 D1 D2 D3 输入对象信息 输入对象的信息 在输入对象的信息,录入不全 结果(正确\\错误) 添加信息成功(正确) 添加信息失败(正确) 在输入电话,信息输入格式不匹配 添加信息成功(错误,存在漏洞) 这是对信息删除的测试,主要是输入对象的信息,然后对数据库进行筛选判断做出正确的结果,具体如下表6-4所示。
表6-4删除信息测试表
序号 F1 F2 F3 F4 输入对象编号 1 Sad 空 123 结果(正确\\错误) 删除成功(正确) 删除失败,数据中无此人(正确) 删除失败(正确) 删除失败(正确) 这是对信息修改的测试,先是输入对象的姓名,在判断数据库中是否存在该对象,存在再进行对对象的信息进行修改,把修改后的信息重新存入数据库中,具体如下表6-5所示。
表6-5修改信息测试表
序号 G1 G2 G3 G4 输入修改对象编号 1,对弹出的信息进行修改 Asd, 空 结果(正确\\错误) 修改成功,信息重新录入(正确) 修改失败,查无此人(正确) 修改失败(正确) 刘宇轩,对输入框输入信息格式修改成功(错误,信息框输入格不对 式未设置) 3.借阅归还功能模块的测试
图书馆管理系统主要功能是借阅与归还功能。这主要是对于于图书信息的管
理和查询。
先是对于图书借阅的测试,输入图书的各种信息,在与数据库中信息进行比较,若数据库中显示该图书已经借阅完,则借阅失败,具体如下表6-6所示。
表6-6图书借阅测试表
序号 H1 H2 H3 空 输入图书信息时在输入格式不对 输入图书信息 输入图书信息 结果(正确\\错误) 借阅失败(正确) 借阅失败,出现异常(错误) 借阅成功(正确) 这是对于借阅功能的测试,主要包括了对于图书借阅时的数量计算,信息的修改,面对各种信息输入能否做出正确的提示和判断,而归还测试具体如下表6-7所示。
表6-7归还图书测试表
序号 Q1 Q2 Q3
这是对于借阅记录的查询,主要是查询出读者借阅书的信息,从中观察读者未归还的图书以及具体信息对照,具体如下表6-8所示。
表6-8借阅记录信息查询测试表 序号 W1 W2 W3 W4 空 1 Assd 222222 输入借阅人信息 结果(正确\\错误) 查询结果为空(正确) 查询成功(正确) 查询结果为空(正确) 查询结果为空(正确) 输入图书和归还人信息 空 1,2 啊,a 结果(正确\\错误) 归还失败,弹出提示框(正确) 归还成功(正确) 归还失败(正确) 在本次测试中出现了一些未经处理的异常和错误,主要是在编程中未考虑全面,对于该图书馆操作模式流程的不熟悉导致。错误主要在信息的修改和录入功能中出现。未能对输入信息做出筛选,使得无效信息成功录入数据库中,对其他功能产生影响。图书信息未完全考虑,属性未设计未全面。
7总结
通过对本图书馆管理系统的设计,使我认识到软件开发的过程不仅仅是实际上就是描述现实世界的过程。而由现实世界向软件模型的转化过程是其中最核心的过程。在课程设计的过程中我们遇到了许多问题。而这些问题的产生都是由于理论知识和实践经验的缺乏造成的。
通过制作图书馆管理系统的完整设计,我进一步了解了图书馆的特点。相对于图书馆流程的复杂程度,本系统还有待完善。随着科学技术的发展,管理系统的不断完善,管理过程将变得更加简单明了。
在此过程中我通过老师的细心指导、同学的帮助、自学战胜了所有的困难。使我得到一次难得的锻炼机会,加深了对理论知识的理解,丰富了实践经验。并通过这次设计让我从整体的程序开发到具体软件的设计都有了一个全面的掌握,为我即将从事的工作打下了一个坚实的基础!
但是由于课程设计时间较短,所以该系统还有许多不尽人意的地方,用户界面设计不够美观,统计功能还不完善等,这些都有待进一步改善。经过这两周的课程设计,大大提高了我的实际操作能力和思想的远见能力,做到真正的从感性认识上升到理性认识再到实际的操作中,真正的做到学以致用。
致 谢
非常感谢我们学院开设软件开发综合实训,为我们日后从事计算机方面的工作提供了实战的经验,奠定了初步的基础。
首先感谢感谢给予我悉心的指导!在整个课程设计的过程中我遇到了许多技术上和原理上的问题,都是老师帮我一一解决的。本次课程设计我们花费了二周的时间,二周来我们的辅导老师不辞辛苦的给我们辅导、为我们讲解疑难问题。在此,特别感谢我们辅导老师对我的谆谆教诲、耐心细致的讲解。
其次是给予我帮助的同学,在这次课设的过程中,同学间的帮助是再所难免的,让我深深的明白,团结的重要性。
参考文献
[1] 张海潘. 软件工程导论(第四版)[M]. 清华大学出版社, 2003.12 [2] 萨师煊, 王珊. 数据库系统概论[M]. 高等教育出版社, 2002.3
[3] 陈承欢, 彭勇. 管理信息系统基础与开发技术[M]. 人民邮电出版社, 2005
[4] 刘云生, 卢正鼎, 卢炎生. 数据库系统概论[M]. 华中科技大学出版社, 2002
[5] 郑人杰, 殷人昆, 陶永雷. 实用软件工程[M]. 清华大学出版社, 1997 [6] 杨志国等. Delphi应用程序开发精彩实例[M]. 机械工业出版社, 2003.4 [7] 陈磊,郭斌,李翔等. PowerBuilder 9数据库项目案例导航[M]. 清华大学出版社, 2005.1
[8] 杨晶. VB6.0程序设计[M]. 机械工业出版社, 2004.8
[9] 李帜,林立新,曹亚波 . 软件工程项目管理 . 清华大学出版社. 2005 [10] 曼尼诺, 唐常杰 . 数据库设计、应用开发与管理 . 电子工业出版社. 2005
[11] 王珊,朱青.数据库系统概论 . 高等教育出版社. 2005
[12] Peter Rob,Carlos Coronel著,张瑜,杨继萍 . 数据库系统设计、实现与管理 .清华大学出版社. 2005
[13] 求是科技.数据库开发技术与工程实践 . 人民邮电出版社. 2004
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuoyibo.cn 版权所有 湘ICP备2023022426号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务