Nothing Special   »   [go: up one dir, main page]

Linux Code

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

#include <iostream>

#include <vector>

#include <fstream>

using namespace std;

struct Time {

int hh;

int mm;

int ss;

char col1;

char col2;

};

struct Date {

int day;

int month;

int year;

char sym1;

char sym2;

};

class Vehicle {

string pltno;

int type;

Date dt;
Time arrive;

Time departure;

public:

void addVehicle();

void deleteVehicle();

void printVehicle(Vehicle v);

void show();

};

vector<Vehicle> veh(100);

int static totalVehicle = 0, totalCar = 0, totalBike = 0, totalAmt = 0, i = 0;

fstream file;

void Vehicle::addVehicle()

Vehicle* v = new Vehicle;

cout << "Enter vehicle type (1 for Car/2 for Bike): ";

cin >> v->type;

cout << "Enter vehicle number: ";

cin >> v->pltno;

cout << "Enter arrival time in hours, minutes, and seconds: ";

cin >> v->arrive.hh >> v->arrive.col1 >> v->arrive.mm >> v->arrive.col2 >> v->arrive.ss;

cout << "Enter date in day, month, and year: ";


cin >> v->dt.day >> v->dt.sym1 >> v->dt.month >> v->dt.sym2 >> v->dt.year;

veh.at(i).pltno = v->pltno;

veh.at(i).type = v->type;

veh.at(i).arrive.hh = v->arrive.hh;

veh.at(i).arrive.mm = v->arrive.mm;

veh.at(i).arrive.ss = v->arrive.ss;

veh.at(i).dt.day = v->dt.day;

veh.at(i).dt.month = v->dt.month;

veh.at(i).dt.year = v->dt.year;

i++;

totalVehicle++;

if (v->type == 1) {

totalCar++;

else {

totalBike++;

cout << "\nVehicle added successfully" << endl;

int computeTimeDifference(Time t1, Time t2)


{

int sec1, sec2, totalSec;

Time t3;

sec1 = t1.hh * 60 * 60 + t1.mm * 60 + t1.ss;

sec2 = t2.hh * 60 * 60 + t2.mm * 60 + t2.ss;

totalSec = sec2 - sec1;

t3.mm = totalSec / 60;

t3.hh = t3.mm / 60;

t3.mm = t3.mm % 60;

t3.ss = totalSec % 60;

return t3.hh;

void Vehicle::deleteVehicle()

string pno;

int typ;

Time depart;

int timeDiff;

int charge = 0;
cout << "Enter vehicle type (1 for Car/2 for Bike): ";

cin >> typ;

cout << "Enter vehicle number: ";

cin >> pno;

cout << "Enter departure time in hours, minutes, and seconds: ";

cin >> depart.hh >> depart.col1 >> depart.mm >> depart.col2 >> depart.ss;

for (int j = 0; j <= i; j++) {

if ((veh.at(j).pltno == pno) && (veh.at(j).type == typ)) {

veh.at(j).departure.hh = depart.hh;

veh.at(j).departure.mm = depart.mm;

veh.at(j).departure.ss = depart.ss;

timeDiff = computeTimeDifference(veh.at(j).arrive, depart);

if (veh.at(j).type == 1) {

totalCar--;

if (timeDiff < 2) {

charge = 20;

else {

if ((timeDiff > 2) && (timeDiff < 5)) {

charge = 40;

else {
charge = 50;

else {

totalBike--;

if (timeDiff < 2) {

charge = 5;

else {

if ((timeDiff > 2) && (timeDiff < 5)) {

charge = 10;

else {

charge = 20;

cout << "\nVehicle having vehicle number: " << veh.at(j).pltno << " has left the parking after
paying Rs. " << charge << endl;

file.open("parkingDatabase.dat", ios::app);

if (!file) {

cerr << "Error: file could not be opened" << endl;

exit(1);

}
file << veh.at(j).type << "\t\t\t" << veh.at(j).pltno << "\t\t\t" << veh.at(j).dt.day << "/" <<
veh.at(j).dt.month << "/" << veh.at(j).dt.year << "\t\t\t" << veh.at(j).arrive.hh << ":" <<
veh.at(j).arrive.mm << ":" << veh.at(j).arrive.ss << "\t\t\t" << veh.at(j).departure.hh << ":" <<
veh.at(j).departure.mm << ":" << veh.at(j).departure.ss << endl;

file.close();

veh.erase(veh.begin() + j);

i--;

totalVehicle--;

totalAmt = totalAmt + charge;

break;

if (j == i) {

cout << "\nWrong Entry, Try Again" << endl;

cout << "Departure: " << endl;

deleteVehicle();

void Vehicle::printVehicle(Vehicle v)

cout << v.type << "\t\t\t" << v.pltno << "\t\t\t" << v.dt.day << "/" << v.dt.month << "/" << v.dt.year <<
"\t\t\t" << v.arrive.hh << ":" << v.arrive.mm << ":" << v.arrive.ss << endl;

}
void Vehicle::show()

cout << "Vehicle Type\t\tVehicle Number\t\t\tDate\t\t\tArrival Time" << endl;

for (int j = 0; j < i; j++) {

printVehicle(veh[j]);

void totalVehicles()

cout << "Total number of vehicles parked: " << totalVehicle << endl;

cout << "Total number of cars parked: " << totalCar << endl;

cout << "Total number of bikes parked: " << totalBike << endl;

void totalAmount()

cout << "Total collection till now: " << totalAmt << endl;

int main()

int choice;

char ans;
do {

system("clear");

cout << "********************************************************************" <<


endl;

cout << " VEHICLE PARKING SYSTEM USING SEQUENTIAL FILE APPROACH " << endl;

cout << "1. Arrival of a vehicle" << endl

<< "2. Total number of vehicles parked" << endl

<< "3. Departure of vehicle" << endl

<< "4. Total amount collected" << endl

<< "5. Display" << endl

<< "6. Exit" << endl

<< "********************************************************************" << endl

<< "Enter your Choice: ";

cin >> choice;

switch (choice) {

case 1:

system("clear");

cout << "Add: " << endl;

veh.at(i).addVehicle();

break;

case 2:

system("clear");

totalVehicles();

break;

case 3:
system("clear");

cout << "Departure: " << endl;

veh.at(i).deleteVehicle();

break;

case 4:

system("clear");

totalAmount();

break;

case 5:

system("clear");

veh.at(i).show();

break;

case 6:

exit(0);

cout << "\nDo you want to continue? (y/n): ";

cin >> ans;

if (ans == 'n') {

break;

else {

continue;

}
} while (true);

return 0;

You might also like