DPIT121 – Lab Exercise 1 Due: Week 2 lab The scenario for the lab is a simplified Car Insurance Company and insurance policies. You will work on the same scenario throughout the session for all the...

1 answer below »
Hi this is lab exercise you need to do only lab 2 exercise the lab 1 file is just for support because the lab 2 is continue part of lab 1


DPIT121 – Lab Exercise 1 Due: Week 2 lab The scenario for the lab is a simplified Car Insurance Company and insurance policies. You will work on the same scenario throughout the session for all the labs and the assignments. Study week 1 lecture codes in depth before attempting the lab: Car has these attributes: · String model; · CarType type; // CarType is an enum { SUV,SED,LUX,HATCH,etc } · int ManufacturingYear; · double price; There are two different types of Insurance Policies: ThirdPartyPolicy and ComprehensivePolicy. All Policies have the following attributes in common (The parent class: InsurancePolicy): · String policyHolderName; · int id; · Car car; · int numberOfClaims; ThirdPartyPolicy class has the following additional attributes: · Sting comments; ComprehensivePolicy class has the following additional attributes: · int driverAge; · int level; The premiums for each policy is calculated as follow: · Third Party Premium = CarPrice/100+numberOfClaims x 200+flatRate · Comprehensive Premium = CarPrice/50+numberOfClaims x 200+flatRate · If the driverAge is less than 30 then add (30-driverAge) x 50 to the comprehensive premium The flatRate will be set by the manager and will be sent to the calculation from outside as a parameter (currently from test code in main). 1- Write the Java code to define the class Car as well as enum CarType. (0.5 mark) 2- Write an abstract base class called InsurancePolicy for the above scenario. This class supports the common features of all policies. (0.5 mark) 4- Write two sub classes called ThirdPartyPolicy and ComprehensivePolicy for the scenario. (0.5 mark) 5- Write a print method for these classes. Use super.print ( ) in children classes. (0.5 mark) 5- Override the calcPayment method based on the description for Premium Payment. (0.5 mark) 6- Add toString() to all classes. (0.5 mark) 7- Write a test code that creates a mixture of ThirdPartyPolicy and ComprehensivePolicy objects, then places them in a single list of policies, print all the policies in the list by using print method and then by using toString method. Then calculates their total premium payments and finally prints the total with user friendly prompts. Note that the flatRate should be stored as a constant in your test code and then is sent it to the methods as a parameter. (2 marks) 0.5 for list, 0.5 for print, 0.5 for toString, 0.5 for total payment DPIT121 – Lab Exercise 2 Due: Week 3 lab In lab 2, you will continue on the same scenario from lab 1 to improve it. The improvement in term of software engineering is called Iteration. So you are working on another iteration of Car Insurance Provider Company System. Study week 2 lecture codes (Both bank and library examples) in depth before attempting this lab. Also watch Lab 2 Recorded Tutorial: 1) Add a new class MyDate with these attributes: 0.25 marks - int year; - int month; - int day; Add a field to your InsurancePolicy class to store the expiry date for the policy: - MyDate expiryDate; 2) Add a new class Address with these attributes: 0.25 marks - int streetNum; - String street; - String suburb; - String city; 3) Add mutators (set methods), and assessors (get methods) to your Car, MyDate, Address, and InsurancePolicy classes. 4) Add these methods to your InsurancePolicy class: 1.5 marks: 0.3 marks for each method - static void printPolicies(ArrayList< insurancepolicy=""> policies) // prints a list of policies. You had this in your main ( ) in lab 1. Move it to this method. Study printAccounts in Bank lecture code or printBooks or printUsers in Library lecture code. - static double calcTotalPayments (ArrayList< insurancepolicy=""> policies, int flatRate) //calculates the total premium payments for a list of policies. You had this in your main ( ) in lab 1. Move it to this method. Study calcTotalBalance in Bank lecture code. - void carPriceRise(double risePercent) // It has one parameter, a price rise in percent. The method increases the policy’s car price by rise percent. (e.g., 0.1 as rise percentage means the car price to be increased by 10% i.e., ). Bad Design: You can call Car setPrice and getPrice methods for policy’s car to do it as below: car.setPrice(car.getPrice()*(1+risePercent); Good Design: Add a new method priceRise(double rise) to Car and call this method in carPriceRise - static void carPriceRiseAll(ArrayList< insurancepolicy=""> policies, double risePercent) // calls the carPriceRise method for all the policies in a given list ( in a for each loop). This is to increase the price of cars for all policies in a list. - static ArrayList filterByCarModel (ArrayList policies, String carModel) // which filter a list of policies and creates a filtered list of policies, all with the given car model . See filterByName and filterByAuthor in Library example. 5- Write a class User with the following fields and methods: 1.5 marks · private String name; // the name of the account holder · private int userID; // the user ID/number · private Address address; // you need to define the Address class as described · ArrayList< insurancepolicy=""> policies // list of all the Insurance Policies this user holds · Constructor, mutators (set methods) and assessors (get methods) if necessary and not for all fields. · boolean addPolicy (InsurancePolicy policy) // adds a policy, returns true if successful (when policyID is unique) and returns false if not. See addBook() and addUser() methods in Library example · InsurancePolicy findPolicy (int policyID) // finds the policy and returns it. Returns null if policyID does not exist. See findBook() and findUser() methods in Library example · void print() // prints all the information of this user including all the policies information · String toString() // converts the user and his/her policies to String · void printPolicies(int flatRate) // prints all the policies this user owns as well as the premium payment for each policy by calling the corresponding static method inside InsurancePolicy (add new one to print the list as well as the premium) or just call print and calcPremium methods inside InsurancePolicy in a loop. · double calcTotalPremiums (int flatRate) // returns the total premium payments for this user by calling the corresponding static method inside InsurancePolicy. · void carPriceRiseAll (double risePercent) // calls the corresponding static method inside InsurancePolicy to increase the car price for all the policies the user owns · ArrayList< insurancepolicy=""> filterByCarModel (String carModel) // filters the policies and returns a list of policies with the car model containing the given carModel by calling the corresponding static method inside InsurancePolicy. 6- Add this test code to your main: 1.5 marks: 0.1 marks for each test item excluding creating the policies - Create few third-party and comprehensive polices and one user in your main. - Add the policies to the user by using addPolicy( ) - call the print method for the user (note that user.print ( ) also prints all the policies) - print the user by using toString() (Note that toString includes all the policies’ details in addition to user information) - Find a policy by using findPolicy() for a given policy ID when the ID is not valid and show an error message: “Policy has not been found” - Find a policy by using findPolicy() with a given policy ID (valid) and save it in a policy object to be used for following steps. - print this policy, call carPriceRise with 0.1 rise for this policy and print it again - change the policyHolderName of this policy to “Robert” by using setPolicyHolderName (String newName) - change the car model of this policy to “Toyota Camry 2018” by using Policy.SetCarModel(String model) which calls Car.setModel(String model) - change the city of the user to “Wollongong” by using User.SetCity(String city) which calls Address.setCity(String city) - ask the customer to enter the information for a new address (by using Scanner) and change the address of the user by using setAddress(address) and print the user after change. - print the total premium payments for all policies this user owns - add 10% to the price of cars for all the policies this user owns - print the total premium payments for all policies this user owns again - ask the customer to enter a carModel then call filterByCarModel method for the user and store the filtered list. - print the filtered list by calling the static method inside InsurancePolicy
Answered Same DayJul 15, 2021

