


单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,4-4.考虑下述的自动化图书馆流通系统:每本书都有一个条形码,每个人都有一个带条形码的卡片但一个借阅人想借一本书时,图书管理员扫描书上的条形码和借阅人卡片的条形码,然后在计算机终端上输入C;当归还一本书时,图书管理员将再次扫描,并输入R图书管理员可以把一些书加到(+)图书集合中,也可以删除()它们借阅人可以再终端上查找到某个作者所有的书(输入“A=”和作者名字),或具有指定标题的所有书籍(输入“T=”和标题),或属于特定主题范围内的所有图书(输入“S=”加主题范围)。
最后,如果借阅人想借的书已被别人借走,图书管理员将给这本书设置一个预约,以便书归还时把书留给预约的借阅人(输入“H=”加书号)试用有穷状态机说明上述的图书流通系统图书馆流通系统的有穷状态机描述如下:,(一)图书状态的有穷状态机描述,状态机J,:书在图书馆S1,书被借出S2,书被预约S3,输入集K,:书上条形码,借阅卡条形码,终端输入各种命令,转换函数T,:如下图所示,初始态S,:书在图书馆S1,书被借出S2,终态集F,:书被借出S2,书被预约S3,书归还,扫描两个条形码,在终端输入,R,在终端输入“,H=”,加书号,扫描两个条形码,在终端输入,R,扫描两个条形码,在终端输入,C,书在图书馆,S1,书被借出,S2,书被预约,S3,(二)图书馆终端管理员模式的有穷状态机描述,状态机J,:管理员设置状态,书入库,书出库(删除),预约,输入集K,:终端输入管理员命令,书的各种状态(S1,S2,S3,转换函数T,:如下图所示,初始态S,:管理员设置状态,终态集F,:书入库,书出库(删除),预约,,管理员删除,管理员添加,管理员设置状态,书入库,书出库(删除),预约,书状态为,S2&,终端输入“,H=”,加书名,(三)图书馆终端用户模式的有穷状态机描述,状态机J,:读者查询状态,查询结果,输入集K,:终端输入用户查询命令,书的各种状态(S1,S2,S3),转换函数T,:如下图所示,初始态S,:读者查询状态,终态集F,:查询结果,读者查询状态,查询结果,终端输入各种查询命令,5-3.用面向数据流的方法设计下列系统的软件结构。
3)患者监护系统需求分析阶段得出的数据流图,7-2,研究下面给出的伪码程序,要求:,画出它的程序流程图;,它是结构化的还是非结构化的?说明理由;,若是非结构化的,则,把它改造成仅用三种控制结构的结构化程序;,写出这个结构化设计的伪码;,用盒图表示这个结构化程序.,找出并改正程序逻辑中的错误.,COMMENT:PROGRAM SEARCHES FOR FIRSTN REFERENCES,TO A TOPIC IN AN INFORMATION RETRRIEVAL,SYSTEM WITH TOTAL ENTRIES,INPUT N,INPUT KEYWORD(S)FOR TOPIC,I=0,MATCH=0,DO WHILE IT,I=I+1,IF WORD=KEYWORD,THEN MATCH=MATCH+1,STORE IN BUFFER,END,IF MATCH=N,THEN GOTO OUTPUT,END,END,IF N=0,THEN PRINT“NO MATCH”,OUTPUT:ELSE CALL SUBROUTINE TO PRINT BUFFER,INFORMATION,END,(1),程序流程图,(2)这个程序是非结构化的。
因为在流程图中“印出缓冲区的内容”这个处理框有两个入口;此外,循环结构有两个出口:IT为假和MATCH=N为真时都结束循环3,)仅用,3,种控制结构的等价的结构化程序的伪码如下:,INPUT N,INPUT KEYWORD(S)FOR TOPIC,I=0,MATCH=0,DO WHILE(I,T)and(MATCHN),I=I+1,IF WORD=KEYWORD,THEN MATCH=MATCH+1,STORE IN BUFFER,END,END,IF N=0,THEN PRINT“NO MATCH”,ELSE CALL SUBROUTINE TO PRINT BUFFER,INFORMATION,END,盒图,(,4,)该程序逻辑中有两个错误,第一个错误是WHILE循环条件IT:根据这个条件,当I=T时应该执行一遍循环体循环体的第一天语句是I=I+1,即把I的值加1,使之变成T+1,但是,该检索系统总共只有T个词条,下标I变成T+1将出现“越界”错误,因此应该把循环条件改为I5,THEN X=10,ELSE X=1,END IF,IF B10,THEN Y=20,ELSE Y=2,END IF,IF C15,THEN Z=30,ELSE Z=3,END IF,PRINT(X,Y,Z),STOP,2)经验表明,在类似的程序中,单位长度里的错误数E,T,/I,T,近似为常数。
美国的一些统计数字告诉我们,通常,0.5X10,-2,E,T,/I,T,2X10,-2,也就是说,在测试之前每1000条指令中大约有520个错误假设在该程序的每1000条指令中有10个错误,则估计在对它进行测试期间 将发现的错误数为,5000X10/1000=50 (个),3,),语句覆盖的测试用例,使3个判定表达式之值全为假,输入:A=1,B=1,C=1,预期的输出:X=1,Y=2,Z=3,使3个判定表达式之值全为真,输入:A=20,B=40,C=60,预期的输出:X=10,Y=20,Z=30,3个判定表达式之值全为假,输入:A=1,B=1,C=1,预期的输出:X=1,Y=2,Z=3,3个判定表达式依次为假、假、真,输入:A=1,B=1,C=60,预期的输出:X=1,Y=2,Z=30,3个判定表达式依次为假、真、假,输入:A=1,B=40,C=1,预期的输出:X=1,Y=20,Z=3,3个判定表达式依次为假、真、真,输入:A=1,B=40,C=60,预期的输出:X=1,Y=20,Z=30,路径覆盖的测试用例,3个判定表达式依次为真、假、假,输入:A=20,B=1,C=1,预期的输出:X=10,Y=2,Z=3,3个判定表达式依次为真、假、真,输入:A=20,B=1,C=60,预期的输出:X=10,Y=2,Z=30,3个判定表达式依次为真、真、假,输入:A=20,B=40,C=1,预期的输出:X=10,Y=20,Z=3,3个判定表达式全为真,输入:A=20,B=40,C=60,预期的输出:X=10,Y=20,Z=30,。