Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Can you help on this COBOL program. I can not get it to run. I have logical erro

ID: 3939178 • Letter: C

Question

Can you help on this COBOL program. I can not get it to run. I have logical errors and the FD lines are coming up as comments. Here is my code:

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER.
PC.
OBJECT-COMPUTER.
PC.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT SALES-FILE
ASSIGN TO "C:CobolFILE1.DAT"
ORGANIZATION IS LINE SEQUENTIAL.
SELECT SALES-REPORT
ASSIGN TO "C:CobolFILE1.TXT"
ORGANIZATION IS LINE SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD SALES-FILE
RECORD CONTAINS 47 CHARACTERS
DATA RECORD IS SALES-REC-IN.
01 SALES-REC-IN.
05 CITY-IN PIC X.
05 NUMBER-IN PIC 999.
05 NAME-IN PIC X(15).
05 ADDRESS-IN PIC X(21).
05 SALES-IN PIC 9(5)V99.
FD SALES-REPORT
DATA RECORD IS REPORT-OUT
RECORD CONTAINS 80 CHARACTERS.
01 REPORT-OUT PIC X(80).
WORKING-STORAGE SECTION.
01 WORK-AREA.
05 ARE-THERE-MORE-RECORDS PIC XXX VALUE "YES".
05 CITY-HOLD PIC X.
05 PAGE-NO-WS PIC 99 VALUE ZEROS.
05 DATE-WS.
10 YEAR-WS PIC XXXX.
10 MONTH-WS PIC XX.
10 DAY-WS PIC XX.
01 ACCUMULATORS-WORK-AREA.
05 DALLAS-TOTAL PIC 9(6)V99 VALUE ZEROS.
05 HOUSTON-TOTAL PIC 9(6)V99 VALUE ZEROS.
05 AUSTIN-TOTAL PIC 9(6)V99 VALUE ZEROS.
05 OTHER-TOTAL PIC 9(6)V99 VALUE ZEROS.
05 DALLAS-CITY PIC 9(5) VALUE ZEROS.
05 HOUSTON-CITY PIC 9(5) VALUE ZEROS.
05 AUSTIN-CITY PIC 9(5) VALUE ZEROS.
05 OTHER-CITY PIC 9(5) VALUE ZEROS.
05 SALES-TOTAL PIC 9(6)V99 VALUE ZEROS.
05 WS-SPACING PIC 99 VALUE ZEROS.
01 HEADING-LINE-1.
05 PIC X(15) VALUE SPACES.
05 PIC X(30) VALUE
"SALES REPORT ".
05 PIC X(13) VALUE
" PAGE ".
05 PAGE-NO-HL PIC Z9.
05 PIC X(6) VALUE SPACES.
05 MONTH-OUT PIC XX.
05 PIC X VALUE "/".
05 DAY-OUT PIC XX.
05 PIC X VALUE "/".
05 YEAR-OUT PIC XXXX.
01 HEADING-LINE-2 .
05 PIC X(20) VALUE
"CITY ".
05 PIC XXX VALUE SPACES.
05 PIC X(5) VALUE
"NO. ".
05 PIC X(16) VALUE
"CLIENT NAME ".
05 PIC X VALUE SPACES.
05 PIC X(20) VALUE
"CLIENT ADDRESS".
05 PIC X VALUE SPACES.
05 PIC X(10) VALUE
" SALES ".
05 PIC X(4) VALUE SPACES.
01 DETAIL-LINE-1.
05 CITY-OUT PIC X(20) VALUE SPACES.
05 PIC X(3) VALUE SPACES.
05 NUMBER-OUT PIC 999 VALUE ZEROS.
05 PIC XX VALUE SPACES.
05 NAME-OUT PIC X(15) VALUE SPACES.
05 PIC X VALUE SPACES.
05 ADDRESS-OUT PIC X(21) VALUE SPACES.
05 PIC X VALUE SPACES.
05 DETAIL-SALES-OUT PIC $ZZ,ZZ9.99 VALUE ZEROS.
05 PIC X(4) VALUE SPACES.
01 TOTAL-LINE-1.
05 PIC X(20) VALUE SPACES.
05 PIC X(45) VALUE
" TOTAL SALES =".
05 SALES-TOTAL-OUT PIC $ZZZ,ZZ9.99 VALUE ZEROS.
05 PIC X(2) VALUE SPACES.
01 SUMMARY-TOTAL.
05 PIC X(20) VALUE SPACES.
05 PIC X(45) VALUE
" AVERAGE SALES =".
05 SALES-OUT PIC $ZZZ,ZZZ.99 VALUE ZEROS.
05 PIC X(4) VALUE SPACES.
PROCEDURE DIVISION.
000-MAIN-MODULE.
PERFORM 100-INITIALIZATION-MODULE
PERFORM UNTIL ARE-THERE-MORE-RECORDS = "NO "
READ SALES-FILE
AT END MOVE "NO " TO ARE-THERE-MORE-RECORDS   
NOT AT END
PERFORM 200-PROCESS-MODULE
END-READ
END-PERFORM
PERFORM 301-COMPUTATION-MODULE
PERFORM 900-TERMINATION-MODULE
STOP RUN.
100-INITIALIZATION-MODULE.
OPEN INPUT SALES-FILE
OUTPUT SALES-REPORT
MOVE FUNCTION CURRENT-DATE TO DATE-WS
MOVE YEAR-WS TO MONTH-OUT
MOVE DAY-WS TO DAY-OUT
MOVE YEAR-WS TO YEAR-OUT
READ SALES-FILE
AT END MOVE "NO " TO ARE-THERE-MORE-RECORDS
NOT AT END
MOVE CITY-IN TO CITY-HOLD
PERFORM 700-HEADER-MODULE
PERFORM 200-PROCESS-MODULE
END-READ.
200-PROCESS-MODULE.
IF NUMBER-IN NOT = CITY-HOLD
PERFORM 301-COMPUTATION-MODULE
END-IF
PERFORM 300-SALES-MODULE
MOVE NUMBER-IN TO NUMBER-OUT
MOVE NAME-IN TO NAME-OUT
MOVE ADDRESS-IN TO ADDRESS-OUT
MOVE CITY-IN TO DETAIL-SALES-OUT
MOVE DETAIL-LINE-1 TO REPORT-OUT
MOVE 1 TO WS-SPACING
PERFORM 701-WRITE-MODULE.
300-SALES-MODULE.
IF CITY-IN = "1"
ADD SALES-IN TO DALLAS-TOTAL
ADD 1 TO DALLAS-TOTAL
MOVE " DALLAS " TO CITY-OUT
ELSE
IF CITY-IN = "2"
ADD SALES-IN TO HOUSTON-TOTAL
ADD 1 TO HOUSTON-CITY
MOVE " HOUSTON " TO CITY-OUT
ELSE
IF CITY-IN = "3"
ADD SALES-IN TO AUSTIN-TOTAL
ADD 1 TO AUSTIN-CITY
MOVE " AUSTIN " TO CITY-OUT
ELSE
IF CITY-IN = "4"
ADD SALES-IN TO OTHER-TOTAL
ADD 1 TO OTHER-CITY
MOVE " OTHER " TO CITY-OUT
ELSE
PERFORM 900-TERMINATION-MODULE
STOP RUN
END-IF.
301-COMPUTATION-MODULE.
IF DALLAS-CITY = ZERO
CONTINUE
ELSE
MOVE DALLAS-TOTAL TO SALES-TOTAL-OUT
MOVE TOTAL-LINE-1 TO REPORT-OUT
MOVE 2 TO WS-SPACING
PERFORM 701-WRITE-MODULE
COMPUTE SALES-TOTAL ROUNDED = DALLAS-TOTAL
/ DALLAS-CITY
MOVE SALES-TOTAL TO SALES-OUT
MOVE SUMMARY-TOTAL TO REPORT-OUT
MOVE 2 TO WS-SPACING
PERFORM 701-WRITE-MODULE
MOVE 2 TO WS-SPACING   
MOVE SPACES TO REPORT-OUT
PERFORM 701-WRITE-MODULE
MOVE ZEROS TO SALES-TOTAL DALLAS-CITY
END-IF
IF HOUSTON-CITY = ZERO
CONTINUE
ELSE
MOVE HOUSTON-TOTAL TO SALES-TOTAL-OUT
MOVE TOTAL-LINE-1 TO REPORT-OUT
MOVE 2 TO WS-SPACING
PERFORM 701-WRITE-MODULE
COMPUTE SALES-TOTAL ROUNDED = HOUSTON-TOTAL
/ HOUSTON-CITY
MOVE SALES-TOTAL TO SALES-OUT
MOVE SUMMARY-TOTAL TO REPORT-OUT
MOVE 2 TO WS-SPACING
PERFORM 701-WRITE-MODULE
MOVE SPACES TO REPORT-OUT
MOVE 2 TO WS-SPACING
PERFORM 701-WRITE-MODULE
MOVE ZEROS TO SALES-TOTAL HOUSTON-CITY
END-IF
IF AUSTIN-CITY = ZERO
CONTINUE
ELSE
MOVE AUSTIN-TOTAL TO SALES-TOTAL-OUT
MOVE TOTAL-LINE-1 TO REPORT-OUT
MOVE 2 TO WS-SPACING
PERFORM 701-WRITE-MODULE
COMPUTE SALES-TOTAL ROUNDED = AUSTIN-TOTAL
/ AUSTIN-CITY
MOVE SALES-TOTAL TO SALES-OUT
MOVE SUMMARY-TOTAL TO REPORT-OUT
MOVE 2 TO WS-SPACING
PERFORM 701-WRITE-MODULE
MOVE SPACES TO REPORT-OUT
MOVE 2 TO WS-SPACING
PERFORM 701-WRITE-MODULE
END-IF
IF OTHER-CITY = ZERO
CONTINUE
ELSE
MOVE " OTHER " TO CITY-OUT
MOVE OTHER-TOTAL TO SALES-TOTAL-OUT
MOVE TOTAL-LINE-1 TO REPORT-OUT
MOVE 2 TO WS-SPACING
PERFORM 701-WRITE-MODULE
COMPUTE SALES-TOTAL ROUNDED = OTHER-TOTAL
/ OTHER-CITY
MOVE SALES-TOTAL TO SALES-OUT
MOVE 2 TO WS-SPACING
MOVE SUMMARY-TOTAL TO REPORT-OUT
PERFORM 701-WRITE-MODULE
MOVE SPACES TO REPORT-OUT
MOVE 2 TO WS-SPACING
PERFORM 701-WRITE-MODULE
MOVE ZEROS TO SALES-TOTAL OTHER-CITY
END-IF
MOVE CITY-IN TO CITY-HOLD.
700-HEADER-MODULE.
ADD 1 TO PAGE-NO-WS
MOVE PAGE-NO-WS TO PAGE-NO-HL
MOVE HEADING-LINE-1 TO REPORT-OUT
WRITE REPORT-OUT
AFTER ADVANCING PAGE
MOVE HEADING-LINE-1 TO REPORT-OUT
WRITE REPORT-OUT
AFTER ADVANCING 2 LINES
MOVE SPACES TO REPORT-OUT
WRITE REPORT-OUT
AFTER ADVANCING 1 LINES.
701-WRITE-MODULE.
WRITE REPORT-OUT
AFTER ADVANCING WS-SPACING LINE.
900-TERMINATION-MODULE.
CLOSE SALES-FILE
SALES-REPORT.

