School of Engineering and Applied Science Department of Computer Science CSci 53 -- Introduction to Software Development http://www.seas.gwu.edu/~csci53/fall04 Prof. Michael B. Feldman mfeldman@gwu.edu

Project #3 Due Date: Start of lecture, Tuesday, Sept. 28, 2004

The objective here is to do a second simple software development project, as described in the online document Systematic Software Development.

Problem Specification:

In this course, I keep grade records "by the numbers", then, at the end of the semester, I calculate a weighted sum of the numbers to produce a final semester score for each student, on a scale of 0-100. I then rank-order the semester scores, and use this ranking to help me assign an A-F grade to each student. In this project, you'll develop and test a program that will prompt the user for the factors in one student's weighted sum, then compute that sum. (In a later project, we might expand this to compute sums for an entire class.)

See the course FAQ file for the grade weighting factors. Assume labs are on a 0-12 scale, attendance is on a 0-8 scale, midterm #1 is scored on a 0-59 scale, midterm #2 on a 0-63 scale, and final exam on a 0-103 scale. There are 7 graded projects, each on a 0-20 scale, so you can just input a project total on a 0-140 scale. (For simplicity, ignore the bonus and extra-credit points.)

We can calculate the contribution of a given factor as follows:

contribution = percent * (factor/maximumFactor)

For example, suppose a student got 49/59 on midterm #1. This factor's contribution is 10 * (49/59), or 8.30508 points out of 100. If the student got a project total of 115/140, the projects contribute 35 * (115/140) or 28.75 points. The student's weighted sum is the sum of all 6 contributions. Do the calculations with double variables, to keep the fractional parts; display the result to two decimal places.

What to submit:

You must follow the process given in Systematic Software Development. Submit
• a paper document (from a word processor or neatlyhand written) that presents the analysis, design, and test plan for your project
• a printout of the listing (.txt) file for your program in its "framework" first stage, with variables declared and comments inserted for the main algorithm steps, and showing no errors or warnings
• a printout of the listing (.txt) file for your program in its final stage
• a printout of a turnin file of your test runs, showing that you tested the program according to the test plan