Friday, February 20, 2015

Cpp Project :car parking

Cpp Project :car parking

//Car Parking Management
#include <iostream> //c++ header file
#include <string.h> //character of array
#include <fstream>  //using file
 
 
using namespace std;
 
ofstream outfile ("parking.txt", ios::out| ios::app);
ifstream infile ("parking.txt", ios::in);
 
//----------------------------------------------------------------------------
//-----------------------------Driver Class-----------------------------------
 
class Driver
{
private:
    char name[20];
public:
    Driver();
    Driver(char nam[20]);
    void input_data();
    void input_data(char nam[]);
    void show_data();
    char* get_name();
 
    void write_file();
 
};
 
Driver::Driver()
{
 
}
Driver::Driver(char nam[])
{
    strcpy(name,nam);
}
 
void Driver::input_data(char nam[])
{
    strcpy(name,nam);
 
 
}
void Driver::input_data()
{
    cout << "\n\tEnter Driver Name      : ";
    char gr=getchar();
    gets(name);
 
}
 
void Driver::show_data()
{
    cout << "\n\tDriver Name        : " << name;
 
}
char* Driver::get_name()
{
    return name;
}
 
void Driver::write_file()
{
    outfile << "\n\tDriver Name        : " << name;
}
 
 
 
//-----------------------------------------------------------------------------
//--------------------------------Car class------------------------------------
class Car
{
private:
    char id[20];
    char type;
 
public:
    Car();
    Car(char i[],char typ);
    void input_data();
    void input_data(char i[],char typ);
    void show_data();
    char* get_id();
    char get_type();
 
    void write_file();
 
};
 
Car::Car()
{
 
}
Car::Car(char i[],char typ)
{
    strcpy(id,i);
    type=typ;
 
}
void Car::input_data(char i[],char typ)
{
    strcpy(id,i);
    type=typ;
 
}
void Car::input_data()
{
    cout << "\n\tEnter Car ID           : ";
    gets(id);
    cout << "\n\tEnter Car type(b,s)    : ";
    cin >> type;
 
}
 
void Car::show_data()
{
    cout << "\n\tCar ID             : " << id;
    cout << "\n\tCar type           : " << type;
}
char* Car::get_id()
{
    return id;
}
char Car::get_type()
{
    return type;
}
 
void Car::write_file()
{
    outfile << "\n\tCar ID             : " << id;
    outfile << "\n\tCar type           : " << type;
}
 
 
 
//-----------------------------------------------------------------------------
 
 
 
 
//-----------------------------------------------------------------------------
//---------------------------Parking Class-------------------------------------
class Parking
{
private:
    Car cob;
    Driver dob;
 
    int hour;
    int charge;
    int small_charge;
    int big_charge;
    char pay_status;
 
 
public:
    Parking();
    void input_data();
    void show_data();
    void cal_charge();
    void payment();
 
    int get_hour();
    int get_charge();
    char get_pay_status();
 
    void write_file();
    void read_file();
 
 
};
 
Parking::Parking()
{
    pay_status='N';
    small_charge=50;
    big_charge=100;
    charge=0;
    hour=0;
 
}
 
void Parking::input_data()
{
    cout << "\n\tEnter Car info";
    cout << "\n\t--------------------------------" << endl;
    dob.input_data();
    cob.input_data();
    cout << "\n\tEnter time in hour     : ";
    cin >> hour;
}
void Parking::show_data()
{
    cout << "\n\tCar info";
    cout << "\n\t--------------------------------" << endl;
    dob.show_data();
    cob.show_data();
    cout << "\n\tTime in hour       : " << hour;
    cout << "\n\tTotal Charge       : " << charge;
    cout << "\n\tPayment Status     : " << pay_status;
 
}
int Parking::get_hour()
{
    return hour;
}
int Parking::get_charge()
{
    return charge;
}
char Parking::get_pay_status()
{
    return pay_status;
}
 
 
void Parking::cal_charge()
{
    char ch;
    ch = cob.get_type();
 
    if(ch=='b')
    {
        charge= hour*big_charge;
    }
    if(ch=='s')
    {
        charge= hour*small_charge;
    }
 
}
void Parking::payment()
{
    int t;
    do
    {
        cout << "\n\tPlease Pay amount " << charge << " BDT Only : ";
        cin >> t;
    }while(t!=charge);
    pay_status= 'Y';
    cout << "\n\n\n\t\t\t\tThank You for your corporation!!!\n\n\n\n";
 
}
void Parking::write_file()
{
    outfile << "\n\tCar info";
    outfile << "\n\t--------------------------------" << endl;
    dob.write_file();
    cob.write_file();
    outfile << "\n\tTime in hour       : " << hour;
    outfile << "\n\tTotal Charge       : " << charge;
    outfile << "\n\tPayment Status     : " << pay_status;
}
void Parking::read_file()
{
    cout << infile.rdbuf();
}
 
 
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//---------------------------main function-------------------------------------
 
int main()
{
    Parking pob;
    int choise;
 
    while(1)
    {
 
        cout << "\n\t************************************************";
        cout << "\n\t\t        Choose Your Option";
        cout << "\n\t\t    1.For parking car entry Your Info";
        cout << "\n\t\t    2.Show entry Info";
        cout << "\n\t\t    0.EXIT!!";
        cout << "\n\t************************************************";
 
 
        cin >> choise;
 
 
 
        switch(choise)
        {
        case 1:
            pob.input_data();
            pob.cal_charge();
            pob.show_data();
            cout << "\n\t--------------------------------" << endl;
            pob.payment();
            pob.write_file();
            break;
 
        case 2:
            pob.read_file();
            break;
 
        }
 
        if(choise==0)
            break;
 
        cout << "\n\tPress any key for menu: ";
            }
 
    return 0;
 
}
 
 
 
//*********************************
/*parking.text
Car info
    --------------------------------
    Driver Name        : Ramjan
    Car ID             : 1
    Car type           : b
    Time in hour       : 1
    Total Charge       : 100
    Payment Status     : Y
    Car info
    --------------------------------
    Driver Name        : Mahbub
    Car ID             : 2
    Car type           : s
    Time in hour       : 2
    Total Charge       : 100
    Payment Status     : Y
    Car info
    --------------------------------
    Driver Name        : Rahul
    Car ID             : 3
    Car type           : s
    Time in hour       : 1
    Total Charge       : 50
    Payment Status     : Y
    Car info
    --------------------------------
    Driver Name        : Ebrahim
    Car ID             : 4
    Car type           : b
    Time in hour       : 5
    Total Charge       : 500
    Payment Status     : Y*/
 
//    ************************************

No comments:

Post a Comment