The output is suppose to look like this:

SALES REPORT PAGE 1 11/05/2016

CITY NO. CLIENT NAME CLIENT ADDRESS SALES

DALLAS 003 T. PETERSON 1223 MAIN $ 2,795.00
DALLAS 005 J. SMITH 364 LINCOLN $ 2,150.00

TOTAL SALES = $ 4,945.00

AVERAGE SALES = $ 2,472.50


HOUSTON 002 L. ROBERTSON 274 WASHINGTON $ 550.00
HOUSTON 006 C. HERNANDEZ 1950 FREEWAY $ 395.90

TOTAL SALES = $ 945.90

AVERAGE SALES = $ 472.95


AUSTIN 010 T. MCDONALD 1105 IOWA $ 299.00
AUSTIN 020 T. LEHMAN 646 7TH ST. $ 575.00

TOTAL SALES = $ 874.00

AVERAGE SALES = $ 437.00


OTHER 001 R. HUMBOLDT 909 INDEPENDENCE $ 1,189.99
OTHER 030 C. BENJAMIN 56 FOREST LANE $ 1,585.00
OTHER 045 D. LEE 199 ROOSEVELT $ 1,985.00

TOTAL SALES = $ 4,759.99

AVERAGE SALES = $ 1,586.66

Explanation / Answer

Kindly consider assigning a program-id to your code as shown below:

Also, my recommendation is to use Notepad++ for editing your code.

A typical example of cobol code for files has to be in the below format:

IDENTIFICATION DIVISION.
. . .
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT filename ASSIGN TO assignment-name
ORGANIZATION IS org ACCESS MODE IS access
FILE STATUS IS file-status
. . .
DATA DIVISION.
FILE SECTION.
FD filename
01 recordname
nn . . . fieldlength & type
nn . . . fieldlength & type
. . .
WORKING-STORAGE SECTION.
01 file-status PIC 99.
. . .
PROCEDURE DIVISION.
OPEN iomode filename
. . .
READ filename
. . .
WRITE recordname
. . .
CLOSE filename
STOP RUN.

Apart from these, i dont see any issue with your code. Happy Compiling !!!