+1 (315) 557-6473 

Create A Program to Create a College Billing System Assignment Solution.


Instructions

Objective
Write a java homework to create college billing system.

Requirements and Specifications

Advanced Java 100 points
Due date – Feb 25 11:59pm (nothing late- solution posted at midnight)
You are to create a program to calculate a College bill for a student. You will have two new user defined classes.
  1. The first user defined class will have a default constructor that will assign the following data to variables to your choice. Therefore, the only this thing this class will do is to assign these values to variables:
    1.  Cost of the tuition rate per credits = $750
    2.  Cost of the technology fee =$50
    3. Cost of three levels of meal plans,
      •  gold,=$3,500
      •  silver=$3,000
      •  bronze=$2,500
    4.  Cost of parking pass=$200
  2.  The second user defined class will contain the methods:
    1. a default constructor that has the first class above passed to it and data from the first class is assigned to variables of your choice in this second class
    2.  a method that prompts the user for the following data
      •  student name
      • number of credits
      •  room amount
      • which meal plan the student wants(gold, silver or bronze)
      1.  a method to calculate the following:
      2.  cost of room and board= (cost of the meal plan + room amount) You will need an if statement to calculate the meal plan based on the meal plan costs passed in
      3. tuition = number of credits * the tuition rate passed in
      4.  final technology fee = technology fee passed in * number of credits
      5. final bill = room and board + final technology fee + parking pass (passed in) +tuition
      6. a method to print all of the following data in one dialog box using currency format (example of using currency formatting is included with this assignment)
      •  student name
      •  number of credits
      • tuition the student owes
      •  room and board amount
      •  parking pass amount
      • final technology fee
      • final bill due
      1. What to turn in:
      2. Create a word document and first copy your code
      3.  Then copy a screen shot of the final output
      4.  Submit the word document to blackboard
      PLEASE NOTE: You text in the word document MUST be black. Submissions with light text will not be accepted.
      Source Code
      import javax.swing.*;
      import java.text.DecimalFormat;
      public class CollegeBill {
          private final double tuitionRatePerCredits;
          private final double technologyFee;
          private final double goldMealPlan;
          private final double silverMealPlan;
          private final double bronzeMealPlan;
          private final double parkingPass;
          private String studentName;
          private double numberOfCredits;
          private int roomAmount;
          private String mealPlan;
          private double roomAndBoard;
          private double tuition;
          private double finalTechnologyFee;
          private double finalBillDue;
          public CollegeBill(Price price) {
              this.tuitionRatePerCredits = price.getTuitionRatePerCredits();
              this.technologyFee = price.getTechnologyFee();
              this.goldMealPlan = price.getGoldMealPlan();
              this.silverMealPlan = price.getSilverMealPlan();
              this.bronzeMealPlan = price.getBronzeMealPlan();
              this.parkingPass = price.getParkingPass();
          }
          public void readUserInfo() {
              studentName = JOptionPane
                      .showInputDialog(null,"Please, enter student name: ","College Bill Data", JOptionPane.QUESTION_MESSAGE)
                      .trim();
              while (true) {
                  try {
                      numberOfCredits = Double.parseDouble(
                              JOptionPane.showInputDialog(null,"Please, enter number of credits: ","College Bill Data", JOptionPane.QUESTION_MESSAGE)
                                      .trim());
                      if (numberOfCredits <= 0.0) {
                          throw new IllegalArgumentException();
                      }
                      break;
                  } catch (Exception e) {
                      System.out.print("Invalid input");
                  }
              }
              while (true) {
                  try {
                      roomAmount = Integer.parseInt(
                              JOptionPane
                                      .showInputDialog(null,"Please, enter room amount: ","College Bill Data", JOptionPane.QUESTION_MESSAGE)
                                      .trim());
                      if (roomAmount < 0) {
                          throw new IllegalArgumentException();
                      }
                      break;
                  } catch (Exception e) {
                      System.out.print("Invalid input");
                  }
              }
              while (true) {
                  try {
                      mealPlan = JOptionPane
                              .showInputDialog(null,"Please, enter meal plan (gold/silver/bronze): ","College Bill Data", JOptionPane.QUESTION_MESSAGE)
                              .trim()
                              .toLowerCase();
                      if (!"gold".equals(mealPlan) && !"silver".equals(mealPlan) && !"bronze".equals(mealPlan)) {
                          throw new IllegalArgumentException();
                      }
                      break;
                  } catch (Exception e) {
                      System.out.print("Invalid input");
                  }
              }
          }
          public void calculate() {
              double meanPlanCost = bronzeMealPlan;
              if ("gold".equals(mealPlan)) {
                  meanPlanCost = goldMealPlan;
              } else if ("silver".equals(mealPlan)) {
                  meanPlanCost = silverMealPlan;
              }
              roomAndBoard = meanPlanCost + roomAmount;
              tuition = tuitionRatePerCredits * numberOfCredits;
              finalTechnologyFee = technologyFee * numberOfCredits;
              finalBillDue = roomAndBoard + finalTechnologyFee + parkingPass + tuition;
          }
          public void printInfo() {
              StringBuilder builder = new StringBuilder();
              DecimalFormat df = new DecimalFormat("$##,###.##");
              builder.append(String.format("%-20s", "Student Name:")).append(studentName)
                      .append(System.lineSeparator());
              builder.append(String.format("%-20s", "Number of credits:")).append(df.format(numberOfCredits))
                      .append(System.lineSeparator());
              builder.append(String.format("%-20s", "Tuition:")).append(df.format(tuition))
                      .append(System.lineSeparator());
              builder.append(String.format("%-20s", "Room and board:")).append(df.format(roomAndBoard))
                      .append(System.lineSeparator());
              builder.append(String.format("%-20s", "Parking pass:")).append(df.format(parkingPass))
                      .append(System.lineSeparator());
              builder.append(String.format("%-20s", "Technology fee:")).append(df.format(finalTechnologyFee))
                      .append(System.lineSeparator());
              builder.append(String.format("%-20s", "Bill due:")).append(df.format(finalBillDue))
                      .append(System.lineSeparator());
              JOptionPane.showMessageDialog(null, builder.toString(), "College Bill", JOptionPane.INFORMATION_MESSAGE);
          }
          public static void main(String[] args) {
              Price price = new Price();
              CollegeBill collegeBill = new CollegeBill(price);
              collegeBill.readUserInfo();
              collegeBill.calculate();
              collegeBill.printInfo();
          }
      }
      PRICE
      public class Price {
          private final double tuitionRatePerCredits;
          private final double technologyFee;
          private final double goldMealPlan;
          private final double silverMealPlan;
          private final double bronzeMealPlan;
          private final double parkingPass;
          public Price() {
              this.tuitionRatePerCredits = 750;
              this.technologyFee = 50;
              this.goldMealPlan = 3500;
              this.silverMealPlan = 3000;
              this.bronzeMealPlan = 2500;
              this.parkingPass = 200;
          }
          public double getTuitionRatePerCredits() {
              return tuitionRatePerCredits;
          }
          public double getTechnologyFee() {
              return technologyFee;
          }
          public double getGoldMealPlan() {
              return goldMealPlan;
          }
          public double getSilverMealPlan() {
              return silverMealPlan;
          }
          public double getBronzeMealPlan() {
              return bronzeMealPlan;
          }
          public double getParkingPass() {
              return parkingPass;
          }
      }