Answer To: DPIT121 – Lab Exercise 1 Due: Week 2 lab The scenario for the lab is a simplified Car Insurance...

Aditya answered on Jul 16 2021
141 Votes
DPIT121/.classpath

    
    
    
DPIT121/.project

     DPIT121
    
    
    
    
        
             org.eclipse.jdt.core.javabuilder
            
            
        
    
    
         org.eclipse.jdt.core.javanature
    
DPIT121/DPIT121/.classpath

    
        
            
        
    
    
    
DPIT121/DPIT121/.project

     DPIT121
    
    
    
    
        
             org.
eclipse.jdt.core.javabuilder
            
            
        
    
    
         org.eclipse.jdt.core.javanature
    
DPIT121/DPIT121/.settings/org.eclipse.jdt.core.prefs
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
DPIT121/DPIT121/bin/Car.class
public synchronized class Car {
private String model;
private CarType type;
private int manufacturingYear;
private double price;
public void Car();
public void Car(String, CarType, int, double);
public void setModel(String);
public String getModel();
public void setCarType(CarType);
public CarType getCarType();
public void setManufacturingYear(int);
public int getManufacturingYear();
public void setPrice(double);
public double getPrice();
public String toString();
}
DPIT121/DPIT121/bin/CarType.class
public final synchronized enum CarType {
public static final CarType SUV;
public static final CarType SED;
public static final CarType LUX;
public static final CarType HATCH;
static void ();
private void CarType(String, int);
public static CarType[] values();
public static CarType valueOf(String);
}
DPIT121/DPIT121/bin/ComprehensivePolicy.class
public synchronized class ComprehensivePolicy extends InsurancePolicy {
private int driverAge;
private int level;
public void ComprehensivePolicy();
public void ComprehensivePolicy(String, int, Car, int, int, int);
public int getDriverAge();
public void setDriverAge(int);
public int getLevel();
public void setLevel(int);
public double calcPayment(double);
public String toString();
}
DPIT121/DPIT121/bin/InsurancePolicy.class
public abstract synchronized class InsurancePolicy {
private String policyHolderName;
private int id;
private Car car;
private int numberOfClaims;
public void InsurancePolicy();
public void InsurancePolicy(String, int, Car, int);
public String getPolicyHolderName();
public void setPolicyHolderName(String);
public int getId();
public void setId(int);
public Car getCar();
public void setCar(Car);
public int getNumberOfClaims();
public void setNumberOfClaims(int);
public abstract...
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here