Add created loadOrders function and #pragma once to avoid multiple inclusions

This commit is contained in:
Lev
2021-05-22 00:14:28 -05:00
parent 1a7fc3b2d7
commit 99f483085e
6 changed files with 213 additions and 0 deletions

View File

@ -0,0 +1,135 @@
#include "MerkelMain.h"
#include <iostream>
MerkelMain::MerkelMain()
{
init();
}
void MerkelMain::init()
{
loadOrderBook();
int input;
while(true)
{
printMenu();
input = getUserOption();
processUserOption(input);
}
}
void MerkelMain::loadOrderBook()
{
orders.push_back( OrderBookEntry{
10000,
0.002,
"2020/03/17 17:01:24.884492",
"BTC/USDT",
OrderBookType::bid});
orders.push_back( OrderBookEntry{
50000,
0.002,
"2020/03/17 17:01:24.884492",
"BTC/USDT",
OrderBookType::bid});
}
void MerkelMain::printMenu()
{
// 1 print help
std::cout << "1: Print help" << std::endl;
// 2 print exchange stats
std::cout << "2: Print exchange stats" << std::endl;
// 3 make an offer
std::cout << "3: Make an offer" << std::endl;
// 4 make a bid
std::cout << "4: Make a bid " << std::endl;
// 5 print wallet
std::cout << "5: Print wallet " << std::endl;
// 6 continue
std::cout << "6: Continue" << std::endl;
std::cout << "==========" << std::endl;
std::cout << "Enter an option: " << std::endl;
}
void MerkelMain::printHelp()
{
std::cout << "Help - Your aim is to analyze the market, make bid and offers and make money." << std::endl;
}
void MerkelMain::printMarketStats()
{
//std::cout << "Market looks good" << std::endl;
std::cout << "OrderBook contains " << orders.size() << " entries." << std::endl;
std::cout << orders[0].price << std::endl;
std::cout << orders[1].price << std::endl;
}
void MerkelMain::enterOffer()
{
std::cout << "Make an offer - Enter the amount: " << std::endl;
}
void MerkelMain::enterBid()
{
std::cout << "Make a bid - Enter the amount: " << std::endl;
}
void MerkelMain::printWallet()
{
std::cout << "Your wallet is empty. " << std::endl;
}
void MerkelMain::goToNextTimeFrame()
{
std::cout << "Going to next time frame. " << std::endl;
}
int MerkelMain::getUserOption()
{
int userOption;
std::cin >> userOption;
std::cout << "You chose: " << userOption << std::endl;
return userOption;
}
void MerkelMain::processUserOption(int userOption)
{
if (userOption == 0) // bad input
{
std::cout << "Invalid choice. Choose 1-6" << std::endl;
}
if (userOption == 1) // Option 1 - Help
{
printHelp();
}
if (userOption == 2) // Option 2 - Stats
{
printMarketStats();
}
if (userOption == 3) // Option 3 - Offer
{
enterOffer();
}
if (userOption == 4) // Option 4 - Bid
{
enterBid();
}
if (userOption == 5) // Option 5 - Wallet
{
printWallet();
}
if (userOption == 6) // bad input
{
goToNextTimeFrame();
}
return;
}

View File

@ -0,0 +1,24 @@
#pragma once
#include <vector>
#include "OrderBookEntry.h"
class MerkelMain
{
public:
MerkelMain();
private:
/* Starts the sim */
void init();
void loadOrderBook();
void printMenu();
void printHelp();
void printMarketStats();
void enterOffer();
void enterBid();
void printWallet();
void goToNextTimeFrame();
int getUserOption();
void processUserOption(int userOption);
std::vector<OrderBookEntry> orders;
};

View File

@ -0,0 +1,18 @@
#include "OrderBookEntry.h"
OrderBookEntry::OrderBookEntry
(
double price,
double amount,
std::string timestamp,
std::string product,
OrderBookType orderType
)
:
price{price},
amount{amount},
timestamp{timestamp},
product{product},
orderType{orderType}
{
}

View File

@ -0,0 +1,26 @@
#pragma once
#include <string>
enum class OrderBookType
{
bid,
ask
};
class OrderBookEntry
{
public:
OrderBookEntry
(
double price,
double amount,
std::string timestamp,
std::string product,
OrderBookType orderType
);
double price;
double amount;
std::string timestamp;
std::string product;
OrderBookType orderType;
};

View File

@ -0,0 +1,10 @@
#include <iostream>
#include <string>
#include <vector>
#include "OrderBookEntry.h"
#include "MerkelMain.h"
int main()
{
MerkelMain app{};
}