Assignment 6 – Kindle Book Database

Maximum Points = 50

The purpose of this assignment is to focus on the study of classes, objects, GUI, and to the linked list data structure. In this assignment you will write a program that reads in a list of books and stores the books in a linked list for later retrieval. The purpose of this assignment is to use classes of objects in Java to create and manage a collection consisting of books. The application is a system for managing the books on an eReader similar to the Kindle. [You must define and use your own list; DO NOT USE ARRAYLISTS!]

 A)   Each book contains a book title (e.g. Java Solutions), number of pages (e.g. 312), author (e.g., Lewis & Loftis), and publisher (e.g., Pearson Education). Each book is on a separate line and each field is separated by the # symbol. E.g.

Java Solutions#312#Lewis & Loftis#Pearson Education

B)   Your program will read in the name of the file (i.e. books.dat) to store and/or retrieve the books (from keyboard, FileChooser or GUI).

C)   If the file does not exist, then your program will create a brand-new book list and store it in the file

D)   If the requested file exists, your program will retrieve the data for all of the previously entered book data from the file and the user can continue to update the ReadingList.

E)   Your program should then provide the user with a menu (GUI or command line) that allows the user to:

a.    Add a book to the ReadingList by either specifying the location in the ReadingList (starting at position 1) or by placing it at the end of the list if the location is not specified or the location is invalid. (make sure that the data is valid as it is entered) [Use the Magazine and week14 programs as your patterns].

b.    Remove a book from the ReadingList using the specified location

c.    Change the location of the book in the ReadingList

d.    Display a list of all books on the ReadingList listing ALL of the information

e.     Display a list of JUST the book titles for all book s on the ReadingList

f.    Save and exit the menu

Due before class on Monday, November 29, 2010) Submit a .doc file containing the UML class diagram showing inheritance for all the classes used in your program. [10 pts]

(Due before class on Monday, December 6, 2010) Submit your .java files containing your program to the dropbox in WebCT. [50 pts]

 Grades are determined using the following scale:

Grading Rubric  (Word document)