18、系统管理员修改课程活动图
(1)系统管理员在修改课程的界面输入要修改的课程信息。
(2)界面将信息传递到控制业务逻辑的对象Control进行对课程的验证,到数据库中去查询该课程是否已存在。
(3)Control根据查询结果判断修改课程是否存在。如果不存在,将提示信息返回修改课程的界面予以显示。如果存在,则将原课程信息予以修改并保存。
(4)业务逻辑的对象Control根据返回的修改结果,判断修改课程是否成功。如成功,在修改课程的界面显示修改成功的信息。如果未成功,则显示修改失败的信息。
18、系统管理员修改课程活动图
(1)系统管理员在修改课程的界面输入要修改的课程信息。
(2)界面将信息传递到控制业务逻辑的对象Control进行对课程的验证,到数据库中去查询该课程是否已存在。
(3)Control根据查询结果判断修改课程是否存在。如果不存在,将提示信息返回修改课程的界面予以显示。如果存在,则将原课程信息予以修改并保存。
(4)业务逻辑的对象Control根据返回的修改结果,判断修改课程是否成功。如成功,在修改课程的界面显示修改成功的信息。如果未成功,则显示修改失败的信息。
- 36 -
19.用面向对象方法设计网上购书系统的软件结构,网上购书系统的业务如下: 某书店为了方便客户通过internet购买相关图书,开发一个“网上书店系统”,客户可通过web页面注册并登陆“网上购书系统”,通过web页面查看、选择图书,系统根据用户选择的图书单价、数量,自动生成订单并计算总价格。
客户在提交订单之前,必须填写关于寄送地址和发票及付款方式等细节,一旦订单被提交,系统显示确认信息,并附上订单的详细信息。客户可在线查询订单的状态。
系统管理员查看客户的订单,验证客户的信用和付款方式,向仓库请求所购图书,打印发票并发货。
第三大类: 算法描述:
1. 给出一组数从小到大的排序算法,分别用下列工具描述其详细过程:
(1) 流程图;(2)N—S图;(3)PAD图;(4)PDL语言。
- 37 -
PDL语言略
2.下面是程序流程图,试分别用N-S图和伪代码(类C语言描述)表示。
START P F T END
A
B F Q T
- 38 -
3. 阅读下面算法的PDl(伪代码)描述,请给出该算法的流程图和n-s盒图。(共20分,每题10分)
START
IF ( p ) THEN
WHILE (q)
{
f
} ELSE {
g
n } STOP 参考答案:
1.n-s盒图(10分,能正确n-s描述的循环
和分支的10分,否则酌情给分)
2.程序流程图(10分,能正确给出循环和两个分支的10分,否则酌情给分)
Start
T
while q
f p
g n
F
第四大类:测试试题::
1. 阅读下面C语言函数,回答后面的问题: //求取数组arr中的最大数据,并返回该元素在数组中的位置。 int getMax( int n ,int arr ) // n是数组a的长度 { int k = 0;
① ② ⑤
for ( int i = 1; i < n; i++ ) { if ( arr [i ]>arr[k] ) k = i;
}
return k; }
要求:请用基本路径的测试技术完成该函数的测试。 (1)给出程序的有向流图,并算该函数的环形复杂度。 (2)给出基本路径集和测试用例。
③ ④ ⑥
- 39 -
参考答案:
1).控制流图如下,McCabe环路复杂性为3。 (2) 1.基本路径:(少一个最多3分)
Path1: ①→②→⑥
ath2: ①→②→③→⑤→②→⑥→…
Path3: ①→②→③→④→⑤→②→⑥… 2.测试用例: (少一个最多3分) Path1: 取n=1,a[0] = 1, 预期结果:k=0
Path2: 取n=2,a[0] = 3,a [1] = 1, 预期结果:k=0
Path3: 取n=3,a [0] = 0,a[1] =1, a[2]=5 预期结果:k=2
① ② T F ③ T F ④ ⑤ ⑥
2. 阅读下面的程序流程图,回答后面的问题:
1) 画出上述程序的有向流图,并计算该函数的环形复杂度。 2) 给出基本路径集。
参考答案:(1)如下图所示。程序复杂度为4
1 11 6 程序流图 2,3 7 8 4,5 9 3)
(2)基本路径1:1-11
基本路径2:1 - 2, 3 - 4, 5 - 10 - 1 - 11 基本路径3:1- 2, 3 - 6 - 7 - 9 - 10 - 1 – 11 基本路径4:1- 2, 3 - 6 - 8 - 9 - 10 - 1 - 11
3. 阅读下面用伪代码编写的程序段,回答后面的问题:
start
10 input (a,b,c,d)
if (a > 0)&& (b > 0)
x = a + b else x = a-b endif
if (c > a)|| (d < b)
y = c + d else y = c – d endif
print(x , y) stop
(1) 画出上述程序的有向流图,并计算该函数的环形复杂度。
(2)请用基本路径的测试技术完成该函数的测试。要求给出基本路径和测试用例。
- 40 -