Write a digital music manager

Assignment Help C/C++ Programming
Reference no: EM13670733

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 arrange our music collection based attributes such as artist, album title, song title, genre, song length, number times played, and rating. For this assignment you will write a digital music manager (DMM).

Your DMM program must have a text-based interface which allows the user to select from a menu of options including: load, store, display, insert, delete, edit, sort, rate, and exit. The "load" option reads records from a file into a dynamic doubly linked list. The "store" command writes records, in a dynamic doubly linked list, to a file. "Display" prints records, and its attributes to the screen. This command must print either all records or a single record based on a search field. A search field may be any of the attributes belonging to a record. If a search field matches multiple records, then print the first match to the screen.

The "insert" option collects information for each new song record and attributes from the user. The new song record must be placed into the list based on a selected sort option. By default, songs are inserted into the list alphabetically (‘a' - ‘z') according to artist. Other possible "sort" options include alphabetical ordering based on genre, or increasing numeric value based on rating. "Delete" removes a record from the list. Deletion is based on song title. The "edit" option must allow the user to find a record in the list with any search field. The user may modify any of the attributes in the record. The "rate" action 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. Lastly, "exit" saves the most recent list to a file.

A record is a struct type which consists of the following attributes:

1. Artist - a string
2. ?Album title - a string
3. ?Song title - a string
4. ?Genre - a string
5. ?Song length - a struct type consisting of seconds and minutes, both integers
6. ?Number times played - an integer
7. ?Rating - an integer (1 - 5) 

IV. Logical Block Diagram

The logical block diagram for your doubly linked list should look like the following:

285_Digital music manager.png

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.

Modify your doubly linked list implementations for your DMM so that last node in the list points to the first node, and the first node points to the last node. Hence, there is no longer a first or last node. This list is now called "circular". Overall, it's called a circular doubly linked list. Any one of the nodes may by the start node!

Reference no: EM13670733

Questions Cloud

Identifying and discussing technological improvements : Identify the type of breach and identify and explain how the breach occurred (or suspicions by authorities as to how it may have occurred)
Find the electric field at the location of the givne charge : A 4.0 C charge experiences a 45.0i Newton force. Find the electric field at the location of the 4.0 C charge
Evaluate what is the flux through the surface : A flat 1.0 m2 surface is vertical at x= 2.0 meter and parallel to the yz-plane. Evaluate the flux through the surface if it is placed in a uniform electric field given by E = 29.0i +42.0j +62.0k N/C
Compute the size of the semi major axis of this planet orbit : Iota Draconis is the eighth brightest star in the constellation Draco. Observations show that a planet, with an orbital period of 1.5 year, is orbiting this star. Compute the size of the semi major axis of this planet's orbit
Write a digital music manager : Your DMM program must have a text-based interface which allows the user to select from a menu of options including: load, store, display, insert, delete, edit, sort, rate, and exit. The "load" option reads records from a file into a dynamic doubly..
Evaluate what speed does the ball have : A wrecking ball swings at the end of an 11.0 meter cable on a vertical circular arc. Evaluate what speed vf does the ball have when the cable makes an angle of 17.0 degree with respect to the vertical
Evaluate what is kinetic energy of ball at its highest point : A 47.0 gram golf ball is driven from the tee with an initial speed of 58.0 m/s and rises to a height of 24.6 meter. Ignore air resistance and evaluate the kinetic energy of ball at its highest point
Compute what is the current in the primary coil : A step-down transformer (turns ratio = 1:7) is used with an electric train to reduce the voltage from the wall receptacle to a value needed to operate the train. Evaluate what is the current in the primary coil
Determine how long is it before seal slides back into water : A leopard seal jumps onto an uphill ice flow at 7 m/s. The ice is flat but sloped at 30o to the horizontal. Determine how long is it before the seal slides back into the water

Reviews

Write a Review

C/C++ Programming Questions & Answers

  Need a program that has the user enter a string

Need a program that has the user enter a string. The program will test to see if its a exact palindrome like "civic" or "level". then it should test if its an inexact palindrome like "a nut for a jar of tuna".

  Machine that i would like to know

Let's say I have a machine that I would like to know, on average, how much it runs throughout a given day through a percentage value. Every 30 seconds, I will have a device to record the current temperature of the machine. If the machine increases..

  Randominrange() function that accepts two integer

Write a randomInRange() function that accepts two integer parameters. The parameters will represent the low number and the high number (both inclusive) in the random range. For example, when the function receives 3 and 8.

  Implemented a regular binary search tree

In Computer Science I, you implemented a regular binary search tree. Due to your busy schedule, you've decided that it would be best if you could simply reuse this code without any changes. You realize that your code would ONLY work for Arup's ass..

  How a base version of this assignment works

For this assignment you are to create an interactive moving sign in the context of a cityscape street scene. Click the link below to see how a base version of this assignment works. Type a message in the long blank slot at the top left, and then clic..

  What are the primary differences between object-oriented

1. what is instruction explosion?2. what are the primary differences between object-oriented programming languages and

  Write a program that will represent an axis-aligned

Write a program that will represent an axis-aligned right triangle in the x-y plane as a Class. A right triangle has a right angle (90-degree angle) and two sides adjacent to the right angle, called legs. See http://en.wikipedia.org/wiki/Right_tri..

  Store a list of student info

Store a list of student info, (id number, First name and Last name) using a link list. The ID is the key field. The program should implement a linked list using arrays.The program should process the following operations

  Write a function that returns the day of the year

Write a function day_of_year(month, day, year) that returns the day of the year (an integer between 1 and 366) specified by the three augments.

  Print out the sum of all numbers, the average

Write a program that reads in a list of integer numbers and print out the sum of all numbers, the average, the lowest and the highest value entered. The first input number indicates how many numbers the program is attempting to read

  Write a function named largest which will receive the array

Write a function named largest which will receive the array as input and return the variable LargestNumber.

  Implement the delivery company using the classes given in

implement the delivery company using the classes given in the class diagram above. construct a cpp file named

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd