Design code for a texted-based music player application


Assignment Task: Text Music Player with Menu

Assignment Overview:

This task allows you to extend your text-interface music application to provide a menu for users to use to play music in the Terminal.

Assignment Aim: To design code that integrates various modules.

Task: Demonstrate the use of: Arrays; Functions; File Handling, Structured Design in the context of a Texted-based Music Player application.

Instructions:

In this task you will extend the implementation of your previous Text-based Music Player to include a menu system and additional functionality. Your tutor is your client for this application. It must aim to meet the client's requirements as specified below along with any clarifications provided by him/her.

Part A: Core Requirements - All students have to complete this part.

You need to create a Text Based Music application, which has the following functionality.

Menu system

When the program runs, it allows user to switch in between 5 menu options:

WELCOME TO MU IC PLAYER - MAIN MENU

1. Read in Album

2. Di play Album

3. Select an Album to Play

4. Update an existing Album

5. Exit the Application

Enter your election:

Menu option 1 should prompt the user to enter a filename of a file.

MENU OPTION 1: READ IN ALBUM

The music file (already) contains the following information:

1. Total number of albums in the music file (e.g. 2)

2. The name of first album

3. The artist name of first album

4. The genre of first album

5. The number of tracks (up to a maximum of 15) of first album

6. The name and file location (path) of each track of first album.

7. The name of second album

8. The artist name of second album

9. The genre of second album

10. The number of tracks (up to a maximum of 15) of second album

11. The name and file location (path) of each track of second album.

Menu option 2 should allow the user to either display all albums or all albums for a particular genre. The albums should be listed with a unique album number which can be used in Option 3 to select an album to play. The album number should serve the role of a 'primary key' for locating an album. But it is allocated internally by your program, not by the user.

Menu option 3 should prompt the user to enter the primary key (or album number) for an album as listed using Menu option 2. If the album is found the program should list all the tracks for the album, along with track numbers. The user should then be prompted to enter a track number. If the track number exists, then the system should display the message "Playing track " then the track name, " from album " then the album name. You may or may not call an external program to play the track, but if not the system should delay for several seconds before returning to the main menu.

Menu option 4 should allow the user to enter a unique album number and change its title or genre. The updated album should then be displayed to the user and the user prompted to press enter to return to the main menu (you do not need to update the file at this level).

At this level minimum validation is required. Just make sure your program does not crash if incorrect values are entered and that all fields have an expected value (e.g.: perhaps have a default genre of "Null" in case the user enters and incorrect value for genre).

Part B: Optional Requirements

The different grades achievable for Pass, which will be marked for Doubtfire with "stars indicated below:

1. Basic Pass Level - 53

2. Middle Pass Level - 55

3. High Pass level - 57

Basic Pass Level

By completing above Part A, you already got the Basic Pass level for the grade of 53.

Middle Pass Level

To archive the Middle Pass level for grade of 57, you are required to have all the features of the Basic Pass level (as above) done, and with the additional/changed functionality for the option shown below:

Menu option 5: Exit needs additional functionality. If the user has changed any of the album information since the application started, then on exit you need to display the message "Updating album file information" and you need to rewrite all the album and track information into the original file name such that the file can be loaded (with the new information) next time the application is run.

At this level more validation is required. Use functions like read_integer_range() that will only accept an integer input in the valid range for both the number of tracks and the genre, otherwise prompting the user to re-enter an acceptable value. Make sure your program does not crash if the file is not found.

High Pass Level

This level requires all the functionality of the previous two levels above, but in addition you need to add the following functionality to the options as indicated below:

Menu Option 3: You need to add the ability to search for an album based on genre or title.

Menu Option 4: The ability to update track information, including title and filename.

At this level basic validation is required. Use functions like read_integer_range() that will only accept an integer input in the valid range for both the number of tracks and the genre.

Once done, proceed with the submission (same as previous task). Make sure you start this task early so that you can have time to fix it when your tutor required to get it marked off before the deadline.

You now have another portfolio piece. This will help demonstrate your learning from the unit.

Whenever you get stuck in any assignment problem related to the above-mentioned topic, then it is prudent to take online assistance from Introduction to Programming Assignment Help service for better academic grades.

Tags: Introduction to Programming Assignment Help, Introduction to Programming Homework Help, Introduction to Programming Coursework, Introduction to Programming Solved Assignments, File Handling Assignment Help, File Handling Homework Help

Request for Solution File

Ask an Expert for Answer!!
Programming Languages: Design code for a texted-based music player application
Reference No:- TGS03032595

Expected delivery within 24 Hours