Write a script to solve the following problem: Ask the user for the rate of pay
ID: 3691825 • Letter: W
Question
Write a script to solve the following problem: Ask the user for the rate of pay and the number of hours worked. These values are to be passed to a function that will calculate and return the gross pay. The gross pay for this company is calculated as follows: multiply the rate times the number of hours and add a bonus to this amount to get the gross pay. Here is how the bonus is to be calculated: For anyone working over 40 hours, a $100 bonus is to be added to their pay. For anyone working between 20 and 40 hours inclusive, a $50 bonus is to be added to their pay. For anyone working less than 20 hours, there is no bonus (ie. $0). Make sure to suppress all output from the function so that the results are only displayed in the program that called the function.Explanation / Answer
ENVIRONMENT DIVISION
INPUT-OUTPUT SECTION
FILE-CONTROL
SELECT IN3 ASSIG TO DISK
ORGANIZATION IS LINE SEQUENTIAL
SELECT OUT3 ASSIGN TO DISK
ORGANIZATION IS LINE SEQUENTIAL
DATA DIVISION
FILE SECTION
FD IN3
LABLE RECORDS ARE STANDARD
VALUE OF FILE-ID IS "IN3.TXT";
01 IN3-REC
05 EMPNO-IN PIC 9(3)
05 EMPNAME-IN PIC X(10)
05 BASIC-IN PIC 9999V99
FD OUT3
LABLE RECORDS ARE STANDARD
VALUE OF FILE-ID IS OUT3.TXT"
01 OUTREC PIC X(80)
WORKING-STORAGE SECTION
77 ARE-THERE-MORE-REC PIC XXX VALUE 'YES'
77 DA PIC 9(4)V99
77 HRA PIC 9(4)V99
77 MA PIC 9(4)V99
77 PT PIC 9(4)V99
77 PF PIC 9(4)V99
77 IT PIC 9(4)V99
* 77 GS PIC 9(5)V99
* 77 DID PIC 9(5)V99
01 OUT3-REC
05 EMPNO-OUT PIC 9(3)
05 FILLER PIC X(5)
05 EMPNAME-OUT PIC X(10)
05 FILLER PIC X(5)
05 BASIC-OUT PIC 9(4).99
05 FILLER PIC X(5)
05 GS-OUT PIC 9(5)V99
05 FILLER PIC X(5)
05 DID-OUT PIC 9(5)V99
05 FILTER PIC X(5)
05 NET-SAL PIC 9(5).99
01 H1
05 STAR PIC X(80) VALUE ALL '*'
01 H2
05 EMPNO PIC X(5) VALUE "EMPNO"
05 FILLER PIC X(5)
05 EMPNAME PIC X(10) VALUE "EMPNAME"
05 FILLER PIC X(5)
05 BASIC PIC X(5) VALUE "BASIC"
05 FILLER PIC X(2)
05 GS PIC X(15) VALUE "GROSS SALARY"
05 FILLER PIC X(2)
05 DID PIC X(15) VALUE "DIDUCTION"
05 FILLER PIC X(5)
05 NET PIC X(15) VALUE "NET SALARY"
PROCEDURE DIVISION
MAIN-PARA
OPEN INPUT IN3
OUTPUT OUT3
WRITE OUTREC FROM H1
WRITE OUTREC FROM H2
WRITE OUTREC FROM H1
READ IN3
AT END MOVE 'NO' TO ARE-THERE-MORE-REC
PERFORM PARA-1 UNTIL ARE-THERE-MORE-REC='NO'
CLOSE IN3
CLOSE OUT3
STOP RUN
PARA-1
MOVE EMPNO-IN TO EMPNO-OUT
MOVE EMPNAME-IN TO EMPNAME-OUT
MOVE BASIC-IN TO BASIC-OUT
IF BASIC-IN < 1000
COMPUTE DA=(BASIC-IN)*(5/100)
COMPUTE HRA=(BASIC-IN)*(0.025)
MOVE 50 TO MA
MOVE 20 TO PT
COMPUTE PF=(BASIC-IN)*(8/100)
MOVE 0 TO IT
ELSE IF BASIC-IN < 3000
COMPUTE DA=(BASIC-IN)*(0.075)
COMPUTE HRA=(BASIC-IN)*(5/100)
MOVE 250 TO MA
MOVE 60 TO PT
COMPUTE PF=(BASIC-IN)*(8/100)
MOVE 0 TO IT
ELSE IF BASIC-IN < 5000
COMPUTE DA=(BASIC-IN) * (11/100)
COMPUTE HRA=(BASIC-IN)*(0.075)
MOVE 500 TO MA
MOVE 60 TO PT
COMPUTE PF=(BASIC-IN)*(11/100)
COMPUTE IT=(BASIC-IN)*(11/100)
ELSE
COMPUTE DA=(BASIC-IN)*(25/100)
COMPUTE HRA=(BASIC-IN)*(11/100)
MOVE 700 TO MA
MOVE 80 TO PT
COMPUTE PF=(BASIC-IN)*(12/100)
COMPUTE IT=(BASIC-IN)*20/100)
ADD BASIC-IN DA HRA MA GIVING GS-OUT
* MOVE GS TO GS-OUT
ADD PF PT IT GIVING DID-OUT
* MOVE DID TO DID-OUT
SUBTRACT DID-OUT FROM GS-OUT GIVING NET-SAL
WRITE OUT-REC FROM OUT3-REC
READ IN3 AT END MOVE 'NO' TO ARE-THERE-MORE-REC
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.