CS 262
Project 3
Songs, Playlists and Music Library
In order to further your expertise in the C programming language, you decide to write a program to keep track of the music you play on your computer. You have already ripped many of your favorite songs to your computer, but wish to make an easier way to play the music you want, in the order you want. The first step is to come up with a way to create play lists for your music. Coincidentally, the specifications of your CS 262 Project 3 creates a program that is exactly what you want to do! (Lucky you!). So, using the following specifications will get you started on your goal (after which, you can figure out how to actually play the songs in your play list.)
The playlist will be implemented using a singly linked list. Each node in the linked list represents a song, and it has several data members corresponding to various attributes of the song. Users should be able to create a playlist, add/remove songs to it, search and manipulate the list in convenient ways. Specifically, the playlist should support the following operations:
The structure representing a song-node will be the following:
typedef struct _songnode { char title[35]; char artist[35]; char album[35]; double duration; struct _songnode *next; } SongNode;
The user will browse a music library in order to find songs which can be added to the user's playlist.
The music library will be implemented using another singly linked list. The user can browse the music library by searching a particular song, or by viewing all songs in alphabetical order. The user may choose to add a song to the user's playlist, in which case, the song will be removed from the library and added to the playlist. If a user removes a song from his playlist, the song is inserted back to the music library in proper alphabetical order.
The following operations are supported in the music library:
At the start of the program, a text file will be read to create the music library. Each song will constitute 4 lines in the text file, with each line representing title, artist, album and duration, respectively. Your program will have to read this text file and create the music library by inserting each song information in to the singly linked list, in alphabetical order.
At the beginning, the program will create a music library by reading data from a given text file. The name of the text file will be passed as a command line argument. Your program will read information for each song from the text file and insert them in alphabetical order in a singly linked list. This singly linked list is your music library. Initially, the user will have an empty playlist and the music library. The user's playlist will also be a singly linked list. The program will present the user a menu, called the playlist menu.
The playlist menu will have the following options:
The options 3, 4, 5 and 6 ask the user to input a string as song title. If the user chooses option "7. Go to Music Library", then another menu will be displayed, called the library menu.
The library menu will have the following options:
The options 2 and 3 will take the song title as input from user. If the user choose to add a song to the playlist, the program will ask for the title of the song and it will do similar operations as "Search by title". If the song is found, a third menu will be displayed, called Add Song Menu.
This menu will have the following options:
Option 3 will ask the user again to input another non-negative integer value as position. Position values start from 0. If a user enters a negative number as position, the program should ask for a correct value. If the user enter a value larger than the number of songs in the list, then the song is added to the end of the list. Once a song has been selected by the user and added to the playlist, the entire playlist should be printed with an appropriate message. Then the Library Menu will be displayed again.
There are two main components in this project- the playlist and the music library. We first describe the implementation of the playlist.
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of