A small community library wants to change its current paper-based library management system to a computer-based library management system. You are asked to write a Java application program that will perform the functions of the library management system.
The library contains books, CDs available for community members to borrow. The library contains less than 1000 books and CDs altogether. The library also contains five sets of computer for members to book and use within the library. The library has around 3000 members. The current library management system (paper-based) provides the following functions:
Member: add a new member, edit information of member, remove a member and keep the borrow/return history of the member.
Item (Books, CDs and computer): add an item, edit the information of the item, remove an item, borrow an item, return an item, search for the location of an item and provide a list of member with overdue daily.
The computer-based library management system should fulfil the following requirements:
1. provides all the functions that the paper-based system is providing;
2. Individual: implement the functions of member using GUI;
Group: implement the functions of both member and item using GUI;
Note: keep it simple enough to perform the functions.
3. Group: in providing a list of member with overdue daily, the list must be in ascending order of the number of days overdue.
4. The system will save the updated data to file on hard disk when the library closes and restore the data from the file when the library opens.
5. The system will report error(s) if the operator enter incorrect data into the system. Whenever there is an error, the current function will be aborted.
6. The system will not consider any internet activities such as online booking of item etc by this moment.
7. A test plan indicating the test data and expected result to test the system.
8. Java documentation about the system.
9. Appropriateness to substitute the current paper-based system with the new computer-based system. For example: if the new system does not contain information (such as name, address, contact phone) of the member will not be considered as appropriate.
10. If the system cannot be executed, then no marks would be given for the functions even though you have written codes for it.
Demonstrate the following knowledge/skills within your system:
2. Inheritance and polymorphism.
3. Exception handling.
4. Good programming style.