Many of us have large digital music collections that are not
always very well organized. It would be nice to have a program that
would manipulate our music collection based on attributes such as
artist, album title, song title, genre, song length, number times
played, and rating. For this assignment you will write a basic
digital music manager (DMM). Your DMM program must have a
text-based interface which allows the user to select from a main
menu of options including: (1) load, (2) store, (3) display, (4)
insert, (5) delete, (6) edit, (7) sort, (8) rate, (9) play, (10)
shuffle, and (11) exit. For Part I of the assignment, you will only
need to complete the main menu, (1) load, (2) store, (3) display,
(6) edit, (8) rate, (9) play, and (11) exit features. The other
features will be completed in the next part of the assignment. Ø
What must the main menu contain? The main menu must display the
following commands: (1) load (2) store (3) display (4) insert (5)
delete (6) edit (7) sort (8) rate (9) play (10) shuffle (11) exit
After a command is selected and completed, your program must
display the main menu again. This procedure will continue until the
“exit” command is selected. Ø What must “load” do? The “load”
command must read all records from a file called musicPlayList.csv
(you may find a sample file here) into a dynamic doubly linked
list. The doubly linked list is considered the main playlist. As
each record is read from the file, it must be inserted at the front
of the list. Each record consists of the following attributes: *
Artist – a string * Album title – a string * Song title – a string
* Genre – a string * Song length - a struct Duration type
consisting of seconds and minutes, both integers * Number times
played – an integer * Rating – an integer (1 – 5) Each attribute,
in a single record, will be separated by a comma in the .csv (comma
separated values) file. This means that you will need to design an
algorithm to extract the required attributes for each record. Each
field in each record will have a value. You do not need to check
for null or empty values. You must define a struct called Record to
represent the above attributes. Also, do not forget that the Song
Length must be represented by another struct called Duration.
Duration is defined as follows: * Minutes – an integer * Seconds –
an integer Finally, each struct Node in the doubly linked list must
be defined as follows: * Data – a Record * Pointer to the next node
* Pointer to the previous node Ø What must “store” do? The “store”
command writes the current records, in the dynamic doubly linked
list, to the musicPlayList.csv file. The store will completely
overwrite the previous contents in the file. Ø What must “display”
do? The “display” command prints records to the screen. This
command must support two methods, one of which is selected by the
user: 1. Print all records. 2. Print all records that match an
artist. Ø What must “edit” do? The “edit” command must allow the
user to find a record in the list by artist. If there are multiple
records with the same artist, then your program must prompt the
user which one to edit. The user may modify all of the attributes
in the record. Ø What must “rate” do? The “rate” command must allow
the user to assign a value of 1 – 5 to a song; 1 is the lowest
rating and 5 is the highest rating. The rating will replace the
previous rating. Ø What must “play” do? The “play” command must
allow the user to select a song, and must start “playing” each song
in order from the current song. “Playing” the song for this
assignment means displaying the contents of the record that
represents the song for a short period of time, clearing the screen
and showing the next record in the list, etc. This continues until
all songs have been played. Ø What must “exit” do? The “exit”
command saves the most recent list to the musicPlayList.csv file.
This command will completely overwrite the previous contents in the
file. IV. Logical Block Diagram The logical block diagram for your
doubly linked list should look like the following:
Record 1: Artist Album title Song title Genre Song length Times
played Rating Record 2: Artist Album title Song title Genre Song
length Times played Rating Record n-1: Artist Album title Song
title Genre Song length Times played Rating Record n: Artist Album
title Song title Genre Song length Times played Rating As you can
see from the illustration a doubly linked list has a pointer to the
next node and the previous node in the list. The first node’s
previous node pointer is always NULL and the last node’s next
pointer is always NULL. When you insert and delete nodes from a
doubly linked list, you must always carefully link the previous and
next pointers.
Please post in C and split code into main.c,functions.c,header.h
also note that the music length is listed in the file as 2:45 and not 2,45
Many of us have large digital music collections that are not always very well organized. It...
PYTHON PROGRAMMING NEED HELP ASAP You will write an application to manage music collections -- a music collection is a list of albums. The named tuples used for Albums and Songs are defined below, and an example of a music collection is given. (DO NOT HARDCODE THE VALUES FOR MUSIC!) Album = namedtuple('Album', 'id artist title year songs') Song = namedtuple('Song', 'track title length play_count') MUSIC = [ Album("1", "Peter Gabriel", "Up", 2002, [Song(1, "Darkness", 411, 5), Song(2, "Growing Up",...
Overview: You will be writing classes that implement a playlist simulation for a music streaming app.The Playlist class will contain a dynamic array of Song objects, and the Song class contains several pieces of information about a song. You will need to: 1) Finish the writing of two classes: Song and Playlist. The full header file for the Song class has been provided in a file called Song.h. 2) Write a main program (filename menu.cpp) that creates a single Playlist...
Please use C programming to write the code to solve the following problem. Also, please use the instructions, functions, syntax and any other required part of the problem. Thanks in advance. Use these functions below especially: void inputStringFromUser(char *prompt, char *s, int arraySize); void songNameDuplicate(char *songName); void songNameFound(char *songName); void songNameNotFound(char *songName); void songNameDeleted(char *songName); void artistFound(char *artist); void artistNotFound(char *artist); void printMusicLibraryEmpty(void); void printMusicLibraryTitle(void); const int MAX_LENGTH = 1024; You will write a program that maintains information about your...
Need this in C++ Goals: Your task is to implement a binary search tree of linked lists of movies. Tree nodes will contain a letter of the alphabet and a linked list. The linked list will be an alphabetically sorted list of movies which start with that letter. MovieTree() ➔ Constructor: Initialize any member variables of the class to default ~MovieTree() ➔ Destructor: Free all memory that was allocated void printMovieInventory() ➔ Print every movie in the data structure in...
Program: Playlist (C++) I'm having difficulty figuring out how to get the header file to work. You will be building a linked list. Make sure to keep track of both the head and tail nodes. (1) Create three files to submit. Playlist.h - Class declaration Playlist.cpp - Class definition main.cpp - main() function Build the PlaylistNode class per the following specifications. Note: Some functions can initially be function stubs (empty functions), to be completed in later steps. Default constructor (1...
Please help! I created a DMM program in C++ that stores a file into a doubly linked list. I created a function that loads the file.csv into a linked list which works fine and I need help on writing that file into the same file.. When I compile the store function, it just writes random numbers ex( 0:1875941888 -1 0). What must Store do? The store command writes the current records, in the dynamic doubly linked list, to the musicPlayList.csv...
Introduction Welcome to Rad.io, you've been hired to work on our music streaming app, think of it as Spotify only more rad! You're in charge of handling our customer’s song list. When a user selects a playlist it will load into the list a number of songs. Users can skip to the next song, move to the previous, they can select a song to play next or select a song to add to the end of their list. Objective You...
Introduction In this final programming exercise, you'll get a chance to put together many of the techniques used during this semester while incorporating OOP techniques to develop a simple song playlist class. This playlist class allows a user to add, remove and display songs in a playlist. The Base Class, Derived Class and Test Client Unlike the other PAs you completed in zyLabs, for this PA you will be creating THREE Java files in IntelliJ to submit. You will need...
In this lab, using C++, you will create an abstract data type, using a doubly-linked circular structure to store the values and links. You must create it by your own and not use any existing containers. You will need a QueueNode. You can use a struct for this, as each node will not have any associated functions. It will have members for data, and the next and previous pointers. Data will be positive integers. There will be no NULL pointers....
ONLY NEED THE DRIVER CLASS PLEASE!!! Domain & Comparator Classes: 0.) Design a hierarchy of classes, where the Media superclass has the artistName and the mediaName as the common attributes. Create a subclass called CDMedia that has the additional arrayList of String objects containing the songs per album. Create another subclass called DVDMedia that has the additional year the movie came out, and an arrayList of co-stars for the movie. 1.) The superclass Media will implement Comparable, and will define...