The following table helps you calculate how many ACMPerk miles you can earn when you fly on ACM.
|
When you fly ACM
|
Class Code
|
You'll earn
|
|
First Class
|
F
|
Actual mileage + 100% mileage Bonus
|
|
Business Class
|
B
|
Actual mileage + 50% mileage Bonus
|
|
Economy Class
1-500 miles 500+ miles |
Y
|
500 miles Actual mileage |
It's shown that your ACMPerk mileage consists of two parts. One is your actual flight mileage (the minimum ACMPerk mileage for Economy Class for one flight is 500 miles), the other is the mileage bonus (its accuracy is up to 1 mile) when you fly in Business Class and First Class. For example, you can earn 1329 ACMPerk miles, 1994 ACMPerk miles and 2658 ACMPerk miles for Y, B or F class respectively for the fly from Beijing to Tokyo (the actual mileage between Beijing and Tokyo is 1329 miles). When you fly from Shanghai to Wuhan, you can earn ACMPerk 500 miles for economy class and ACMPerk 650 miles for business class (the actual mileage between Shanghai and Wuhan is 433 miles).
Your task is to help ACM build a program for automatic calculation of ACMPerk mileage.
Input
The input file contains several data cases. Each case has many flight records, each per line. The flight record is in the following format:
OriginalCity DistanceCity ActualMiles ClassCode
Each case ends with a line of one zero.
A line of one # presents the end of the input file.
Output
Output the summary of ACMPerk mileages for each test case, one per line.
Sample Input
Beijing Tokyo 1329 F
Shanghai Wuhan 433 Y
0
#
Sample Output
3158
****************************************************************************************************************************************************
#include<iostream>
#include<string>
using namespace std;
int main()
{
string OriginalCity,DistanceCity;//其实是没用的
int ActualMiles;
int ACMPerk=0;
string ClassCode;
while(cin>>OriginalCity&&OriginalCity[0]!='#')//难点:#和0的嵌套
{
if(OriginalCity[0]!=48)
{
cin>>DistanceCity>>ActualMiles>>ClassCode;
if(ClassCode[0]=='F')
ACMPerk+=2*ActualMiles;
if(ClassCode[0]=='B')
ACMPerk+=1.5*ActualMiles;
if(ClassCode[0]=='Y')
{
if(ActualMiles<=500)
ACMPerk+=500;
else
ACMPerk+=ActualMiles;
}
}
else
{
cout<< ACMPerk<<endl;
ACMPerk=0;
}
}
return 0;
}
本文介绍了一种自动计算ACM航空公司里程积分的程序设计方案。该方案根据乘客飞行的实际里程及舱位等级,帮助旅客了解如何累积里程并兑换免费机票。
1209

被折叠的 条评论
为什么被折叠?



