TechPadu Sdn. Bhd. is a software house company developing commercial software of different types. As a senior software developer, you have been tasked to lead new project of developing a music management application. For that, you are required to produce a prototype of the intended application.
In general, the application will allow the user to add songs into their collection. In addition, user may also create playlists of songs that they wanted. User may create and keep several playlists. Playlist can only be created from songs that are already available in the collection. One song can be added into several playlists. The figure below shows the example of the collection and playlists.
Implementing appropriate data structure to store and manage the songs collection and playlists, you are required to develop a prototype using C++. The songs information that need to be stored include title, singer and duration. You may include any relevant information to be stored. Your prototype should include the following functionalities:
- Songs collection
- Add songs Add a song, with appropriate information, into the songs collection. 1.2 Display songs Display all songs available in the collection
- Delete songs Delete a particular song in the collection. Playlist must be properly updated.
- Playlist search Search and display all playlists that contains a specific song.
- Playlist
- Create playlist Create a new playlist.
- View playlist View all available playlists.
- Add songs Add songs from the songs collection into a particular playlist.
- View songs View songs from a particular playlist.
- Remove songs Remove a song from a particular playlist.
- Playlist navigation Navigating a particular playlist.
- Delete playlist Delete a particular playlist.
Assignment Requirements
You are required to submit a softcopy of assignment report and source code. The report should contain:
- Detailed explanation of the data structures and classes created, with proper justification on your decisions (include source code defining classes, data members, and method headers only).
- Brief explanation about the algorithms used to implement the functionalities stated above (include code snippets of important parts of implementation).
- Source code of the main function, with screenshots showing programs input and output interactions.
You need to submit your proposal on the LMS in week 8. The proposal should include the proposed data structure together with related algorithms. The algorithms should be presented in flowchart or pseudocode. This proposal will contribute 20% for the final assignment marks (under Design criteria).
You have to present your assignment solution and answers to the lecturer during a Q&A session that will be conducted after the hand-in date.
If you use some code which has been taken or adapted from another source (book, magazine, internet, forum, etc.) then this must be cited and referenced using Harvard Referencing Style within your source code, and this must be mentioned explicitly in the report. Failure to reference code properly will be treated as plagiarism. Automated tools for checking code similarities among submissions will be used, and all detected cases will be treated as cheating. Assessment marks are divided as follows:
Design | Implementation | Documentation & Presentation | |
Marks | 20 | 60 | 20 |
What You Need to Hand In?
- You are required to hand in the individual assignment report on or before the due date mentioned on the cover sheet of the assignment.
- A softcopy of the report (in PDF format), in addition to the C++ files of the programs. The organization of files and folders must adhere to the following instructions precisely:
All the source codes (.cpp and .h) should be zipped into one file and named following the above format. Make sure to DELETE all non-source-code files, including executables (*.exe).
- You should present an executable solution during Q&A session to demonstrate program execution, the working of the data structure, your understanding of the code, and ability to modify / fix it.
Reviews
There are no reviews yet.