现在,再来看本例中的模块组织情况。
假设INPUTM、OUTPUTM和LOCATE均为系统程序库中的例行程序;MAIN、INPUTU、UPDATE和ERROR均为独立的程序模块;而SEARCH、INSERT、DELETE和CHANGE则作为UPDATE源模块中的过程(即把这些模块组成一个源模块文件),这样它们可以使用同一个变量名以减少模块之间的参数传送。
在这样的模块组织情况下,可以确定由多个模块访问的数据项如下:
· DATA_BUFF(256个字节):用来存放当前处理的工作人员情况记录,其地址通过参数表传送。
· NO_OF_BYTES(1个字):由INPUTM输入或由OUTPUTM输出的字节数,其地址通过参数表传送。
· NEM_REC_INFO(3个字):目录中元素的信息部分,由LOCATE填入,其地址通过参数表传送。
· DIRECTORY(5000个字,1000个元素。):全体工作人员情况记录的有序链表目录,在公共数据区。
· UPDATE_DATA(259个字节):由INPUTU取入的修改数据的存储区,在公共数据区。
· ERR_CODE(1个字节):用来表示是否发生过出错情况并表示出错类型的代码,在公共数据区。
· SRCH_CODE(1个字节):用来表示SEARCH查找结果的代码。如找到关键字则为1,未找到关键字则为0。它是UPDATE及其子模块的局部变量。
· PRIOR_ELE(1个字):用来暂时存放查找过程中测试的前一个元素的下标,它是UPDATE及其子模块的局部变量。
· CUR_ELE(1个字):用来暂时存放查找过程中刚测过的元素的下标,它是UPDATE及其子模块的局部变量。
· KEY(1个字):用来存放用SEARCH查找的关键字,它是UPDATE及其子模块的局部变量。
|