CSC519 Principles of Programming Languages
Problem 1: Student class (60 %)
Student class description:
The student type should describe student’s last name, first name, id ( letter ’N’ followed by an 8-digit number), gpa (a real number in the range of 0.0 to 4.0, a whole number of credits completed, and a single letter status indicating full time (’F’) or part time (’P’). All students should be full time by default, unless their status is changed.
The operations allowed should be the following:
• Create a new student given the first name, last name, id and status (gpa and number of completed credits both initialized to zero).
• Create a transfer student given the first name, last name, id, status, gpa and number of credits.
• Determine student’s id.
• Determine student’s name.
• Determine student’s status.
• Determine student’s gpa.
• Determine student’s number of credits.
• Change student’s status.
• Update number of completed credits for a student by adding the new number (for example credits completed in the current semester) to the current number of credits. The number of completed credits should never decrease. •
• Change student’s gpa (replace the old value of the gpa with new one).
• Produce a string with student information in the following format:
LastName FirstName id status gpa numberOfCredits
Driver program: The driver program is a class with the main method that tests your class. You should make
sure that you class can handle the following situations:
1.Create a new student with valid first/last name, id, and status.
2.Create a new student with valid first/last name, id, and invalid status.
3.Create a new student with valid first/last name, invalid id, and valid status.
4.Create a new student with valid first/last name, invalid id, and invalid status.
5.Create a transfer student with valid first/last name, id, status, gpa and number of credits.
6.Create a transfer student with valid first/last name, id, status, invalid gpa and valid number of credits.
7.Create a transfer student with valid first/last name, id, status, gpa and invalid number of credits.
NOTE: In all of the above cases, you can assume that the first and last names are valid.
8.Change student’s status from part time to full time.
9.Change student’s status from full time to part time.
10.Change student’s status from part/full time to an invalid status.
11.Change student’s number of completed credits by adding a positive integer to the current number.
12.Change student’s number of completed credits by adding a negative integer to the current number (this shouldnot decrease the current number of credits).
After each test you should print the string with student information (using the format described above) for the student that was just modified.
SOMETHING TO THINK ABOUT: Think about how you would represent an entire database of students using
a Java class. What operations should that kind of database provide and how (insertions, deletions, queries, modifications of student data)?
Problem 2: ExamGrades class (40 %)
Write a class that can store a list of students and their exam grades. Your class should contain two arrays:
• an array of 100 student last names,
• an array of 100 student exam grades.
Initially both arrays are empty.
The class should have default constructor that does nothing.
The class should provide the following methods:
• add (... ) - adds new student and exam grade; this will add one entry to each array,
• getNumberOfStudents ( ... ) - returns the current number of students in the list
NOTE: the maximum number of students is 100,
• sortByName ( ... ) - sorts both arrays, so that they are arranged alphabetically
NOTE: whenever you move a name in one array, you need to move the grade in the other array
• sortByGrade ( ... ) - sorts both arrays so that they are arranged from highest exam grade to the lowest
NOTE: whenever you move a grade in one array, you need to move the name in the other array
• print ( ... ) - prints to the screen students’ name and grade one per line (either unsorted, or in the order
that results from the last sort method used)
NOTE: if an add method is called after one of the sorts methods is called, the new student should be
added to the end of the current list. This will produce a list that is no longer sorted.
WARNING: You need to keep track of the current number of students in the list. When the array is
sorted only the used locations in the array should be sorted, not the entire array. Write a program with main() method that tests the ExamGrades class.
- This solution has not purchased yet.
- Submitted On 11 Apr, 2015 01:41:59