Rabu, 10 Februari 2010

Program Sistem Informasi Hotel

#include<iostream.h>
#include<iomanip.h>
#include<ctype.h>
//#include<conio.h>
#include<stdlib.h>

#define jum_kamar 20
#define diskon 0.1
#define harga_kam 1000
int bayar=0;
int init_kamar[20]={0};
//int bayar=0;

struct orang
{
 int kamar;
 int hari;
 int mkp;
 int mks;
 int mkm;
 int diskonkmr;
char nama_penyewa[20];

} pengunjung[20] ;


class pesan
{
 private:
    int hari;
    int jumlah;
    int kunjungan;

 public:
    void informasikamar();
  //    ~pesan();
    int kamar(int no_kam);
    int jum_hari(int hari);
    int makan_siang();
    int makan_pagi();
    int makan_malam();
    void informasikmkosong();
    void informasiumum();
 //    int static bayar();




 };


 int pesan::makan_siang()
 {
    int harga_makan_siang,a,b; a=0;b=0;
    harga_makan_siang=0;
  cout<<"pilihan menu makan siang "<<endl;
  cout<<"A: nasi pecel "<<endl;
  cout<<"B: nasi Gudeg "<<endl;
    char pilih,mk;
    pilih='y';
    cout<<"anda mau pesan makan siang tidak y/t = ";cin>>pilih;cout<<endl;
    while (toupper(pilih)=='Y')
    {
    cout<<"masukan pilihan anda A?B = "  ;cin>>mk;
    switch (toupper(mk))
    {
        case 'A':{harga_makan_siang=harga_makan_siang+500;bayar=bayar+500;a++; break;}
        case 'B':{harga_makan_siang=harga_makan_siang+500;bayar=bayar+500;b++; break;}
        default:{harga_makan_siang=harga_makan_siang+0;bayar=bayar+0; break;}

    }
    cout<<"masukan ingin pesan akan lagi atu tidak Y/T ";cin>>pilih ;cout<<endl;

    }
    pengunjung[kunjungan].mks=harga_makan_siang;
    return harga_makan_siang;
 }

 int pesan::makan_malam()
 {
    int harga_makan_siang,a,b; a=0;b=0;
    harga_makan_siang=0;
  cout<<"pilihan menu makan malam "<<endl;
  cout<<"A: nasi uduk "<<endl;
  cout<<"B: nasi Goreng "<<endl;
    char pilih,mk;
    pilih='y';
    cout<<"anda mau pesan makan malam tidak y/t = ";cin>>pilih;cout<<endl;
    while (toupper(pilih)=='Y')
    {
    cout<<"masukan pilihan anda A?B = "  ;cin>>mk;
    switch (toupper(mk))
    {
        case 'A':{harga_makan_siang=harga_makan_siang+500;bayar=bayar+500;a++; break;}
        case 'B':{harga_makan_siang=harga_makan_siang+500;bayar=bayar+500;b++; break;}
        default:{harga_makan_siang=harga_makan_siang+0;bayar=bayar+0; break;}

    }
    cout<<"masukan ingin pesan akan lagi atu tidak Y/T ";cin>>pilih ;cout<<endl;

    }
    pengunjung[kunjungan].mkm=harga_makan_siang;
    return harga_makan_siang;
 }

 int pesan::makan_pagi()
 {
    int harga_makan_siang,a,b; a=0;b=0;
    harga_makan_siang=0;
  cout<<"pilihan menu makan pagi "<<endl;
  cout<<"A: nasi uduk "<<endl;
  cout<<"B: nasi kuning "<<endl;
    char pilih,mk;
    pilih='y'; cout<<"anda mau pesan makan pagi tidak y/t = ";cin>>pilih;cout<<endl;
    while (toupper(pilih)=='Y')
    {
    cout<<"masukan pilihan anda A?B = "  ;cin>>mk;
    switch (toupper(mk))
    {
        case 'A':{harga_makan_siang=harga_makan_siang+500;bayar=bayar+500;a++; break;}
        case 'B':{harga_makan_siang=harga_makan_siang+500;bayar=bayar+500;b++; break;}
        default:{harga_makan_siang=harga_makan_siang+0;bayar=bayar+0; break;}

    }
    cout<<"masukan ingin pesan akan lagi atu tidak Y/T ";cin>>pilih ;cout<<endl;

    }
    pengunjung[kunjungan].mkp=harga_makan_siang;
    return harga_makan_siang;
 }


 /* static int  pesan::bayar()
 {
  int hargakm;
  hargakm=hari*harga_kam;
  return
 }
*/


 void pesan::informasikamar()
 {
    int i=0;
    while(init_kamar[i]!=0 && i<20)
    {
        i++;  cout<<::init_kamar[i]<<endl;
    }

    if (i==20)
    {cout<<"maaf pesanan kamar tidak bisa kami layani karena penuh"<<endl;pesan::informasiumum();exit(0);}
    else {cout<<"\t WELCOME DI SISTEM INFORMASI HOTEL"<<endl<<endl<<endl; }
 }

 void pesan::informasikmkosong()
 {
    cout<<"INFORMASI KAMAR KOSONG"<<endl;
    int count; count=0;
    for(int i=0;i<jum_kamar;i++)
    {
        if (::init_kamar[i] ==0)
        {
            cout<<" Anda bisa memesan kamar no- "<<i+1<<endl;
            count++;
        }
    }
    if (count==0) {cout<<"LAYANAN KAMAR KOSONG PENUH"<<endl;pesan::informasiumum();exit(0);}
 }

 int pesan::kamar(int no_kamar)
 {
        no_kamar=no_kamar-1;
        char lagi='y'; char disk;
        while (toupper(lagi)=='Y')
        {
            if (::init_kamar[no_kamar]==0)
            {
                cout<<"masukan nama penyewa = ";cin>>pengunjung[no_kamar].nama_penyewa;cout<<endl;
                cout<<"####kamar telah berhasil di pesan#### \n"<<endl;

                cout<<" masukan jumlah hari pemesanan =";cin>>hari;
                if (hari<1)
                {
                    cout<<"jumlah pemesanan hari anda diluar jangkauan pelayanan kami"<<endl;
                    cout<<"jika anda ingin pesan yang lain tekan Y ";cin>>lagi;
                    cout<<endl;
                    if (toupper(lagi)=='Y')
                    {
                        pesan::informasikmkosong();
                        cout<<"masukan no kamar yang mau di pesan kembali";cin>>no_kamar;
                        cout<<endl;
                        no_kamar--;
                    }
                    else
                    {
                     cout<<"terimah kasih atas partisipasi anda di SI Hotel"<<endl ;
                     pesan::informasiumum();
                     exit(0);

                    }
                }
                else
                {
                    cout<<"apakah saudara pernah menginap sebelumnya y/t = "  ;cin>>disk;cout<<endl;
                    if (toupper(disk)=='Y'){ pengunjung[no_kamar].diskonkmr=1;}else{ pengunjung[no_kamar].diskonkmr=0;}
                    init_kamar[no_kamar]=1;
                    pengunjung[no_kamar].kamar=1;
                    lagi='n';
                    bayar=bayar+(hari*harga_kam);
                    pengunjung[no_kamar].hari=hari*harga_kam;
                    kunjungan=no_kamar;
                }
            }
            else
            {
                cout<<"kamar telah terisi "<<endl;
                cout<<"jika anda ingin pesan yang lain tekan Y ";cin>>lagi;
                cout<<endl;
                if (toupper(lagi)=='Y')
                {
                    pesan::informasikmkosong();
                    cout<<"masukan no kamar yang mau di pesan kembali";cin>>no_kamar;
                    cout<<endl;
                    no_kamar--;

                }
            }
        }
 }

    //ini informasi tentang hail pemesanan planggan

  void pesan::informasiumum()
    {
    cout<<"\t INFORMASI HASIL PEMESANAN KONSUMEN "<<endl<<endl<<endl;
     for (int i=0 ;i<20 ;i++)
     {
        if (init_kamar[i]==1)
        {
            cout<<setw(30)<<"pengunjung kamar no= "<<i+1<<endl<<endl;
            cout<<setw(30)<<"nama pengunjung= "<<pengunjung[i].nama_penyewa<<endl<<endl;
            cout<<setw(30)<<"pesan = "<<pengunjung[i].hari/1000<<"  hari "<<endl<<endl;
            cout<<setw(30)<<"biaya pemesanan kamar ="<<pengunjung[i].hari<<endl<<endl;

            if(pengunjung[i].mkp!=0)cout<<setw(30)<<"makan pagi habis= "<< pengunjung[i].mkp<<endl<<endl;
            else cout<<setw(30)<<"makan pagi habis= "<< '0'<<endl<<endl;
            if(pengunjung[i].mks!=0)cout<<setw(30)<<"makan siang habis= "<< pengunjung[i].mks<<endl<<endl;
            else cout<<setw(30)<<"makan siang habis= "<< '0'<<endl<<endl;
            if(pengunjung[i].mkm!=0)cout<<setw(30)<<"makan malam habis= "<< pengunjung[i].mkm<<endl<<endl;
            else cout<<setw(30)<<"makan malam habis= "<< '0'<<endl<<endl;
            if (pengunjung[i].diskonkmr==0) {
            cout<<setw(30)<<" dapat diskon atau tidak= "<<"tidak"<<endl<<endl;
            cout<<setw(30)<<" total pembayaran + diskon ="<<pengunjung[i].hari+pengunjung[i].mkm+pengunjung[i].mkp+pengunjung[i].mks<<endl<<endl; }
            else  {
            cout<<setw(30)<<" dapat diskon atau tidak= "<<"dapat diskon "<<endl<<endl;
            cout<<setw(30)<<" total pembayaran + diskon ="<<(pengunjung[i].hari+pengunjung[i].mkm+pengunjung[i].mkp+pengunjung[i].mks)*(1-diskon)<<endl<<endl; }

            cout<<"########################################################################"<<endl<<endl;

        }
     }


    }



 int main()
 {


    char lagi;
    lagi='Y';
    int pintu;
    //cout<<"teguh puji widianto ";
    pesan satu[20];// ;
  //    for (int i=0 ;i<10;i++)
    int i;
    i=1;

    while(toupper(lagi)=='Y' &&  i<20)
     {

            //;
            satu[i].informasikamar();
            satu[i].informasikmkosong();
            cout<<endl;
            cout<<"masukan no kamar = ";cin>>pintu;cout<<endl;
           
            satu[i].kamar(pintu);
            satu[i].makan_pagi();
            satu[i].makan_siang();
            satu[i].makan_malam();
            i++;
            cout<<" Ingin Pesan Kamar lagi Atau Tidak ";cin>>lagi;
            cout<<endl;
            if (toupper(lagi)!='Y')
            {
                ;
                cout<<"terimah kasih atas partisipasi anda di sistem informasi Hotel"<<endl;;
                satu[i].informasiumum();
                exit(0);
            }

     }

  return 0;
 }

Tidak ada komentar:

Posting Komentar