Before starting this programming assignment, participants should be able to:
Analyze a basic set of requirements for a problem
Compose C language programs
Compile a program using Microsoft Visual Studio 2015
Create basic test cases for a program
Apply arrays, strings, and pointers
Summarize differences between array notation and pointer notation
Apply pointer arithmetic
Apply basic string handling library functions
Define and implement structures in C
Summarize the operations of a linked list
III. Overview & Requirements:

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
(
“Swift, Taylor”,1989,Shake it Off,Pop,3:35,12,3_x000D_
Drake,NOTHING WAS THE SAME,Own it,Rap,3:23,3,3_x000D_
Drake,YOU WELCOME,The Motto,Rap,4:13,7,4_x000D_
“Perri, Christina”,HEAD OF HEART,Trust,Pop,2:35,3,5_x000D_
“Bieber, Justin”,PURPOSE,No Sense,Pop,4:12,6,1_x000D_
Eminem,SHADYXV,Vegas,Rap,3:37,8,3_x000D_
Adele,25,Remedy,Pop,4:11,24,4_x000D_
“Swift, Taylor”,RED,Stay Stay Stay,Pop,4:42,5,1_x000D_
“Brooks, Garth”,FRESH HORSES,The Old Stuff,Country,2:57,11,2
)
into a dynamic doublylinked 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 block digram will be attached.
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

Your project must contain at least one header file (a .h file), two C source files (which must be .c files), and a local copy of the .csv file.

 
Do you need a similar assignment done for you from scratch? We have qualified writers to help you. We assure you an A+ quality paper that is free from plagiarism. Order now for an Amazing Discount! Use Discount Code “Newclient” for a 15% Discount!NB: We do not resell papers. Upon ordering, we do an original paper exclusively for you.

The post programming-assignment-16 appeared first on Essay Fount.


What Students Are Saying About Us

.......... Customer ID: 12*** | Rating: ⭐⭐⭐⭐⭐
"Honestly, I was afraid to send my paper to you, but you proved you are a trustworthy service. My essay was done in less than a day, and I received a brilliant piece. I didn’t even believe it was my essay at first 🙂 Great job, thank you!"

.......... Customer ID: 11***| Rating: ⭐⭐⭐⭐⭐
"This company is the best there is. They saved me so many times, I cannot even keep count. Now I recommend it to all my friends, and none of them have complained about it. The writers here are excellent."


"Order a custom Paper on Similar Assignment at essayfount.com! No Plagiarism! Enjoy 20% Discount!"