




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 课程名称:软件工程课程设计课程名称:软件工程课程设计 试题题目:图书馆管理系统试题题目:图书馆管理系统 姓 名:刘静 学号:20110514323 姓 名:杨寒培 学号:20110514318 专 业:计算机科学与技术 学 院:计算机与信息科学学院 时 间:2013 年 7 月 1 号 2 目录目录 一.开发背景与目标-1- 1.1 开发背景1- 1.2 开发目标-2- 二二. .需求分析说明书需求分析说明书-2-2- 2.1 图书馆管理系统介绍.-3- 2.2 图书馆管理系统面向的对象群体.-3- 2.3 图书馆管理系统的功能性需求.-3- 2.4 图书馆管理系统的非功能性需求.-4- 2.5 用户界面需求-4- 2.6 软硬件环境需求-4- 三三. .可行分析报告可行分析报告-5-5- 3.1 技术方面可行性分析.-5- 3.2 经济方面可行性分析.-5- 3.3 社会因素方面可行性分析.-6- 3 3.4 运行可行性分析.-6- 3.5 开发方案可行性分析.-6- 3.6 可行性结论-7- 四四. .开发环境与项目规划开发环境与项目规划-7-7- 4.1 开发环境.-7- 4.2 项目规划与管理.-7- 4.2.1 开发人员安排.-7- 4.2.2 开发进度安排.-8- 五五. .结构化分析与设计结构化分析与设计.-10-.-10- 5.1 数据流条目与数据字典- 10- - 5.2 模块结构- 12- 5.3 数据流程图- 13- 六六. .面向对象分析设计面向对象分析设计.-18-.-18- 4 6.1 系统的 UML 建模设计.-18- 6.1.1UML 简介-18-18- 6.2 该图书馆管理系统的用例分析.-19- 6.3、系统的顺序图.-20-20- 6.4、系统的状态图-23- 6.5、系统的活动图-24- 6.6、图书馆管理系统的类图.-26- 七七. .数据库分析与设计数据库分析与设计-29-29- 7.1 数据库环境说明.-29- 7.2 数据库概念结构设计.-29- 7.2.1 任务与目标-29- 7.2.2 各阶段的结果-29- 7.2.3 各 ER 图中实体的属性和联系的属性.-31- 7.3 数据库逻辑设计.-32- 7.3.1 逻辑设计的任务和目标.-32- 7.3.2 逻辑设计步骤与设计原则-33- 7.4 数据库物理设计-35- 7.4.1 物理设计阶段的目标与任务-35- 7.4.2 数据库物理设计步骤.-35- 八。人机界面设计八。人机界面设计-37-37- 5 8.1 界面设计意义及任务-37- 8.2 主界面设计-37- 九、项目系统实现九、项目系统实现-39-39- 9.1 实现环境与技术.-39- 9.2 核心模块实现技术代码.-39- 十。软件测试分析报告十。软件测试分析报告.-54-.-54- 10.1 测试目的和原则54- 10.2 测试方法-54- 10.2.1 白盒测试.-54- 10.2.2 黑盒测试-55- 10.3 测试步骤.-55- 10.4 该软件系统优缺点及相关建议.-55- 10.5 该软件测试的评价结果-56- 十一十一. .软件使用说明书软件使用说明书.56-.56- 11.1 软件概述.-56- 11.2 使用说明.-57- 6 11.2.1 系统登陆-57- . 11.2.2 注册.-57- 11.2.3 系统简介-57- 十二、课程系统开发评价十二、课程系统开发评价-58- 12.1.功能方面-58- 12.2.性能方面-58- 12.3.课程知识运用方面-59- 参考文献参考文献-59-59- 1 一开发背景与目标 1.1 项目背景项目背景 由于学校的不断发展,学生不断增多,学校图书馆的图书 品种、数量也在不断的增多。以前的人工管理方式暴露出了很多问 题。例如,学生想要借一本书,图书管理人员还要花大量时间在茫 茫书海中苦苦寻觅。浪费了大量宝贵的时间。学校为了提高工作效 率,图书管理包括的图书和用户借阅资料繁多,包含很多的信息数 据的管理,现今,有很多的图书管理系统都是初步开始使用,甚至 尚未使用计算机进行信息管理。以前对信息管理的主要方式是基于 文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、 超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人 工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、 手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容 易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。 尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥 它的效力,资源闲置比较突出,这就是图书管理系统开发所要解决 的问题。基于这此问题,有必要建立一个图书管理系统,使图书管 理工作规范化,系统化,程序化,避免图书管理的随意性,提高信 2 息处理的速度和准确性,能够及时、准确、有效的进行查询和修改 图书情况等图书管理操作。 同时摆脱图书管理人员在工作中出现的很多问题,现学校需要开发 一个高校图书馆管理系统。 1.2 项目目标及范围项目目标及范围 学校图书借阅管理系统主要的目的是实现图书馆的信息化管理。 图书馆的主要业务就是图书的借阅和归还,因此系统最核心的功能 便是实现图书的借阅和归还。此外,还需要提供图书的信息查询、 读者图书借阅情况的查询功能。项目实施后,能够提高图书馆的图 书借阅、归还流程,提高工作效率。整个项目需要在两个月的时间 内交付用户使用。 时间就是金钱,效率就是生命。项目实施后,图书馆的每个业 务流程所用时间缩短了 2/3,所用人员减少了 1/2,原来两个人 3 分 钟可以完成的工作,现在只需 1 个人 1 分钟就可以完成。极大的提 高了效率,间接为学校节约了大量成本。所以要求系统具有良好的 可操作性,数据稳定性以及安全性,可以长期使用。 二、需求规格说明书二、需求规格说明书 2.1、该图书馆管理系统的介绍、该图书馆管理系统的介绍 该图书馆管理系统本旨在为学校的图书馆管理人员提供一个 可以方便管理库存图书的系统。可以对库存图书进行录入、借还、 3 查询、修改功能。减少操作时间,提高工作效率。 该图书馆管理系 统适用于一般规模的图书馆管理操作。 2.22.2 该图书馆管理系统面向的用户群体该图书馆管理系统面向的用户群体 用户特点: 本系统的操作对象为高校的各位同学和教师还有图 书管理人员。对用户人员的计算机水平不需要很高 的要求。该系统具有简单易用的特点,用户只需按 照菜单功能行操作。 2.3 图书馆管理系统的功能性需求图书馆管理系统的功能性需求 该系统有以下描述的功能该系统有以下描述的功能 录入功能:录入功能: 输入相关数据输入相关数据 浏览功能:浏览功能: 以列表方式列出所有记录信息以列表方式列出所有记录信息 信息查询功能:信息查询功能: 根据书名匹配查询,并将查询结果列出根据书名匹配查询,并将查询结果列出 借出归还功能:借出归还功能: 根据借出与归还的书籍信息修改相应数据根据借出与归还的书籍信息修改相应数据 插入与删除功能:插入与删除功能: 插入一条新的图书信息,删除某图书的信息插入一条新的图书信息,删除某图书的信息 信息的备份与读入功能:将输入文件进行备份和从指定文件读入数信息的备份与读入功能:将输入文件进行备份和从指定文件读入数 据据 设置访问权限功能:只有输入正确密码才可以进行操作设置访问权限功能:只有输入正确密码才可以进行操作 2.4 图书馆管理系统的性能需求图书馆管理系统的性能需求 错误!未定义书签。 系统性能需求分析系统性能需求分析 4 *界面设计友好,美观。 *数据存储安全,可靠。 *信息分类清晰,准确。 *强大的查询功能,保证数据查询的灵活性。 *实现对图书借阅、续借和归还过程的全程数据信息跟踪。 *提供图书借阅排行榜,为图书馆管理员提供了真实的数据信息。 *提供借阅到期提醒功能,使图书管理员可以及时了解到已经到 达归还日期的图书借阅信息。 *提供灵活、方便的权限设置功能,使整个系统的管理分工明确。 *具有易维护性和易操作性。 2.5 用户界面需求用户界面需求 界面设计友好,美观。但是最重要的是要能够让用户非常方便 操作(如读者可以方便的查阅,借阅书籍。图书馆管理员可以方便 精准地记录各图书和读者信息) 。 2.6 软硬件环境需求软硬件环境需求 1用户界面:在 Windows XP 界面运行 2.硬件接口:普通 PC 机 3.软件接口:运行于装有 Windows XP 的操作系统 5 4.所需软件:微软的 visio2010 和 word,VC+6.0 三、可行性分析报告三、可行性分析报告 3.1 技术方面的可行性技术方面的可行性 开发一个学校图书借阅管理系统,涉及到的技术问题不会太多, 主要用到的用软件 visio 做出该系统的框架。visio 是专门用于软件的 开发 的,可以用于制作流程图,时序图 ,用例图,协作图,状态 图,活动图等,还可以用于设计人机界面。而且还用软件 V-F 编写 代码设计该图书馆管理系统的数据库。 系统现阶段的发展过程中,利用现有人力和物力是完全具备 的能力开发出来的,作为阶段性产品,日后的发展空间大,实现方 法逐步简单容易,所以图书馆管理系统的技术上是完全可行的。 a. 在当前的限制条件下,该系统的功能目标能达到; b. 利用现有的技术,该系统的功能能实现; c. 对开发人员的数量和质量的要求并说明这些要求因该能满足; d. 在规定的期限内,本系统的开发能完成 3.2 经济可行性分析经济可行性分析 本系统开发成本低,不需要特殊要求。经济可行性即进行成本 6 效益分析,评估项目的开发成本,估算开发成本是否会超过项目预 期的全部利润。开发学校图书借阅管理系统提高了图书管理人员的 工作效率,节约了学校的开支。因此,在经济上是可行的。 3.3 社会因素方的可行性社会因素方的可行性 法律方面: 软件服务条款要与中华人民共和国的法律解释相一 1 致,一致同意服从高等法院所有管辖。如发生软件服务条款与中华 人民共和国法律相抵触时,则这些条款将完全按法律规定重新解释, 而其它条款则依旧保持对用户产生法律效力和影响。本系统的开发 不会侵犯他人、集体或国家的利益,不违背当地法律法规。本软件 系统不对非管理人员公开用户的具体信息,要想查询必须要有用户 名和密码。 3.4 运行可行性分析运行可行性分析 本系统可以满足图书馆管理的要求,而且对使用本软件人员 的计算机水平要求不高,只需了解软件操作流程就可以使用本软件, 无需培训。 35 开发方案可行性分析开发方案可行性分析 7 该系统投资成本小,使用方法简单易懂。该系统有效地提高 图书馆工作人员的工作效率,节约人力物力。同时可以根据用户的 特殊需要,增添功能。具有成本低,功能强大,使用灵活的特点。 软件的开发环境如下: 用户界面:在 Windows XP 界面运行。 硬件接口:普通 PC 机。 软件接口:运行于装有 Windows XP 的操作系统 所需软件:微软的 visio2010 和 word,VC+6.0,v-f 3.6 可行性结论可行性结论 综上所述,本工程的技术相当成熟、完备也比较完善, 测试手段可靠,具有良好的市场拓展,技术上可行,经济上 可行,操作上可行,因此本工程可立即开始 四、四、开发环境与项目规划开发环境与项目规划 4.1 开发环境开发环境 软件的开发环境如下: 用户界面:在 Windows XP 界面运行。 硬件接口:普通 PC 机。 软件接口:运行于装有 Windows XP 的操作系统 8 所需软件:微软的 visio2010 和 word,VC+6.0 4.2 项目规划与管理项目规划与管理 4.2.1 开发人员安排开发人员安排 该软件项目是由本组两个成员设计开发的,刘静着重设计了关于需 求分析和面向对象那部分,杨寒培着重设计了可行性和关于数据库 那部分。至于其他部分则基本上是由两人协力完成的,期间我们不 仅用了这学期新学的软件工程中学到的知识还运用了数据库和 C 语 言 C+中知识 ,查找了很多资料,也上互联网了解了一些。虽然只 有两个人做这个软件项目,但是我们两个人都积极筹备合作过程非 常愉快。 4.2.2 开发进度安排开发进度安排 全体组员讨论研究项目 收集相关资料、需求分析 可行性研究分析 设计阶段 讨论项目计划 9 确定项目计划并分工 逻辑设计、功能设计,形成概要设计 文件 数据库分析,数据库设计 数据库访问模块设计 登录界面设计 主界面设计和相关工具栏设计 人员管理模块设计 形成详细设计报告文档 实施阶段 登录模块的实现 数据访问模块实现 主界面模块的实现 其他子模块的实现 10 模块之间的接口进行测试,并进行调试 组合以上的模块为系统,进行系统测试 编写测试计划和测试用例 收尾阶段 对资料进行整理,文档完善 课程设计报告总结 五、结构化分析与设计五、结构化分析与设计 5.1 数据流条目与数据字典数据流条目与数据字典 1) 数据流条目: 登录用户=用户名+密码 读者=编号+姓名+性别+学院+证件号码 图书信息=图书编号+书名+作者+出版日期+出版社+单价价+所属类 型 借书信息=读者编号+图书编号+借书日期+到期日期+图书名+作者 11 还书信息=图书编号+图书编号+还书日期+图书名+作者 2) 数据字典(DD): 名字:图书编号 别名: 描述:唯一地标识每一本图书的关键域 定义:图书序列号=1numeric10 位置:新书入库 借阅登记 借阅查询 图书整理 超期提示 名字:书名 别名: 描述:标识每一本图书的实际名字 定义:图书名称=1nvarchar50 位置:新书入库 借阅登记 借阅查询 图书整理 超期提示 名字:作者 别名: 描述:标识每一本图书的写作者 定义:图书作者=1nvarchar20 位置:新书入库 借阅登记 图书整理 名字:读者 编号:学好 描述:标识某个人的借阅情况 定义:图书出版社=1nvarchar50 位置:借阅登记 归还登记 超期提示 总借阅量排名 名字:出版日期 别名: 描述:标识每一本图书的出版时间 定义:图书出版日期=8nvarchar20 位置:新书入库 借阅登记 图书整理 名字:价格 别名: 描述:标识每一本图书的实际名字 定义:图书定价=1nvarchar10 位置:新书入库 借阅登记 图书整理 名字:所属类型 别名: 描述:标识图书的分类种类 定义:图书类型=1nvarchar2 位置:图书入库 新书入库 借阅登记 图书整理 12 5.2 模块结构图模块结构图 图 1.图书馆管理系统模块结构图 5.3 数据流程图数据流程图 13 图 2.图书馆借阅子系统流程图 14 图 4.顶层数据流 图 3 业务流程图 15 图 5.第二层数据流图 图 6.第三层数据流图(读者借阅) 16 图 7.第三层数据流图(读者还书) 图 8.第三层数据流图(管理员读者) 17 图 9.第三层数据流图(图书的维护) 图 10.第三层数据流图(更改读者信息) 18 图 11.第三层数据流图(更改管理员信息) 六、面向对象分析与设计六、面向对象分析与设计 6.1 系统的 UML 建模设计 6.1.1UML 简介 UML 是一种功能强大的、面向对象的可视化系统分析的建模语 言,它采用一整套成熟的建模技术,广泛地适用于各个应用领域。 它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠、 更完善的系统模型。从而使用户和开发人员对问题的描述达到相同 的理解,以减少语义差异,保障分析的正确性. 19 6.2 该图书馆管理系统的用例分析该图书馆管理系统的用例分析 该图书馆管理系统的用例图如下 图 12:图书馆管理系统的用例图 从用例图中我们可以看出管理员和读者之间对本系统所具有的用 20 例。 管理员所包含的用例有: (1)登录系统:管理员可以通过登录该系统进行各项功能的操 作 (2)书籍管理:包括对书籍的增删改等。 (3)书籍借阅管理:包括借书、还书、预订、书籍逾期处理和 书籍丢失处理等等。 (4)读者管理:包含对读者的增删改等操作。 (5)自动借书机的管理。 读者所包含的用例有: (1)登录系统 (2)借书:进行借书业务。 (3)还书:读者具有的还书业务。 (4)查询:包含对个人信息和书籍信息的查询业务 (5)预订:读者对书籍的预订业务。 (6)逾期处理:就是书籍过期后的缴纳罚金等。 (7)书籍丢失处理:对书籍丢失后的不同措施进行处理。 (8)自动借书机的使用等。 6.3、系统的顺序图、系统的顺序图 顺序图是显示对象之间交互的图,这些对象是按时间顺序排 列的。该图书馆管理系统主要含有以下几个重要的顺序图,其他 对象的顺序图和这些也类似。 21 (1)借书顺序图 (2)还书顺序图 (3)罚款顺序图 1、借书顺序图 图 13:图书馆管理系统借书顺序图 顺序图说明】 (1)login():登录系统。 (2)checkstu_card():对读者信息进行验证,检查是否符合本 图书馆借书条件。 (3)showinformation():显示该读者的基本信息函数。 22 (4)borrow():读者借书函数。 (5)getreaders():取得读者信息函数。看该读者是否符合 借书条件,若符合,则返回可借信息。 (6)gettitle():取得书目信息。 (7)getreservation():检验书籍是否被预订函数。 (8)getnoreservation():书籍没被预订或取消预订函数。 (9)create(borrower,item):创建书籍外借函数。 借书时,读者先将书拿予管理员,管理员对书籍和读者进行检验, 若书籍和读者都符合借书条件,则借书成功。 2、还书顺序图 图 14:图书馆管理系统还书顺序图 23 【顺序图说明】 (1)login():登录系统。 (2)getitem():取得书籍条目信息。 (3)update():对图书馆书籍条目和借阅者信息进行更新条 目。 还书时,读者先将书交给管理员,由管理员扫描书籍,若书籍没 有过期等违规现象,则对书目和读者借阅信息进行更新,同时还 书成功。 3、罚款顺序图 图 15:图书馆管理系统的罚款顺序图 【顺序图说明】 管理员对书籍进行扫描,若发现书籍已经超过了图书馆规定的还 24 书期限,则按每天一定金额进行罚款,过期天数和罚款金额由系 统自动计算。用户交完罚金后,则对读者借阅信息进行更新。 6.4、系统的状态图、系统的状态图 图书馆的书籍状态图如图 7 所示。 【状态图说明】 书籍在未变成图书馆在库书籍时,为新加书籍状态。书籍处于 在库状态时既可以预订也可以外借,外借后变为借出状态。处于预 订状态时也可以外借,超出预订时间期限则从预订状态直接转为可 用状态。借阅者在规定的预订时间内也可以考虑取消预订,取消预 订后书籍的状态转为可用。外借书籍归还后变为可用状态。 图 16:图书馆的书籍状态图 6.5、系统的活动图、系统的活动图 活动图描述的是某流程中的任务的执行,活动图描述活动是如 25 何协同工作的,当一个操作必须完成一系列事情,而又无法确定以 什么样的顺序来完成这些事情时,活动图可以更清晰地描述这些事 情。 。在本图书馆管理系统中,我们主要描述了图书馆系统的借书、 还书和预订的活动图。 1.借书活动图 【借书活动图说明】 管理员首先要扫描读者的借书证,检验证件是否符合图书馆借 书条件,若该读者的借书数量还未达到最大规定数量,并且其所借 书籍均未属于过期范围,则符合借书条件。则再扫描书籍条形码, 检查书籍是否是不可借书籍或者已经被预订,若被预订,则取消预 订,方可借书。在这些条件都符合时则更新书籍信息和读者的借阅 信息,记录好借书的时间。 26 图 17:图书馆管理系统的借书活动图 2、还书活动图 【还书活动图说明】 图书管理员对书籍进行扫描,若书籍已经过期,则要求读者还 请欠款才能还书,读者缴应交罚款后,更新书目信息和读者信息。 27 图 18:图书馆管理系统的还书活动图 6.6、图书馆管理系统的类图、图书馆管理系统的类图 【类图说明】 (1)reader 类是借阅者的类,它的属性很多,包括借阅者的账户 ID(reader_id) 、姓名(reader_Name) 、地址(Address) 、班 级(class) 、所借书籍的书目(borrowed)等。其中主要操作 有借书(addborrowed)和还书(deleteborrowed)和预订 (reservation)等。 28 (2)admin 类是管理员类,他有编号和姓名属性,操作主要是书籍 的增删改和读者的增删改等等。 (3) Title 类是记录书目信息的类,包括书籍的名字(name) 、 作者(author) 、book_id 等属性。 (4) Item 类是具体某本书的类,属性包括书籍号(id) 。操作包 括预订(reserve) 、按书目查找(find_on_title)等。 (5) borrow 类是某本书的借阅信息类,包括所借阅书籍的 ISBN、借阅的时间(date)等。 (6) Reservation 类是预订信息类,每个预订信息包括预订日期 (date) 、所预订书籍的 ISBN、预订书籍的用户 ID(UserID)等属 性。 (7) persistent store 类是书籍永久的存储类,在数据库中的存 储数据,其他对与书籍有关的活动都要经过其存储类。 29 图 19:图书馆管理系统的类图及关系 七、数据库分析与设计七、数据库分析与设计 7.1 数据库环境说明数据库环境说明 1)运行环境: 30 Windows 2000/XP/2003 操作系统下,安装并配置软件 Microsoft SQL Server 2000 数据库管理系统。 2)所需硬件接口环境:普通 PC 机。 3)所需软件接口环境:运行于装有 Windows XP 的操作系统 7.2 数据库概念结构设计数据库概念结构设计 7.2.17.2.1 任务与目标任务与目标 (1)选择中层数据流为切入点,通常选择实际系统中的子系统; (2)设计分 E-R 图,即各子模块的 E-R 图; (3)生成初步 E-R 图,通过合并方法,做到各子系统实体、属性、 联系统一; (4)生成全局 E-R 图,通过消除冲突等方面。 在本图书管理系统中,从第 3 层数据流程图下手。分析各 3 层数据 流图和数据字典,知道整个系统功能围绕“读者” 、 “管理员”和 “图书”的处理。根据实体与属性间的两条准则:作为“属性” , 1 不能再具有需要描述的性质。“属性”不能与其他实体具有联系。 2 数据流程图 2.4 、图 2.5、图 2.6 可综合成借阅子系统的分 E-R 图 3.1,数据流程图 2.7 可抽象为分 E-R 图 3.2,数据流程图 2.8 可抽 象为分 E-R 图 3.3,数据流程图 2.9 可抽象为分 E-R 图 3.4。然后采 用逐步集成的方式将各分 E-R 图合并,消除不必要的冗余和冲突后 就生成了基本 E-R 图如图 3.5。 7.2.27.2.2 各阶段各阶段的结果的结果 (1)根据不同的对象,从第 3 层数据流程图入手,分别画出各分 31 ER 图: (a)从数据流程图图(三) 与图(四)抽象出的分 ER 图如下: (c)从数据流程图图(六)抽象出的分 ER 图: (d)从数据流程图图(七)抽象出的分 ER 图: (e)从数据流程图图(八)抽象出的分 ER 图: 32 (2)合并各分图,消除属性冲突、命名冲突、结构冲突等三 类冲突,得到初步 E-R 图,再消除不必要冗余,得到的基本 E-R 图 如下所示: 图 20.全局 U-R 图 7.2.37.2.3 各各 E ER R 图中实体的属性和联系的属性图中实体的属性和联系的属性 各 ER 图各实体的属性如下所示: 图书: Book(BookID, BookNo, BookName, BookWriter, BookPublish, BookPrice, BookDate, BookClass, BookMain, BookPrim, BookCopy, BookState,BookRN) 33 读者: Reader(ReaID, ReaName, ReaSex, ReaNo, ReaLBID, ReaType, ReaDep, ReaGrade, ReaPref, ReaDate) 管理员: Maneger(MID, MName, MSex, Mpwd, MAuth, MTeleph, MAddre) 馆室: Room(RoomNo,RoomMID,RoomNum,RoomAddre) 读者类别: ReaderTpye(LBID, LBName, LBnum, LBbqx, LBqx) 各 ER 图中联系的属性如下所示: 借阅信息:Borrow (BookID,ReaderID,BookName,BookWriter, Outdate,YHdate) 借阅历史:History(BookID,ReaderID,BookName, BookWriter, Outdate,Indate) 罚款信息:Fine(BookID,ReaderID,BookName, Outdate,Indate, Fine, CLState, MID) 7.3 数据库逻辑设计数据库逻辑设计 7.3.17.3.1 逻辑设计的任务和目标逻辑设计的任务和目标 34 以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑 设计阶段就与选用的 DBMS 产品发生关系了,系统逻辑设计的任务就 是将概念设计阶段设计好的基本 E-R 图转换为选用 DBMS 产品所支持 的数据模型相符合的逻辑结构。具体内容包括数据组织(将 E-R 图 转换成关系模型、模型优化、数据库模式定义、用户子模式设计) 、 数据处理(画出系统功能模块图)两大任务。 7.3.2 逻辑设计步骤与设计原则逻辑设计步骤与设计原则 1)将将 E-RE-R 图转换为关系模型图转换为关系模型 实体型转换为关系模式。实体的属性就是关系的属性,实体的码就 是关系的码。对于实体间的联系则有以下不同的情况: 一个 m:n 联系转换为一个关系模式。与该联系相连的各实体的 码以及联系本身的属性均转换为关系的属性,而关系的码为各实体 码的组合。 一个 1:n 联系可以转换为一个独立的关系模式,也可以与 n 端对应 的关系模式合并。如果转换为一个独立的关系模式,则与该联系相 连的各实体的码以及联系本身的属性均转换为关系的属性,而关系 的码为 n 端实体的码。 一个 1:1 联系可以转换为一个独立的关系模式,也可以与任意 一端对应的关系模式合并。三个或三个以上实体间的一个多元联系 可以转换为一个关系模式。与该多元联系相连的各实体的码以及联 系本身的属性均转换为关系的属性,而关系的码为各实体码的组合 35 具有相同码的关系模式可合并。 由于读者类别与读者、馆室与图书的联系方式是 1:n(一对多) , 可以将其之间的联系与 n 端实体读者、图书合并,管理员与图书之 间的维护联系也是 1:n(一对多) ,同样也将其之间的联系与 n 端实 体合并,而读者与图书之间的借阅和归还联系方式则是 n:m(多对 多) ,这样要把它们之间的联系转化为独立的关系模式,读者与管理 员之间的罚款联系是 m:n(多对多) ,将其联系也转化成独立的关系 模式, 2 2)具体的基本)具体的基本 E-RE-R 图向关系模型转化图向关系模型转化 具体的基本 E-R 图向关系模型的转化如下: 图书: Book(BookID,BookNo,BookName,BookWriter,BookPublish,BookPric e,BookDate,BookClass,BookMain,BookPrim,BookCopy,BookState,B ookRNo) 读者: Reader(ReaID,ReaName,ReaSex,ReaNo,ReaLBID,ReaType,ReaDep,Re aGrade,ReaPref, ReaDate) 管理员: Maneger(MID,MName,MSex,Mpwd,MAuth,MTeleph,MAddre) 读者类别: ReaderTpye(LBID, LBName, LBnum, LBbqx, LBqx) 馆室: 36 Room(RoomNo,RoomMID,RoomNum,RoomAddre) 借阅信息: Borrow(BookID,ReaderID,BookName,BookWriter, Outdate,YHdate) 借阅历史: History(BookID,ReaderID,BookName,BookWriter, Outdate,Indate,YHdate) 罚款信息: Fine(BookID,ReaderID,BookName,Outdate,Indate,Fine,CLState,M ID) (注:标有直线下划线的为主属性,标有波浪线下划线的是外键属 性,主属性与外键属性一起构成主码) 7.4 数据库物理设计数据库物理设计 7.4.17.4.1 物理设计阶段的目标与任务物理设计阶段的目标与任务 数据库的物理设计就是为逻辑数据模型选取一个最合适应用要 求的物理结构的过程,在这个阶段中要完成两大任务: (1)确定数据库的物理结构,在关系数据库中主要是存取方法和存 储结构; (2)对物理结构和功能进行评价,评价的重点是时间和空间效率。 7.4.2 数据库物理设计步骤数据库物理设计步骤 1)数据存储方面 为数据库中各基本表建立的索引如下: 37 由于基本表 Reader,Book 的主码 ReaID,BookID 经常在查询条 件和连接操作的连接条件中出现,且它们的值唯一,在两个属性上 建立唯一性索引; 由于基本表 Reader 的属性 ReaDep,Book 的属性 BookPublish 经 常在查询条件中出现在两个属性上建立聚簇索引; 借阅信息基本表 Borrow 的一属性 ReaID,BookID,经常在查询条 件中出现,考虑在其之上建立聚簇索引; 罚款信息基本表 Fine 的一属性 ReaID,BookID,经常在查询条件 中出现,考虑在其之上建立聚簇索引; 2)2)系统功能模块系统功能模块 (1)(1)读者基本信息的查询和更新模块读者基本信息的查询和更新模块 将实现对读者基本信息的查询和更新(修改、添加、删除)操作, 用于新生入学,毕业生离校,以及读者补办借阅证或更改信息的情 况,具体的功能模块图如下: 38 图 21.查询和更新模块 八、八、 人机界面设计人机界面设计 8.1 界面设计意义及任务界面设计意义及任务 意义:人机界面是用户与计算机交流的中间媒介,是用户运行程序 时的第一感觉,用户只能通过显示在屏幕上的人机界面了解并掌握 运行整个系统,因此人机界面设计非常重要 主要任务: 必须对用户的特性进行分析,对界面的功能进行任务分析(即建立 任务模型) ,还要确定用户界面的类型,并根据其特点借助工具进行 分析与设计 8.2 主界面设计主界面设计 图书馆管理系统的界面主要是面向用户和管理员,如果是管理人 员则可使用系统中所有的界面,如果是普通用户(学生)则只能使 用有限的几个界面。根据系统结构的不同,下面对该系统中所需的 主界面进行简单的分析。 1.登录界面:该界面主要是为了维护数据的安全,用于区分管理员 和普通用户(学生) 。因此界面中必须有一个用于区分管理员和普通 用户的元素,复选框;还需要一个输入密码的文本框等。如下图所 39 示: 登登陆陆界界面面登登陆陆界界面面 学生管理员 * 20110514323用户名 密码 2管理界面:该界面主要用于管理员设置该图书馆的名称。在打 开该界面时要显示已经添加的书的名称,并能进行修改和删除。因 此该界面中可包含书列表框、以及馆内书的增加、修改、删除等的 按钮等。如下图所示: 40 3、学生借书信息录入界面:该界面主要用于录入相应借书的学生信 息。因此该界面应包含学号、姓名、借书的具体时间数量以及还书 时间有无超期。如下图所示: 4图书的信息查询界面:该界面主要用于查询图书的基本信息。因 此该界面中必须包含 “检索”功能,另外还可具体分一般检索与高 级检索,并显示检索出来的图书德具体情况。如下图所示: 41 九、九、项目系统实现项目系统实现 9.1 实现环境实现环境 软件项目实现的环境如下: 用户界面:在 Windows XP 界面运行。 硬件接口:普通 PC 机。 软件接口:运行于装有 Windows XP 的操作系统 所需软件:微软的 visio2010 和 word,VC+6.0,v-f 9.2 核心模块实现技术代码核心模块实现技术代码 核心模块实现技术代码描述如下 身份验证 1 功能:验证身份 性能: 输入项:预设密码 输出项:欢迎语句 算法: int keyword=111,a; printf(“Please input keyword:“); scanf(“%d“, if(a!=keyword) exit(0); else printf(“Welcome!“); 测试要求:运行正常。 主菜单模块 2 42 功能:选择功能 性能: 输入项:数字 0-9 输出项:对应功能项 算法: int Display_MainMenu() /*显示菜单的函数*/ char x; do system(“cls“); printf(“*n“); printf(“1.Create BookListn“); printf(“2.Display All Booksn“); printf(“3.Insert a BookInformationn“); printf(“4.Delete a Bookn“); printf(“5.Borrow a Bookn“); printf(“6.Return a Bookn“); printf(“7.Queryn“); printf(“8.Add Records From a Filen“); printf(“9.Write to a Filen“); printf(“0.Goodbyen“); printf(“*n“); printf(“Please choose from 0-9:“); printf(“n“); 43 x=getchar(); while(x9); return(x-0); 测试要求:运行正常。 插入模块 3 功能:插入新信息 性能: 输入项:书名 数量 输出项:成功提示 算法: Book *Insert(Book *head,Book *s) /*插入结点的函数*/ Book *p0,*p1,*p2; p1=head;p0=s; /*使 p1 指向第一个结点,p0 指向要插入的结点*/ if(head=NULL) /*原来的链表是空表*/ head=p0;p0-next=NULL; /*使 p0 作为首结点*/ while(strcmp(p0-Name,p1-Name)0 p1=p1-next; if(strcmp(p0-Name,p1-Name)next=p1; 44 if(head=p1) head=p0; else p2-next=p0; else p1-next=p0; p0-next=NULL; return(head); Book *Insert_a_record(Book *head) Book *newrecord; newrecord=(Book *)malloc(LEN); /*动态分配存储空间*/ scanf(“%s%d“,newrecord-Name, newrecord-borrow=0; newrecord-left=newrecord-all; head=Insert(head,newrecord); printf(“Insert successfullyn“); /*输出插入成功的信息*/ return(head); 测试要求:运行正常。 45 删除模块 4 功能:删除信息 性能: 输入项:所删书名 输出项:成功提示 算法: Book *Delete(Book *head,char *name) Book *p1,*p2; if(head=NULL) printf(“Sorry No record!n“); p1=head; while(strcmp(p1-Name,name)!=0p1=p1-next; /*p1 后移一个结点*/ if(strcmp(p1-Name,name)=0) /*找到了*/ if(p1=head)head=p1-next; /*若 p1 为首指针,使下一结点为首指针*/ else p2-next=p1-next; /*否则将下一结点地址赋给前一结点地址*/ printf(“delete %s successfullyn“,name); /*输出删除成功的信息*/ return(head); 46 Book *Delete_a_record(Book *head) char name20,ch; Book *p; scanf(“%s“,name); getchar(); /*接收回车*/ p=Query(head,name); if(p=NULL) printf(“Cannot Find %sn“,name); /*找不到结点*/ else printf(“Delete %s, Y/N?n“,name); ch=getchar(); system(“pause“); if(ch=y|ch=Y) while(p!=NULL) head=Delete(head,name); /*删除所有与输入相同的记录*/ p=Query(head,name); return(head); 测试要求:运行正常。 47 查询模块 5 功能: 查询功能 性能: 输入项:查询书名 输出项:相应书籍信息 算法: Book *Query(Book *head,char *name) Book *p; p=head; while(strcmp(name,p-Name)!=0 if(strcmp(name,p-Name)=0) /*找到了,返回结点地址*/ return(p); else /*找不到返回空指针*/ return(NULL); void Query_a_record(Book *head) char name20; Book *p; scanf(“%s“,name); p=Query(head,name); if(p!=NULL) /*找到了*/ printf(“Find successfullyn%s total:%d left:%d borrow:%dn“, 48 p-Name,p-all,p-left,p-borrow); else printf(“Cant find the records of %sn“,name); /*找不到*/ 测试要求:运行正常。 显示功能 6 功能: 显示所有信息 性能: 输入项:相应的菜单序号 输出项:所有书籍信息 算法: void Display(Book *head) Book *p; int i; p=head; printf(“Num BookName Total Left Borrown“); for(i=1;p!=NULL;i+) printf(“%-5d%-14s%-10d%-10d%-5dn“, i,p-Name,p-all,p-left,p-borrow); p=p-next; 49 if(i%10=0) system(“pause“); /*按回车翻页显示*/ printf(“Num BookName total left borrown“); 测试要求:运行正常。 借出模块 7 功能:借出书籍 性能: 输入项:所借书名 数量 输出项:成功信息 算法: Book *Borrow_a_Book(Book *head) char name20,ch; int n; Book *p; scanf(“%s%d“,name, getchar(); /*接收回车*/ p=Query(head,name); if(p=NULL) printf(“Cannot Find %sn“,name); /*找不到结点*/ else printf(“Are you sure to borrow? %s, Y/N?n“,name); ch=getchar(); 50 system(“pause“); if(ch=y|ch=Y) head=Borrow(head,name,n); return(head); 测试要求:运行正常。 归还模块 8 功能:归还书籍 性能: 输入项:所换书名 数量 输出项:成功提示 算法: Book *Return_a_Book(Book *head) char name20,ch; int n; Book *p; scanf(“%s%d“,name, getchar(); /*接收回车*/ p=Query(head,name); if(p=NULL) printf(“Cannot Find %sn“,name); /*找不到结点*/ else printf(“Are you sure to return? %s, Y/N?n“,name); ch=getchar(); 51 system(“pause“); if(ch=y|ch=Y) head=Return(head,name,n); return(head); Book *Return(Book *head,char *name,int sum) Book *p1; p1=head; while(strcmp(p1-Name,name)!=0 /*p1 后移一个结点 */ if(strcmp(p1-Name,name)=0) /*找到了*/ p1-borrow=p1-borrow-sum;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年老年医学护理康复竞赛题库及答案
- 桃花源记课件重点字
- 国企银行面试题库及答案
- 2025年药品监管笔试备考冲刺卷2018
- 2025年协会财务岗位笔试中的法律法规知识预测题
- 2025年跨国公司招聘区域经理面试技巧与模拟题集
- 2025年殡仪专业考试模拟题及解析
- 公务员选岗面试题及答案
- 公务员面试题答案及分析
- 校长述职报告课件
- 眼的生物化学讲义
- GB/T 3098.15-2023紧固件机械性能不锈钢螺母
- 陈琦《教育心理学》课件
- 封头理论重量计算公式
- 护理副高职称答辩5分钟简述范文
- (3)-2-1-药物的跨膜转运
- 幼小衔接资料合集汇总
- 八年级数学平面直角坐标系测试题
- GB/T 28575-2020YE3系列(IP55)三相异步电动机技术条件(机座号63~355)
- 储油罐有限空间作业安全技术措施表
- 传媒公司员工劳动合同(标准版)
评论
0/150
提交评论