Write song playlist class-object-oriented design principles

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

Q1) Write a song playlist class in C++ called "PlayList" using object-oriented design principles. The playlist should support the following ADT.

bool insert(string songtitle);
bool remove(string songtitle);
size_t size() const;
string get_next();
string get_rand();

The implementation should be based on an array of strings to store the song titles. The capacity should be 1024 entries. Duplicate song titles are not allowed. The constructor has to initialize the playlist to an empty list. The insert method adds a new song title to the list and returns true, but only if the song does not already exist and the playlist is not full. If it already exists or the list is full, the method returns false and does not add a second copy. Similarly, remove deletes the song from the play list if it exists and returns true. If the song title is not in the play lists, remove returns false. The size method returns the number of (distinct) songs currently in the playlist. The get_next member function returns null if the list is empty. Otherwise, it returns one song after another in the order in which they were inserted, one per invocation. Once at the end of the list, it wraps around and returns the first song again. The get_rand method returns a random song from the list or null if the list is empty. Calls to get_rand affect what song a subsequent call to get_next will return.

You need to write two files, playlist.cpp and playlist.h. The header file needs to include a concise description of the postcondition of each method (the preconditions are always "true"). The implementation needs to be efficient. For example, insert cannot be slower than O(n) where n is the number of songs in the list. All needed member variables should be private. You should also write (but not submit) a driver to test your class. Make sure to test extreme cases, including empty and full list

Reference no: EM1355111

Questions Cloud

Find the image distance and the magnification : Sherlock Holmes examines a clue by holding his magnifying glass (with a focal length of 15.0 cm) 10.0 cm away from an object. Find the image distance and the magnification. explain the image that he observes.
Organizational characteristics of 100 year old companies : What organizational characteristics do you think might explain 100-year longevity
Illustrate what do the economic indicators suggest : Illustrate what do the economic indicators suggest about the current economy.
Organizational effectiveness and corporations : Organizational effectiveness can be whatever top management defines it to be - Large corporations tend to use hybrid structures. Why?
Write song playlist class-object-oriented design principles : Write a song playlist class in C++ called "PlayList" using object-oriented design principles. The playlist should support the following ADT.The implementation should be based on an array of strings to store the song titles.
Prepare correct bank reconciliation : Prepare a correct bank reconciliation( Hint: Deduct the amount of the theft from the adjusted balance per books).
Explain why do you think it is important to distinguish : Explain Why do you think it is important to distinguish between employee and independent contractor and Which would you prefer?
In what direction does the current flow through the resistor : Does the pivot point (i.e., the triangle in the diagram upon which the ruler balances) exert a force on the ruler? Does it exert a nonzero torque about the pivot.
Accusations of witchcraft : In the past there were many horrors that passed as treatment. And the lobotomies, trepanning (holes in the head) and accusations of witchcraft were all associated with mental illness at one time or another.

Reviews

Write a Review

C/C++ Programming Questions & Answers

  Project

Unit 3 Individual Project SSCI210 – 1304B – 01 A typical individual who commits who commits hate crimes whether it is against or aimed at the Gay/lesbian community , the persons of color or the Jewish community, ( I mention these three because they a..

  Implement the delivery company

Implement the delivery company using the classes given in the class diagram above.

  Code to implement a staque

Write a C++ code to implement a Staque. Since the data structure is all about inserting and deleting numbers, it would be a good option to use a linked list to implement Staque.

  Techniques for information hiding and encapsulation

What techniques did you utilize for information hiding and encapsulation? Are there any improvements you would make? If so, what would they be?

  Write and test c program which outputs waveform

Write and test a C program which outputs waveform which switches from 10.0 kHz with a 50% duty cycle to 25.0 kHz with a 5% duty cycle every 5 seconds.

  Design a base class shape with virtual functions

Design a base class shape with virtual functions

  Prepare a linear support vector machine svm

Write a computer program to prepare a Linear Support Vector Machine SVM

  Assessment system of a university

Write a program for Assessment system of a University

  Implementation of sorting technique

Implementation of sorting technique

  Technical paper: memory management

Technical Paper: Memory Management, The intent of this paper is to provide you with an in depth knowledge of how memory is used in executing, your programs and its critical support for applications.

  Create a template class

Create a template class, SVector, that implements a constructor

  Create a program that maintains the required book catalog

Create a program that maintains the required book catalog for the circulation desk of a library.

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