Assignment Description Write a program for keeping a course

Assignment Description:

Write a program for keeping a course list for each student in a college. Information about each student should be kept in an object that contains the student id (four digit integer), name (string), and a list of courses completed by the student.

·       The course taken by a student are stored as a linked list in which each node contain course name (string such as CS41, MATH10), course unit (1 to 4) and the course grade (A,B,C,D,F).

·       The program provides a menu with choices that include adding a student record, deleting a student record, adding a single course record to a student’s record, deleting a single course record from a student’s record, and print a student’s record to a screen.

·       A student record should include a GPA (Grade Point Average) when display on the screen. The GPA is calculated by following formula:

·       When the user is through with the program, the program should store the records in a file. The next time the program is run, the records should be read back out of the file and the list should be reconstructed

·       You will need to implement a List container to hold a list of student records, each of which has a List container as its member. Note that no duplicate items should be permitted in either (student and course) List container.

·       Develop a test driver program that allow options to add, remove, and display student records and the course list of each student.

·       You may use class template technique (in C++) or generic programming (in Java) to implement a List ADT that could be used for both student list and the course list..

·       To calculate G.P.A. for one term:

1.    Multiply the point value of the letter grade (A=4, B=3, C=2, D=1, F=0) by the number of credit hours. The result is the grade points (quality points) earned.

2.    Total the credit hours for the student; total the quality points for the student.

3.    Divide the total quality points by the total credit hours.

Solution

