I have a program with an abstract class 'Orders' with three different classes implementing it everything in the program runs fine when I tested it with hard coded orders.
Here is the abstract class:
public abstract class Order {
protected String location;
protected double price;
public Order(double price, String location){
this.price = price;
this.location = location;
}
public abstract double calculateBill();
public String getLocation() {
return location;
}
public double getPrice() {
return price;
}
public abstract String printOrder(String format);
}
And here is one of the implementing classes for reference
public class NonProfitOrder extends Order {
public NonProfitOrder(double price, String location) {
super(price, location);
}
public double calculateBill() {
return getPrice();
}
public String printOrder(String format){
String Long = "Non-Profit Order" + "
Location: " + getLocation() + "
Total Price: " + getPrice();
String Short = "Non-Profit Order-Location: " + getLocation() + ", " + "Total Price: " + getPrice();
if (format.equals("Long")){
return Long;
}
else{
return Short;
}
}
}
This is what I have for a tester so far, I know it is wrong and pretty messy, but take it easy. Iv'e been messing around trying to get something to work, but no luck.
public static ArrayList<Order> readOrders (String fileName) throws FileNotFoundException{
String type;
Scanner s = new Scanner(new File("orders.txt"));
ArrayList<Order> orders = new ArrayList<Order>();
while (s.hasNext()){
type = s.nextLine();
}
switch(type) {
case 1: type = NonProfitOrder();
break;
case 2: type = RegularOrder();
break;
case 3: type = OverseasOrder();
return orders;
}
}
The data file I need to read from looks like this:
N 1000.0 NY
R 2000.0 CA 0.09
R 500.0 GA 0.07
N 2000.0 WY
O 3000.0 Japan 0.11 20.0
N 555.50 CA
O 3300.0 Ecuador 0.03 30.0
R 600.0 NC 0.06
First off I am having trouble reading the file, I know i need a loop to add the data to the arrayList, but I'm not sure how . What would be the easiest way to read and loop all in one method? If possible.
I updated to add the somewhat of a switch statement that I have, that doesn't work. Instead of case 1,2,3, would I instead need to use something with N, O, R to match up with the file
and I'm having trouble fixing the error "type mismatch".
See Question&Answers more detail:
os