收藏 分销(赏)

软件工程概论实验报告-图书馆自动循环系统概要设计及详细设计.doc

上传人:仙人****88 文档编号:9282089 上传时间:2025-03-19 格式:DOC 页数:14 大小:417KB
下载 相关 举报
软件工程概论实验报告-图书馆自动循环系统概要设计及详细设计.doc_第1页
第1页 / 共14页
软件工程概论实验报告-图书馆自动循环系统概要设计及详细设计.doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述
软 件 工 程 概 论 实 验 报 告 学 院 软件学院 年 级 2007级 班 级 五班 学 号 3007218129 姓 名 田玮 2010年 5月 1日 软件工程概论上机实验报告 题目:图书馆自动循环系统概要设计及详细设计 学院名称 软件学院 专 业 软件工程 学生姓名 田玮 学 号 3007218129 年 级 2007 级 班 级 五班 时 间 2010年 5月1日 目 录 项目名称 1 结构化设计 2 详细设计 3 实验结论 11 项目名称 “图书馆自动循环系统概要设计及详细设计”。 考虑一个图书馆自动循环系统。每本书有一个条形码,每个借书者有一张借书卡,上面也有一个条形码。当借书者想借书时,图书管理员扫描该书和借书卡上的条形码,并在计算机终端上输入C。类似地,还书时,图书管理员再次进行扫描,并输入R。图书管理员可以向书库中增加图书(+)或去掉图书(-)。借书者可以在一台终端上确定书库中特定作者的所有书籍(借书者输入A=之后,再输入作者的名字)、特定标题的所有书籍(输入T=之后,再输入标题)或者特定主题范围的所有书籍(输入S=之后,再输入主题范围)。最后,如果借书者想要一本目前已借出的书,图书管理员可以在该书上做个标记,当该书被归还时,将为申请过它的借书者保留起来(输入H=之后,再输入该书的书号)。 11 结构化设计 采用事务分析的技术,从借书者和图书管理员的角度来进行设计。设计图书馆自动循环系统时,将其分成两个部分:分析器和分配器。 Input Operation_analysis borrow return Apply_the_book add delete Check_borrow_book_info Record_borrow_order Print_message_on_screen Check_return_book_info Complete_borrow_order Check_order_book_info Record_apply_order search Author_search title_search subject_search Print_result_table Book_identification Book_identification Borrower_name Borrower_number Borrower_number Book_identification “H” Order_book_identification A= T= S= Temp_table Temp_table Temp_table “+” “-” order Audit_information Audit_information Audit_information Audit_information Audit_information Audit_information 图1-1 图书馆自动循环系统的事物处理分析图 详细设计 详细设计也称过程设计,是程序设计的蓝图。该设计是在数据设计、体系结构设计和接口设计完成之后进行的。过程设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程尽可能的简明易懂。结构化程序设计是实现上述目标的关键技术,因此是过程设计的逻辑基础。过程设计的结果基本上决定了最终程序设计的质量。 将程序体系结构元素变换为对软件构件的过程描述。该实验主要是利用过程设计工具进行程序设计。 由于时间限制,要求由一个小组而不是由单个程序员负责编写所有模块的代码。由于这个原因,必须给出每个模块的详细设计,使得不用参考其他模块就可以理解每个模块。 表2-1 borrow模块的详细设计 模块名称 Borrow 模块类型 函数 返回类型 Boolean 输入参数 Book_identification 输出参数 无 错误消息 无 文件存取 LIBRARY_BOOK_DATA 文件修改 无 模块调用 无 描述 通过管理员扫描条形码获得的book_identification,然后在数据库LIBRARY_BOOK_DATA表中查找相应的book_identification,找到后,读取其book_status一项,如果为2,表示书在库中,返回true;如果为1或0,表示已下架或已借出,返回false。 表2-2 check_borrow_book_info模块的详细设计 模块名称 check_borrow_book_info 模块类型 函数 返回类型 Boolean 输入参数 Borrower_number book_identification 输出参数 无 错误消息 “该书已被预定,不能借阅” 文件存取 BOOKED_ORDER_DATA 文件修改 可能做删除操作 模块调用 无 描述 管理员请借书者刷借书卡,以获得borrower_number。根据当前的book_identification值,在数据库的BOOKED_ORDER_DATA中查找ordered_book_identification值是否有与之相同的,如果没有,则结束过程,返回true。如果有相同项,则继续查看相同项中的booker_number值,与当前borrower_number值是否相同,如果相同,则表示订阅者与借阅者是同一人,则将BOOKED_ORDER_DATA中这一项删除,然后结束过程,返回true。如果预订者与借阅者不同,则结束过程,弹出错误消息,返回false。 表2-3 record_borrow_order模块的详细设计 模块名称 record_borrow_order 模块类型 函数 返回类型 Boolean 输入参数 Book_identification Borrower_number Borrower_name Borrow_date 输出参数 Borrow_order 错误消息 无 文件存取 BORROWED_ORDER_DATA 文件修改 添加项 模块调用 Generate_identification 描述 将输入的book_identification, borrower_number, borrower_name, borrow_date整合成borrow_order添加到BORROWED_ORDER_DATA表中,由过程generate_identification生成一个借阅编码,也添加到这一项中,操作完成后,返回true,否则返回false。 表2-4 generate _identification模块的详细设计 模块名称 generate _identification 模块类型 函数 返回类型 long 输入参数 无 输出参数 Borrow_identification 错误消息 无 文件存取 无 文件修改 无 模块调用 无 描述 按照一定顺序生成一个无重复的12位整数,后两位为校验码,作为借阅编码,生成完毕后,将所生成的borrow_identification值返回。 表2-5 return模块的详细设计 模块名称 Return 模块类型 函数 返回类型 Boolean 输入参数 Book_identification 输出参数 无 错误消息 无 文件存取 LIBRARY_BOOK_DATA 文件修改 无 模块调用 无 描述 通过管理员扫描条形码获得的book_identification,然后在数据库LIBRARY_BOOK_DATA表中查找相应的book_identification,找到后,读取其book_status一项,如果为1,表示已借出,返回true;如果为2或0,表示已下架或在库中,返回false。 表2-6 check_return_book_info模块的详细设计 模块名称 check_return_book_info 模块类型 函数 返回类型 Boolean 输入参数 Book_identification 输出参数 无 错误消息 无 文件存取 ORDERED_BOOK_DATA 文件修改 修改book_status项 模块调用 无 描述 在ORDERED_BOOK_DATA表中寻找是否有ordered_book_identification项与当前book_identification相同的,如果没有,过程结束,返回true。如果有,将表中这一项中的book_status值修改为2,表示归还到库中,过程结束,返回true,否则返回false。 表2-7 complete_borrow_order模块的详细设计 模块名称 complete_borrow_order 模块类型 函数 返回类型 Boolean 输入参数 Book_identification Borrower_number Return_date 输出参数 无 错误消息 无 文件存取 BORROWED_ORDER_DATA 文件修改 添加值 模块调用 描述 通过book_identification和borrower_number寻找BORROWED_ORDER_DATA表中的相应项,根据输入的return_date,修改其中的return_date值,过程结束返回true,否则返回false。 表2-8 apply_the_book模块的详细设计 模块名称 apply_the_book 模块类型 函数 返回类型 Boolean 输入参数 字符“H” 输出参数 无 错误消息 无 文件存取 无 文件修改 无 模块调用 无 描述 预订者输入“H”后,屏幕上显示出请求预订者输入个人信息的对话框,生成完毕后过程结束返回true,否则返回false。 表2-9 check_order_book_info模块的详细设计 模块名称 check_order_book_info 模块类型 函数 返回类型 Boolean 输入参数 Ordered_book_identification 输出参数 无 错误消息 “已经有人预定了这本书,无法再预定!” 文件存取 ORDERED_BOOK_DATA 文件修改 无 模块调用 无 描述 检查ORDERED_BOOK_DATA中是否有ordered_book_identification值与当前要订阅书的ordered_book_identification值相同的项,如果有,则弹出错误消息,返回false,如果没有,则过程结束,返回true。 表2-10 record_apply_order模块的详细设计 模块名称 record_apply_order 模块类型 函数 返回类型 Boolean 输入参数 Ordered_book_identification booker_number booker_name 输出参数 无 错误消息 无 文件存取 ORDERED_BOOK_DATA 文件修改 添加项 模块调用 Generate_identification 描述 根据预订者输入的个人信息:booker_number, booker_name以及Ordered_book_identification,在ORDERED_BOOK_DATA中建立新的项,调用generate_identification生成一个预定编码,过程结束后,返回true,否则返回false。 表2-11 author_search模块的详细设计 模块名称 Author_search 模块类型 函数 返回类型 Stack 输入参数 Book_author 输出参数 Author_stack 错误消息 无 文件存取 LIBRARY_BOOK_DATA 文件修改 无 模块调用 Print_result_table 描述 根据借书者输入的book_author,在LIBRARY_BOOK_DATA表中进行查找,每查到book_author与之相同的一项,则将其book_idenfication添加到author_stack栈中,直至查询结束,调用print_result_table,返回true。否则返回false。 表2-12 title_search模块的详细设计 模块名称 title _search 模块类型 函数 返回类型 Stack 输入参数 Book_title 输出参数 title_stack 错误消息 无 文件存取 LIBRARY_BOOK_DATA 文件修改 无 模块调用 Print_result_table 描述 根据借书者输入的book_title,在LIBRARY_BOOK_DATA表中进行查找,每查到book_title与之相同的一项,则将其book_idenfication添加到title _stack栈中,直至查询结束,调用print_result_table,返回true。否则返回false。 表2-13 subject_search模块的详细设计 模块名称 Subject_search 模块类型 函数 返回类型 Stack 输入参数 Book_subject 输出参数 Subject_stack 错误消息 无 文件存取 LIBRARY_BOOK_DATA 文件修改 无 模块调用 Print_result_table 描述 根据借书者输入的book_subject,在LIBRARY_BOOK_DATA表中进行查找,每查到book_subject中包含相同关键字的一项,则将其book_idenfication添加到title _stack栈中,直至查询结束,调用print_result_table,返回true。否则返回false。 表2-14 print_result_table 模块的详细设计 模块名称 Print_result_table 模块类型 函数 返回类型 Boolean 输入参数 Stack 输出参数 无 错误消息 “没有找到相应的内容!” 文件存取 LIBRARY_BOOK_DATA 文件修改 无 模块调用 无 描述 读取stack中的内容,如果stack为空,弹出错误消息,返回false。如果不为空,根据stack中读取到的book_identification值,在LIBRARY_BOOK_DATA查找,没找到一项,就将其book_identification,book_author,book_subject,book_title,book_destination,book_status以表格形式显示在屏幕上,完成后返回true。否则返回false。 表2-15 add模块的详细设计 模块名称 add 模块类型 函数 返回类型 Boolean 输入参数 + Book_author Book_title Book_subject Book_destination 输出参数 无 错误消息 无 文件存取 LIBRARY_BOOK_DATA 文件修改 添加项 模块调用 无 描述 图书管理员输入“+”后,弹出添加书目的对话框,请求管理员输入实际信息如:book_author,Book_title,Book_subject和Book_destination,根据这些信息在LIBRARY_BOOK_DATA中建立新的项,调用generate_identification生成新的条形码,完成后返回true,否则返回false。 表2-16 delete模块的详细设计 模块名称 Delete 模块类型 函数 返回类型 Boolean 输入参数 - 输出参数 无 错误消息 无 文件存取 LIBRARY_BOOK_DATA 文件修改 添加项 模块调用 无 描述 图书管理员输入“-”后,列出LIBRARY_BOOK_DATA表,请求管理员选择要删除的项,管理员可以通过book_author,Book_title,Book_subject和Book_destination进行查找,管理员选择后删除掉这一项的所有信息,完成后返回true,否则返回false。 表2-17 operation_analysis模块的详细设计 模块名称 operation_analysis 模块类型 函数 返回类型 Boolean 输入参数 Book_identification char 输出参数 无 错误消息 “错误的操作” 文件存取 无 文件修改 无 模块调用 Borrow Return Apply_the_book Search Add delete 描述 判断是否输入了book_identification,如果输入了book_identification,则调用borrow,返回为false时则调用return。 如果没有输入book_identification,判断是否输入了字符,如果字符为H,调用apply_the_book;如果字符为A,调用author_search;如果字符为T,调用title_search;如果字符为S,调用subject_search;如果字符为+,调用add过程;如果字符为-,调用delete过程。 如果不为上述任何一种,弹出错误消息,返回false。结束后返回true。 实验结论 传统的设计阶段由三个活动组成:结构化设计、详细设计和设计测试。设计过程的输入是规格说明文档,描述产品要做什么。输出是设计文档,描述产品如何做才能完成。 在结构化设计期间,对产品进行模块化分解,即,仔细分析规格说明,产生具有期望功能的模块结构。这个活动的输出是模块的列表,以及对于它们如何相互连接的说明。从抽象的观点来看,在结构化设计期间,假定某些模块存在,然后根据那些模块开展设计。 传统设计阶段的下一个活动是详细设计,在此期间对每个模块进行详细设计。例如,选择特定的算法和数据结构。同样,从抽象的观点来看,在这个活动期间,将模块互连构成一个完整产品的事实被忽略了。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服