CSC519 Principles of Programming Languages
CSC519 Principles of Programming Languages
Name:_____________________________________
Spring 2015 Programming assignment: the Student class and the ExamGrades class.
Problem 1: Student class (60 %)
Student class description:
The student type should describe students 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 students id.
Determine students name.
Determine students status.
Determine students gpa.
Determine students number of credits.
Change students 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 students 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 students status from part time to full time.
9.Change students status from full time to part time.
10.Change students status from part/full time to an invalid status.
11.Change students number of completed credits by adding a positive integer to the current number.
12.Change students number of completed credits by adding a negative integer to the current number (this should
not 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.
Due: Problem 1: Student class
11 years ago
Purchase the answer to view it
- csc_519_-_01_-_assignment_3.pdf
- csc_519_-_01_-_assignment_3.zip