cobol语言编程,帮我写一个完整的程序,谢谢

有3个学生的成绩记录放在文件STXXX.INFILE(此文件自己创建)中,每个记录中的数据包括:学生编号(6字节)、学生姓名(10字节)、成绩1(4字节) 、成绩2(4字节) 、成绩3(4字节),格式如下所示:
000001liyuchun 98769876890900000100
000002zhoubichan98989587985500000200
000003zhangliang99878999976600000300

设计一个程序读入这些数据,计算三门成绩的平均成绩,并按照如下格式输出到文件STXXX.OUTFILE(需自己创建)中:

学生编号 姓名 成绩1 成绩2 成绩3 平均成绩
000001 liyuchun 98.76 98.76 89.09 95.53
000002 zhoubichan 98.98 95.87 98.55 97.80
000003 zhangliang 99.87 89.99 97.66 95.84

第1个回答  推荐于2018-04-13
刚刚写完,经过测试 没有问题
===============================
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. TEST.
000030 ENVIRONMENT DIVISION.
000040 CONFIGURATION SECTION.
000050 INPUT-OUTPUT SECTION.
000060 FILE-CONTROL.
000070 SELECT OPTIONAL I-FILE ASSIGN TO 'd:\STXXX.INFILE'
000080 ORGANIZATION IS LINE SEQUENTIAL.
000090 SELECT OPTIONAL O-FILE ASSIGN TO 'd:\STXXX.OUTFILE'
000100 ORGANIZATION IS LINE SEQUENTIAL.
000110
000120 DATA DIVISION.
000130 FILE SECTION.
000140 FD I-FILE .
000150 01 IN-RECORD.
000160 03 I-NUM PIC X(6).
000170 03 I-NM PIC X(10).
000180 03 I-GRADE-AREA OCCURS 3 TIMES .
000190 05 I-GRADE PIC 9(2)V99.
000200 FD O-FILE .
000210 01 OT-RECORD PIC X(51).
000220 WORKING-STORAGE SECTION.
000230 01 HEAD.
000240 03 FILLER PIC X(10) VALUE "学生编号 ".
000250 03 FILLER PIC X(12) VALUE "姓名 ".
000260 03 FILLER PIC X(7) VALUE "成绩1 ".
000270 03 FILLER PIC X(7) VALUE "成绩2 ".
000280 03 FILLER PIC X(7) VALUE "成绩3 ".
000290 03 FILLER PIC X(8) VALUE "平均成绩".
000300 01 OT-REC.
000310 03 O-NUM PIC X(6).
000320 03 FILLER PIC X(4).
000330 03 O-NM PIC X(10).
000340 03 O-GRADE-AREA OCCURS 4 TIMES .
000350 05 FILLER PIC X(2).
000360 05 O-GRADE PIC 9(2).99.
000370 01 SUM-NUM PIC 9(3)V99.
000380 01 EVR-NUM PIC 9(3)V99.
000390*
000400 PROCEDURE DIVISION.
000410 OPEN INPUT I-FILE.
000420 OPEN OUTPUT O-FILE.
000430*
000440 MOVE HEAD TO OT-RECORD.
000450 WRITE OT-RECORD.
000460*
000470 READ-010.
000480 READ I-FILE
000490 AT END GO TO EXIT-PERFORM.
000500 MOVE SPACE TO OT-REC.
000510 INITIALIZE OT-REC.
000520 MOVE I-NUM TO O-NUM.
000530 MOVE I-NM TO O-NM.
000540 MOVE I-GRADE(1) TO O-GRADE(1).
000550 MOVE I-GRADE(2) TO O-GRADE(2).
000560 MOVE I-GRADE(3) TO O-GRADE(3).
000570 COMPUTE SUM-NUM = I-GRADE(1)
000580 + I-GRADE(2)
000590 + I-GRADE(3).
000600 COMPUTE EVR-NUM = SUM-NUM
000610 / 3.
000620 MOVE EVR-NUM TO O-GRADE(4).
000630 MOVE OT-REC TO OT-RECORD.
000640*
000650 WRITE OT-RECORD.
000660
000670 GO TO READ-010.
000680
000690 EXIT-PERFORM.
000700 CLOSE I-FILE.
000710 CLOSE O-FILE.
000720 STOP RUN.本回答被提问者和网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网