Friday, December 4, 2009

Project Details

You can get the details of the project from this file, or you can read blow:

PROJECT – COURSE GRADING SYSTEM
In this project, you are tasked with creating a course grading system, which calculates the grade of the student after summing up all the marks taken by the student during the semester. The marks distribution is as following:
Final = 50%
Mid Term = 20%
Quizes = 20%
Assignments = 10%
By this distribution, when putting the marks for the Final or the Mid Term, the user is only supposed to give marks from 50 and 20 respectively. Make sure that the user can input decimal values.
For Quizes and Assignments, the user will give marks out of ten for each quiz and assignment. Since there are 4 quizes and 4 assignments, you need to convert those 4 values to 20 and 10 percent respectively (see the code in the prototype to get a better idea).
Once all the marks have been submitted, the program should be able to calculate the grade attained by the student. The distribution of grades is as following:
87 – 100 A grade
80 – 86 B+ grade
72 – 79 B grade
66 – 71 C+ grade
60 – 65 C grade
50 – 59 D grade
Below 50 F grade


The structure for the student is given as follows:
struct Student
{
char firstName[20];
char lastName[20];
char regNumber[20];
float quizMarks[4];
float assignmentMarks[4];
float midMarks;
float finalMarks;

float totalQuizMarks();
float totalAssignmentMarks();
float totalMarks();
char[] getGrade();
};

You are not supposed to change this structure unless it is critical to do so, which, you must explain in your report and presentation.
IMPORTANT POINTS
You must make sure that the user is unable to enter illegal values. For example, a user can not enter more than 50 marks for the final and similarly, the user cannot enter any value less than 0.
It is recommended that you create as many separate functions as possible, but that does not mean declaring a new function for every line of code. For example, you must have separate functions for file reading and writing.
Your code should be properly commented, so as to explain what you are doing in the code at a certain place.
You need to create a menu that:
• Lets you read a student’s record
• Lets you write a student’s record. If there is no file present, it will create a file. If there is already a file present, it will append the record to the previous records.
• Lets you view all the records of students
• Lets you search for a specific student record by comparing the user’s input with the registration number of the student
You also need to write a report that is no more than four A-4 pages. The report should give the names of the people who were part of the group (maximum of 5 and a minimum of 1, also select a name for your group); the tasks that were distributed among them and the additions to the project, if any.
EXTRA CREDIT
Extra credit will be given to those who add the following functionality to the project.
1. All the Student variables that are used in the program are dynamically created using pointers. These pointers need to be de-allocated properly
2. Add an extra option to the project where the user can see the record of the person that attained the maximum marks
3. Add another option to the project where the user can see the record of the person who attained the minimum marks
4. An option that tells the user, the average marks attained by the students present in a file
SUBMISSION REQUIREMENTS
You are supposed to send me the *.cpp of the project and *.doc file compressed in a zip file named after your group. So if the name of your group is HardlyProgrammers, the name of the zip file should be HardlyProgrammers.zip. You should send me the zip file at umairazfar@bahria.edu.pk.
You must keep as many backups of your projects as you can. No excuse for not submitting the project on time will be entertained. You are responsible for your project, so keep as many copies as you can.
On the presentation day, you are supposed to bring the project in a flash drive as well, also e-mail the same project to yourself, so in case nothing works, the project can be acquired through your e-mail.
Last date of submission is 10th of January, that is, on Sunday at mid night.

No comments:

Post a Comment