Design a class named Person with properties for holding a persons name, address, and telephone number.

Design a class named Customer, which is derived from the Person class. The Customer class should have the variables and properties for the customer number, customer email, a spentAmount of the customers purchases, and a Boolean variable indicating whether the customer wishes to be on a mailing list. It also includes a function named calcAmount that calculates the spentAmount.

All retail store has a preferred customer plan where customers can earn discounts on all their purchases. The amount of a customers discount is determined by the amount of the customers cumulative purchases in the store as follows:

  • When a preferred customer spends $500, he or she gets a 5% discount on all future purchases.
  • When a preferred customer spends $1000, he or she gets a 6% discount on all future purchases.
  • When a preferred customer spends $1500, he or she gets an 8% discount on all future purchases.
  • When a preferred customer spends $2000, he or she gets a 10% discount on all future purchases.

Design a class named PreferredCustomer, which is derived from the Customer class. The PreferredCustomer class should have a variable, discountLevel, with a read-only property. It alsoincludes a setDiscountLevel function that determine the discount level based on the purchases amount using switch statement and an override function, calcAmount, calculates the spentAmount with the current discount level.

Create a CustomerDemo class. In the main function, the program calls the getData function to read the data from the CustomerInfo.txt file and create a dynamic array of PreferredCustomer object. Then, it prompts user to enter a customer number and displays a menu:

  • Display Customer Information: display the specific customer information
  • Update Spent Amount: update the total amount with the correct discount level

After update the spent Amount, the program writes the updated information back to file.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.