#include "headers/Interface.h" // I added it to pass spots, because the parking options need it to check where // is free parking_spots is declared in main, and if i declare it void interface(vector& spots) { int selector; cout << "\nHello and welcome to the parking spot! Please select a suitable " "option:"; cout << "\n[1]Log in as member"; cout << "\n[2]Log in as administrator"; cin >> selector; switch (selector) { case 1: { interface_member(spots); break; } case 2: { interface_admin(spots); break; } } } void interface_member(vector& spots) { int id; string password; cout << "\nPlease input id:"; cin >> id; Customer c = query_customer_with_id(id); cout << "\nPlease input password:"; cin >> password; while (!(verify_password(c.password, password))) { cout << "ERROR: wrong password. Please retype your password \n"; cin >> password; } cout << "Logged in succesfully\n"; cout << "select an option\n [1] Parking options\n[2]monthy report"; int option; cin >> option; switch (option) { case 1: { park(c, spots); break; } case 2: { c.gen_monthly(); break; } default: break; } } void interface_admin(vector& spots) { cout << "Welcome to the admin interface. It is not completely ready yet.\n"; cout << "[1] See monthly report of ALL parking spots\n"; 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] See current status of parking spots\n"; cout << "option[1-5]:"; int option; cin >> option; switch (option) { case 1: { reports_from_allparkspots(); break; } case 2: { reports_from_allparkspots(true); break; } case 3: { cout << "Which parking spot would you like a report on?ID:"; int spotid; cin >> spotid; reports_from_parkspot(spotid); break; } case 4: { cout << "Which parking spot would you like a report on?ID:"; int spotid; cin >> spotid; reports_from_parkspot(spotid, true); break; } case 5: { current_status_parkspots(spots); } default: break; } } // --------- individual things. void park(Customer& c, vector& spots) { cout << "You have selected parking option"; if (!(c.parked())) { cout << "The following spots[which can fit your vehicle] are " "available: "; for (Park_spot i : spots) { if (i.v_type == c.vehicle) { cout << i.id << ", "; } } cout << "where do you want to park?"; int parkid; cin >> parkid; for (Park_spot& i : spots) { if (i.id == parkid) { i.clock(c); cout << "You have parked sucessfully"; } } } else { cout << "You are parked at spot " << c.parked_at() << ", do you want to clock out?\n enter [1] for yes and [0] for no"; int answer = 0; cin >> answer; if (answer) { query_parkspot_with_id(c.parked_at(), spots).clock(c); cout << "You have sucessfully clocked out."; } else { cout << "OK, have a nice day"; } } }