下面是一个用C语言写的模块 int max(int x, int y) if(x>y) Z=X: else z-y return z 其功能是求两个整数最大值;输入是两个整数,输出是返 马龙军回值z 统计与信息学院信息管理教研室
马龙军 统计与信息学院信息管理教研室 21 下面是一个用C语言写的模块: int max(int x,int y) { int z; if(x>y) z=x; else z=y; return z; } 其功能是求两个整数最大值;输入是两个整数,输出是返 回值z
2)调用 ●在结构图中,用连接两个模块的箭头表示调用。箭头 总是由调用模块指向被调用模块,但是应该理解成被 调用模块执行完后又返回到调用模块 模块的调用表示:在结构图中,模块间的调用一般有 如下三种 般调用:用 表示模块间的调用关系,籥尾 部分是调用模块,箭头部分是被调用模块。如图 53(a)所示。 选择调用:用<>表示一个模块中包含着选择判 断,根据判断结果确定调用模块。如图5.3(b)所示。 循环调用:用υ表示一个模块中包含着循环处理 功能。如果一个模块中存在着一个主循环,需要循 环调用某一个或若干个从属模块,它们的循环调用 关系如图53(c)所示 马龙军 统计与信息学院信息管理教研室
马龙军 统计与信息学院信息管理教研室 22 (2)调用 l 在结构图中,用连接两个模块的箭头表示调用。箭头 总是由调用模块指向被调用模块,但是应该理解成被 调用模块执行完后又返回到调用模块。 l 模块的调用表示:在结构图中,模块间的调用一般有 如下三种: – 一般调用:用 表示模块间的调用关系,箭尾 部分是调用模块,箭头部分是被调用模块。如图 5.3(a)所示。 – 选择调用:用 表示一个模块中包含着选择判 断,根据判断结果确定调用模块。如图5.3(b)所示。 – 循环调用:用 表示一个模块中包含着循环处理 功能。如果一个模块中存在着一个主循环,需要循 环调用某一个或若干个从属模块,它们的循环调用 关系如图5.3(c)所示
A A B B C B (a)一般调用 (b)判断调用 (c)循环调用 图5-4模块调用示意图 例如:下面是一个查询学生成绩并调用相应各子模块的示意图 条件调用 查询学生成绩 循环调用 打开学号索引打开姓名索引 打印通知单打印成绩表 查找学生记录 马龙军 统计与信當钱盛绩查询模块调用示意图
马龙军 统计与信息学院信息管理教研室 23 (a)一般调用 B A A B C A B C D (b)判断调用 (c)循环调用 查询学生成绩 打开学号索引 查找学生记录 打开姓名索引 打印通知单 打印成绩表 条件调用 循环调用 例如:下面是一个查询学生成绩并调用相应各子模块的示意图 图5-4 模块调用示意图 图5-5 学生成绩查询模块调用示意图
(3)数据 ●当一个模块调用另一个模块时,调用模块可把数据传送到 被调用模块供处理,而被调用模块又可以将处理的结果数 据送回调用模块。图56(a)表示模块A调用模块B时,A将 数据X,Y传送给B,B将处理结果数据Z返回给A。 (4)控制信息 为了指导程序下一步的执行,模块间有时还必须传送某些 控制信息。控制信息与数据的主要区别是前者只反映数据 的某种状态,不必进行处理。在模块结构图中,用带实 团圆点的箭头表示控制信息。如图5-6(b)中“无此职工” 就是表示送来的职工号有误的控制信息。 ●又如,查询学生成绩清单的数据通信示意图如图5-7所示 马龙军 统计与信息学院信息管理教研室
马龙军 统计与信息学院信息管理教研室 24 (3)数据 l 当一个模块调用另一个模块时,调用模块可把数据传送到 被调用模块供处理,而被调用模块又可以将处理的结果数 据送回调用模块。图5.6(a)表示模块A调用模块B时,A将 数据X,Y传送给B,B将处理结果数据Z返回给A 。 (4)控制信息 l 为了指导程序下一步的执行,模块间有时还必须传送某些 控制信息。控制信息与数据的主要区别是前者只反映数据 的某种状态,不必进行处理。在模块结构图中,用带实心 团圆点的箭头表示控制信息。如图5-6(b)中“无此职工” 就是表示送来的职工号有误的控制信息。 l 又如,查询学生成绩清单的数据通信示意图如图5-7所示
A 查询学生成绩 A 简历数据 职工号 录 无此职工 B B 查找学生记录 (b) 图5-6模块间的通信 图5-7学生成绩查询模块图 马龙军 统计与信息学院信息管理教研室
马龙军 统计与信息学院信息管理教研室 25 B A X,Y Z B A 无此职工 职工号 简历数据 图5-6 模块间的通信 (a) (b) 查询学生成绩 查找学生记录 学 号 命 中 信 号 记 录 地 址 图5-7 学生成绩查询模块图