ISM3230 Java Lab Week 5

TASK

Your employer, a major airline, offers a frequent flier program. In this program, customers earn status based on the total number of miles flown and the total number of flight segments flown. A client qualifies for a status only if both minimum conditions are met (see Table 1).

In addition, the airline is running a promotion where customers receive bonus miles and flight segments when they sign up for it (see Table 2). This bonus needs to be accounted for when determining the customer status.

Your task is to determine the appropriate status for a customer based on the following data:

 

Status,Minimum Mileage,Minimum Segment Count

Platinum,100000,75

Gold,75000,50

Silver,50000,25

Bronze,Less than 50000,Less than 25

 

Promotion,Bonus Mileage,Bonus Segment Count

Per participating customer,25000,10

 

• To qualify for a given status, the customer must meet the minimum levels for both mileage and segment count.

• If a customer meets one of the requirements for level X, but not the other, that customer does not qualify for level X.

• If a customer does not qualify for any mileage/segment-based status, that customer is considered to have “Bronze” status, i.e., that is the default status for the frequent flier program.

• The promotion input should be a String with the first character being 'Y' or 'y' to indicate Yes. All other input strings are taken to mean No.

 

INSTRUCTIONS

From this lab on, your code must be correctly indented. Use Source>Format menu command in Netbeans to align your code indentation with the use of code blocks identified with { }. Incorrectly indented code will incur a grade penalty.

 

1. Declare class-level named constants for the bonus miles and bonus segments that customers receive if signed up for a promotion (Table 2). You do not need to use constants for the mileage and segment numbers from Table 1.

2. Prompt the user to enter whether the customer is participating in the promotion, and store the value as a String (use Scanner's nextLine() method).

3. Prompt the user to enter mileage flown, and store the value as an integer.

4. Prompt the user to enter segment count, and store the value as an integer.

Checkpoint 1:

Print all three user inputs to screen to ensure that you read them correctly:

 

5. Determine if the customer mileage and segment count should be increased by the bonus amounts. If yes, add the bonus to the customer data.

• To make this decision, take the first character from the participation String and evaluate it for being equal to 'Y' or 'y', which means yes. All other characters signify No participation. Use a "simple" if statement for this step (without else).

• Hint: you can do this by using various String methods for equality and case conversions. See String methods for details on the appropriate methods.

• Hint: you can also do this by using a String method charAt(index) and using a compound boolean expression to check for both cases. See String methods for details on charAt.

• Hint: do not use == for Strings.

 

Checkpoint 2:

Print the result of the decision based on the user’s input for promotion. If the user

entered anything starting with Y or y, print “promo yes”, otherwise don’t print anything:

 

If this is working, comment out the print statement and continue to add the logic for the bonused data.

 

• You need to preserve the user-entered data for output, so you need new variables for the bonused data.

• Hint: Be mindful of variable scope rules. Make sure variables are visible where you need them to be, and that they contain valid values regardless of the outcome of the “if” statement.

 

Checkpoint 3:

Print out the original user-entered mileage and segments and the bonused mileage and segments, noting that when the customer does not participate in the promotion, the values should be the same:

 

6. Determine the status level for which the customer is eligible, based on the Table 1. Use an "else- if" pattern for this step.

7. Following the sample output below, report the following information, in this order:

• The total mileage flown without bonus

• The total mileage flown with bonus (if no bonus, then same as above)

• The count of segments flown without bonus

• The count of segments flown with bonus (if no bonus, then same as above)

• The customer status level

8. When printing output, make sure that you separate the logic from the output, i.e., you should have only one System.out.println statement that prints the customer's status. This print statement, along with the print statements that display the mileage and segment counts should be outside and below all if/else logic.

9. Make sure your output matches the sample output in wording, spacing, capitalization, and punctuation.

 

The logic of the task can also be summarized by a decision tree.

 

Need a custom answer at your budget?

This assignment has been answered 4 times in private sessions.

© 2021 Codify Tutor. All rights reserved