From 23144deb0433d8967f01a8090bd3b378dfcb02fb Mon Sep 17 00:00:00 2001 From: MassiveAtoms Date: Mon, 22 Jul 2019 08:57:53 -0300 Subject: [PATCH] intergration --- Interface.cpp | 101 ++++++++++++++++++++++++++++---------------------- main.cpp | 14 +------ 2 files changed, 59 insertions(+), 56 deletions(-) diff --git a/Interface.cpp b/Interface.cpp index 8989abc..27e06c9 100644 --- a/Interface.cpp +++ b/Interface.cpp @@ -6,13 +6,12 @@ // cin.ignore(10000, '\n'); // so it skips to the next newline, in essence clearing the cin buffer - void interface(vector& spots) { /* string introduction = "P A R K M A N N E"; //logo animation, disable during testing text_animation(introduction, 50); */ - __label__ exit; + __label__ exit; cout << "\nWelcome to the parking system. Please login..."; int id; string password; @@ -22,11 +21,12 @@ void interface(vector& spots) { Customer c = query_customer_with_id(id); cout << "\nEnter your password: "; std::getline(cin, password); - + while (!(verify_password(c.password, password))) { cout << "ERROR: wrong password. Please retype your password or type [x] to exit:\n"; std::getline(cin, password); - if(password=="x")goto exit; + if (password == "x") + goto exit; } if (query_role_customer(id) == 1) { interface_admin(spots); @@ -35,16 +35,17 @@ void interface(vector& spots) { } else { cout << "ERROR ROLE_INVALID!"; } - exit:; +exit:; } void interface_member(vector& spots, Customer& c) { __label__ begin, exit; cout << "\nLogged in succesfully!\n"; - - begin: - cout <<"Hello! "<> option; cin.ignore(10000, '\n'); @@ -73,12 +74,12 @@ void interface_member(vector& spots, Customer& c) { break; } goto begin; - exit:; +exit:; } void interface_admin(vector& spots) { - __label__ begin,exit; - begin: + __label__ begin, exit; +begin: cout << "\nWelcome to the admin interface\n"; cout << "\n[1] Reports & analytics"; cout << "\n[2] Parking spots"; @@ -94,7 +95,8 @@ void interface_admin(vector& spots) { cout << "[2] See weekly report of ALL parking spots\n"; cout << "[3] See monthly report of a specific parking spot\n"; cout << "[4] See weekly report of a specific parking spot\n"; - cout << "[5] Return\n"; + cout << "[5] See monthly report of a specific customer\n"; + cout << "[6] See weekly report of a specific customer\n"; cout << "Enter option number: "; int option_1; cin >> option_1; @@ -116,11 +118,16 @@ void interface_admin(vector& spots) { report_single_spot(true); break; } - case 5:{ - goto begin; + case 5: { + report_customer(0); break; } - break; + case 6: { + report_customer(0, true); + break; + } + default: + break; } } case 2: { @@ -140,7 +147,7 @@ void interface_admin(vector& spots) { new_parkspot(spots); break; } - case 3:{ + case 3: { goto begin; break; } @@ -166,22 +173,24 @@ void interface_admin(vector& spots) { new_admin(); break; } - case 3:{ + case 3: { goto begin; break; } default: break; } - case 4: {goto exit;break;} + case 4: { + goto exit; break; + } break; } default: break; } goto begin; - exit:; +exit:; } // --------- individual things. @@ -192,7 +201,7 @@ void park(Customer& c, vector& spots) { if (!(c.parked())) { cout << "The following spots fit your vehicle and are available: \n"; for (Park_spot i : spots) { - if ((i.v_type == c.vehicle)&(i.taken==false)) { + if ((i.v_type == c.vehicle) & (i.taken == false)) { cout << i.id << ", "; } } @@ -200,14 +209,14 @@ void park(Customer& c, vector& spots) { cout << "\nWhere do you want to park? Or type [0] to exit."; int parkID; cin >> parkID; - if (!parkID)goto exit; + if (!parkID) + goto exit; cin.ignore(10000, '\n'); for (Park_spot& i : spots) { if (i.id == parkID) { - if (verify()) - { - i.clock(c); - cout << "You have parked sucessfully!"; + if (verify()) { + i.clock(c); + cout << "You have parked sucessfully!"; } } } @@ -225,7 +234,7 @@ void park(Customer& c, vector& spots) { cout << "OK, have a nice day."; // exit to customer login } } - exit:; +exit:; } void new_customer() { @@ -245,7 +254,8 @@ void new_customer() { std::getline(cin, password); Customer newcustomer{name, password, Vehicle_type(vtype), telephone, role}; cout << "\nNew customer sucessfully created\n"; - if (verify())newcustomer.update_db(); + if (verify()) + newcustomer.update_db(); } void new_admin() { @@ -262,7 +272,8 @@ void new_admin() { std::getline(cin, password); Customer newcustomer{name, password, Vehicle_type(vtype), telephone, role}; cout << "\nNew customer sucessfully created\n"; - if(verify())newcustomer.update_db(); + if (verify()) + newcustomer.update_db(); } void new_parkspot(vector& spots) { @@ -271,8 +282,10 @@ void new_parkspot(vector& spots) { cin >> vtype; cin.ignore(10000, '\n'); Park_spot newspot{Vehicle_type(vtype)}; - if(verify()){spots.push_back(newspot); - cout << "New parking spot sucessfully created.\n";} + if (verify()) { + spots.push_back(newspot); + cout << "New parking spot sucessfully created.\n"; + } } // time stuff----------------------------------------------------- @@ -310,16 +323,16 @@ pair create_week_period() { return period; } -bool verify(void) -{ -string ver; -std::cout<<"\nAre you sure you want to commit these actions?" - "\n[No] Revert." - "\n[Yes] Commit."; -std::cin>>ver; -if (ver=="YES"|ver=="Yes"|ver=="yes") return true; -else return false; - +bool verify(void) { + string ver; + std::cout << "\nAre you sure you want to commit these actions?" + "\n[No] Revert." + "\n[Yes] Commit."; + std::cin >> ver; + if (ver == "YES" | ver == "Yes" | ver == "yes") + return true; + else + return false; } // ------------------------------ report stuff @@ -347,7 +360,7 @@ void report_single_spot(bool weekly) { if (weekly) { period = create_week_period(); // remove the pair } else { - period = create_month_period(); + period = create_month_period(); } reports_from_parkspot(spotID, period); } @@ -362,9 +375,9 @@ void report_customer(int customerID, bool weekly) { } pair period; if (weekly) { - period = create_week_period(); + period = create_week_period(); } else { - period = create_month_period(); + period = create_month_period(); } reports_from_customer(customerID, period); } \ No newline at end of file diff --git a/main.cpp b/main.cpp index 579c2c1..13bd1a6 100644 --- a/main.cpp +++ b/main.cpp @@ -1,5 +1,5 @@ -#include "headers/Interface.h" +#include "headers/Interface.h" /* Code structure is like this: @@ -45,19 +45,9 @@ static vector parking_spots = populate_spots(); static vector park_customers; int main() { - // state of db: - // er zijn 10 parkspots, 5 met biketype en 5 met pickup type - // er is een customer met id 1(testcustomer) met password "password" + while (true) { - cin.clear(); interface(parking_spots); - cout << "\nexit? Input 'y' or 'n'.."; - char n; - cin >> n; - cin.clear(); - if (n == 'y') { - break; - } } }