000100 IDENTIFICATION DIVISION. 00010011 . . 000200 PROGRAM-ID. PROGRAM1. 00020011 . . 000300 AUTHOR. JACK KIM. 00030011 . . 000310 00031011 . . 000320 ENVIRONMENT DIVISION. 00032011 . . 000330 INPUT-OUTPUT SECTION. 00033011 . . 000340 FILE-CONTROL. 00034011 . . 000350 SELECT INPUT-FILE ASSIGN TO INFILE. 00035011 . . 000360 SELECT PRINT-FILE ASSIGN TO SYSPRINT. 00036011 . . 000370 00037011 . . 000380 DATA DIVISION. 00038011 . . 000390 FILE SECTION. 00039011 . . 000400 FD INPUT-FILE 00040011 . . 000500 RECORDING MODE F . 00050017 . . 000600 00060011 . . 000700 01 INPUT-REC PIC X(133). 00070011 . . 000800 00080011 . . 000900 FD PRINT-FILE 00090011 . . 001000 RECORDING MODE F 00100011 . . 001100 LABEL RECORDS ARE OMITTED. 00110011 . . 001200 01 PRINT-REC PIC X(133). 00120011 . . 001300 00130011 . . 001400 WORKING-STORAGE SECTION. 00140011 . . 001500 00150011 . . 001600 01 HEAD1. 00160011 . . 001610 03 H1-YR PIC 9(2). 00161011 . . 001620 03 PIC X(1) VALUE '/'. 00162011 . . 001630 03 H1-MON PIC 9(2). 00163011 . . 001640 03 PIC X(1) VALUE '/'. 00164011 . . 001650 03 H1-DAY PIC 9(2). 00165011 . . 001660 03 PIC X(21) VALUE SPACES. 00166011 . . 001670 03 PIC X(30) VALUE 'THE BEST IS YET TO COME,INC.'. 00167011 . . 001680 03 PIC X(12) VALUE SPACES. 00168011 . . 001690 03 PIC X(4) VALUE 'PAGE'. 00169011 . . 001700 03 PIC X(1) VALUE SPACES. 00170011 . . 001800 03 H1-PAGE-CT PIC ZZ9. 00180011 . . 001810 00181011 . . 001820 01 HEAD2. 00182011 . . 001830 03 PIC X(28) VALUE SPACES. 00183011 . . 001840 03 PIC X(40) VALUE 'EMPLOYEE CLASSIFICATION AND PAY'. 00184011 . . 001850 01 HEAD3. 00185011 . . 001860 03 PIC X(3) VALUE 'SSN'. 00186011 . . 001870 03 PIC X(11) VALUE SPACES. 00187011 . . 001880 03 PIC X(4) VALUE 'LAST'. 00188011 . . 001890 03 PIC X(14) VALUE SPACES. 00189011 . 001900 03 PIC X(5) VALUE 'FIRST'. 00190011 . . 002000 03 PIC X(8) VALUE SPACES. 00200011 . . 002100 03 PIC X(6) VALUE 'EMP ID'. 00210011 . . 002200 03 PIC X(3) VALUE SPACES. 00220011 . . 002300 03 PIC X(5) VALUE 'TITLE'. 00230011 . . 002400 03 PIC X(10) VALUE SPACES. 00240011 . . 002500 03 PIC X(4) VALUE 'TYPE'. 00250011 . . 002600 03 PIC X(3) VALUE SPACES. 00260011 . . 002700 03 PIC X(4) VALUE 'DATE'. 00270011 . . 002800 03 PIC X(9) VALUE SPACES. 00280011 . . 002900 03 PIC X(4) VALUE 'RATE'. 00290011 . . 003000 03 PIC X(6) VALUE SPACES. 00300011 . . 003100 03 PIC X(2) VALUE 'ST'. 00310011 . . 003200 00320011 . . 003300 01 DETAIL1. 00330011 . . 003400 03 D1-SSN1 PIC 9(3). 00340011 . . 003500 03 PIC X(1) VALUE '-'. 00350011 . . 003600 03 D1-SSN2 PIC 9(2). 00360011 . . 003700 03 PIC X(1) VALUE '-'. 00370011 . . 003800 03 D1-SSN3 PIC 9(4). 00380011 . . 003900 03 PIC X(3) VALUE SPACES. 00390011 . . 004000 03 D1-LAST PIC X(15). 00400015 . . 004100 03 PIC X(3) VALUE SPACES. 00410011 . . 004200 03 D1-FIRST PIC X(10). 00420011 . . 004300 03 PIC X(3) VALUE SPACES. 00430011 . . 004310 03 D1-ID PIC X(6). 00431011 . . 004320 03 PIC X(3) VALUE SPACES. 00432011 . . 004330 03 D1-TITLE PIC X(12). 00433011 . . 004340 03 PIC X(3) VALUE SPACES. 00434011 . . 004350 03 D1-TYPE PIC X(4). 00435011 . . 004360 03 PIC X(3) VALUE SPACES. 00436011 . . 004370 03 D1-MON PIC 9(2). 00437011 . . 004380 03 PIC X(1) VALUE '/'. 00438011 . . 004390 03 D1-DAY PIC 9(2). 00439011 . . 004391 03 PIC X(1) VALUE '/'. 00439111 . . 004392 03 D1-YEAR PIC 9(4). 00439211 . . 004393 03 PIC X(3) VALUE SPACES. 00439311 . . 004394 03 D1-RATE PIC ZZ9.99. 00439418 . . 004395 03 PIC X(3) VALUE SPACES. 00439511 . . 004396 03 D1-ST PIC X(1). 00439611 . . 004397 00439711 . . 004398 01 FOOT1. 00439811 . . 004399 03 PIC X(32) VALUE 'NUMBER OF EMPLOYEE RECORDS READ:'. 00439911 . . 004400 03 PIC X(10) VALUE SPACES. 00440011 . . 004410 03 F1-RECORD PIC ZZ99. 00441011 . . 004420 01 FOOT2. 00442011 . 004430 03 PIC X(27) VALUE 'NUMBER OF HOURLY EMPLOYEES:'. 00443011 . . 004440 03 PIC X(15) VALUE SPACES. 00444011 . . 004450 03 F2-HOUR PIC ZZZ9. 00445011 . . 004460 03 PIC X(4) VALUE SPACES. 00446011 . . 004470 03 PIC X(20) VALUE 'AVERAGE HOURLY RATE:'. 00447011 . . 004480 03 PIC X(5) VALUE SPACES. 00448011 . . 004490 03 F2-AHRATE PIC $$,$$9.99. 00449011 . . 004491 01 FOOT3. 00449111 . . 004492 03 PIC X(29) VALUE 'NUMBER OF SALARIED EMPLOYEES:'. 00449211 . . 004493 03 PIC X(13) VALUE SPACES. 00449311 . . 004494 03 F3-SAL PIC ZZZ9. 00449411 . . 004495 03 PIC X(4) VALUE SPACES. 00449511 . . 004496 03 PIC X(22) VALUE 'AVERAGE SALARIED RATE:'. 00449611 . . 004497 03 PIC X(3) VALUE SPACES. 00449711 . . 004498 03 F3-ASRATE PIC $$,$99.99. 00449811 . . 004499 01 FOOT4. 00449911 . . 004500 03 PIC X(7) VALUE 'TYPE 1:'. 00450011 . . 004501 03 PIC X(5) VALUE SPACES. 00450111 . . 004502 03 F4-T1 PIC ZZ9. 00450211 . . 004503 03 PIC X(3) VALUE SPACES. 00450311 . . 004504 03 PIC X(7) VALUE 'TYPE 2:'. 00450411 . . 004505 03 PIC X(5) VALUE SPACES. 00450511 . . 004506 03 F4-T2 PIC ZZ9. 00450611 . . 004507 03 PIC X(3) VALUE SPACES. 00450711 . . 004508 03 PIC X(7) VALUE 'TYPE 3:'. 00450811 . . 004509 03 PIC X(5) VALUE SPACES. 00450911 . . 004510 03 F4-T3 PIC ZZ9. 00451011 . . 004511 03 PIC X(3) VALUE SPACES. 00451111 . . 004512 03 PIC X(7) VALUE 'TYPE 4:'. 00451211 . . 004513 03 PIC X(5) VALUE SPACES. 00451311 . . 004514 03 F4-T4 PIC ZZ9. 00451411 . . 004515 03 PIC X(3) VALUE SPACES. 00451511 . . 004516 03 PIC X(7) VALUE 'TYPE 5:'. 00451611 . . 004517 03 PIC X(5) VALUE SPACES. 00451711 . . 004518 03 F4-T5 PIC ZZ9. 00451811 . . 004519 01 FOOT5. 00451911 . . 004520 03 PIC X(7) VALUE 'TYPE 6:'. 00452011 . . 004521 03 PIC X(5) VALUE SPACES. 00452111 . . 004522 03 F4-T6 PIC ZZ9. 00452211 . . 004523 03 PIC X(3) VALUE SPACES. 00452311 . . 004524 03 PIC X(7) VALUE 'TYPE 7:'. 00452411 . . 004525 03 PIC X(5) VALUE SPACES. 00452511 . . 004526 03 F4-T7 PIC ZZ9. 00452611 . . 004527 03 PIC X(3) VALUE SPACES. 00452711 . . 004528 03 PIC X(7) VALUE 'TYPE 8:'. 00452811 . . 004529 03 PIC X(5) VALUE SPACES. 00452911 . 004530 03 F4-T8 PIC ZZ9. 00453011 . . 004531 03 PIC X(3) VALUE SPACES. 00453111 . . 004532 03 PIC X(7) VALUE 'TYPE 9:'. 00453211 . . 004533 03 PIC X(5) VALUE SPACES. 00453311 . . 004534 03 F4-T9 PIC ZZ9. 00453411 . . 004535 03 PIC X(3) VALUE SPACES. 00453511 . . 004536 03 PIC X(8) VALUE 'TYPE 10:'. 00453611 . . 004537 03 PIC X(4) VALUE SPACES. 00453711 . . 004538 03 F4-T10 PIC ZZ9. 00453811 . . 004539 01 INPUT-DATA. 00453911 . . 004540 03 I-ID PIC 9(3). 00454011 . . 004550 03 I-LAST PIC X(15). 00455011 . . 004560 03 I-FIRST PIC X(10). 00456011 . . 004570 03 I-TYPE PIC 9(2). 00457011 . . 004580 03 I-TITLE PIC X(12). 00458011 . . 004590 03 I-SSN. 00459011 . . 004600 05 I-SSN1 PIC 9(3). 00460011 . . 004700 05 I-SSN2 PIC 9(2). 00470011 . . 004800 05 I-SSN3 PIC 9(4). 00480011 . . 004810 03 PIC X(19). 00481011 . . 004820 03 I-DATE. 00482011 . . 004830 05 I-MON PIC 9(2). 00483011 . . 004840 05 I-DAY PIC 9(2). 00484011 . . 004850 05 I-YEAR PIC 9(4). 00485011 . . 004860 03 I-RATE PIC 9(3)V99. 00486018 . . 004861 03 I-ST PIC X(1). 00486111 . . 004862 00486211 . . 004863 01 MISC-DATA. 00486311 . . 004864 03 EOF-I PIC X VALUE SPACES. 00486411 . . 004865 03 PAGE-COUNT PIC 9(1) VALUE 1. 00486511 . . 004866 03 LINE-COUNT PIC 9(2) VALUE 0. 00486611 . . 004867 03 MAX-LINES PIC 9(1) VALUE 9. 00486711 . . 004868 03 CURRENT-DATE. 00486811 . . 004869 05 CUR-YR PIC 99. 00486911 . . 004870 05 CUR-MON PIC 99. 00487011 . . 004871 05 CUR-DAY PIC 99. 00487111 . . 004872 01 EMP-DATA. 00487211 . . 004873 03 RECORD-COUNT PIC 9(3) VALUE 0. 00487311 . . 004874 03 SALARIED. 00487411 . . 004875 05 S-COUNT PIC 9(2) VALUE 0. 00487511 . . 004876 05 SRATE PIC 9(6)V99. 00487611 . . 004877 05 ASRATE PIC 9(4)V99. 00487711 . . 004878 03 HOURLY. 00487811 . . 004879 05 H-COUNT PIC 9(2) VALUE 0. 00487911 . . 004880 05 HRATE PIC 9(5)V99. 00488011 . . 004881 05 AHRATE PIC 9(4)V99. 00488111 . 004882 03 EMP-TYPE. 00488211 . . 004883 05 T1 PIC 9(2) VALUE 0. 00488311 . . 004884 05 T2 PIC 9(2) VALUE 0. 00488411 . . 004885 05 T3 PIC 9(2) VALUE 0. 00488511 . . 004886 05 T4 PIC 9(2) VALUE 0. 00488611 . . 004887 05 T5 PIC 9(2) VALUE 0. 00488711 . . 004888 05 T6 PIC 9(2) VALUE 0. 00488811 . . 004889 05 T7 PIC 9(2) VALUE 0. 00488911 . . 004890 05 T8 PIC 9(2) VALUE 0. 00489011 . . 004891 05 T9 PIC 9(2) VALUE 0. 00489111 . . 004892 05 T10 PIC 9(2) VALUE 0. 00489211 . . 004893 00489311 . . 004894 PROCEDURE DIVISION. 00489411 . . 004895 ACCEPT CURRENT-DATE FROM DATE. 00489511 . . 004896 000-MAINLINE. 00489611 . . 004897 OPEN INPUT INPUT-FILE 00489711 . . 004898 OUTPUT PRINT-FILE. 00489811 . . 004899 PERFORM 9000-READ-INPUT. 00489911 . . 004900 PERFORM 2000-PRINT-HEAD. 00490011 . . 004901 PERFORM 1000-LOOP 00490111 . . 004902 UNTIL EOF-I = 1. 00490211 . . 004903 PERFORM 7300-FOOT-CALC. 00490311 . . 004904 PERFORM 4000-PRINT-FOOT. 00490411 . . 004905 CLOSE INPUT-FILE 00490511 . . 004906 PRINT-FILE. 00490611 . . 004907 STOP RUN. 00490711 . . 004908 1000-LOOP. 00490811 . . 004940 ADD 1 TO RECORD-COUNT. 00494011 . . 004950 ADD 1 TO LINE-COUNT 00495011 . . 004960 PERFORM 5500-PRINT-NAMES. 00496011 . . 004970 PERFORM 9000-READ-INPUT. 00497011 . . 004980 IF (I-ST = "S") 00498011 . . 004990 PERFORM 7000-SALARIED-COUNT 00499011 . . 005000 ELSE 00500011 . . 005010 PERFORM 7100-HOURLY-COUNT. 00501011 . . 005020 IF (I-TYPE = "01") 00502011 . . 005021 ADD 1 TO T1 00502111 . . 005022 ELSE 00502211 . . 005023 PERFORM 7200-TYPE-COUNT. 00502311 . . 005024 IF(LINE-COUNT > MAX-LINES AND EOF-I NOT = 1) 00502412 . . 005025 PERFORM 3000-PAGE-HEADING 00502511 . . 005027 END-IF. 00502711 . . 005028 2000-PRINT-HEAD. 00502811 . . 005029 MOVE CUR-YR TO H1-YR. 00502911 . . 005030 MOVE CUR-MON TO H1-MON. 00503011 . . 005031 MOVE CUR-DAY TO H1-DAY. 00503111 . 005032 MOVE PAGE-COUNT TO H1-PAGE-CT. 00503211 . . 005033 WRITE PRINT-REC FROM HEAD1. 00503311 . . 005034 WRITE PRINT-REC FROM HEAD2. 00503411 . . 005035 MOVE SPACES TO PRINT-REC. 00503511 . . 005036 WRITE PRINT-REC 00503611 . . 005037 AFTER ADVANCING 1 LINE. 00503711 . . 005038 WRITE PRINT-REC FROM HEAD3. 00503811 . . 005039 MOVE SPACES TO PRINT-REC. 00503911 . . 005040 WRITE PRINT-REC 00504011 . . 005041 AFTER ADVANCING 1 LINE. 00504111 . . 005042 3000-PAGE-HEADING. 00504211 . . 005046 ADD 1 TO PAGE-COUNT. 00504611 . . 005047 MOVE PAGE-COUNT TO H1-PAGE-CT. 00504711 . . 005048 PERFORM 2000-PRINT-HEAD. 00504811 . . 005049 MOVE SPACES TO PRINT-REC. 00504911 . . 005050 MOVE 0 TO LINE-COUNT. 00505011 . . 005051 4000-PRINT-FOOT. 00505111 . . 005052 ADD 1 TO PAGE-COUNT. 00505211 . . 005053 MOVE PAGE-COUNT TO H1-PAGE-CT. 00505311 . . 005055 WRITE PRINT-REC FROM HEAD1. 00505511 . . 005056 WRITE PRINT-REC FROM HEAD2. 00505611 . . 005057 MOVE SPACES TO PRINT-REC. 00505711 . . 005058 WRITE PRINT-REC 00505811 . . 005059 AFTER ADVANCING 1 LINE. 00505911 . . 005060 WRITE PRINT-REC FROM FOOT1. 00506011 . . 005061 WRITE PRINT-REC FROM FOOT2. 00506111 . . 005062 WRITE PRINT-REC FROM FOOT3. 00506211 . . 005063 MOVE SPACES TO PRINT-REC. 00506311 . . 005064 WRITE PRINT-REC 00506411 . . 005065 AFTER ADVANCING 1 LINE. 00506511 . . 005066 WRITE PRINT-REC FROM FOOT4. 00506611 . . 005067 WRITE PRINT-REC FROM FOOT5. 00506711 . . 005068 5500-PRINT-NAMES. 00506811 . . 005069 MOVE I-ID TO D1-ID. 00506911 . . 005070 MOVE I-LAST TO D1-LAST. 00507011 . . 005080 MOVE I-FIRST TO D1-FIRST. 00508011 . . 005090 MOVE I-TYPE TO D1-TYPE. 00509011 . . 005100 MOVE I-TITLE TO D1-TITLE. 00510011 . . 005200 MOVE I-SSN1 TO D1-SSN1. 00520011 . . 005300 MOVE I-SSN2 TO D1-SSN2. 00530011 . . 005400 MOVE I-SSN3 TO D1-SSN3. 00540011 . . 005500 MOVE I-DAY TO D1-DAY. 00550011 . . 005600 MOVE I-MON TO D1-MON. 00560011 . . 005700 MOVE I-YEAR TO D1-YEAR. 00570011 . . 005800 MOVE I-RATE TO D1-RATE. 00580011 . . 005900 MOVE I-ST TO D1-ST. 00590011 . 006000 WRITE PRINT-REC FROM DETAIL1. 00600011 . . 006100 7000-SALARIED-COUNT. 00610011 . . 006110 ADD 1 TO S-COUNT. 00611011 . . 006120 ADD I-RATE TO SRATE. 00612011 . . 006130 7100-HOURLY-COUNT. 00613011 . . 006140 ADD 1 TO H-COUNT. 00614011 . . 006150 ADD I-RATE TO HRATE. 00615011 . . 006160 7200-TYPE-COUNT. 00616011 . . 006161 IF(I-TYPE = "02") 00616111 . . 006162 ADD 1 TO T2. 00616211 . . 006163 IF(I-TYPE = "03") 00616311 . . 006164 ADD 1 TO T3. 00616411 . . 006165 IF(I-TYPE = "04") 00616511 . . 006166 ADD 1 TO T4. 00616611 . . 006167 IF(I-TYPE = "05") 00616711 . . 006168 ADD 1 TO T5. 00616811 . . 006169 IF(I-TYPE = "06") 00616911 . . 006170 ADD 1 TO T6. 00617011 . . 006171 IF(I-TYPE = "07") 00617111 . . 006172 ADD 1 TO T7. 00617211 . . 006173 IF(I-TYPE = "08") 00617311 . . 006174 ADD 1 TO T8. 00617411 . . 006175 IF(I-TYPE = "09") 00617511 . . 006176 ADD 1 TO T9. 00617611 . . 006177 IF(I-TYPE = "10") 00617711 . . 006178 ADD 1 TO T10. 00617811 . . 006180 7300-FOOT-CALC. 00618011 . . 006181 DIVIDE SRATE BY S-COUNT GIVING ASRATE. 00618111 . . 006190 DIVIDE HRATE BY H-COUNT GIVING AHRATE. 00619011 . . 006191 MOVE ASRATE TO F3-ASRATE. 00619111 . . 006192 MOVE AHRATE TO F2-AHRATE. 00619211 . . 006193 MOVE RECORD-COUNT TO F1-RECORD. 00619311 . . 006194 MOVE H-COUNT TO F2-HOUR. 00619411 . . 006195 MOVE S-COUNT TO F3-SAL. 00619511 . . 006196 MOVE T1 TO F4-T1. 00619611 . . 006197 MOVE T2 TO F4-T2. 00619711 . . 006198 MOVE T3 TO F4-T3. 00619811 . . 006199 MOVE T4 TO F4-T4. 00619911 . . 006200 MOVE T5 TO F4-T5. 00620011 . . 006201 MOVE T6 TO F4-T6. 00620111 . . 006202 MOVE T7 TO F4-T7. 00620211 . . 006203 MOVE T8 TO F4-T8. 00620311 . . 006204 MOVE T9 TO F4-T9. 00620411 . . 006205 MOVE T10 TO F4-T10. 00620511 . . 006206 9000-READ-INPUT. 00620611 . . 006207 READ INPUT-FILE INTO INPUT-DATA 00620711 . 006208 AT END MOVE 1 TO EOF-I. 00620811