OOP Assignment #2
chamanEiqbal
java
3 years ago
11 kB
26
Indexable
package assignment2;
import java.util.ArrayList;
import java.util.Scanner;
public class Bill {
// Bill Items ArrayLists
static int bItems = 0;
static int LabourItems = 0;
static int PartsItems = 0;
static ArrayList<String> typeList = new ArrayList<>();
static ArrayList<String> nameList = new ArrayList<>();
static ArrayList<Float> priceList = new ArrayList<>();
static ArrayList<Float> quantityList = new ArrayList<>();
static ArrayList<Float> discountList = new ArrayList<>();
/*
------------------
Methods of Taking Information and Setting the information to Bill Item ArrayLists:
------------------*/
public static void takeInput(Parts p) {
Scanner sc = new Scanner(System.in);
System.out.printf("%50s\n","Enter Part Name: ");
p.setName(sc.nextLine());
System.out.printf("%50s\n","Enter Part Price: ");
p.setPrice(sc.nextFloat());
System.out.printf("%50s\n","Enter Part Quantity: ");
p.setQuantity(sc.nextFloat());
System.out.printf("%50s\n","Enter Discount: ");
p.setDiscount(sc.nextFloat());
bItems++;
PartsItems++;
}
public static void setBill(Parts p) {
typeList.add("Parts");
nameList.add(p.getName());
priceList.add(p.getPrice());
quantityList.add(p.getQuantity());
discountList.add(p.getDiscount());
}
public static void takeInput(Labour l) {
Scanner sc = new Scanner(System.in);
System.out.printf("%50s\n","Enter Labour Description:");
l.setName(sc.nextLine());
System.out.printf("%50s\n","Enter Labor Price: ");
l.setPrice(Float.parseFloat(sc.nextLine()));
System.out.printf("%50s\n","Enter Labor Quantity: ");
l.setQuantity(Float.parseFloat(sc.nextLine()));
bItems++;
LabourItems++;
}
public static void setBill(Labour l) {
typeList.add("Labour");
nameList.add(l.getName());
priceList.add(l.getPrice());
quantityList.add(l.getQuantity());
}
public static void setCustomer(Customer c) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter name of customer:");
c.setName(sc.nextLine());
System.out.println("Enter contact No. of customer");
c.setContactNo(sc.nextLine());
}
public static void setVeh(Vehicle v) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter Vehicle No.");
v.setVehNo(sc.nextLine());
System.out.println("Enter Model: ");
v.setModel(sc.nextLine());
}
public static void printReceipt(Customer customer, Vehicle vehicle) {
System.out.println("\n\n\n");
System.out.println("******************************************************************************************************************");
System.out.printf("%75s","KARACHI AUTOSERVICES PVT. LTD.\n");
System.out.println("******************************************************************************************************************");
System.out.printf("Customer Name: %-40s", customer.getName());
System.out.printf("%40s\n", "Vehicle No.: " + vehicle.getVehNo());
System.out.printf("Contact No.: %-40s", customer.getContactNo());
System.out.printf("%40s\n", "Vehicle Model: " + vehicle.getModel());
System.out.println("******************************************************************************************************************");
System.out.printf("%65s", "BILL DESCRIPTION: \n");
System.out.println("******************************************************************************************************************");
System.out.printf("%-20s%-40s%-20s%-20s%-20s\n", "Type", "Name", "Price", "Quantity", "Discount");
System.out.println("------------------------------------------------------------------------------------------------------------------");
float totalAmount = 0.0f;
float totalPartsAmount = 0.0f;
float totalLabourAmount = 0.0f;
for(int i = 0; i < PartsItems; i++) {
float partsTotal = (priceList.get(i) * quantityList.get(i) - discountList.get(i));
totalPartsAmount += partsTotal;
}
for(int i = PartsItems; i < bItems; i++) {
float labourTotal = priceList.get(i) * quantityList.get(i);
totalLabourAmount += labourTotal;
}
for(int i=0;i<bItems;i++) {
if(typeList.get(i).equalsIgnoreCase("Labour")) {
System.out.printf("%-20s%-40s%15.2f%15.2f%15.2s\n", typeList.get(i), nameList.get(i), priceList.get(i), quantityList.get(i), "-");
}
else {
System.out.printf("%-20s%-40s%15.2f%15.2f%15.2f\n", typeList.get(i), nameList.get(i), priceList.get(i), quantityList.get(i), discountList.get(i));
}
}
totalAmount = totalPartsAmount + totalLabourAmount;
System.out.println("------------------------------------------------------------------------------------------------------------------");
System.out.printf("%-80s%20.2f\n", "Parts Total:", totalPartsAmount);
System.out.printf("%-80s%20.2f\n", "Service Tax (5%):", totalPartsAmount * 0.05);
System.out.printf("%-80s%20.2f\n", "Labour Total:", totalLabourAmount);
System.out.printf("%-80s%20.2f\n", "Grand Total:", totalAmount - (totalPartsAmount * 0.05));
System.out.println("******************************************************************************************************************");
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String mainCont;
Customer customer = new Customer();
Vehicle veh = new Vehicle();
Parts parts = new Parts();
Labour labour = new Labour();
//setting customer and vehicle info
System.out.printf("%50s\n", "Enter Customer Details:");
setCustomer(customer);
System.out.printf("%50s\n", "Enter Vehicle Details");
setVeh(veh);
customer.hasTheVeh(veh);
int choice;
do {
System.out.printf("%50s\n","Enter 1 to add Part in Bill:");
System.out.printf("%50s\n","Enter 2 to add Labour in Bill:");
System.out.printf("%50s\n","Enter 3 to print results");
choice = Integer.parseInt(sc.nextLine());
switch(choice) {
// taking parts input
case 1:
System.out.printf("%50s\n","Enter Parts Details:");
takeInput(parts);
setBill(parts);
break;
case 2:
// taking labour input:
takeInput(labour);
setBill(labour);
break;
case 3:
printReceipt(customer,veh);
break;
default:
System.out.println("Wrong input");
break;
}
System.out.println("\n \nDo you want to continue?");
mainCont = sc.nextLine();
} while(mainCont.equalsIgnoreCase("yes") || mainCont.startsWith("y"));
}
}
//----------------------------------------------------------------
// DESCRIPTION DETAILS CLASS:
//----------------------------------------------------------------
package assignment2;
public class DescriptionDetails {
private float price;
private float quantity;
public DescriptionDetails() {
// default constructor;
}
public DescriptionDetails(float price, float quantity) {
// constructor for linking with Labour Class:
this.quantity = quantity;
this.price = price;
}
public void setPrice(float price) {this.price = price;}
public void setQuantity(float quantity) {this.quantity = quantity;}
public float getPrice() {return price;}
public float getQuantity(){return quantity;}
}
//----------------------------------------------------------------
// LABOUR CLASS:
//----------------------------------------------------------------
package assignment2;
public class Labour extends DescriptionDetails {
private String name;
public Labour() {
//default contsructor
}
public Labour(String name, float price, float quantity) {
super(price, quantity);
this.name = name;
}
//setters getters
public void setName(String name) {this.name = name;}
public String getName() {return name;}
}
//----------------------------------------------------------------
// PARTS CLASS:
//----------------------------------------------------------------
package assignment2;
public class Parts extends DescriptionDetails {
private String name;
private float discount;
public Parts(){
//default constructor;
}
public Parts(String name, float price, float quantity, float discount) {
super(price, quantity);
this.name = name;
this.discount = discount;
}
// setters getters:
public void setName(String name) {this.name = name;}
public void setDiscount(float discount) {this.discount = discount;}
public String getName() {return name;}
public float getDiscount() {return discount;}
}
//----------------------------------------------------------------
// CUSTOMER CLASS:
//----------------------------------------------------------------
package assignment2;
import java.util.ArrayList;
public class Customer {
private String name;
private String contactNo;
private ArrayList<Vehicle> vehicles = new ArrayList<>();
public Customer() {
// default constructor;
}
public Customer(String name, String contactNo, Vehicle veh) {
this.name = name;
this.contactNo = contactNo;
vehicles.add(veh);
}
public void setName(String name) {this.name = name;}
public void setContactNo(String contactNo) {this.contactNo = contactNo;}
public void hasTheVeh(Vehicle veh) {vehicles.add(veh);}
public String getName() {return name;}
public String getContactNo() {return contactNo;}
public ArrayList<Vehicle> getVehicles() {return vehicles;}
}
//----------------------------------------------------------------
// VEHICLE CLASS:
//----------------------------------------------------------------
package assignment2;
public class Vehicle {
private String vehNo;
private String model;
public Vehicle() {
//default constructor;
}
public Vehicle(String vehNo, String model) {
this.vehNo = vehNo;
this.model = model;
}
public void setVehNo(String vehNo) {this.vehNo = vehNo;}
public void setModel(String model) {this.model = model;}
public String getVehNo() {return vehNo;}
public String getModel() {return model;}
}
Editor is loading...