Anyone see a problem with this?

I've got this program due and I just got back from vacation and I'm a little rusty. Anyway my program keeps freezing in the command prompt and now I'm trying to add a function called BoardingPass used to print out a boarding pass for the users flight. I'm not getting any errors at the bottom but my program won't run. Any way see a problem here? I'm not sure if the first class function is even wiring to the array, after you choose a first class seat it asks you if you would like another, if it's full it's supposed to ask if you would like a coach seat instead (coach seating is the same way but I haven't got first class working yet) but my program keeps freezing. Can anyone give me some suggestions?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
using namespace std;


void SeatingMenu (int);
void FirstClassSeating (int [], int &);
void CoachSeating (int[], int&);
void BoardingPass (int [], int);
void InputResponse (string);
int main ()
{
    const int SIZE = 10;
	int seats [SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    int choice, anotherseat;
    int i;
	

    cout << "Would you like to fly first class or coach?" << endl;
    cout << "1. First Class" << endl << "2. Coach" << endl;
    cout << "Enter your choice:" << endl;
    cin >> choice;
    
    SeatingMenu(choice);
	if (choice == 1)
	FirstClassSeating (seats, i);

	

	while (i < 6)
	{
	cout << "Book another first class seat?" << endl;
	cout << "1 = Yes" << endl << "2 = No" << endl;
	cin >> anotherseat;
	if (anotherseat == 1)
		FirstClassSeating (seats, i);
if (anotherseat == 2)
BoardingPass (seats, i);
	}

	if (i == 6)
		cout << "There are no more first class seats available" << endl;
	
	if (choice == 2)
	CoachSeating (seats, i);
	

    return 0;
}
	
	


void SeatingMenu(int choice)
{
    
       
        cout << "Choice: " << choice << endl; 
    if (choice == 1)
	{
		cout << "You have chosen a first class seat" << endl;
		
	}
    if (choice == 2) 
	{
		cout << "You have chosen a coach seat" << endl;
	}

	 
}

void FirstClassSeating(int seats [], int & i)
{
	seats[i] = 1;
	cout << "You have been booked a first class seat" << endl;
	i++;
	
}

void CoachSeating(int seats [], int & i)
{
        seats[i] = 1;
	cout << "You have been booked a coach seat" << endl;
}

void BoardingPass(int seats[], int & i)
{
cout << seats;
}

Other problems notwithstanding, the first thing I see is that you don't initialize i to zero and are probably trying to put a number into a location in the "seats" array well outside of your accessible range.
Thanks I figured it out.
I've got another problem now.
I can fill up the first class and coach class and read out that there are no more available seats.
BUT...... when I do the same thing for the coach option (they book a coach seat and I ask if they would like another.....) it always asks if I would like another first class seat.

This is how I want it to react, there are 6 first class and 6 coach.
Would you like to fly first class or coach?
1. First Class
2. Coach
Enter your choice:
1
Choice: 1
You have chosen a first class seat
You have been booked a first class seat
Book another first class seat?
1 = Yes
2 = No
1
You have been booked a first class seat
Book another first class seat?
1 = Yes
2 = No
1
You have been booked a first class seat
Book another first class seat?
1 = Yes
2 = No
1
You have been booked a first class seat
Book another first class seat?
1 = Yes
2 = No
1
You have been booked a first class seat
Book another first class seat?
1 = Yes
2 = No
1
You have been booked a first class seat
There are no more first class seats available
Would you like a coach seat instead?
1 = Yes
2 = No
1
You have been booked a coach seat
Would you like to book another coach seat?
1 = Yes
2 = No
1
You have been booked a coach seat
Would you like to book another coach seat?
1 = Yes
2 = No
1
You have been booked a coach seat
Would you like to book another coach seat?
1 = Yes
2 = No
1
You have been booked a coach seat
Would you like to book another coach seat?
1 = Yes
2 = No
1
You have been booked a coach seat
Would you like to book another coach seat?
1 = Yes
2 = No
1
You have been booked a coach seat
There are no more available seats
Press any key to continue . . .


When I make the changes to do the same thing for the coach option it doesn't work and it makes the first class not work as well. I had to make the coach seat an /* comment */ to get first class working again.

This is what I've got.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#include <iostream>
using namespace std;


void SeatingMenu (int);
void FirstClassSeating (int [], int &);
void CoachSeating (int[], int&);
void BoardingPass (int [], int);
void InputResponse (string);
int main ()
{
    const int SIZE = 10;
	int seats [SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    int choice, anotherseat, choicetwo;
    int i=0;
	

    cout << "Would you like to fly first class or coach?" << endl;
    cout << "1. First Class" << endl << "2. Coach" << endl;
    cout << "Enter your choice:" << endl;
    cin >> choice;
    
    SeatingMenu(choice);
	if (choice == 1)
	FirstClassSeating (seats, i);

	

	while (i < 6)
	{
	cout << "Book another first class seat?" << endl;
	cout << "1 = Yes" << endl << "2 = No" << endl;
	cin >> anotherseat;
	if (anotherseat == 1)
		FirstClassSeating (seats, i);

	}

	if (i == 6)
	{
		cout << "There are no more first class seats available" << endl;
		cout << "Would you like a coach seat instead?" << endl << "1 = Yes" << endl << "2 = No" << endl;
		cin >> choice;
		if (choice == 1)
		{
		CoachSeating (seats, i);
		while (i < 12)
		{
		cout << "Would you like to book another coach seat?" << endl << "1 = Yes" << endl << "2 = No" << endl;
		cin >> anotherseat;
		if (anotherseat == 1)
			CoachSeating (seats, i);
		if (i == 12)
			cout << "There are no more available seats" << endl;
	}
	}
	}
	

	
	
	
	/*if (choice == 2)
	CoachSeating (seats, i);
	while (i < 12, i > 6)
	{
	cout << "Book another coach seat?" << endl;
	cout << "1 = Yes" << endl << "2 = No" << endl;
	cin >> anotherseat;
	if (anotherseat == 1)
		CoachSeating (seats, i);
	}
	if (i == 12)
	{
		cout << "There are no more coach seats available" << endl;
		cout << "Would you like a first class seat instead?" << endl << "1 = Yes" << endl << "2 = No" << endl;
		cin >> choice;
		if (choice == 1)
		{
		FirstClassSeating (seats, i);
		while (i < 12)
		{
		cout << "Would you like to book first class seat?" << endl << "1 = Yes" << endl << "2 = No" << endl;
		cin >> anotherseat;
		if (anotherseat == 1)
			FirstClassSeating (seats, i);
		if (i == 6)
			cout << "There are no more available seats" << endl;
	}
	}
	}
*/

	

    return 0;
}

	
	


void SeatingMenu(int choice)
{
    
       
        cout << "Choice: " << choice << endl; 
    if (choice == 1)
	{
		cout << "You have chosen a first class seat" << endl;
		
	}
    if (choice == 2) 
	{
		cout << "You have chosen a coach seat" << endl;
	}

	 
}

void FirstClassSeating(int seats [], int & i)
{
	seats[i] = 1;
	cout << "You have been booked a first class seat" << endl;
	i++;
	
}

void CoachSeating(int seats [], int & i)
{
        seats[i] = 7;
		cout << "You have been booked a coach seat" << endl;
		i++;
}
Well you're not including <string>, the compiler may include it in iostream but that's probably not the case on other compilers.

 
#include <string> 
I think I would advise you to reexamine the flow of your logic and overall structure of the program. For starters, I would suggest creating check on whether all of your "seats" are occupied, and then encasing the body of your code in a loop until that condition is met, and then build from there.

If you elect not to go that route, I would then advise you to check your brackets. As you have it, you enter

1
2
3
4
5
6
7
8
9
while (i < 6)
	{
	cout << "Book another first class seat?" << endl;
	cout << "1 = Yes" << endl << "2 = No" << endl;
	cin >> anotherseat;
	if (anotherseat == 1)
		FirstClassSeating (seats, i);

	}


no matter what you choose at the seating menu.
I got it. I put everything in a bracket after the first choice of choice or first class. The problem with coach is that instead of starting that 7 like it should it starts at 1. I have to book 12 coach seats for it to tell me that there are no more available, when really there are only 6. In the array seats 1-6 are first class and 7-12 are coach. I set it to start at 7 in the CoachSeating function but I'm not sure why it's not working.
Anyone know what I can't fill the coach class but I can fill the first call. 1 = first class 2 = coach. I have made them almost identical. Here's the output.
Would you like to fly first class or coach?
1. First Class
2. Coach
Enter your choice:
1
Choice: 1
You have chosen a first class seat
You have been booked a first class seat
Book another first class seat?
1 = Yes
2 = No
1
You have been booked a first class seat
Book another first class seat?
1 = Yes
2 = No
1
You have been booked a first class seat
Book another first class seat?
1 = Yes
2 = No
1
You have been booked a first class seat
Book another first class seat?
1 = Yes
2 = No
1
You have been booked a first class seat
There are no more first class seats available
Would you like a coach seat instead?
1 = Yes
2 = No
1
You have been booked a coach seat
Would you like to book another coach seat?
1 = Yes
2 = No
1
You have been booked a coach seat
Would you like to book another coach seat?
1 = Yes
2 = No
1
You have been booked a coach seat
Would you like to book another coach seat?
1 = Yes
2 = No
1
You have been booked a coach seat
Would you like to book another coach seat?
1 = Yes
2 = No
1
You have been booked a coach seat
There are no more available seats
Boarding Pass
___________________________________
1
1
1
1
1
2
0
0
0
0
Press any key to continue . . .



I entered enough numbers to fill the first class and coach but the coach never gets more than the first seat booked.

Here's my code, almost finished - comments.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
#include <iostream>
using namespace std;


void SeatingMenu (int);
void FirstClassSeating (int [], int &);
void CoachSeating (int[], int &);
void BoardingPass (int [], int, int);
void InputResponse (string);
int main ()
{
    const int SIZE = 10;
	int seats [SIZE] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
    int choice, anotherseat;
    int i=0;
	

    cout << "Would you like to fly first class or coach?" << endl;
    cout << "1. First Class" << endl << "2. Coach" << endl;
    cout << "Enter your choice:" << endl;
    cin >> choice;
    
    SeatingMenu(choice);

	if (choice == 1)
	{
	FirstClassSeating (seats, i);

	
	
	while (i < 5)
	{
	cout << "Book another first class seat?" << endl;
	cout << "1 = Yes" << endl << "2 = No" << endl;
	cin >> anotherseat;
	if (anotherseat == 1)
		FirstClassSeating (seats, i);
	if (anotherseat == 2)
			BoardingPass (seats, i, SIZE);
	
	}
	

	if (i == 5)
	{
		cout << "There are no more first class seats available" << endl;
		cout << "Would you like a coach seat instead?" << endl << "1 = Yes" << endl << "2 = No" << endl;
		cin >> choice;
		if (choice == 1)
			CoachSeating (seats, i);
		if (choice == 2)
			BoardingPass (seats, i, SIZE);
	}
		while (i < 10)
		{
		cout << "Would you like to book another coach seat?" << endl << "1 = Yes" << endl << "2 = No" << endl;
		cin >> anotherseat;
		if (anotherseat == 1)
			CoachSeating (seats, i);
		if (anotherseat == 2)
			BoardingPass (seats, i, SIZE);
		if (i == 10)
		{
			cout << "There are no more available seats" << endl;
			BoardingPass (seats, i, SIZE);
		}
	}
	}	
	
		
		
	
	

	if (choice == 2)
	{
	CoachSeating (seats, i);

	
	
	while (i < 5)
	{
	cout << "Book another coach seat?" << endl;
	cout << "1 = Yes" << endl << "2 = No" << endl;
	cin >> anotherseat;
	if (anotherseat == 1)
		CoachSeating (seats, i);
	if (anotherseat == 2)
			BoardingPass (seats, i, SIZE);
	
	
}
	

	if (i == 10)
	{
		cout << "There are no more coach seats available" << endl;
		cout << "Would you like a first class instead?" << endl << "1 = Yes" << endl << "2 = No" << endl;
		cin >> choice;
		if (choice == 1)
			FirstClassSeating (seats, i);
			if (choice == 2)
			BoardingPass (seats, i, SIZE);
	
	
	}
	
		while (i < 10)
		{
		cout << "Would you like to book another first class seat?" << endl << "1 = Yes" << endl << "2 = No" << endl;
		cin >> anotherseat;
		if (anotherseat == 1)
			FirstClassSeating (seats, i);
		if (anotherseat == 2)
			BoardingPass (seats, i, SIZE);
	
		
		if (i == 10)
		{
			cout << "There are no more available seats" << endl;
			BoardingPass (seats, i, SIZE);
		}
	
		}
		}
		
		
	
	
	
	


    return 0;
}

	
	


void SeatingMenu(int choice)
{
    
       
        cout << "Choice: " << choice << endl; 
    if (choice == 1)
	{
		cout << "You have chosen a first class seat" << endl;
		
	}
    if (choice == 2) 
	{
		cout << "You have chosen a coach seat" << endl;
	}

	 
}

void FirstClassSeating(int seats [], int & i)
{
	seats[i] = 1;
	cout << "You have been booked a first class seat" << endl;
	i++;
	
}

void CoachSeating(int seats [], int & i)
{
		seats[5] = 2;
		cout << "You have been booked a coach seat" << endl;
		i++;
	
}

void BoardingPass (int seats [], int i, int SIZE)
{
	cout << "Boarding Pass" << endl << "___________________________________" << endl;
	for (i = 0; i < SIZE; i++)
		cout << seats[i] << endl;
}



Thanks guys!
seats[5] = 2;
I see what I'm doing now.
1
2
3
4
i = 5;
		seats[i] = 2;
		cout << "You have been booked a coach seat" << endl;
		i++;


But the problem with this is that i always equals 5 even if i++. How can I make coachseating start at 5 and end at 10?
CoachSeating (seats, i+5)?
Experimenting with a for loop.
1
2
for (i=5; i<10; i++)
		seats[i] = 2;


The obvious problem with this is that if you only book 1 coach seat it will fill all 5 seats because of the i++.
I'm sure this is a simple fix, not sure why I can't figure it out though.
Topic archived. No new replies allowed.