[说明]
某图书管理系统的主要功能是图书管理和信息查询。对于初次借书的读者,系统自动生成读者号,并与读者基本信息(姓名、单位和地址等)一起写入读者文件。
该系统的图书管理功能主要分为购入新书、读者借书、读者还书及图书注销4个方面。
(1)购入新书时需要为该书编制入库单。入库单内容包括图书分类目录号、书名、作者、价格、数量和购书日期,将这些信息写入图书目录文件并修改文件中的库存总量(表示到目前为止,购入此种图书的数量)。
(2)读者借书时需填写借书单。借书单内容包括读者号和所借图书分类目录号。系统首先检查该读者号是否有效,若无效,则拒绝借书;若有效,则进一步检查该读者已借图书是否超过最大限制数(假设每位读者能同时借阅的书不超过10本),若已达到最大限制数,则拒绝借书;否则允许借书,同时将图书分类目录号、读者号和借阅日期等信息写入借书文件中。
(3)读者还书时需填写还书单。系统根据读者号和图书分类目录号,从借书文件中读出与该图书相关的借阅记录,标明还书日期,再写回到借书文件中,若图书逾期,则处以相应的罚款。
(4)注销图书时,需填写注销单并修改图书目录文件中的库存总量。
系统的信息查询功能主要包括读者信息查询和图书信息查询。其中,读者信息查询可得到读者的基本信息及读者借阅图书的情况;图书信息查询可得到图书基本信息和图书的借出情况。
该图书管理系统的顶层数据流图,如图2-21所示;该图书管理系统的第0层DFD图,如图2-22所示;其中加工2的细化图,如图2-23所示。
1. [问题1]
请用100字以内的文字简要说明逻辑数据流图(Logical Data Flow Diagram)和物理数据流图(Physical Data Flow Diagram)之间的主要差别。
参考答案:[问题4]
这是一道要求读者根据具体应用环境编写数据字典条目的综合分析题。本题的解答思路如下。
①由题干给出的关键信息“入库单内容包括图书分类目录号、书名、作者、价格、数量和购书日期”,并结合试题中给出的数据字典条目示例“读者情况=读者号+姓名+所在单位+{借书情况}”的编写风格,可得到“入库单”的数据字典条目如下。
入库单=分类目录号+书名+作者+价格+数量+购书日期
②同理,由题干给出的关键信息“借书单内容包括读者号和所借图书分类目录号”和“假设每位读者能同时借阅的书不超过10本”可知,每位读者一次可借阅多本图书(即1:n的关系),每次借阅时需向系统提交“读者号”和“所借图书分类目录号”,因此可得到“借书单”的数据字典条目如下。
借书单=读者号+{所借图书分类目录号}
③同理,由题干给出的关键信息“读者还书时需填写还书单。系统根据读者号和图书分类目录号,从借书文件中读出与该图书相关的借阅记录……”,并结合常识“每位读者一次可归还多本图书(即1:n的关系)”等信息,可得到“借书单”的数据字典条目如下。
还书单=读者号+{所还图书分类目录号}
④由题干给出的关键信息“该系统的图书管理功能主要分为购入新书、读者借书、读者还书及图书注销4个方面”,以及题干中关于“入库单”、“借书单”、“还书单”和“注销单”的描述信息可知,每一项管理工作都需要填写相应的单据。结合试题中给出的示例“查询请求信息=[查询读者请求信息|查询图书请求信息],可得到“管理工作请求单”的数据字典条目如下。
管理工作请求单=[入库单|借书单|还书单|注销单]
⑤由[问题2]、[问题3]的分析过程可知,如图2-21所示中数据流“非法请求信息”在如图2-22所示中包含了“非法管理工作请求单”和“非法查询请求信息”两条子数据流,而数据流“非法查询请求信息”在如图2-23所示中又包含了“非法查询读者请求信息”和“非法查询图书请求信息”两条子数据流,因此“非法请求信息”的数据字典条目如下。
非法请求信息=[非法管理工作请求单|非法查询请求信息]
或非法请求信息=[非法管理工作请求单|非法查询读者请求信息|非法查询图书请求信息]