C++ programming uml diagrams

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

Lab-1

The goal of this lab is to better familiarize you with polymorphism and the factory design pattern, two key components in Assignment. To that end, you will construct a simple "Device Maker." The device will be made from a list of widgets in a text file that will be user-specified. You will need to create a widget factory to convert the name of the widget into the actual widget.

UML Diagrams

Let's start with the Widget and its derived classes:

188_Untitled.png

Note that Widget is declared as an interface. This means that all of Widget's class methods are pure virtual. Pure virtual methods do not have method bodies. Instead, we place the keyword "virtual" before the return type and set them to equal zero (yes, this makes little sense, but that's how C++ does it). For example, the getPrice method would look like:

virtual double getPrice() const = 0;

Defining methods as pure virtual tells C++ that the class' children will be responsible for actually implementing any real functionality. Note that Widget's children (Gear, Cog, Actuator, and Spring) add no additional functionality to Widget. Instead, they simply define the functionality as required by Widget. To that end, each getName() should just return the Widget's name (e.g. "Gear"). Prices for each widget are as follows:

  • Gear: $1.25
  • Cog: $1.35
  • Actuator: $3.50
  • Spring: $0.99

Device Class

Let's next look at the Device class:

1531_Untitled2.png

I'm using _component_counter to track the number of valid Widgets inside _components. Also, Device revisits some advanced concepts that you might've forgotten about. Note that _components is a Widget **. This means that _components is an array of pointers to Widgets (hence the double *). You will need to initialize this variable inside your constructor using the following snippet:

_components = new Widget*[100];

This tells C++ to dynamically create _components as an array of 100 Widget pointers. Because we've dynamically created an array of pointers, we finally get to create a useful destructor! In your destructor, you will need to use the delete keyword to delete your array of pointers:

delete[] _components;

Note that we use array syntax "[]" to tell C++ that we want to delete an array of dynamic pointers rather than just a single dynamic pointer.

Widget Factory

Finally, let's examine our Widget Factory:

611_Untitled2.png

Our factory has a single static method that returns a pointer to a dynamically created widget. To do so, you will need to examine the supplied text (it should contain the widget's name) and convert to the appropriate widget. In the case that an unrecognized name was supplied, simply return a NULL pointer.

 

Reference no: EM131231

Questions Cloud

Quantitative analysis : A busy landscaping supplies company sells wood chips for garden mulch. The mulch is sold by the cubic metre and delivered to households in a small truck.
Casemix : Explain the statement 'Auditors and Clinical Coders are required to be aware of Ethical Considerations'
Threads : Explain a complication that concurrent processing adds to an operating system.
Determine the tension in each string : Determine the tension in each string
C++ programming uml diagrams : The goal of this lab is to better familiarize you with polymorphism and the factory design pattern, two key components in Assignment
What will be the resultant pressure : What will be the resultant pressure when the stopcock is opened?
Determine the name of each pets owner : Evaluate the name of each pet's owner, the name and animal type of each pet, the street each owner lives on and the number of days that Larry needs to care for the animals for each owner
Create a complete limited entry decision table : Create a complete limited entry decision table
Velocity and radius of curvature : Strategy formulation presupposes a set of objectives and goals.

Reviews

Write a Review

C/C++ Programming Questions & Answers

  Write the code required to analyse and display the data

Calculate and store the average for each row and column. Determine and store the values for the Average Map.

  Calculate the trajectory of a soccer ball

Write a program to calculate the trajectory (flight path) of a soccer ball

  Implementation of classes

Implementation of classes Chart and BarChart. Class barChart chould display a simple textual representation of the data

  Loops and if conditions

Write a program that requests a password

  Convert celsius temperatures to fahrenheit temperatures

Write a C++ program that converts Celsius Temperatures to Fahrenheit Temperatures.

  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.

  Model-view-controller

Explain Model-View-Controller paradigm

  Iterative programming problem solving approaches

Write a recursive function void reverse ( ) that reverse a sentence

  Write a program to read a data file and extract parameters

Write a C/C++ program to read a data file and extract parameters. The program must obtain the filename via a command-line argument.

  Design a nested program

How many levels of nesting are there in this design?

  Write a webservices application

Write a webservices application that does a simple four function calculator

  Time conversion

Write a C++ program that takes an Eastern standard time in hours, minutes, and seconds,and prints it out in Central time, Mountain time, or Pacific time.

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