Так что у меня была вся программа написана, но у меня был неправильный вывод для моей доставки. Я удалил то, что я записал, только один расчет, чтобы увидеть, что я делаю неправильно, но все же не могу понять это. Направления были следующими:Неверный вывод из класса доставки для программы доставки.
Вы наняты службой экспресс-доставки Expressimo для разработки приложения, которое вычисляет плату за доставку. Компания допускает два типа упаковочных букв, боксов и трех видов услуг - приоритет на следующий день, стандарт на следующий день и 2 дня/в следующей таблице приведена формула для расчетной платы.
Тип упаковки На следующий день приоритет На следующий день стандарт 2 день Буква $ 12 до 8 унций $ 10.50 до 8 унций Недоступно Коробка $ 15,75 за первый фунт. Добавьте $ 1.25 за каждый дополнительный фунт за первый фунт. $ 13,75 за первый фунт. Добавьте $ 1.00 за каждый дополнительный фунт за первый фунт. $ 7,00 за первый фунт. Добавьте $ 0.50 за каждый дополнительный фунт за первый фунт.
До сих пор я просто пытаюсь выяснить простой расчет для письма. У меня есть код, написанный для вычисления ТОЛЬКО ПЕРВОЙ ЛИНИИ ИНСТРУКЦИЙ! Но я получаю 0.0 для каждой платы за доставку. Это немного запутывает, поэтому я надеюсь, что объясню это правильно. Я не могу использовать массивы или циклы для этой программы. Вот мой класс драйвера:
public class ExpressimoDelivery {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String pkg, service;
int ounces;
Scanner input = new Scanner(System.in);
System.out.println("Enter the package type (letter or box): ");
pkg = input.next();
System.out.println("Enter the type of delivery service (P - for Priority, S - for Standard, TWO - for 2 Day): ");
service = input.next();
System.out.println("Please enter the weight of the package in ounces: ");
ounces = input.nextInt();
Delivery customer = new Delivery(pkg, service, ounces);
customer.setPackage(pkg);
customer.setService(service);
customer.setWeight(ounces);
System.out.println("You have chosen to mail a " + pkg + "\nand the cost"
+ " to mail a " + pkg + " weighing " + ounces + " ounces with " + service + " service is: "
+ customer.getTotal());
}
}
А вот мой Delivery Класс:
public class Delivery {
public static final float LETTER_PRIORITY = 12.00f;
public static final float LETTER_STANDARD = 10.50f;
public static final float BOX_PRIORITY = 15.75f;
public static final float BOX_STANDARD = 13.75f;
public static final float BOX_TWO_DAY = 7.00f;
public static final float ADD_PRIORITY = 1.25f;
public static final float ADD_STANDARD = 1.00f;
public static final float ADD_TWODAY = 0.50f;
public String pkg, service;
public int weight = 0;
Scanner scanner = new Scanner(System.in);
public float fee;
public Delivery(String pkg, String service, int weight){
this.pkg = pkg;
this.service = service;
this.weight = weight;
}
public void setPackage(String pkg){
this.pkg = pkg;
}
public void setService(String service){
this.service = service;
}
public void setWeight(int weight){
this.weight = weight;
}
public String getPackage(){
if (! (pkg.equals("letter") || pkg.equals("box")))
{
System.out.println("ERROR: Unknown package type");
pkg = "";
}
return pkg;
}
public String getService(){
if (! (service.equals("P") || service.equals("S") || service.equals("TWO")));{
System.out.println("ERROR: Unknown delivery type");
service = "";
}
return service;
}
public float getWeight(){
return weight;
}
public float getTotal(){
if(pkg.equals("letter") && service.equals("P") && weight <= 8){
fee = LETTER_PRIORITY;
} else if(weight > 8) {
System.out.println("Package too large for a letter. Please use box instead.");
}
return fee;
}
}