Quote
You can't enter only 4 rows but allow 6 columns.
thanks, I will fixed it.




Posted 08 June 2013 - 11:37 AM
Quote
Posted 08 June 2013 - 09:09 PM
Quote
Posted 08 June 2013 - 09:27 PM
Posted 08 June 2013 - 11:34 PM
Quote
Posted 09 June 2013 - 12:00 AM
This post has been edited by Skydiver: 09 June 2013 - 12:04 AM
Posted 09 June 2013 - 12:44 AM
Posted 09 June 2013 - 06:08 AM
Posted 12 June 2013 - 01:41 AM
#include <iostream>
#include <iomanip>
#include <string>
#include <cctype>
#include <algorithm>
using namespace std;
int Superior[4][6]={0};
int Economy[6][8]={0};
const int srow= 4 , scol= 6;
const int erow= 6 , ecol= 8;
const double sadult = 45.00 , schild = 22.50 ;
const double eadult = 25.00 , echild = 12.00 ;
void printSuperior(int Superior[4][6]);
string Superior_seats[srow][scol] = {
{"A01", "A02", "A03", "A04", "A05", "A06"},
{"B01", "B02", "B03", "B04", "B05", "B06"},
{"C01", "C02", "C03", "C04", "C05", "C06"},
{"D01", "D02", "D03", "D04", "D05", "D06"}
};
string Economy_seats[erow][ecol] = {
{"A01", "A02", "A03", "A04", "A05", "A06","A07","A08"},
{"B01", "B02", "B03", "B04", "B05", "B06","B07","B08"},
{"C01", "C02", "C03", "C04", "C05", "C06","C07","C08"},
{"D01", "D02", "D03", "D04", "D05", "D06","D07","D08"},
{"E01", "E02", "E03", "E04", "E05", "E06","E07","E08"},
{"F01", "F02", "F03", "F04", "F05", "F06","F07","F08"},
};
string error="";
struct Sbooking
{
string s_seat;
string s_age;
double price;
};
struct Ebooking
{
string e_seat;
string e_age;
double price;
};
Sbooking s[srow][scol];
Ebooking e[erow][ecol];
void initialize_S (Sbooking s[srow][scol])
{
for(int i=0;i<srow;i++)
{
for(int j=0;j<scol;j++)
{
s[i][j].s_seat="";
s[i][j].s_age="";
s[i][j].price=0;
}
}
}
void initialize_E (Ebooking e[erow][ecol])
{
for(int i=0 ; i<erow ; i++)
{
for(int j=0 ; j<ecol ; j++)
{
e[i][j].e_seat="";
e[i][j].e_age="";
e[i][j].price=0;
}
}
}
bool verify_selection (char ch)
{
error="";
if(ch !='S' && ch !='E')
{
error="Invalid choice re-enter again";
return false;
}
return true;
}
int selection(char &ch)
{
do
{
if (error !="")
{
cout<<endl;
cout<<error<<endl;
}
cout<<"Please select Superior('S') or Economy('E') : ";cin>>ch;
ch=toupper(ch);
}
while(!verify_selection(ch));
return ch;
}
void printSuperior(int Superior[4][6]) //print superior table
{
unsigned char a1 = static_cast<char>(218);
unsigned char a2 = static_cast<char>(179);
unsigned char a3 = static_cast<char>(196);
unsigned char a4 = static_cast<char>(191);
unsigned char a5 = static_cast<char>(194);
unsigned char a6 = static_cast<char>(197);
unsigned char a7 = static_cast<char>(195);
unsigned char a8 = static_cast<char>(180);
unsigned char a9 = static_cast<char>(192);
unsigned char a10 = static_cast<char>(193);
unsigned char a11 = static_cast<char>(217);
char ascii='A';
cout<<endl;
for(int num=1;num<7;num++)//display top number line
{
cout<<" "<<"0"<<num;
}
cout<<endl;
cout<<" "<<a1;
for(int top=0;top<5;top++)//display top straight line cover
{
cout<<a3<<a3<<a3<<a3<<a5;}
cout<<a3<<a3<<a3<<a3<<a4<<endl;
for(int i=0;i<4;i++){
cout<<ascii++<<" "<<a2;
for(int j=0;j<6;j++){
cout<<" "<<Superior[i][j]<<" "<<a2;
}
if(i==3)
goto stop;
cout<<endl;
cout<<" "<<a7;
if(i==0){
for(int i=0;i<5;i++){
cout<<a3<<a3<<a3<<a3<<a6;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==1){
for(int i=0;i<5;i++){
cout<<a3<<a3<<a3<<a3<<a10;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
cout<<" "<<a2<<" aisles "<<a2<<endl;
cout<<" "<<a7;
for(int j=0;j<5;j++){
cout<<a3<<a3<<a3<<a3<<a5;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==2){
for(int j=0;j<5;j++){
cout<<a3<<a3<<a3<<a3<<a6;
}
cout<<a3<<a3<<a3<<a3<<a8<<endl;}
}
stop:
{
cout<<endl;
cout<<" "<<a9;
for(int j=0;j<5;j++)
cout<<a3<<a3<<a3<<a3<<a10;
cout<<a3<<a3<<a3<<a3<<a11<<endl;
}
}
void printEconomy(int Economy[6][8]) //print economy table
{
unsigned char a1 = static_cast<char>(218);
unsigned char a2 = static_cast<char>(179);
unsigned char a3 = static_cast<char>(196);
unsigned char a4 = static_cast<char>(191);
unsigned char a5 = static_cast<char>(194);
unsigned char a6 = static_cast<char>(197);
unsigned char a7 = static_cast<char>(195);
unsigned char a8 = static_cast<char>(180);
unsigned char a9 = static_cast<char>(192);
unsigned char a10 = static_cast<char>(193);
unsigned char a11 = static_cast<char>(217);
char ascii='A';
cout<<endl;
for(int num=1;num<9;num++)//display top number line
{
cout<<" "<<"0"<<num;
}
cout<<endl;
cout<<" "<<a1;
for(int top=0;top<7;top++)//display top straight line cover
{
cout<<a3<<a3<<a3<<a3<<a5;}
cout<<a3<<a3<<a3<<a3<<a4<<endl;
for(int i=0;i<6;i++)
{
cout<<ascii++<<" "<<a2;
for(int j=0;j<8;j++)
{
cout<<" "<<Economy[i][j]<<" "<<a2;
}
if(i==5)
goto stop;
cout<<endl;
cout<<" "<<a7;
if(i==0){
for(int i=0;i<7;i++){
cout<<a3<<a3<<a3<<a3<<a6;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==1){
for(int i=0;i<7;i++){
cout<<a3<<a3<<a3<<a3<<a6;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==2){
for(int i=0;i<7;i++){
cout<<a3<<a3<<a3<<a3<<a10;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
cout<<" "<<a2<<" aisles "<<a2<<endl;
cout<<" "<<a7;
for(int j=0;j<7;j++){
cout<<a3<<a3<<a3<<a3<<a5;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==3){
for(int j=0;j<7;j++){
cout<<a3<<a3<<a3<<a3<<a6;
}
cout<<a3<<a3<<a3<<a3<<a8<<endl;}
if(i==4){
for(int j=0;j<7;j++){
cout<<a3<<a3<<a3<<a3<<a6;
}
cout<<a3<<a3<<a3<<a3<<a8<<endl;}
}
stop:
{
cout<<endl;
cout<<" "<<a9;
for(int j=0;j<7;j++)
cout<<a3<<a3<<a3<<a3<<a10;
cout<<a3<<a3<<a3<<a3<<a11<<endl;
}
}
bool verify_seat_require(int seat_require)
{
bool valid = false;
error="";
if(seat_require <=(srow*scol) && seat_require >= -1)
{
return true;
}
else
{
error="Invalid seat requirement.";
return false;
}
return true;
}
int superior_seatrequire()
{
int seat_require=0;
do
{
if(error!="")
cout<<error<<endl;
cout<<"How many seat you required: ";cin>>seat_require;
}
while(!verify_seat_require(seat_require));
return seat_require;
}
bool verify_seat_require1(int seat_require1)
{
error="";
if(seat_require1 <=(erow*ecol) && seat_require1 >= -1)
{
return true;
}
else
{
error="Invalid seat requirement.";
return false;
}
}
int economy_seatrequire()
{
int seat_require1=0;
do
{
error!="";
cout<<error<<endl;
cout<<"How many seat you required: ";cin>>seat_require1;
}
while(!verify_seat_require1(seat_require1));
return seat_require1;
}
bool verify_Superiorage(const string &ages)
{
error="";
if(ages != "A" && ages != "C")
{
error="Invalid age Please re-enter again.";
return false;
}
return true;
}
void get_Superiorage(Sbooking s[srow][scol],const string &seats)
{
string ages="";
do
{
if(error!="")
cout<<error<<endl;
cout<<"Enter Adult('A')/Child('C') : ";cin>>ages;
transform(ages.begin(),ages.end(),ages.begin(),toupper);
cout<<endl;
}
while(!verify_Superiorage(ages));
for(int i=0 ; i<srow ; i++)
{
for(int j=0 ; j<scol ; j++)
{
if(Superior_seats[i][j] == seats)
{
s[i][j].s_age=ages;
if(s[i][j].s_age == "A")
{
s[i][j].price=sadult;
}
else if(s[i][j].s_age == "C")
{
s[i][j].price=schild;
}
}
}
}
}
bool verify_Superiorseat(Sbooking s[srow][scol],const string &seats)
{
bool valid = false;
error="";
for(int i= 0 ; i<srow ; i++)
{
for(int j= 0 ; j<scol ; j++)
{
if(Superior_seats[i][j] == seats)
{
if(s[i][j].s_seat == "")
{
s[i][j].s_seat = Superior_seats[i][j];
Superior[i][j] =1;
valid = true;
}
else
{
error="This seat has been taken";
return false;
}
}
}
}
if(!valid)
{
error="Invalid seat ID please re-enter again.";
return false;
}
return true;
}
string get_Superiorseat(Sbooking s[srow][scol],int &seat_require)
{
string seats;
for(int i=0 ; i<seat_require ; i++)
{
do
{
if(error!="")
cout<<error<<endl;
error="";
cout<<"Please select your seat ID: ";cin>>seats;
cout<<endl;
}
while(!verify_Superiorseat(s,seats));
get_Superiorage(s,seats);
}
return seats;
}
bool verify_Economyage(const string &ages1)
{
error="";
if(ages1 != "A" && ages1 != "C")
{
error="Invalid age Please re-enter again.";
return false;
}
return true;
}
void get_Economyage(Ebooking e[erow][ecol],const string &seats1)
{
string ages1="";
do
{
if(error!="")
cout<<error<<endl;
cout<<"Enter Adult('A')/Child('C') : "; cin>>ages1;
transform(ages1.begin() , ages1.end() , ages1.begin() , toupper);
cout<<endl;
}
while(!verify_Economyage(ages1));
for(int i=0 ; i<erow ; i++)
{
for(int j=0 ; j<ecol ; j++)
{
if(Economy_seats[i][j] == seats1)
{
e[i][j].e_age = ages1;
if(e[i][j].e_age == "A")
{
e[i][j].price = eadult;
}
else if(e[i][j].e_age == "C")
{
e[i][j].price = echild;
}
}
}
}
}
bool verify_Economyseat(Ebooking e[erow][ecol] , const string &seats1)
{
bool valid = false;
error="";
for(int i=0 ; i<erow ; i++)
{
for(int j=0 ; j<ecol ; j++)
{
if(Economy_seats[i][j] == seats1)
{
if(e[i][j].e_seat =="")
{
e[i][j].e_seat = Economy_seats[i][j];
Economy[i][j] = 1;
valid = true;
}
else
{
error="This seat has been taken";
return false;
}
}
}
}
if(!valid)
{
error="Invalid seat ID please re-enter again.";
return false;
}
return true;
}
string get_Economyseat(Ebooking e[erow][ecol],int &seat_require1)
{
string seats1;
for(int i=0 ; i<seat_require1 ; i++)
{
do
{
if(error!="")
cout<<error<<endl;
error="";
cout<<"Please select your seat ID: ";cin>>seats1;
}
while(!verify_Economyseat(e,seats1));
get_Economyage(e,seats1);
}
return seats1;
}
void E_totalprice(Ebooking e[erow][ecol],const string &seats1)
{
double total=0;
double paid=0,change=0;
for(int i=0 ; i<erow ; i++)
{
for(int j=0 ; j<ecol ; j++)
{
if(e[i][j].e_seat == seats1)
{
if(e[i][j].e_seat != "")
{
total+=e[i][j].price;
}
}
}
}
cout<<"Total Price : RM"<<fixed<<setprecision(2)<<total<<endl;
cout<<"Your Cash Pay : RM";cin>>paid;
cout<<"Cash Paid : RM"<<fixed<<setprecision(2)<<paid<<endl;
change = paid - total;
cout<<"Change : RM"<<fixed<<setprecision(2)<<change<<endl;
cout<<endl;
if(total>0)
{
total=0;
}
}
int E_AvailableSeat(Ebooking e[erow][ecol])
{
int totalseat=0;
for(int i=0 ; i<erow ; i++)
{
for(int j=0 ; j<ecol ; j++)
{
if(e[i][j].e_seat =="")
{
totalseat++;
}
}
}
return totalseat;
}
double E_Occupancyrate(Ebooking e[erow][ecol])
{
double total=0;
for(int i=0 ; i<erow ; i++)
{
for(int j=0 ; j<ecol ; j++)
{
if(e[i][j].e_seat !="")
{
total++;
}
}
}
return (total/(erow*ecol)*100.0);
}
void Occupancy_Etable(Ebooking e[erow][ecol],int Economy[6][8])
{
unsigned char a1 = static_cast<char>(218);
unsigned char a2 = static_cast<char>(179);
unsigned char a3 = static_cast<char>(196);
unsigned char a4 = static_cast<char>(191);
unsigned char a5 = static_cast<char>(194);
unsigned char a6 = static_cast<char>(197);
unsigned char a7 = static_cast<char>(195);
unsigned char a8 = static_cast<char>(180);
unsigned char a9 = static_cast<char>(192);
unsigned char a10 = static_cast<char>(193);
unsigned char a11 = static_cast<char>(217);
int trow=0;
char ascii='A';
cout<<" Seat Occupancy"<<a3<<"Economy Class\n"<<endl;
for(int num=1;num<9;num++)//display top number line
{
cout<<" "<<"0"<<num;
}
cout<<" "<<"Seats Available"<<endl;
cout<<endl;
cout<<" "<<a1;
for(int top=0;top<7;top++)//display top straight line cover
{
cout<<a3<<a3<<a3<<a3<<a5;}
cout<<a3<<a3<<a3<<a3<<a4<<endl;
for(int i=0;i<erow;i++)
{
cout<<ascii++<<" "<<a2;
for(int j=0;j<ecol;j++)
{
cout<<" "<<Economy[i][j]<<" "<<a2;
if(e[i][j].e_seat!="")
{
trow++;
}
}
cout<<" "<<erow-trow;
trow=0;
if(i==5)
goto stop;
cout<<endl;
cout<<" "<<a7;
if(i==0){
for(int i=0;i<7;i++)
{
cout<<a3<<a3<<a3<<a3<<a6;
}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==1){
for(int i=0;i<7;i++)
{
cout<<a3<<a3<<a3<<a3<<a6;
}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==2){
for(int i=0;i<7;i++)
{
cout<<a3<<a3<<a3<<a3<<a10;
}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
cout<<" "<<a2<<" aisles "<<a2<<endl;
cout<<" "<<a7;
for(int j=0;j<7;j++)
{
cout<<a3<<a3<<a3<<a3<<a5;
}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==3){
for(int j=0;j<7;j++)
{
cout<<a3<<a3<<a3<<a3<<a6;
}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==4){
for(int j=0;j<7;j++)
{
cout<<a3<<a3<<a3<<a3<<a6;
}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
}
stop:
{
cout<<endl;
cout<<" "<<a9;
for(int j=0;j<7;j++)
cout<<a3<<a3<<a3<<a3<<a10;
cout<<a3<<a3<<a3<<a3<<a11<<endl;
cout<<endl;
cout<<" Occupancy rate: "<<setprecision(2)<<E_Occupancyrate(e)<<"%"<<" "<<"Total Seats Available: "
<<E_AvailableSeat(e)<<endl;
}
}
int S_AvailableSeat(Sbooking s[srow][scol])
{
int totalseat=0;
for(int i=0 ; i<srow ; i++)
{
for(int j=0 ; j<scol ; j++)
{
if(s[i][j].s_seat =="")
{
totalseat++;
}
}
}
return totalseat;
}
double S_Occupancyrate(Sbooking s[srow][scol])
{
double total=0;
for(int i=0 ; i<srow ; i++)
{
for(int j=0 ; j<scol ; j++)
{
if(s[i][j].s_seat !="")
{
total++;
}
}
}
return (total/(srow*scol)*100.0);
}
void Occupancy_Stable(Sbooking s[srow][scol],int Superior[4][6])
{
unsigned char a1 = static_cast<char>(218);
unsigned char a2 = static_cast<char>(179);
unsigned char a3 = static_cast<char>(196);
unsigned char a4 = static_cast<char>(191);
unsigned char a5 = static_cast<char>(194);
unsigned char a6 = static_cast<char>(197);
unsigned char a7 = static_cast<char>(195);
unsigned char a8 = static_cast<char>(180);
unsigned char a9 = static_cast<char>(192);
unsigned char a10 = static_cast<char>(193);
unsigned char a11 = static_cast<char>(217);
int trow=0;
double seatrate=0;
char ascii='A';
cout<<" Seat Occupancy"<<a3<<"Superior Class\n";
for(int num=1;num<7;num++)//display top number line
{
cout<<" "<<"0"<<num;
}
cout<<" "<<"Seats Available"<<endl;
cout<<" "<<a1;
for(int top=0;top<5;top++)//display top straight line cover
{
cout<<a3<<a3<<a3<<a3<<a5;}
cout<<a3<<a3<<a3<<a3<<a4;
cout<<" "<<"---------------"<<endl;
for(int i=0;i<srow;i++){
cout<<ascii++<<" "<<a2;
for(int j=0;j<scol;j++){
cout<<" "<<Superior[i][j]<<" "<<a2;
if(s[i][j].s_seat !="")
{
trow++;
}
}
cout<<" "<<scol-trow;
trow=0;
if(i==3)
goto stop;
cout<<endl;
cout<<" "<<a7;
if(i==0){
for(int i=0;i<5;i++){
cout<<a3<<a3<<a3<<a3<<a6;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==1){
for(int i=0;i<5;i++){
cout<<a3<<a3<<a3<<a3<<a10;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
cout<<" "<<a2<<" aisles "<<a2<<endl;
cout<<" "<<a7;
for(int j=0;j<5;j++){
cout<<a3<<a3<<a3<<a3<<a5;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==2){
for(int j=0;j<5;j++){
cout<<a3<<a3<<a3<<a3<<a6;
}
cout<<a3<<a3<<a3<<a3<<a8<<endl;}
}
stop:
{
cout<<endl;
cout<<" "<<a9;
for(int j=0;j<5;j++)
cout<<a3<<a3<<a3<<a3<<a10;
cout<<a3<<a3<<a3<<a3<<a11<<endl;
cout<<endl;
cout<<" Occupancy rate: "<<setprecision(2)<<S_Occupancyrate(s)<<"%"<<" "<<"Total Seats Available: "<<S_AvailableSeat(s)<<endl;
}
}
void S_totalprice(Sbooking s[srow][scol],const string &seats)
{
double total=0;
double paid=0,change=0;
for(int i=0 ; i<srow ; i++)
{
for(int j=0 ; j<scol ; j++)
{
if(s[i][j].s_seat == seats)
{
total+= s[i][j].price;
}
}
}
cout<<"Total Price : RM"<<fixed<<setprecision(2)<<total<<endl;
cout<<"Your Cash Pay : RM";cin>>paid;
cout<<"Cash Paid : RM"<<fixed<<setprecision(2)<<paid<<endl;
change = paid - total;
cout<<"Change : RM"<<fixed<<setprecision(2)<<change<<endl;
cout<<endl;
}
void S_report(Sbooking s[srow][scol],const string &seats, const string &ages)
{
unsigned char a1 = static_cast<char>(218);
unsigned char a2 = static_cast<char>(179);
unsigned char a3 = static_cast<char>(196);
unsigned char a4 = static_cast<char>(191);
unsigned char a5 = static_cast<char>(194);
unsigned char a6 = static_cast<char>(197);
unsigned char a7 = static_cast<char>(195);
unsigned char a8 = static_cast<char>(180);
unsigned char a9 = static_cast<char>(192);
unsigned char a10 = static_cast<char>(193);
unsigned char a11 = static_cast<char>(217);
double row_total=0,final_total=0;
char ascii='A';
cout<<endl;
cout<<" Total Sales - by Seat Layout Superior Class\n";
for(int num=1;num<7;num++)//display top number line
{
cout<<" "<<"0"<<num;
}
cout<<" SALES(RM)"<<endl;
cout<<" "<<a1;
for(int top=0;top<5;top++)//display top straight line cover
{
cout<<a3<<a3<<a3<<a3<<a5;}
cout<<a3<<a3<<a3<<a3<<a4;
cout<<" "<<"---------------"<<endl;
for(int i=0;i<4;i++){
cout<<ascii++<<" "<<a2;
for(int j=0;j<6;j++)
{
cout<<" "<<Superior[i][j]<<" "<<a2;
if(s[i][j].s_seat!="")
{
row_total+= s[i][j].price;
final_total+= s[i][j].price;
}
}
cout<<" "<<row_total;
row_total=0;
if(i==3)
goto stop;
cout<<endl;
cout<<" "<<a7;
if(i==0){
for(int i=0;i<5;i++){
cout<<a3<<a3<<a3<<a3<<a6;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==1){
for(int i=0;i<5;i++){
cout<<a3<<a3<<a3<<a3<<a10;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
cout<<" "<<a2<<" aisles "<<a2<<endl;
cout<<" "<<a7;
for(int j=0;j<5;j++){
cout<<a3<<a3<<a3<<a3<<a5;}
cout<<a3<<a3<<a3<<a3<<a8<<endl;
}
if(i==2){
for(int j=0;j<5;j++){
cout<<a3<<a3<<a3<<a3<<a6;
}
cout<<a3<<a3<<a3<<a3<<a8<<endl;}
stop:
{
cout<<endl;
cout<<" "<<a9;
for(int j=0;j<5;j++)
cout<<a3<<a3<<a3<<a3<<a10;
cout<<a3<<a3<<a3<<a3<<a11<<endl;
cout<<endl;
cout<<" Total Sales(RM): "<<" "<<"Total Sales: RM"<<final_total<<endl;
}
}
}
int main()
{
char ch=0;
int seat_require=0 , seat_require1=0 ;
Sbooking s[srow][scol]; Ebooking e[erow][ecol];
initialize_S (s); initialize_E (e);
while(seat_require !=1)
{
ch = selection(ch);
if(ch =='S')
{
seat_require = superior_seatrequire();
printSuperior(Superior);
string seats = get_Superiorseat(s,seat_require);
S_totalprice(s,seats);
Occupancy_Stable(s,Superior);
}
if(ch =='E')
{
printEconomy(Economy);
seat_require1 = economy_seatrequire();
string seats1 = get_Economyseat(e,seat_require1);
E_totalprice(e,seats1);
Occupancy_Etable(e,Economy);
}
}
system("pause");
}
