1 软件工程综合应用例题 第一部分 《结构化软件开发方法》 1、根据下列描述,画出教材征订系统的第一层数据流图。学生入学后到教材科订书,教材科根据教材库存情况分析是否需要买书,如需购买,则向书店购买。各种资金往来通过学校的会计科办理。 解: 教材库存收应学生书店P1教材科P2会计订书订书发书发书F1款通知付款通知 2、高考录取统分子系统有如下功能: (1) 计算标准分:根据考生原始分计算,得到标准分,存入考生分数文件; (2) 计算录取线分:根据标准分、招生计划文件中的招生人数,计算录取线,存入录取线文件。 试根据要求画出该系统的数据流程图,并将其转换为软件结构图。 解:(1)数据流图: (2)软件结构图: ① 原始分 ② 标准分 ③ 招生计划 ④ 录取线 3、有下列伪码程序: START INPUT (M,N) IF M>=10 THEN X:=10 ELSE X:=l ENDIF IF N>=20 THEN Y:=20 ELSE Y:=2 ENDIF PRINT(X,Y) STOP 2 设计该程序的语句覆盖和路径覆盖测试用例。 解: 语句覆盖测试用例为 ①M=9(或=10),N=20(或>=20) 路径覆盖的测试用例为 ①M=9,N=19; ②M=9、N=20; ③M=l0,N=l9; ④M=10,N=20 4、画出下列伪码程序的程序流程图、盒图(N-S 图)、PAD 图。 START IF p THEN WHILE q DO F END DO ELSE BLOCK g n END BLOCK END IF STOP 解: STARTqpgnFSTOPTFTF 5、根据下面程序流程图,给出测试用例: 入口返回A>1 AND B=0A=2 OR X>1X=X/AX=X+1FTTF 解:路径覆盖可使用测试用例: ⑴【A=1,B=1,X=1】 ⑵【A=1,B=1,X=2】 3 ⑶【A=3,B=0,X=1】 ⑷【A=2,B=0,X=4】 边覆盖,可使用测试用例: ⑴【A=3,B=0,X=3】 ⑵【A=2,B=1,X=1】 判定覆盖的测试用例: ⑴【(A=3,B=0,X=3)】 ⑵【(A=2,B=1,X=1)】 语句覆盖,可使用测试用例: 【 A=2,B=0,X=3 】 6、下面是一段求最大值的程序,其中 datalist 是数据表,n 是 datalist 的长度。 int GetMax(int n, int datalist[ ]) { int k=0; for ( int j=1; j datalist[k] ) k=j; return k; } 画出该程序的程序流程图,并计算其 McCabe 复杂度。 解:程序流程图如下: 123456 McCabe 复杂度为 3。 7、画出下面 PDL 伪码程序的程序流程图、N-S 图、PAD 图和程序流图,并计算其 McCabe 复杂...