#include \"stdafx.h\" #include #include #include #include #include using namespace std; struct StudentData { int studentID; string first_name; string last_name; int exam1; int exam2; int exam3; int total; char ch; }; const int SIZE = 9; const int INFO = 4; // Function prototypes void openInputFile(ifstream &, string); void getTotal(StudentData[]); void getGrade(StudentData[]); void calcLowest(StudentData[], int &, int &, int &, int &, int[]); void calcHighest(StudentData[], int &, int &, int &, int &, int[]); void getAverage(StudentData[], int, double &, double &, double &, double &, double[]); void getStd(StudentData[], double &, double &, double &, double &, double &, double &, double &, double &, double[]); void print(StudentData[], int[], int[], double[], double[]); void sort(StudentData[]); int main() { // Variables StudentData arr[SIZE]; int lowest1, lowest2, lowest3, lowest4; // Stores lowest exam scores int highest1, highest2, highest3, highest4; // Holds highest exam scores double average1 = 0, average2 = 0, average3 = 0, average4 = 0; // Represents average of each exam double std1 = 0, std2 = 0, std3 = 0, std4 = 0; // Holds standard deviation for Exams 1-3 and Total int lowest[INFO] = {}; int highest[INFO] = {}; double average[INFO] = {}; double standardDeviation[INFO] = {}; ifstream inFile; string inFileName = \"C:\\\\Users\\\\Lisa\\\\Desktop\\\\scores.txt\"; // Call function to read data in file openInputFile(inFile, inFileName); // Read data into an array of structs for(int count = 0; count < SIZE; count++) { inFile >> arr[count].studentID >> arr[count].first_name >> arr[count].last_name >> arr[count].exam1 >> arr[count].exam2 >> arr[count].exam3; } // Close input file inFile.close(); // Get score total for each student getTotal(arr); // Determine grade for each student getGrade(arr); // Calculate lowest scores in each exam and total scores calcLowest(arr, lowest1, lowest2, lowest3, lowest4, lowest); // Calculate highest scores in each exam and total scores calcHighest(arr, highest1, highest2, highest3, highest4, highest); // Calculate average of each exam and the average of the total scores getAverage(arr, SIZE, average1, average2, average3, average4, average); // Calculate standard deviation of each category getStd(arr, std1, std2, std3, std4, average1, average2, average3, average4, standardDeviation); cout << \"\ \"; // Print unsorted data print(arr, lowest, highest, average, standardDeviation); cout << \"\ \"; // Sort data sort(arr); // Print sorted data print(arr, lowest, highest, average, standardDeviation); system(\"PAUSE\"); return 0; } /** * Pre-condition: * Post-condition: */ void openInputFile(ifstream &inFile, string inFileName) { //Open the file inFile.open(inFileName); //Input validation if (!inFile) { cout << \"Error to open file.\" << endl; cout << endl; return; } } /** * Pre-condition: * Post-condition: */ void getTotal(StudentData arr[]) { for(int i = 0; i < SIZE; i++) { arr[i].total = arr[i].exam1 + arr[i].exam2 + arr[i].exam3; } } /** * Pre-condition: * Post-condition: */ void getGrade(StudentData arr[]) { for(int i = 0; i < SIZE; i++) { if(arr[i].total >= 270) arr[i].ch = \'A\'; else if(arr[i].total >= 240) arr[i].ch = \'B\'; else if(arr[i].total >= 210) arr[i].ch = \'C\'; else if(arr[i].total >= 180) arr[i].ch = \'D\'; else arr[i].ch = \'F\'; } } /** * Pre-condition: * Post-condition: */ void calcLowest(StudentData arr[], int &lowest1, int &lowest2, int &lowest3, int &lowest4, int lowest[]) { int smallest = 0; lowest1 = arr[0].exam1; lowest2 = arr[0].exam2; lowest3 = arr[0].exam3; lowest4 = arr[0].total; // Loop to determine lowest score from Exam1, 2, 3, and Total for (int i = 0; i < SIZE; i++) { if (lowest1 > arr[i].exam1) { lowest1 = arr[i].exam1; smallest = i; } if (lowest2 > arr[i].exam2) { lowest2 = arr[i].exam2; smallest = i; } if (lowest3 > arr[i].exam3) { lowest3 = arr[i].exam3; smallest = i; } if (lowest4 > arr[i].total) { lowest4 = arr[i].total; smallest = i; } } // Loop lowest values into an array of size 4 for(int index = 0; index < INFO; index++) { if(index == 0) lowest[0] = lowest1; else if(index == 1) lowest[1] = lowest2; else if(index == 2) lowest[2] = lowest3; else if(index == 3) lowest[3] = lowest4; else cout << \"Fail!\" << endl; } } /** * Pre-condition: * Post-condition: */ void calcHighest(StudentData arr[], int &highest1, int &highest2, int &highest3, int &highest4, int highest[]) { int biggest = 0; highest1 = arr[0].exam1; highest2 = arr[0].exam2; highest3 = arr[0].exam3; highest4 = arr[0].total; // Loop to determine highest score from Exam1, 2, 3, and Total for (int i = 0; i < SIZE; i++) { if (highest1 < arr[i].exam1) { highest1 = arr[i].exam1; biggest = i; } if (highest2 < arr[i].exam2) { highest2 = arr[i].exam2; biggest = i; } if (highest3 < arr[i].exam3) { highest3 = arr[i].exam3; biggest = i; } if (highest4 < arr[i].total) { highest4 = arr[i].total; biggest = i; } } // Loop highest values into an array of size 4 for(int index = 0; index < INFO; index++) { if(index == 0) highest[0] = highest1; else if(index == 1) highest[1] = highest2; else if(index == 2) highest[2] = highest3; else if(index == 3) highest[3] = highest4; else cout << \"Fail!\" << endl; } } /** * Pre-condition: * Post-condition: */ void getAverage(StudentData arr[], int size, double &average1, double &average2, double &average3, double &average4, double average[]) { int sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0; // Get sum of each category (Exam1, 2, 3, and Total) for(int i = 0; i < SIZE; i++) { sum1 += arr[i].exam1; sum2 += arr[i].exam2; sum3 += arr[i].exam3; sum4 += arr[i].total; } // Calculate average for each category average1 += static_cast(sum1)/size; average2 += static_cast(sum2)/size; average3 += static_cast(sum3)/size; average4 += static_cast(sum4)/size; // Loop average values into an array of size 4 for(int index = 0; index < INFO; index++) { if(index == 0) average[0] = average1; else if(index == 1) average[1] = average2; else if(index == 2) average[2] = average3; else if(index == 3) average[3] = average4; else cout << \"Fail!\" << endl; } } /** * Pre-condition: * Post-condition: */ void getStd(StudentData arr[], double &std1, double &std2, double &std3, double &std4, double &average1, double &average2, double &average3, double &average4, double standardDeviation[]) { double deviationSum1 = 0, deviationSum2 = 0, deviationSum3 = 0, deviationSum4 = 0; for(int i = 0; i < SIZE; i++) { deviationSum1 += pow((arr[i].exam1 - average1), 2); deviationSum2 += pow((arr[i].exam2 - average2), 2); deviationSum3 += pow((arr[i].exam3 - average3), 2); deviationSum4 += pow((arr[i].total - average4), 2); } std1 = sqrt(deviationSum1 / ((SIZE) - 1)); std2 = sqrt(deviationSum2 / ((SIZE) - 1)); std3 = sqrt(deviationSum3 / ((SIZE) - 1)); std4 = sqrt(deviationSum4 / ((SIZE) - 1)); // Loop average values into an array of size for(int index = 0; index < INFO; index++) { if(index == 0) standardDeviation[0] = std1; else if(index == 1) standardDeviation[1] = std2; else if(index == 2) standardDeviation[2] = std3; else if(index == 3) standardDeviation[3] = std4; else cout << \"Fail!\" << endl; } } cout << \"\ \"; } /** * Pre-condition: * Post-condition: */ void sort(StudentData arr[]) { StudentData temp; for (int i = 0; i < (SIZE - 1); i++) { for (int j = i + 1; j < SIZE; j++) { if (arr[i].last_name > arr[j].last_name) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } } }
Assignment Description: Write a program for keeping a course list for each student in a college. Information about each student should be kept in an object that
Assignment Description: Write a program for keeping a course list for each student in a college. Information about each student should be kept in an object that

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site