精通cobol 9 1 3 表的基本用途

2021-04-16 20:27:53 字數 2149 閱讀 4672

表的基本用途是減少**編寫量,優化資料操作,便於資料查詢。對於如何利用表進行資料查詢,在本章後面幾節中將詳細講到。對於如何通過表減少**編寫量和優化資料操作,下面將結合乙個簡單例項進行具體講解。

在銀行系統的應用軟體中,乙個類似於零存整取的系統是十分常見的。為突出本節討論的問題,可以對此進行乙個抽象模型的提取。具體做法就以最單純的零存整取系統為基本模型,不考慮利率和稅率等。並假設訪問時間為一年,同時只涉及到每個月的存款額這樣乙個資料項。

為更好地體現出使用表機制的優勢,可以將其分為不使用表和使用表這兩種情況分別進行討論。通過對比,更直觀地理解表的用途。下面對這兩種情況作詳細介紹。

1

.不使用表的情況

在不使用表的情況下,通常將得到下面這樣一組資料定義。

01annual-deposit-data.

/*年度存款資料,是乙個

01級資料。

*/05jan-depositpic 9(5).

/*一月份存款資料,是乙個

05級資料。

*/05feb-depositpic 9(5).

/*二月份存款資料,是乙個

05級資料。

*/05mar-depositpic 9(5).

/*三月份存款資料,是乙個

05級資料。

*/……

/*省略四月份到十乙份的存款資料

*/05dec-depositpic 9(5)

/*十二月份存款資料,是乙個

05級資料。

*/然而,這樣一種定義方式在實際應用中是存在著很多不足之處的,分別列舉如下。q在

cobol

中的資料部中編寫以上這段定義的完整**就是一項費時費力,並且相當枯燥的工作。

q以上只是假設訪問時間為一年,並且只包含月存款額這樣乙個資料,實際中往往並不是這樣的。例如某人的訪問時間為十年,那麼依照以上這種定義方式,就不僅僅是12條

pic語句了,而是

120條

pic語句。同時,在實際操作中每個月所涉及的資料也不可能只包含存款額而已,至少還要包括一些利息額、稅款等等。這樣,即使訪問時間僅為一年,在定義中也不只有12條

pic語句了。q在

cobol

程式的過程部裡對通過以上方式定義的資料進行處理也是件十分麻煩的事情。最常見的,比如用之前講到的

evaluate

語句對該組資料進行處理,這時就需要對應地在其後新增12個

when

字句來完成操作了。

2

.使用表的情況

對於不使用表機制所造成的種種弊端,這裡於是引入了表的機制。仔細分析表的定義,可以看到若要形成乙個表,必須具備以下兩個基本條件。

q資料儲存在連續空間上。

q所有資料具有相同的資料型別(即相似資料)。

每個月的存款額是依據月份順序來安排的,在記憶體中顯然應該將其儲存在一片連續的儲存空間上。這樣,該資料結構就實現了第乙個條件。

對於每個月所存入的金額這樣乙個資料型別,月和月之間必然具有相似的屬性。結合前面不使用表機制所定義的月存款額,可以看到這些資料都有著相同的資料型別——

pic 9(5

)。於是,該資料結構又實現了第二個條件。

實現建立表的兩個基本條件後,便可重新將以上資料定義為乙個表,**如下。

01annual-deposit-table.

05depositspic 9(5)

occures 12 times.

**說明。

qannual-deposit-table

:年度存款資料,是乙個

01級資料,同時也是該錶的名稱。

qdeposits

:每個月存款資料,是乙個

05級資料,同時也是該錶的乙個條目。

qoccures 12 times

:重複出現

12次。

qpic 9(5

):每個月的存款資料型別,為

5個單位長度的數值資料型別。

這種方式的定義,和之前沒有使用表機制的定義在本質上是等同的。然而,使用該方式完成定義所需編寫的**量大大減少了,同時也方便了對所定義資料的具體操作。以上諸多不使用表機制所造成的弊端在這裡都得到了很好的解決。由此可以看到,引入了表的機制後,將大大方便程式設計師的開發工作,同時也方便了資料處理,提高了程式執行效率。

精通COBOL 16 6 1 MAP的基本概念

map 是形成基於 cics 程式的介面的乙個實體,主要由 bms 提供支援。map存放於 mapset 中,乙個 mapset 可以存放一到多個 map。不過通常情況下,乙個 mapset 中僅存放乙個 map。因此,有時也可使用 map指代其所在的 mapset 同時,map實際上是分為兩種型別...

用列表實現順序表的基本操做

用列表實現順序表的基本操做 class seqlist def init self,max space 30 self.max space max space max space最大分配空間 self.sl max space 0 申請乙個列表 self.length 0 記錄實際元素的個數 def...

用C 實現對單向鍊錶的基本操作

完成建立單向鍊錶,實現正序,倒序輸出,以及插入和刪除某一結點。include include 同理佇列 include using namespace std std定義了c 標準庫中的函式或物件 鍊錶的結點定義 struct list 建立列表 list createlist int n 建立含有...