Sunteți pe pagina 1din 2

CSC-250 Fall 2007 Project 1

For the first project this semester you will be writing a program to generate semester grade
reports similar to the ones given to LR students. The general form of such a report is:

Name

Course Credit Hrs Grade GPA


****** * *
****** * *
****** * *
****** * *
---
Semester: ** *.**
Cumulative: *** *.**

The output for each student should be very similar to the above, but there will be several
students to report on.

Input

The data file will contain the following information:

<the number of students in the file>


<student’s last name>
<student’s first name>
<student’s middle name>
<0 or 1 : 0 if the student goes by his/her first name, 1 if by his/her middle
name>
<total credit hours before this semester>
<cum gpa before this semester>
<n : the number of courses taken this semester>
<course-1> <hrs-1> <grade-1>
<course-2> <hrs-2> <grade-2>
.
.
<course-n> <hrs-n> <grade-n>
<student’s last name>
<student’s first name>
<student’s middle name>
<0 or 1 : 0 if the student goes by his/her first name, 1 if by his/her middle name>
<total credit hours before this semester>
<cum gpa before this semester>
<n : the number of courses taken this semester>
<course-1> <hrs-1> <grade-1>
<course-2> <hrs-2> <grade-2>
.
.
<course-n> <hrs-n> <grade-n>
.
.
etc.
The number of students will be between 1 and 5, and the number of courses taken by each
student will be between 1 and 7, and will of course vary from student to student.

Credit hours for courses will be integers, the GPA (grade point average) will be a float carried to
two decimal places. Courses will be designated by a three-character department and a three-
digit number, just as they are at LR. (e.g. CSC250)

Grades will be simply single upper case letters, A, B, C, D, or F. There will be no + or – grades.

The data file will be called proj1.in and will be made available in the assignments folder of
blackboard.

Output Details

The output should be sent to a file, one student per page. The reports should be formatted in
columns as shown above. The GPA should be displayed to two decimal places.

The name should be displayed in one of the following forms, depending on the value of the 0|1
flag on the line immediately following the middle name in the input file:

William H. Macy if the flag is 0


J. Paul Getty if the flag is 1

GPA Calculation

The GPA is calculated by dividing total quality points by total credit hours. The quality points are
determined by multiplying the number in the following table by the number of credit hours:

grade points
A 4
B 3
C 2
D 1
F 0

For example, a B in a 4-hour course would earn 3 × 4 = 12 quality points.

Additional Required Features

You should use at least two distinct Abstract Data Types in your program design, such as one for
the name of a student, one for information about a single course taken (course, hrs, and grade)
or one for a list of courses taken by a student. Each ADT should be a separate package, with
specification and body for each.

Documentation: you should include documentation for each of your ADTs as well as for the main
program. Include all algorithms in pseudocode and a description of why you chose the
algorithms and data structures you did.

Due Date

The (plain text) source code for your program and full documentation (in one of the following
formats: MSWord, plain text, RTF) must be uploaded to blackboard by midnight, Friday,
September 21.

S-ar putea să vă placă și