版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上 COBOL實驗報告2一, 實驗目的1, 能夠利用cobol程序實現一個報表的編輯和制作。2, 能夠對文件進行操作,比如說:打開,關閉,讀和寫 3, 了解COBOL的常用語句和一些常用的數據類型, 能夠利用編輯型數據實現數據的友好輸出。 4, 能夠運用sdsf修改程序中的錯誤 5, 學會編寫稍微復雜的COBOL程序。二, 實驗原理和內容1,修改 UTE20.COBOL.MURACH.EXERCISE(RPT1000X) 使之正常運行。 2,在RPT1000原有基礎上改進成增強的報表打印程序。 3, 利用給定的數據和格式獨立的制作一個報表三,實驗環(huán)境PC機和TSO下的I
2、SPF環(huán)境四, 實驗步驟 1, 步驟1和 步驟2:修改 UTE20.COBOL.MURACH.EXERCISE(RPT1000X) 使之正常運行,并在此基礎上改進成增強型的報表打印程序。 1.1 代碼: IDENTIFICATION DIVISION. PROGRAM-ID. RPT1000. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CUSTMAST ASSIGN TO CUSTMAST. SELECT SALESRPT ASSIGN TO SALESRPT. DATA DIVISION. FILE SE
3、CTION. FD CUSTMAST. 01 CUSTOMER-MASTER-RECORD. 05 CM-BRANCH-NUMBER PIC 9(2). 05 CM-SALESREP-NUMBER PIC 9(2). 05 CM-CUSTOMER-NUMBER PIC 9(5). 05 CM-CUSTOMER-NAME PIC X(20). 05 CM-SALES-THIS-YTD PIC S9(5)V9(2). 05 CM-SALES-LAST-YTD PIC S9(5)V9(2). FD SALESRPT. 01 PRINT-AREA PIC X(132). WORKING-STORAGE
4、 SECTION. 01 SWITCHES. 05 CUSTMAST-EOF-SWITCH PIC X VALUE N. 01 PRINT-FIELDS. 05 PAGE-COUNT PIC S9(3) VALUE ZERO. 05 LINES-ON-PAGE PIC S9(3) VALUE +55. 05 LINE-COUNT PIC S9(3) VALUE +99. 05 SPACE-CONTROL PIC S9. 01 TOTAL-FIELDS. 05 GRAND-TOTAL-THIS-YTD PIC S9(7)V99 VALUE ZERO. 05 GRAND-TOTAL-LAST-YT
5、D PIC S9(7)V99 VALUE ZERO. 01 CALCULATED-FILEDS. 05 CHANGE-AMOUNT PIC S9(5)V99. 01 CURRENT-DATE-AND-TIME. 05 CD-YEAR PIC 9999. 05 CD-MONTH PIC 99. 05 CD-DAY PIC 99. 05 CD-HOURS PIC 99. 05 CD-MINUTES PIC 99. 05 FILLER PIC X(9). 01 HEADING-LINE-1. 05 FILLER PIC X(7) VALUE DATE: . 05 HL1-MONTH PIC 9(2)
6、. 05 FILLER PIC X(1) VALUE /. 05 HL1-DAY PIC 9(2). 05 FILLER PIC X(1) VALUE /. 05 HL1-YEAR PIC 9(4). 05 FILLER PIC X(11) VALUE SPACE. 05 FILLER PIC X(20) VALUE YEAR-TO-DATE SALES R. 05 FILLER PIC X(20) VALUE EPORT . 05 FILLER PIC X(8) VALUE PAGE: . 05 Hl1-PAGE-NUMBER PIC ZZZ9. 05 FILLER PIC X(52) VA
7、LUE SPACE. 01 HEADING-LINE-2. 05 FILLER PIC X(7) VALUE TIME: . 05 HL2-HOURS PIC 9(2). 05 FILLER PIC X(1) VALUE :. 05 HL2-MINUTES PIC 9(2). 05 FILLER PIC X(58) VALUE SPACE. 05 FILLER PIC X(10) VALUE RPT1000. 05 FILLER PIC X(52) VALUE SPACE. 01 HEADING-LINE-3. 05 FILLER PIC X(20) VALUE CUST . 05 FILLE
8、R PIC X(20) VALUE SALES . 05 FILLER PIC X(20) VALUE SALES . 05 FILLER PIC X(20) VALUE CHANGE CHANGE . 05 FILLER PIC X(52) VALUE SPACE. 01 HEADING-LINE-4. 05 FILLER PIC X(20) VALUE NUM CUSTOMER NAME. 05 FILLER PIC X(20) VALUE THIS YTD . 05 FILLER PIC X(20) VALUE LAST YTD . 05 FILLER PIC X(20) VALUE A
9、MOUNT PERCENT . 05 FILLER PIC X(52) VALUE SPACE. 01 CUSTOMER-LINE. 05 CL-CUSTOMER-NUMBER PIC 9(5). 05 FILLER PIC X(2) VALUE SPACE. 05 CL-CUSTOMER-NAME PIC X(20). 05 FILLER PIC X(3) VALUE SPACE. 05 CL-SALES-THIS-YTD PIC ZZ,ZZ9.99-. 05 FILLER PIC X(4) VALUE SPACE. 05 CL-SALES-LAST-YTD PIC ZZ,ZZ9.99-.
10、05 FILLER PIC X(4) VALUE SPACE. 05 CL-CHANGE-AMOUNT PIC ZZ,ZZ9.99-. 05 FILLER PIC X(3) VALUE SPACE. 05 CL-CHANGE-PERCENT PIC ZZ9.9-. 05 FILLER PIC X(55) VALUE SPACE. 01 GRAND-TOTAL-LINE. 05 FILLER PIC X(27) VALUE SPACE. 05 GTL-SALES-THIS-YTD PIC Z,ZZZ,ZZ9.99-. 05 FILLER PIC X(1) VALUE SPACE. 05 GTL-
11、SALES-LAST-YTD PIC Z,ZZZ,ZZ9.99-. 05 FILLER PIC X(1) VALUE SPACE. 05 GTL-CHANGE-AMOUNT PIC Z,ZZZ,ZZ9.99-. 05 FILLER PIC X(3) VALUE SPACE. 05 GTL-CHANGE-PERCENT PIC ZZ9.9-. 05 FILLER PIC X(55) VALUE SPACE. PROCEDURE DIVISION. 000-PREPARE-SALES-REPORT. OPEN INPUT CUSTMAST OUTPUT SALESRPT. PERFORM 100-
12、FORMAT-REPORT-HEADING. PERFORM 200-PREPARE-SALES-LINES UNTIL CUSTMAST-EOF-SWITCH = Y. PERFORM 300-PRINT-GRAND-TOTALS. CLOSE CUSTMAST SALESRPT. STOP RUN. 100-FORMAT-REPORT-HEADING. MOVE FUNCTION CURRENT-DATE TO CURRENT-DATE-AND-TIME. MOVE CD-MONTH TO HL1-MONTH. MOVE CD-DAY TO HL1-DAY. MOVE CD-YEAR TO
13、 HL1-YEAR. MOVE CD-HOURS TO HL2-HOURS. MOVE CD-MINUTES TO HL2-MINUTES. 200-PREPARE-SALES-LINES. PERFORM 210-READ-CUSTOMER-RECORD. IF CUSTMAST-EOF-SWITCH = N IF CM-SALES-THIS-YTD = 10000 PERFORM 220-PRINT-CUSTOMER-LINE. 210-READ-CUSTOMER-RECORD. READ CUSTMAST AT END MOVE Y TO CUSTMAST-EOF-SWITCH. 220
14、-PRINT-CUSTOMER-LINE. IF LINE-COUNT = LINES-ON-PAGE PERFORM 230-PRINT-HEADING-LINES. MOVE CM-CUSTOMER-NUMBER TO CL-CUSTOMER-NUMBER. MOVE CM-CUSTOMER-NAME TO CL-CUSTOMER-NAME. MOVE CM-SALES-THIS-YTD TO CL-SALES-THIS-YTD. MOVE CM-SALES-LAST-YTD TO CL-SALES-LAST-YTD. COMPUTE CHANGE-AMOUNT = CM-SALES-TH
15、IS-YTD - CM-SALES-LAST-YTD. MOVE CHANGE-AMOUNT TO CL-CHANGE-AMOUNT. IF CM-SALES-LAST-YTD = ZERO MOVE 999.9 TO CL-CHANGE-PERCENT ELSE COMPUTE CL-CHANGE-PERCENT ROUNDED = CHANGE-AMOUNT * 100 / CM-SALES-LAST-YTD ON SIZE ERROR MOVE 999.9 TO CL-CHANGE-PERCENT. MOVE CUSTOMER-LINE TO PRINT-AREA. WRITE PRIN
16、T-AREA AFTER ADVANCING SPACE-CONTROL LINES. ADD 1 TO LINE-COUNT. ADD CM-SALES-THIS-YTD TO GRAND-TOTAL-THIS-YTD. ADD CM-SALES-LAST-YTD TO GRAND-TOTAL-LAST-YTD. MOVE 1 TO SPACE-CONTROL. 230-PRINT-HEADING-LINES. ADD 1 TO PAGE-COUNT. MOVE PAGE-COUNT TO HL1-PAGE-NUMBER. MOVE HEADING-LINE-1 TO PRINT-AREA.
17、 WRITE PRINT-AREA AFTER ADVANCING PAGE. MOVE HEADING-LINE-2 TO PRINT-AREA. WRITE PRINT-AREA AFTER ADVANCING 1 LINES. MOVE HEADING-LINE-3 TO PRINT-AREA. WRITE PRINT-AREA AFTER ADVANCING 2 LINES. MOVE HEADING-LINE-4 TO PRINT-AREA. WRITE PRINT-AREA AFTER ADVANCING 1 LINES. MOVE ZERO TO LINE-COUNT. MOVE
18、 2 TO SPACE-CONTROL. 300-PRINT-GRAND-TOTALS. MOVE GRAND-TOTAL-THIS-YTD TO GTL-SALES-THIS-YTD. MOVE GRAND-TOTAL-LAST-YTD TO GTL-SALES-LAST-YTD. COMPUTE CHANGE-AMOUNT = GRAND-TOTAL-THIS-YTD - GRAND-TOTAL-LAST-YTD. MOVE CHANGE-AMOUNT TO GTL-CHANGE-AMOUNT. IF GRAND-TOTAL-LAST-YTD = ZERO MOVE 999.9 TO GT
19、L-CHANGE-PERCENT ELSE COMPUTE GTL-CHANGE-PERCENT ROUNDED = CHANGE-AMOUNT * 100 / GRAND-TOTAL-LAST-YTD ON SIZE ERROR MOVE 999.9 TO GTL-CHANGE-PERCENT MOVE GRAND-TOTAL-LINE TO PRINT-AREA. WRITE PRINT-AREA AFTER ADVANCING 2 LINES. 1.2 輸入與輸出。輸出結果:輸入數據集:1.3 結果分析此程序的過程調用大致為: 000PREPARESALESREPORT200PREPAR
20、ESALESLINES100INITIALIZATIONHEADINGDATE-TIME300PRINTGRANDLINES220PRINTFRIENDLYRECORD230PRINTHEADINGLINES210PREPAREFILESRECORD寫比較復雜的COBOL程序時,應當先設計好輸入輸出文件的對應關系,能夠理清里面的數據,能夠利用數值型來計算數據和能夠利用編輯型數據用來輸出;還有程序的核心過程部,最好先搞清楚程序的基本架構和其段與段之間的掉用關系,不會搞錯邏輯關系。2 步驟2 利用給出的數據和結構編輯報表2.1 代碼2.1.1 標識部和環(huán)境部 ID DIVISION. PROGRA
21、M-ID. PRITABLE. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CUSTMAST ASSIGN CUSTMAST. SELECT TABPRINT ASSIGN TABPRINT. 2.1.2 數據部 DATA DIVISION. FILE SECTION. FD CUSTMAST. 01 CUSTOMER-MASTER-RECORD. 05 CM-SPACE-1 PIC X. 05 CM-ACCOUNT-NUMBER PIC 9(5). 05 CM-SPACE-2 PIC X(3). 05 CM
22、-SALES-AMOUNT PIC S9(5)V9(2). 05 CM-SPACE-3 PIC X(64). FD TABPRINT. 01 TABLE-PRINT-RECORD PIC X(80). WORKING-STORAGE SECTION. 01 SWITCHES. 05 CUSTMAST-EOF-SWITCH PIC X VALUE N. 01 CURRENT-DATE-AND-TIME. 05 CD-YEAR PIC 9999. 05 CD-MONTH PIC 99. 05 CD-DAY PIC 99. 05 CD-HOURS PIC 99. 05 CD-MINUTES PIC
23、99. 05 FILLER PIC X(9). 01 PRINT-FIELDS. 05 PAGE-COUNT PIC S9(3) VALUE ZERO. 05 LINES-ON-PAGE PIC S9(3) VALUE +17. 05 LINE-COUNT PIC S9(3) VALUE +99. 05 SPACE-CONTROL PIC S9. 01 TOTAL-FIELDS. 05 SALES-AMOUNT-TOTAL PIC S9(7)V99 VALUE ZERO. 05 DISCOUNT-AMOUNT-TOTAL PIC S9(5)V99 VALUE ZERO. 05 NET-AMOU
24、NT-TOTAL PIC S9(7)V99 VALUE ZERO. 01 HEADING-LINE-1. 05 FILLER PIC X(32) VALUE SPACE. 05 FILLER PIC X(15) VALUE EMPLOYEE REPORT. 05 FILLER PIC X(23) VALUE SPACE. 05 FILLER PIC X(7) VALUE PAGES: . 05 HL1-PAGE-NUMBER PIC ZZ9. 01 HEADING-LINE-2. 05 FILLER PIC X(7) VALUE DATE: . 05 HL2-YEAR PIC 9(4). 05
25、 FILLER PIC X(1) VALUE /. 05 HL2-MONTH PIC 9(2). 05 FILLER PIC X(1) VALUE /. 05 HL2-DAY PIC 9(2). 05 FILLER PIC X(63) VALUE SPACE. 01 HEADING-LINE-3. 05 FILLER PIC X(7) VALUE TIME: . 05 HL3-HOURS PIC 9(2). 05 FILLER PIC X(1) VALUE :. 05 HL3-MINUTES PIC 9(2). 05 FILLER PIC X(53) VALUE SPACE. 05 FILLE
26、R PIC X(10) VALUE PROGRAMER:. 05 FILLER PIC X(5) VALUE EDWIN. 01 HEADING-LINE-4. 05 FILLER PIC X(80) VALUE SPACE. 01 HEADING-LINE-5. 05 FILLER PIC X(7) VALUE ACCOUNT. 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(11) VALUE SALES . 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(8) VALUE DISCOUNT. 05 FILLER PIC X(5) VALUE SPACE. 05 FILLER PIC X(11) VALUE NET . 05 FILLER PIC X(28) VALUE SPACE. 01 HEADING-LINE-6. 05 FILLER PIC X(7) VALUE NUMBER . 05 FILLER PIC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 服裝制作工安全培訓效果水平考核試卷含答案
- 鐵合金濕法冶煉工保密水平考核試卷含答案
- 水解設備搪砌工崗前安全培訓考核試卷含答案
- 獸用中藥制劑工安全文明知識考核試卷含答案
- 銀行綜合柜員班組協作能力考核試卷含答案
- 搪瓷制品制造工道德評優(yōu)考核試卷含答案
- 光纖著色并帶工操作知識競賽考核試卷含答案
- 糧庫中控工安全規(guī)程評優(yōu)考核試卷含答案
- 接插件零件制造工成果轉化強化考核試卷含答案
- 印染染化料配制工安全生產知識評優(yōu)考核試卷含答案
- 國家安全生產十五五規(guī)劃
- 代位追償培訓課件
- 2024內蒙古畜牧業(yè)溫室氣體減排策略與路徑研究報告
- 醫(yī)院培訓課件:《醫(yī)務人員不良執(zhí)業(yè)行為記分管理辦法》
- DJG330521-T 102-2024 企業(yè)能級工資集體協商工作評價規(guī)范
- 物體打擊事故培訓課件
- 豬場產房技術員述職報告
- 數據分析崗位轉正匯報
- 2025年港口碼頭安全隱患排查計劃
- STEAM教育與高中地理教學融合的活動設計研究
- 基礎設施以工代賑項目可行性研究報告
評論
0/150
提交評論