Assignment
For this program, you will read in records containing exam scores. From this information you will print out one or two reports. All routines will be external routines.
The first record in this assignment:
A control card/record of the following format:
col 1 Y if the statistics report is to be printed
col 5 Y if a graph is to be printed
In the MAIN routine, define a one byte FLAGBYTE field in storage initialized to hexadecimal zeros. If the statistics report is to be processed, turn on bit 0. If the graph is to be printed, turn on bit 7. After the rest the processing has been done, test bit 7 of FLAGBYTE and if it is on, call a subroutine called GRAPH to produce a report similar to the following:
CLASS GRADE DISTRIBUTION
0-67 1 *
68-75 0
76-83 7 *******
84-91 2 **
92-100 3 ***
Test bit 0 of FLAGBYTE and if it is on, call a subroutine called STATS to produce a report similar to the following:
CLASS STATISTICS
Drew P. Drawers 90
John Doe 70
:
AVERAGE 81.77
Notes:
1. The logic for the MAIN routine should be as follows:
READ AND PROCESS THE CONTROL CARD
CALL BUILD AND THEN XDUMP THE TABLE (in main)
IF BIT 0OF FLAGBYTE IS ON
CALL STATS
ENDIF
IF BIT 7 OF FLAGBYTE IS ON
CALL GRAPH
ENDIF
2. BUILD will read a card with a3 digit test score and 28 byte name. You will put these in a table using a dsect.Each table entry will consist ofbinary fullword of score, and then a name.For score, you need to use PACK, then CVB to get the score in a register, then store it in the table.
(TABLE is defined in MAIN)
ORG statement ...
TABLE DC 20CL32'ENTRY' MY TABLE
(put DSECT at very top of your program)
TAB DSECT
$SCORE DS F score in binary format
$NAME DS CL28 name
3. STATS will go thru the table and calculate the average for the entire class. (Total of all the scores/number of scores.) Print it with two decimal places. Use DSECT for the table entry.
4. The GRAPH routine will process the table and count the number of scores in each range. Then it will print a graph of the data. The printed asterisks must be moved to the print line using an EXecute statement to dynamically alter the length field of the
MVC instruction. After the line has been printed, EXecute another MVC to blank out the print line.
5. Be sure to test your program using Ns on the control card.
DATA
YY (statistics = yes, graph=yes)
099JOHNSON, JOE (NAME IS 28 BYTES)
063Anita Bath
079Drew P. Drawers
098Ima Hogg
012Kurt Answer
088Ann Honour
083Ivanna Tinkle
078Bea Tidy
066Sam Freely
088Jim Shorts
076Dane Knight
077U. C. Forever
100Doug A. Hole
092Mary Way
055ZELMO, BOBBY
Attachment:- Assignment.rar