Coefficient of Thermal Expansion and their Importance.pptx
oop micro 2 ok.docx
1. Hotel Management Project
Using C++(OOP) structure
Features:
Manage Rooms
Check-In
Get available rooms
Search customer
Check-out room
Get guest summary report
2. 1
Introduction:
Object Oriented Programming in C++
The prime purpose of C++ programming was to add object orientation to the C programming language,
which is in itself one of the most powerful programming languages. The core of the pure object-oriented
programming is to create an object, in code, that has certain properties and methods. While designing
C++ modules, we try to see whole world in the form of objects. Object Oriented programming is a
programming style that is associated with the concept of Class, Objects and various other concepts
revolving around these two, like Inheritance, Polymorphism, Abstraction, Encapsulation etc.
Let us try to understand a little about all these, through a simple example. Human Beings are living
forms, broadly categorized into two types, Male and Female. Right? Its true. Every Human being(Male or
Female) has two legs, two hands, two eyes, one nose, one heart etc. There are body parts that are
common for Male and Female, but then there are some specific body parts, present in a Male which are
not present in a Female, and some body parts present in Female but not in Males. All Human Beings
walk, eat, see, talk, hear etc. Now again, both Male and Female, performs some common functions, but
there are some specifics to both, which is not valid for the other. For example : A Female can give birth,
while a Male cannot, so this is only for the Female. Human Anatomy is interesting, isn't it? But let's see
how all this is related to C++ and OOPS. Here we will try to explain all the OOPS concepts through this
example and later we will have the technical definitons for all this.
There are a few principle concepts that form the foundation of object oriented programming −
Object:-
This is the basic unit of object oriented programming. That is both data and function that operate on
data are bundled as a unit called as object.
Class:-
When you define a class, you define a blueprint for an object. This doesn't actually define any data, but
it does define what the class name means, that is, what an object of the class will consist of and what
operations can be performed on such an object.
Abstraction:-
Data abstraction refers to, providing only essential information to the outside world and hiding their
background details, i.e., to represent the needed information in program without presenting the details.
For example, a database system hides certain details of how data is stored and created and maintained.
3. 2
Similar way, C++ classes provides different methods to the outside world without giving internal detail
about those methods and data.
Encapsulation:-
Encapsulation is placing the data and the functions that work on that data in the same place. While
working with procedural languages, it is not always clear which functions work on which variables but
object-oriented programming provides you framework to place the data and the relevant functions
together in the same object.
Inheritance
One of the most useful aspects of object-oriented programming is code reusability. As the name
suggests Inheritance is the process of forming a new class from an existing class that is from the existing
class called as base class, new class is formed called as derived class. This is a very important concept of
object-oriented programming since this feature helps to reduce the code size.
Polymorphism
The ability to use an operator or function in different ways in other words giving different meaning or
functions to the operators or functions is called polymorphism. Poly refers to many. That is a single
function or an operator functioning in many ways different upon the usage is called polymorphism.
Overloading
The concept of overloading is also a branch of polymorphism. When the exiting operator or function is
made to operate on new data type, it is said to be overloaded.
4. 3
Project explanation:
Idea:-
project is a project for managing the hotel rooms and reservation throw multi features that help to
register,checkin,add rooms and other features .
Code explanation:
We will start by explaining every piece of code in the project and for that we will explain the functions
then we will gather all the pieces to make a running managing hotel rooms program
Notes: we will write Arabic explanation on code screens to make it clear
We will need to classes Customer and Rooms
Input:-
Customer class
5. 4
Room Class
Then we will will need a Hotel management class for putting our functions in
Hotel management class
It has 5 main functions in it listed in the screen above
6. 5
We now start with the first function which is Check in()
Check in secreen1
17. 16
//hotel management class
class HotelMgnt:protected
Room
{
public:
void checkIn();
void
getAvailRoom();
void searchCustomer(char
*); void checkOut(int);
void guestSummaryReport();
};
void HotelMgnt::guestSummaryReport(){
if(count==0){
cout<<"n No Guest in Hotel !!";
}
for(int i=0;i<count;i++)
{
if(rooms[i].status==1)
{
cout<<"n Customer First Name : "<<rooms[i].cust.name;
cout<<"n Room Number : "<<rooms[i].roomNumber;
cout<<"n Address (only city) :
"<<rooms[i].cust.address; cout<<"n Phone :
"<<rooms[i].cust.phone;
cout<<"n ";
}
}
getch();
}
//hotel management reservation of room
void HotelMgnt::checkIn()
{
int i,found=0,rno;
class Room room;
cout<<"nEnter Room number :
"; cin>>rno;
for(i=0;i<count;i++)
{
if(rooms[i].roomNumber==rno)
{
found=1;
break;
}
}
if(found==1)
{
if(rooms[i].status==1)
{
cout<<"nRoom is already Booked";
18. 17
getch();
return;
}
cout<<"nEnter booking id: ";
cin>>rooms[i].cust.booking_id;
cout<<"nEnter Customer Name (First Name): ";
cin>>rooms[i].cust.name;
cout<<"nEnter Address (only city): ";
cin>>rooms[i].cust.address;
cout<<"nEnter Phone: ";
cin>>rooms[i].cust.phone;
cout<<"nEnter From Date: ";
cin>>rooms[i].cust.from_date;
cout<<"nEnter to Date:
";
cin>>rooms[i].cust.to_da
te;
cout<<"nEnter Advance Payment: ";
cin>>rooms[i].cust.payment_advance;
rooms[i].status=1;
cout<<"n Customer Checked-in Successfully..";
getch();
}
}
//hotel management shows available
rooms void HotelMgnt::getAvailRoom()
{
int i,found=0;
for(i=0;i<count;i++)
{
if(rooms[i].status==0)
{
displayRoom(rooms[i]);
cout<<"nnPress enter for next
room"; found=1;
getch();
}
}
if(found==0)
{
cout<<"nAll rooms are
reserved"; getch();
}
}
19. 18
//hotel management shows all persons that have booked
room void HotelMgnt::searchCustomer(char *pname)
{
int i,found=0;
for(i=0;i<count;i++)
{
if(rooms[i].status==1 && stricmp(rooms[i].cust.name,pname)==0)
{
cout<<"nCustomer Name: "<<rooms[i].cust.name;
cout<<"nRoom Number: "<<rooms[i].roomNumber;
cout<<"nnPress enter for next record";
found=1;
getch();
}
}
if(found==0)
{
cout<<"nPerson not found.";
getch();
}
}
//hotel managemt generates the bill of the expenses
void HotelMgnt::checkOut(int roomNum)
{
int
i,found=0,days,rno;
float billAmount=0;
for(i=0;i<count;i++)
{
if(rooms[i].status==1 && rooms[i].roomNumber==roomNum)
{
//rno = rooms[i].roomNumber;
found=1;
//getch();
break;
}
}
if(found==1)
{
cout<<"nEnter Number of
Days:t"; cin>>days;
billAmount=days * rooms[i].rent;
cout<<"nt######## CheckOut Details ########n";
cout<<"nCustomer Name : "<<rooms[i].cust.name;
cout<<"nRoom Number : "<<rooms[i].roomNumber;
cout<<"nAddress : "<<rooms[i].cust.address;
cout<<"nPhone : "<<rooms[i].cust.phone;
cout<<"nTotal Amount Due : "<<billAmount<<" /";
cout<<"nAdvance Paid: "<<rooms[i].cust.payment_advance<<" /";
20. 19
cout<<"n*** Total Payable: "<<billAmount-
rooms[i].cust.payment_advance<<"/ only";
rooms[i].status=0;
}
getch();
}
//managing rooms (adding and searching available rooms)
void manageRooms()
{
class Room room;
int opt,rno,i,flag=0;
char ch;
do
{
system("cls");
cout<<"n### Manage Rooms
###"; cout<<"n1. Add Room";
cout<<"n2. Search Room";
cout<<"n3. Back to Main
Menu"; cout<<"nnEnter
Option: "; cin>>opt;
//switch statement
switch(opt)
{
case 1:
cout<<"nEnter Room Number: ";
cin>>rno;
i=0;
for(i=0;i<count;i++)
{
if(rooms[i].roomNumber==rno)
{
flag=1;
}
}
if(flag==1)
{
cout<<"nRoom Number is Present.nPlease enter unique Number";
flag=0;
getch();
}
else
{
rooms[count]=room.addRoom(rno);
count++;
}
break;
case 2:
cout<<"nEnter room number: ";
21. 20
cin>>rno;
room.searchRoom(rno);
break;
case 3:
//nothing to
do break;
default:
cout<<"nPlease Enter correct option";
break;
}
}while(opt!=3);
}
using namespace
std; int main()
{
class HotelMgnt
hm; int
i,j,opt,rno; char
ch;
char
pname[100];
system("cls");
do
{
system("cls");
cout<<"######## Hotel Management #########n";
cout<<"n1. Manage Rooms";
cout<<"n2. Check-In Room";
cout<<"n3. Available Rooms";
cout<<"n4. Search Customer";
cout<<"n5. Check-Out Room";
cout<<"n6. Guest Summary
Report"; cout<<"n7. Exit";
cout<<"nnEnter Option: ";
cin>>opt;
switch(opt)
{
case 1:
manageRooms();
break;
case 2:
if(count==0)
{
cout<<"nRooms data is not available.nPlease add the rooms first.";
getch();
}
else
hm.checkIn();
break;
case 3:
if(count==0)
{
cout<<"nRooms data is not available.nPlease add the rooms first.";
getch();
22. 21
}
else
hm.getAvailRoom()
; break;
case 4:
if(count==0)
{
cout<<"nRooms are not available.nPlease add the rooms first.";
getch();
}
else
{
cout<<"Enter Customer Name: ";
cin>>pname;
hm.searchCustomer(pname);
}
break;
case 5:
if(count==0)
{
cout<<"nRooms are not available.nPlease add the rooms first.";
getch();
}
else
{
cout<<"Enter Room Number : ";
cin>>rno;
hm.checkOut(rno);
}
break;
case 6:
hm.guestSummaryReport(
); break;
case 7:
cout<<"nTHANK YOU! FOR USING SOFTWARE";
break;
default:
cout<<"nPlease Enter correct option";
break;
}
}while(opt!=7);
getch();
}