• Coding
  • C++ Airline Reservation System

Hey all i am new to this forum. I know most of all are familiar with this exercise it's just a simple c++ course homework i'm just stuck at the:

"As each seat is assigned, set the corresponding elements of the array to true to indicate that the seat is no longer available.
Your program should never assign a seat that is already been assigned. When the first class section is full, your program should ask the person if it’s acceptable to be placed in the economy section (and vice versa). "

this is the whole exercise:

– Airline Reservations System:
Write a program for an airline company that assigns seats on each flight of the airline’s only plane (capacity: 10 seats).
Your program should display the following menu of alternatives:
• Please type 1 for “First Class”
• Please type 2 for “Economy”
If the person types 1, your program should assign a seat in the first class section (seat 1 – 5).
If the person types 2, your program should assign a seat in the economy section (seat 6 – 10).
Your program should print a boarding pass indicating the person’s seat number and whether it’s in the first class or economy section of the plane.
Use a one-dimensional array to represent the seating chart of the plane. Initialize all the elements of the array to false to indicate that all seats are empty. As each seat is assigned, set the corresponding elements of the array to true to indicate that the seat is no longer available.
Your program should never assign a seat that is already been assigned. When the first class section is full, your program should ask the person if it’s acceptable to be placed in the economy section (and vice versa). If yes, then make the appropriate seat assignment. If no, then print the message text “Next flight leaves in 3 hours.”

And This is my code so far (p.s: i can finish up the rest of the program i just need help with this specific part):
#include <iostream>
using namespace std;
#include <ctime>
#include <cstdlib>
#include <string>


int main()
{
	bool seat[11]={false};
	int Choice,x,y;
	string str1(" ");
	srand(time(0));
	for (int i =0; i<10;i++)
	{
		cout<<"Please type 1 for \"First Class\""
		<<"\nPlease type 2 for \"Economy\"\n";
		cin>>Choice;
		if(Choice==1)
		{
			x=(1+rand() %5);
			if(seat[x]==false)
				seat[x]=true;
			str1="First Class";
		}
		
		else if (Choice=2)
		{
			y=(5+rand() %10);
			if(seat[y]==false)
				seat[y]=true;
			str1="Economy";
		}
			cout<<"Boarding Pass: ";
		cout<<"\nSeat #: "<<x<<" Seat Type: "<<str1<<endl<<endl;


	}
	return 0;
}
Hello and welcome. Please refer to the How to ask questions and edit your post to adapt it to the guidelines.

some remarks:

1- There is no need to repeat the big block of text in bold. We read it once it was enough.
2- What is your question? Saying "I'm stuck" is not a question. Do you want us to finish the exercise for you?

I can understand that you can be completely stuck and cannot find an answer. However Lebgeeks won't help you there. What you need is a programming tutorial that will teach you what you need. (Or you could actually show up to class when the professor is explaining this).

What we can do is help you with specific questions or give you our comments on your code, but we will not do your work.

So one more time please edit your post to make your precise question more clear to us.

For now here's the best I can help you with:
        if(Choice==1)
        {
            x=(1+rand() %5);
            if(seat[x]==false)
                seat[x]=true;
            str1="First Class";
        }
What happens if seat[x] == true? Let's say your first customer comes, takes choice 1 (first class) and gets assigned seat[3]. The second customer arrives, and rand also gives seat[3]. What do you do? You still have seat[0] to seat [2] + seat[4] to fill.

Hope this helps.
This is a very basic assignment. As rahmu said, you should rely on your skills to implement the code.

Did you write first the algorithm before trying to implement it ?
when working with conditioning, you are better of by negating. do the reverse of what you thought, if true = yes and negate the logic. that would simplify, improve and make your code more efficient (less cycling).
<mod edit: Replying by PM. This post is not the place to discuss these matters />
I can give you a hint how to solve it.
The use of rand is complicating things for you, why not use a for loop for first class seats?

if seat not taken>take seat>break from loop.
if seat taken,continue loop until you find a not taken seat.
if all seats are taken and after the loop, you could ask the user if he wants seats form second class.