First create a class StudentRecord that will have three fields: firstName, lastName, studentID (6-digit integer). In other words each objects of type StudentRecord will hold information about a particular student.
E.g. to create a new object of type StudentRecord you may invoke the following constructor call:
StudentRecord rec1 = new StudentRecord("Mike", "Darvin", 234123)
Your main task is to implement the following data structure: a list of StudentRecords with ability to insert a new record anywhere in the list, delete any record in the list, look up a record in a given position, find if a certain record exists etc.
implement the following interface:
public interface StudentRecordListInterface{
public void createList(); //creates an empty list; <--- This should only be called from a constructor
public boolean isEmpty();//returns true iff the list is empty;
public int size(); //returns the number of records currently in the list
public void add(StudentRecord sr); //adds the record sr to the end of the list
public void insert(StudentRecord sr, int position); // inserts sr in the specified position in the list
public StudentRecord lookup(int position); // returns the reference to the record at the specified position
public int find(StudentRecord sr); // returns the position of the first appearance of the record in the list (-1 if not found)
public void remove(int position); // removes the record in the specified position
public void makeEmpty(); // makes the list empty
public void printList(); //prints out all records starting from the first
public void printListReverse(); //prints out all records in reverse order starting from the last
}
You will provide two different implementations of this interface: StudentRecordArrayList and StudentRecordLinkedList.
StudentRecordArrayList will use an array of StudentRecords to store the list. The initial size of the array should be 10. The add and insert operation need to check if the array is filled and if it is, call a doubleArraySize() method of this class.
StudentRecordLinkedList will be implemented using a doubly linked list of ListNode-s.
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
## Platform
Windows XP