Question
This is in java: Project Title: Album Catalog Goal: The goal of this assignment is to help students familiarize themselves with the following Java programming
This is in java:
Project Title: Album Catalog
Goal: The goal of this assignment is to help students familiarize themselves with the following
Java programming concepts:
1. Input/Output to and from the terminal.
2. Storing data in a file and reading data from a file.
3. Creating object-oriented classes and methods to handle data.
4. Using data structures to store data in main memory (e.g. ArrayList).
5. Working with character strings.
6. Using Javadoc comments and generating and html documentation of the program.
Description:
For this assignment, you will create a program to manage an album collection. Your program will
allow the user to add new albums, display a list of all albums in the collection, search for a
specific album, delete a specific album. Your program should provide the user with a console or
command line choice menu about possible actions that they can perform. The choices should be
the following:
1. Display list of all albums in the collection.
2. Add a new album to the collection.
3. Search for an album given the name of the artist or title of the
album or part of the name of the artist or title of the album.
4. Delete an album from the collection.
5. Exit program.
To represent an item in your program, create a class named Album with the following fields:
title - string
artist - string
releaseYear - int
genre enum MusicGenre
The MusicGenre can be only one of the following: ROCK, RAP, COUNTRY,
POP.
When the program first loads, it reads all the saved albums (if any) from a file named
database.txt into an ArrayList. While the program is running, the user can choose any of
the 5 available options. When the user selects the option 5 (exit program), the program stores the
current contents of the ArrayList to the file (replacing the old contents) and exits. During the
program execution, if the user chooses to add or delete items, only the ArrayList will be updated.
The database.txt file will be updated automatically only when the program is about to exit.
In other words, when the user selects option 5, the program first saves all the contents of the
ArrayList into the text file, and then exits.
The format of the contents of the database.txt file should be in human readable plain text,
one record per line (note the ~ separator between different entries) For example:
Deftones~White Pony~2000~0
UGK~Ridin Dirty~1996~1
Josh Abbott Band~Scapegoat~2012~3
For display, albums should be printed to the console in the following format in alphabetical order
by album title. Override the toString() method to return this format.
Title: Ridin Dirty, Artist: UGK, Year: 1996, Genre: Rap
Title: Scapegoat, Artist: Josh Abbott Band, Year: 2012, Genre: Country
Title: White Pony, Artist: Deftones, Year: 2000, Genre: Rock
Use good design (dont put everything in one class).
Use a package name albumcollection for your classes and put your files in the appropriate
directory structure.
Be sure to validate the user input for the release year and the genre.
You don't need to create any GUI for this assignment. Command line operations are
enough.
Use a standard Java coding style to improve your programs visual appearance and make
it more readable, e.g. BlueJ coding style: http://www.bluej.org/objectsfirst/
styleguide.html or Google Java style guide:
https://google.github.io/styleguide/javaguide.html
Use javadoc comments for ALL your classes and methods.
** I am having the most difficulty with the Release Year and the enum MusicGenre**
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started