#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); case 2: interface_admin(spots); } } 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]other"; int option; cin >> option; switch (option) { case 1: { park(c, spots); } case 2: { // other thing you want to add break; } default: break; } } void interface_admin(vector& spots) {} // --------- 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"; } } }