Model-view-controller

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

Many bank ATM machines have recently added the ability to dispense cash with- drawals in multiple bill denominations chosen by the customer. For example, the new touchscreen Chase ATM machines allow the customer to withdraw bills in denominations of $100, $20, $5, and $1. Below is a schematic diagram of what a screen might look like for a customer who is requesting a with-drawal of $179.

Although I am not privy to exactly how the programming is done for this kind of machine, I suspect that it is implemented using some variation of the Model-View-Controller (MVC) paradigm.

1827_Model-View-Controller.png

The model object(s) represents all the data and business logic that is driving the entire withdrawal workflow. The view object pulls the data it displays from the model(s). The controller object responds to user interaction events (such as pushing a button) by calling methods on the appropriate model objects.

Define a single class called Withdrawal that could serve as a model for the ATM machine. No view or controller classes need to be defined. The program's main function could serve as a text-based user interface substitute for a view and controller. Or it can simply instantiate (construct) a Withdrawal object, and call various methods on it to adequately test the program.

Withdrawal Class Data Members

An instance of the Withdrawal class should have three data members (corresponding to the light blue shaded areas in the UI illustration above): amount_ an integer representing the withdrawal amount bill_denominations_ a vector of integers such as [100, 20, 5, 1] bill_quantities_ a vector of integers such as [1, 3, 2, 4]

Doxygen Comments

Students should annotate each public member function with Doxygen comments using the following tags:

@brief one line summary describing what the function does
@param describe the meaning of each parameter
@return describe the meaning the return value

For example the C library function pow(double x, double y) might be documented as:

/**
* @brief exponentiation function
* @param x the base of the exponentiation
* @param y the power the base is raised to
* @return x raised to the power y
*/

Withdrawal Class Implementation

The most difficult member function to implement is the constructor itself. Note that it must initialize all three data members, but the constructor is only supplied with two parameters. The "extra" data member (bill_quantities_) must be calculated from the two parameters using logic. The simplest way to do this is to repeated use integer division (/) and remainder (%) operations.

The getter member functions are routine. The calculator member functions are fairly straightforward. The controller will call the Nudge member function when a ⊕ or ? button is pushed and will modify the element of the bill_quantities_ data member with the supplied index by the given delta.

The main Function

As mentioned previously, the main function can either be:

- an interactive program; or

- a non-interactive program that constructs one or more instances of the Withdrawal class and calls various member functions on them.

Reference no: EM13558

Reviews

Write a Review

 

C/C++ Programming Questions & Answers

  Write a program using vectors and iterators

Write a program using vectors and iterators that allows a user to maintain a personal list of DVD titles

  Write a webservices application

Write a webservices application that does a simple four function calculator

  Iimplement a client-server of the game

Iimplement a client-server version of the rock-paper-scissors-lizard-Spock game.

  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.

  Create program that uses functions and reference parameters

Create program that uses functions and reference parameters, and asks user for the outside temperature.

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