开始输入一个整数value否value是整数吗?是Search(soneArray,size+1,value)int i=1结束i++否否i<=size吗?是sonearray[i]==value吗?是return i1) 语句覆盖:
value=8,覆盖路径:abcdefgifghj 2) 判定覆盖:
Value=8.,覆盖路径:abcdefgifghj Value=8.5,覆盖路径:abckb Value=10,覆盖路径:abcdefgifk
实验四面向对象分析(2学时)
实验目的:
通过采用面向对象的方法对问题进行分析,建立系统的对象模型和功能模型。动态模型为选作内容。
实验内容:
某医生开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员。医生需要一个软件系统来管理预约。
当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。系统将核实病人的名字并提供纪录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果有必要,安排病人下一次再来。
系统能够按病人姓名和日期进行查询,能够显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。系统可以从病人记录中获知病人的电话号码。接待员还可以打印出关于所有病人的每天和每周的工作安排。
实验要求:
1. 建立牙科诊所管理系统的对象模型
2. 用数据流图建立牙科诊所管理系统的功能模型。 3. 写出牙科诊所管理系统的脚本(选作)。 4. 画出牙科诊所管理系统状态图(选作)。
实验步骤:
1. 建立牙科诊所管理系统的对象模型
预约登记表-姓名 : string-预约时间 : object-病历号 : int1*1*接待员-姓名 : string+接听电话() : void+查阅预约登记表() : bool+建议就诊时间() : object+预约登记() : void+取消预约() : bool+打印预约尚未接诊的病人清单() : void+打印工作安排() : void病人-姓名 : string+打电话预约() : void+是否接受建议() : bool11诊所管理系统-病历号 : int-病人姓名 : string-预约日期 : object-病人联系方式 : string+核实病人名字() : bool+提供病人数据() : int+查询预约信息() : void+显示信息() : void*牙科保健员11{OR}*牙科助手-姓名 : string+标记预约诊治已完成() : bool+安排病人下次会诊() : void-姓名 : string+标记预约诊治已完成() : bool+安排病人下次会诊() : void
2. 用数据流图建立牙科诊所管理系统的功能模型。
3同意就诊时间就诊时间病人就诊时间1预约预约信息接待员4输入约定时间和病人姓名预约系统2.2建议就诊时间预约信息2.1接收预约信息5.2提供病人数据5.1核实病人姓名D1:预约登记表D1:预约登记表牙科助手6.1标记预约诊治已完成牙科保健员D1:预约登记表6.2安排病人下次会诊预约系统
3. 写出牙科诊所管理系统的脚本(选作)。 4. 画出牙科诊所管理系统状态图(选作)。
预约管理系统的正常情况脚本
? 系统请接待员输入病人预约信息 ? 系统查询该病人是否已预约过
? 如果预约过,且时间冲突,提示接待员建议一个合适的时间 ? [病人接受建议的时间]or如果没有预约过,系统提示会诊时间 ? 病人会诊中,系统记录相关病人数据
? 会诊完毕,系统更改预约信息中预约诊治是否完成信息 ? 系统增加新的预约登记表
预约管理系统的异常情况脚本
? 系统请接待员输入病人预约信息 ? 系统查询该病人是否已预约过
? 如果预约过,且时间冲突,提示接待员建议一个合适的时间 ? 如果病人接受建议的时间,系统审核输入信息正确与否 ? 输入病人信息有误,提示重新输入 ? 系统审核输入信息正确与否
? [输入信息正确]or如果没有预约过,系统提示会诊时间 ? 病人会诊中,系统记录相关病人数据
? 会诊完毕,系统更改预约信息中预约诊治是否完成信息 ? 系统增加新的预约登记表