为什么类计数器不递增教练类?
Why doesn't the class counter increment the Coach class?
好的,所以我的问题是,每次我运行代码并选择第 5 - 9 行中的任何内容时,它都不会更新教练计数器,但业务类计数器请帮助!
#include<iostream>
#include<string>
#include <iomanip>
using namespace std;
#include "C:UsersbartaOneDriveDocumentsVisual Studio 2015ProjectsProject 4Project 4array.h"
void displayPlane(char msg[], char[ROW][COL]);
void getData(int &, char &);
void salesReport(int classCtr[],double fare[], string classes[]);
int main()
{
int row = 0;
char seat;
while (row != -1)
{
displayPlane("tChesapeaake Airlines", layout);
cout << endl;
getData(row, seat);
if (row == -1)
break;
cout << endl;
int COL = seat - 'A';
if (layout[row - 1][COL] == 'X')
{
cout << "Sorry this seat is taken" << endl;
}
else
{
layout[row - 1][COL] = 'X';
}
}
double percentOccupied;
std::cout << std::fixed;
std::cout << std::setprecision(2);
int total = 0;
for (int i = 0; i < 2; i++)
{
total += classCtr[i];
}
cout << setw(18) << "Total Seats = " << total << endl;
percentOccupied = ((double)total / 36) * 100;
cout << setw(22) << "Percent Occupied = " << percentOccupied << endl;
salesReport(classCtr, fare, classes);
cout << endl;
cout << "Have a nice day! " << endl;
system("pause");
return 0;
}
void displayPlane(char msg[] , char[ROW][COL])
{
cout <<msg << endl;
for (int r = 0; r < ROW; r++)
{ cout << endl;
cout << setw(4) << r + 1;
for (int c = 0; c < COL; c++)
{
cout << setw(4) << layout[r][c];
}
}
}
void getData(int& row, char& seat)
{
cout << "Enter row <-1 to stop> ";
cin >> row;
if (row == -1)
return;
if (row == 1)
{
classCtr[0]++;
}
else if (row == 2 || 3 || 4)
{
classCtr[1]++;
}
else if (row == 5 || 6 || 7 || 8)
{
classCtr[2]++;
}
cout << "Enter your prefered seat ";
cin >> seat;
seat = toupper(seat);
}
void salesReport(int classCtr[], double fare[], string classes[])
{
cout << " tTicket Price" << setw(20) <<"Total Salesnn"
<< setw(14) << classes[0] << "t" << fare[0] << setw(6) <<classCtr[0] << "nn"
<< classes[1] << "t" << fare[1] << setw(6) <<classCtr[1] <<"nn"
<< setw(14) << classes[2] << "t" << fare[2] << setw(6) << classCtr[2];
}
头文件:
//arrays for airline problem
const int ROW = 9;
const int COL = 4;
const int CTR = 3;
//initial seats in the plane
char layout[ROW][COL] = { { 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' },
{ 'A', 'B', 'C', 'D' }};
int classCtr[CTR] = {0,0,0};
string classes[] = {"First Class", "Business Class", "Coach"};
double fare [] = {500, 300, 100};
这是我运行代码时的输出 切萨佩阿克航空公司
1 A B C D
2 A B C D
3 A B C D
4 A B C D
5 A B C D
6 A B C D
7 A B C D
8 A B C D
9 A B C D
Enter row <-1 to stop> 5
Enter your prefered seat a
Chesapeaake Airlines
1 A B C D
2 A B C D
3 A B C D
4 A B C D
5 X B C D
6 A B C D
7 A B C D
8 A B C D
9 A B C D
Enter row <-1 to stop> 7
Enter your prefered seat c
Chesapeaake Airlines
1 A B C D
2 A B C D
3 A B C D
4 A B C D
5 X B C D
6 A B C D
7 A B X D
8 A B C D
9 A B C D
Enter row <-1 to stop> 9
Enter your prefered seat d
Chesapeaake Airlines
1 A B C D
2 A B C D
3 A B C D
4 A B C D
5 X B C D
6 A B C D
7 A B X D
8 A B C D
9 A B C X
Enter row <-1 to stop> -1
Total Seats = 3
Percent Occupied = 8.33
Ticket Price Total Sales
First Class 500.00 0
Business Class 300.00 3 <------See this is where the rows are being updated
Coach 100.00 0 <---- but i need rows 5 - 9 to be updated here
Have a nice day!
Press any key to continue . . .
您不能像这样缩写复合条件:
else if (row == 2 || 3 || 4)
你需要写:
else if (row == 2 || row == 3 || row == 4)
否则,该陈述被解释为"如果row == 2
为真或3
为真或4
为真"。当将整数解释为布尔值时,C++认为零是假的,非零数是真的,所以你的原始陈述等效于
else if ((row == 2) || true || true)
您可能会注意到,这始终是正确的!
您可能还需要考虑编写语句的替代方案,例如:
else if (row >= 2 && row <= 4)
如果数字范围很大,这可能比列出每个可能的数字要紧凑得多。
相关文章:
- 循环在计数器中不起作用
- python集合的C++等价物是什么.计数器
- Python 集合.计数器,如何避免重复查找
- 请解释字谜的代码,我看不懂计数器数组,每个值已经是0
- std::shared_ptr 自定义参考计数器
- 英特尔 TBB 程序不会终止,可能会误用参考计数器
- 不正确的比较和交换计数器输出用于快速排序功能
- OpenSSL API,使用GCM(伽罗瓦计数器模式)进行AES加密
- C++ 在循环中添加计数器变量并再次初始化其值
- 需要帮助才能在C++中创建类计数器
- 漂亮的计数器习语的错误或格式错误的静态订单惨败?
- 几乎总是自动和带计数器的循环
- 线程使用计数器C++
- 为什么使用 2 个嵌套循环 O(n^2) 复杂度来解决二和问题,当只改变循环计数器逻辑时运行得更快?
- 对于循环计数器不递增
- C++输出的就地计数器
- 在两个值之间嵌入C计数器
- 如何在C++中创建 2d 数组,其中一部分包含循环计数器,另一部分包含数字列表?
- 当输出达到某个值时,如何在 c++ 中中断计数器循环
- 为什么类计数器不递增教练类?