logo Hurry, Grab up to 30% discount on the entire course
Order Now logo

Ask This Question To Be Solved By Our ExpertsGet A+ Grade Solution Guaranteed

expert
Mohammad KaifAccounting
(5/5)

994 Answers

Hire Me
expert
Paramjeet KaurManagement
(5/5)

881 Answers

Hire Me
expert
Rakesh GillComputer science
(5/5)

947 Answers

Hire Me
expert
Jefferson KnowlesSociology
(5/5)

788 Answers

Hire Me
C Programming

For this assignment you will write a basic digital music manager DMM program must have a text-based interface which allows the user to select from a main menu

INSTRUCTIONS TO CANDIDATES
ANSWER ALL QUESTIONS

Digital Music Manager &

Doubly Linked Lists

I.  Learner Objectives:

 

At the conclusion of this programming assignment, participants should be able to:

  • Design and implement a dynamic doubly linked list

  • Allocate and de-allocate memory at runtime

  • Manipulate links in a dynamic list

  • Insert items into a dynamic linked list

  • Delete items from a dynamic linked list

  • Edit items in a dynamic linked list

  • Traverse a dynamic linked list

II.  Prerequisites:

 

Before starting this programming assignment, participants should be able to:

  • Analyze a basic set of requirements for a problem

  • Compose C language programs

  • 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:

  • load

  • store

  • display

  • insert

  • delete

  • edit

  • sort

  • rate

  • play

  • shuffle

  • 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 attached to the assignment on blackboard 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

  2. Print all records that match an

 

  • 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.

Related Questions

. The fundamental operations of create, read, update, and delete (CRUD) in either Python or Java

CS 340 Milestone One Guidelines and Rubric  Overview: For this assignment, you will implement the fundamental operations of create, read, update,

. Develop a program to emulate a purchase transaction at a retail store. This  program will have two classes, a LineItem class and a Transaction class

Retail Transaction Programming Project  Project Requirements:  Develop a program to emulate a purchase transaction at a retail store. This

. The following program contains five errors. Identify the errors and fix them

7COM1028   Secure Systems Programming   Referral Coursework: Secure

. Accepts the following from a user: Item Name Item Quantity Item Price Allows the user to create a file to store the sales receipt contents

Create a GUI program that:Accepts the following from a user:Item NameItem QuantityItem PriceAllows the user to create a file to store the sales receip

. The final project will encompass developing a web service using a software stack and implementing an industry-standard interface. Regardless of whether you choose to pursue application development goals as a pure developer or as a software engineer

CS 340 Final Project Guidelines and Rubric  Overview The final project will encompass developing a web service using a software stack and impleme