+1 (315) 557-6473 

Create a Program to Implement Menu Driven Program in C++ Assignment Solution.


Instructions

Objective
Write a c++ assignment program to implement menu driven program.

Requirements and Specifications

program to implement menu driven program in c++

Source Code

//============================================================================

// Name : Lab2-2.cpp

// Author : Your Name

// Version : 1.0

// Copyright : Copyright © 2017 SNHU COCE

// Description : Lab 2-2 Up to Speed in C++, Part 2

//============================================================================

#include

#include

#include

// FIXME (1): Reference the CSVParser library

using namespace std;

//============================================================================

// Global definitions visible to all methods and classes

//============================================================================

// forward declarations

double strToDouble(string str, char ch);

struct Bid {

string title;

string fund;

double amount;

Bid() {

amount = 0.0;

}

};

//============================================================================

// Static methods used for testing

//============================================================================

/**

* Display the bid information

*

* @param bid struct containing the bid info

*/

void displayBid(Bid bid) {

cout << bid.title << " | " << bid.amount << " | " << bid.fund << endl;

return;

}

/**

* Prompt user for bid information

*

* @return Bid struct containing the bid info

*/

Bid getBid() {

Bid bid;

cout << "Enter title: ";

cin.ignore();

getline(cin, bid.title);

cout << "Enter fund: ";

cin >> bid.fund;

cout << "Enter amount: ";

cin.ignore();

string strAmount;

getline(cin, strAmount);

bid.amount = strToDouble(strAmount, '$');

return bid;

}

/**

* Load a CSV file containing bids into a container

*

* @param csvPath the path to the CSV file to load

* @return a container holding all the bids read

*/

vector loadBids(string csvPath) {

// Define a vector data structure to hold a collection of bids.

vector bids;

// initialize the CSV Parser using the given path

csv::Parser file = csv::Parser(csvPath);

// loop to read rows of a CSV file

for (unsigned int i = 0; i < file.rowCount(); i++) {

// data structure to hold data from each row and add to vector

Bid bid;

bid.title = file[i][0];

bid.fund = file [i][8];

bid.amount = strToDouble(file[i][4], '$');

bids.push_back(bid);

}

return bids;

}

/**

* Simple C function to convert a string to a double

* after stripping out unwanted char

*

* credit: http://stackoverflow.com/a/24875936

*

* @param ch The character to strip out

*/

double strToDouble(string str, char ch) {

str.erase(remove(str.begin(), str.end(), ch), str.end());

return atof(str.c_str());

}

/**

* The one and only main() method

*/

int main(int argc, char* argv[]) {

// process command line arguments

string csvPath;

switch (argc) {

case 2:

csvPath = argv[1];

break;

default:

csvPath = "eBid_Monthly_Sales_Dec_2016.csv";

}

// Define a vector to hold all the bids

vector allBids;

// Define a timer variable

clock_t start;

clock_t end;

int choice = 0;

while (choice != 9) {

cout << "Menu:" << endl;

cout << " 1. Enter a Bid" << endl;

cout << " 2. Load Bids" << endl;

cout << " 3. Display All Bids" << endl;

cout << " 9. Exit" << endl;

cout << "Enter choice: ";

cin >> choice;

switch (choice) {

case 1:

cout << "Not currently implemented." << endl;

break;

case 2:

// Initialize a timer variable before loading bids

start = clock();

// Complete the method call to load the bids

loadBids("eBid_Monthly_Sales_Dec_2016.csv");

// Calculate elapsed time and display result

end = clock();

cout << "time: " << end - start << " milliseconds" << endl;

cout << "time: " << (end-start)*1.0/CLOCKS_PER_SEC << " seconds" << endl;

break;

case 3:

// Loop and display the bids read

vector bids = loadBids("eBid_Monthly_Sales_Dec_2016.csv");

for ( unsigned int i = 0; i < bids.size(); ++i) {

displayBid(bids[i]);

}

cout << endl;

break;

}

}

cout << "Good bye." << endl;

return 0;

}