Assignment 6 – ITunes Music Database

Maximum Points = 50

The purpose of this lab is to focus on the study of classes, objects, GUI, and Linked Lists.

The purpose of this lab is to introduce you to the linked list data structure. In this lab you will write a program that reads in a list of songs and stores the songs 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 database consisting of songs. The application is a system for managing the music on an iPod similar to iTunes. [DO NOT USE ARRAYLISTS!]

 A)   Each song record contains a name of a song (e.g. Rock ‘n Roll Fantasy), length of song (in minutes and seconds, e.g. 3:12), artist name (e.g., Bad Company), album name (e.g., Desolation Angels), and Rating (integer). Each record is on a separate line and each field is separated by the # symbol. E.g.

Rock ‘n Roll Fantasy#3:12# Bad Company# Desolation Angels#5

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

C)   If the file does not exist, then your program will create a brand-new song 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 song data from the file and the user can continue to update the PlayList.

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

a.    Add a song to the PlayList by either specifying the location in the PlayList (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 program as your pattern].

b.    Remove a song from the PlayList using the location

c.    Change the location of the song in the PlayList

d.    Display a list of all songs on the PlayList listing ALL of the information

e.     Display a list of JUST the song names for all songs on the PlayList

f.    Save and exit the menu

Due before class on Thursday, April 23, 2009) 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 Thursday, April 30, 2009) 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)