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.

Thursday, December 3, 2009

Code for file reading and writing

The code for file reading and writing is present here.

Tuesday, December 1, 2009

Project

Course Grading System:

The code for the project's prototype can be acquired here.

The project will be explained in class and more details be given here in the days to follow.

You are supposed to make groups of 5 people

Wednesday, October 7, 2009

Practice, practice, practise!

The trick to being a good programmer is to keep practicing and trying different problems. You guys had een asking me that from where should you study and learn the concepts of C++. Even though I do not follow a specific book, but I thought that giving you people some guidelines will not hurt.

I recomend that you open the book, C++ how to Program by Deitel & Deitel and go to page 130. Read up to page 150 or till the end of chapter. Then do exercises 4.4 to 4.25. This should get you prepared for the mid term that is coming soon. Do keep in mind that one of the exercises might come in your mid term exam, so, the more you practice, the better you will be prepared.

Tuesday, September 22, 2009

Assignment 1

I have uploaded the first assignment on this location. This is to be submitted by noon, 05/10/2009. Any problems related with the assignment can be discussed in class or in my free time.

Wednesday, September 9, 2009

Marks Allocation

Quizes

10%

Assignments

10%

Mid Term

20%

Final

50%

Project

10%

Recommended Books

§ Paul M. Chirlian, Programming in C++, Merrill Pub Co, (April 1989).

§ Lucy Garnett, Building Business Applications Using C++, Addison Wesley Pub Co, (October 1, 1996).

§ Greg Perry and Marcus Johnson, TURBO C++ By Example, National Book Foundation, (1997).

§ Paul M. Chirlian, Programming in C++, Merrill Pub Co,( April 1989).

§ Lucy Garnett, Building Business Applications Using C++, Addison Wesley Pub Co, (October 1, 1996).

§ Greg Perry and Marcus Johnson, TURBO C++ By Example, National Book Foundation, (1997).

H. M. Dietel and P. J. Dietel, C++ How to Program, Prentice Hall International, Inc., (1994).