You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Customer.java 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import java.util.ArrayList;
  2. public class Customer {
  3. private final String name;
  4. private final ArrayList<Rental> rentals = new ArrayList<>();
  5. public Customer( String name ) {
  6. this.name = name;
  7. }
  8. public void addRental( Rental arg ) {
  9. rentals.add( arg );
  10. }
  11. public String getName() {
  12. return name;
  13. }
  14. public String statement() {
  15. // add header
  16. StringBuilder result = new StringBuilder();
  17. result.append("Rental Record for ").append(getName()).append("\n");
  18. // add line for each rental
  19. for( Rental curRental : rentals ) {
  20. // show figures for this rental
  21. result.append("\t").append(curRental.getMovie().getTitle()).append("\t days rented: ").append(curRental.getDaysRented()).append(" = ").append(String.valueOf( curRental.calculateFee() )).append("\n");
  22. }
  23. // add footer lines
  24. result.append("Amount owed is ").append(String.valueOf( getTotalAmount() )).append("\n");
  25. result.append("You earned ").append(String.valueOf( getFrequentRenterPoints() )).append(" frequent renter points");
  26. return result.toString();
  27. }
  28. public String htmlStatement() {
  29. StringBuilder result = new StringBuilder();
  30. result.append("<html>").append("\n");
  31. result.append("<h1>").append("Rental Record for ").append(getName()).append("</h1>").append("\n");
  32. for(Rental curRental : rentals) {
  33. result.append("<p>");
  34. result.append("\t").append(curRental.getMovie().getTitle());
  35. result.append("\t days rented: ").append(curRental.getDaysRented());
  36. result.append(" = ").append(String.valueOf(curRental.calculateFee())).append("\n");
  37. result.append("</p>\n");
  38. }
  39. result.append("<h3>Amount owed is ").append(String.valueOf(getTotalAmount())).append("</h3>\n");
  40. result.append("<h3>You earned ").append(String.valueOf(getFrequentRenterPoints())).append(" frequent renter points</h3></html>");
  41. return(result.toString());
  42. }
  43. private int getFrequentRenterPoints() {
  44. int frequentRenterPoints = 0;
  45. for( Rental curRental : rentals ) {
  46. // add frequent renter points
  47. frequentRenterPoints += curRental.calculateBonus();
  48. }
  49. return frequentRenterPoints;
  50. }
  51. private double getTotalAmount() {
  52. double totalAmount = 0;
  53. for( Rental curRental : rentals ) {
  54. double thisAmount = curRental.calculateFee();
  55. totalAmount += thisAmount;
  56. }
  57. return totalAmount;
  58. }
  59. }