Best代写-最专业靠谱代写IT | CS | 留学生作业 | 编程代写Java | Python |C/C++ | PHP | Matlab | Assignment Project Homework代写

C++代写 | Assignment 2 Mimics A Podcast Network

C++代写 | Assignment 2 Mimics A Podcast Network


1 Submission Instructions

Submit to Brightspace on or before the due date a compressed file (.tar or .zip) that includes

1. Header and source files for all classes instructed below.

2. A working Makefile that compiles and links all code into a single executable. One has been provided for you,
but you may modify it or use your own.

3. A README file with your name, student number, a list of all files and a brief description of their purpose,
compilation and execution instructions, and any additional details you feel are relevant.

2 Learning Outcomes

In this assignment you will learn to

1. write an application that is (mostly) separated into into control, view, entity, and collection object classes.

2. use a UML diagram to implement classes and the interaction between between classes.

3. implement a \deep copy” of nested objects.

3 Overview

You will be writing C++ code that mimics a podcast network. Podcasts have a title and a host and a data structure
for storing 0 or more Episodes. Each episode will have some metadata and some content (in our examples the
content consists of lorem ipsum gibberish). Episodes may then be \played” (i.e., have their content printed to the

The Network itself will consist of 0 or more Podcasts as well as 0 or more Subscribers. A Client class will
be able connect to the Network as long as the Client name matches a Subscriber name. Once they connect they
can \stream” episodes from any podcast. In addition, a Client will be able to \download” podcasts. This copies
the podcast to \local storage”, which, in this exercise, is a data structure in the Client class. Subscribers can then
play the podcast locally, and this should work even if the network deletes the original podcast (that is, you will be
doing a deep copy of the Podcast).

Instead of connecting remotely, there is a TestControl object to test the functionality of the Network and
Client classes by simulating a remote connection. This class and the test functions are written for you. You will
then be able to run various tests using the TestControl and TestView objects.

You will write these classes using a UML diagram for guidance.

4 UML Diagram

5 Classes Overview

This application will consist of 7 classes. In addition to the classes shown in the diagram above, there is a PodArray
class. The classes are listed below along with their respective categories. You should use the instructions and the
UML diagram to construct your app.

1. The Subscriber class (Entity object):
(a) Contains information about the Subscriber

2. The Episode class (Entity object):
(a) Contains information about the Episode
(b) Plays content through a View object, i.e., std::cout

3. The Podcast class (Entity object):
(a) Contains information about the Podcast
(b) Maintains a collection of Episodes

4. The PodArray class (Collection object):
(a) Data structure for Podcasts.

5. The Network class (Control object):
(a) Manages collections of Podcasts and Subscribers
(b) Provides services to the Client (such as download and stream).
(c) Prints error information to std::cout

6. The Client class (Control object):
(a) Interacts with the Network to stream episodes or download podcasts
(b) Manages a collection of downloaded Podcasts

7. The TestControl class (Control object):
(a) Controls the running of tests on your application
(b) Interacts with TestView

8. The TestView class (View object):
(a) Takes input from the user performing the tests

In addition, we will be using std::cout as the main View output object for error reporting.