• ベストアンサー

COBOL

以下のURLの内容のCOBOLソースを教えてください。 https://drive.google.com/open?id=0ByQsPLJesRSPazJEcjhROVFPbG8

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.1

できたんですけど、PROGRAM-IDの取り方は私は知りません。 ******************************************** *成績表を出力する * ******************************************** IDENTIFICATION DIVISION. PROGRAM-ID. TEST-01. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT IN-FILE ASSIGN TO "SAMPLE_23.DAT". SELECT OUT-FILE ASSIGN TO "SAMPLE_24.DAT". DATA DIVISION. FILE SECTION. FD IN-FILE. 01 IN-REC. 02 IN-GAKUBAN PIC 9(05). 02 IN-NAME PIC X(10). 02 IN-KOKU PIC 9(03). 02 IN-SUU PIC 9(03). 02 IN-EI PIC 9(03). FD OUT-FILE. 01 OUT-REC. 02 OUT-GAKUBAN PIC 9(05). 02 OUT-NAME PIC X(10). 02 OUT-KOKU PIC 9(03). 02 OUT-SUU PIC 9(03). 02 OUT-EI PIC 9(03). 02 OUT-GOUKEI PIC 9(03). WORKING-STORAGE SECTION. 01 MEISAI. 02 M-GAKUBAN PIC 9(05). 02 FILLER PIC X(02) VALUE SPACE. 02 M-NAME PIC X(10). 02 FILLER PIC X(02) VALUE SPACE. 02 M-KOKU PIC ZZ9. 02 FILLER PIC X(02) VALUE SPACE. 02 M-SUU PIC ZZ9. 02 FILLER PIC X(02) VALUE SPACE. 02 M-EI PIC ZZ9. 02 FILLER PIC X(03) VALUE SPACE. 02 M-GOUKEI PIC ZZ9. 02 FILLER PIC X(02) VALUE SPACE. 02 M-HEIKIN PIC ZZ9. * 01 HEIKIN. 02 FILLER PIC X(17) VALUE " 学年平均点 ". 02 FILLER PIC X(02) VALUE SPACE. 02 H-KOKU PIC ZZ9. 02 FILLER PIC X(02) VALUE SPACE. 02 H-SUU PIC ZZ9. 02 FILLER PIC X(02) VALUE SPACE. 02 H-EI PIC ZZ9. 02 FILLER PIC X(03) VALUE SPACE. 02 H-GOUKEI PIC ZZ9. 02 FILLER PIC X(02) VALUE SPACE. 02 H-HEIKIN PIC ZZ9. * 01 WK-GOUKEI PIC 9(03). 01 WK-HEIKIN PIC 9(03). 01 END-FLG PIC X(01) VALUE SPACE. 01 CTR-IN PIC 9(03). 01 CTR-OUT PIC 9(03). 01 EDIT-KENSUU PIC ZZ9. * 01 G-KOKU PIC 9(03). 01 G-SUU PIC 9(03). 01 G-EI PIC 9(03). * 01 HIDUKE. 02 YY PIC X(02). 02 MM PIC X(02). 02 DD PIC X(02). * 01 JIKOKU. 02 HH PIC X(02). 02 MI PIC X(02). 02 SS PIC X(02). * PROCEDURE DIVISION. MAIN-PROC. ******************************************* * メイン処理 * ******************************************* PERFORM INIT-SEC. PERFORM MAIN-SEC UNTIL END-FLG = "E". PERFORM END-SEC. STOP RUN. * ******************************************* * 初期処理 * ******************************************* INIT-SEC. OPEN INPUT IN-FILE OUTPUT OUT-FILE. ACCEPT HIDUKE FROM DATE. ACCEPT JIKOKU FROM TIME. DISPLAY "***プログラム ID 開始 " YY "/" MM "/" DD " " HH "/" MI "/" SS "***". DISPLAY " 学番 名前 国 数 英 合計". MOVE ZERO TO CTR-IN MOVE ZERO TO G-KOKU G-SUU G-EI. * PERFORM READ-SEC. * ******************************************* * 主処理 * ******************************************* MAIN-SEC. PERFORM EDIT-SEC. PERFORM WRITE-SEC. PERFORM READ-SEC . * ******************************************* * 終了処理 * ******************************************* END-SEC. MOVE CTR-IN TO EDIT-KENSUU. DISPLAY "入力件数は " EDIT-KENSUU " 件". MOVE CTR-OUT TO EDIT-KENSUU. DISPLAY "出力件数は " EDIT-KENSUU " 件". MOVE ZERO TO EDIT-KENSUU. DISPLAY "更新件数は " EDIT-KENSUU " 件". ACCEPT HIDUKE FROM DATE. ACCEPT JIKOKU FROM TIME. IF CTR-IN = ZERO DISPLAY "***プログラム ID(PROGRAM-ID名を取得) 処理件数ゼロ件です ***" END-IF. * IF CTR-IN > ZERO COMPUTE H-KOKU = G-KOKU / CTR-IN COMPUTE H-SUU = G-SUU / CTR-IN COMPUTE H-EI = G-EI / CTR-IN COMPUTE H-GOUKEI = (G-KOKU + G-SUU + G-EI) / 3 DISPLAY HEIKIN END-IF. * DISPLAY "***プログラム ID 終了 " YY "/" MM "/" DD " " HH "/" MI "/" SS "***". CLOSE IN-FILE OUT-FILE. * ****************************************** * 入力処理 * ****************************************** READ-SEC. READ IN-FILE AT END MOVE "E" TO END-FLG NOT AT END ADD 1 TO CTR-IN END-READ. * ****************************************** * 編集処理 * ****************************************** EDIT-SEC. INITIALIZE MEISAI. MOVE IN-REC TO OUT-REC. MOVE IN-GAKUBAN TO M-GAKUBAN. MOVE IN-NAME TO M-NAME. MOVE IN-KOKU TO M-KOKU. MOVE IN-SUU TO M-SUU. MOVE IN-EI TO M-EI. COMPUTE WK-GOUKEI = IN-KOKU + IN-SUU + IN-EI. MOVE WK-GOUKEI TO OUT-GOUKEI M-GOUKEI. * COMPUTE WK-HEIKIN = WK-GOUKEI / 3. MOVE WK-HEIKIN TO M-HEIKIN. * COMPUTE G-KOKU = G-KOKU + IN-KOKU. COMPUTE G-SUU = G-SUU + IN-SUU. COMPUTE G-EI = G-EI + IN-EI. * ****************************************** * 出力処理 * ****************************************** <入力文字数の限界に達したため、以下省略、(いじっていません)>

domiq
質問者

補足

"学生平均点"を表示するときに文字7桁分の空白を表示してください。 実行したときに学年平均点の各科目の全体の平均点(全員の各科目合計÷人数)が違います。

その他の回答 (1)

  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.2

言ってる意味が解りません。 というか、そんな微調整もできないの?

domiq
質問者

お礼

ごめんなさい。解決しました。

関連するQ&A