Глава 5
Задача 5.10 "Почтовые штампы."
Почтовое управление Саванны решило автоматизировать процесс отправки почты и для проставления штампов использовать принтер. Максимальная сумма, которую можно проставить на штампе равна G99,99, а его дизайн очень прост:
Саванна разбита на три почтовые зоны. Отправка письма весом 10 г стоит соответственно:
а) 50с
б) 90с
в) G1.10
При доставке авиапочтой стоимость удваивается. Напишите программу, которая предлагает пользователю указать вес своего письма, зону доставки и способ доставки - авиа или обычный. Приняв данные, программа должна вывести соответствующий штамп. Используйте класс для штампов и начните программу с создания трех объектов для различных зон.
Решение
Как обычно воспользуемся Display-окном для интерактивного ввода и вывода данных. Оператор switch поможет нам определить какую именно зону выбрал пользователь.
Код программы:
import java.io.*;
import javagently.*;
class PostStamps{
PostStamps() {
Display d = new Display ("PostStamps");
d.prompt("WeightLetter(gramm)",20);
d.prompt("ZoneNumber",2);
d.prompt("Avia?(Yes or No)", "Yes");
int zone1 = 5;
int zone2 = 9;
int zone3 = 11;
double sum = 0;
String str1 = "Yes";
boolean b = true;
for (; ;) {
d.ready("\nInput data and press ready ");
int weight = d.getInt("WeightLetter(gramm)");
int zone = d.getInt("ZoneNumber");
String str = d.getString("Avia?(Yes or No)");
switch(zone){
case 1:
if(str.equals(str1)){
sum = weight*zone1*2;
}
else{
sum = weight*zone1;
}
break;
case 2:
if(str.equals(str1)){
sum = weight*zone2*2;
}
else{
sum = weight*zone2;
}
break;
case 3:
if(str.equals(str1)){
sum = weight*zone3*2;
}
else{
sum = weight*zone3;
}
break;
default:
d.println("Input the number of zone ");
b = false;
break;
}
if(b==false){
b=true;
continue;
}
d.println("-------------------");
d.println("| |");
d.println("| Savanna |");
d.println("| G" +Stream.format(sum/10,3,2)+ " |");
if(str.equals(str1)){
d.println("| Avia |");
}
else{
d.println("| Not avia |");
}
d.println("-------------------");
}//end for
}
public static void main (String[] args) {
new PostStamps();
}
}
Результат :
Назад |
Начало урока |
Вверх |
Вперед
Содержание