Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Бишоп Д. -> "Эффективная робота Java 2" -> 40

Эффективная робота Java 2 - Бишоп Д.

Бишоп Д. Эффективная робота Java 2 — Спб.: Питер, 2002. — 592 c.
ISBN 966-552-107-1
Скачать (прямая ссылка): effektivnayarabotajava2002.djvu
Предыдущая << 1 .. 34 35 36 37 38 39 < 40 > 41 42 43 44 45 46 .. 259 >> Следующая

PtzzaDaUwyl
printBeadinfl^i
start Table ~^|
prints Una Эи
adcfnm
time24
timelnMins
b
Рис. 3,6, Диаграмма моделирования вызова методов программы .PizzaDeliveryl
х
Наконец-то мы можем представить программу полностью*
Программа 1
class PizzaDeliveryl {
/* Программа доставки пиццы, версия 1, Дж.М* Бишоп, май/ 2000 год
90
Глава 3. Типы и методы
* Обрабатывает значения времени доставки пиццы, основываясь на
* таких данных, как длина очереди и район доставки*
* Иллюстрирует повторное использование методов, их вызов, циклы.
* Тестовая версия для одного района и значений времени от 9:00 до 13:00.
*/
int driveTime = 5; //для района int makeTime =5; //в очереди
int processTime = 10; //для заказа
PizzaDeliveryl () {
for (int area =1; area<= 1; агеа++) ( printHeading(area); startTable();
for (int time = 900; time < 1300; time=addTime(time,15)) printaLine(time, area);
)
)
void printaLine (int t; int a) {
System.out .print (t+'^t”) f
for (int queue = 0; queue <= 5; queue++)
System.out.print: (addTime {t,
queue*makeTime+processTime+a*driveTime) +- r,\tM )
System,out .println () ;
}
public static void main (String [j args) ( new PizzaDeliveryl О ;
}
}
Тестирование. На данном этале программа выводит таблицу только для одного района, а также ограничивает шкалу времени значением 1300, чтобы таблицей было легко управлять, Выведенная в результате информация будет иметь следующий вид:
Pizza 2U Delivery eatimatee fox Area I — *¦ ---------------—------------------—
Time now Queue length
0 1 2 3 4 5
900 915 920 925 930 935 940
915 930 935 940 945 950 955
930 945 950 955 1000 1005 1010
945 1000 1005 1010 1015 1020 1025
1000 1015 1020 1025 1030 1035 1040
1015 1030 1035 1040 1045 1050 1055
1030 1045 1050 1055 1100 1105 1110
1045 1100 1105 1110 1115 1120 1125
1100 1115 1120 1125 ИЗО 1135 1140
1115 ИЗО 1135 1140 1145 1150 1155
ИЗО 1145 1150 1155 1200 1205 1210
1145 1200 1205 1210 1215 1220 1225
1200 1215 1220 1225 1230 1235 1240
1215 1230 1235 1240 1245 1250 1255
1230 1245 1250 1255 1300 1305 1310
1245 1300 1305 1310 1315 1320 1325
Практикум 1. Доставка пиццы 2U
91
Как проверить результаты? Это можно сделать двумя способами. Первый — анализ операторов программы. Второй — выполнение вычислений вручную. Выберем случайным образом пару элементов таблицы, например время 1100 и очередь2. Время доставки может быть рассчитано следующим образом:
[100 + (2*5 + 10 + 1*5) = 1100 + 25 - 1125
Результат совпадет с соответствующим значением в таблице. Болсс тщательная проверка должна быть произведена для граничных элементов таблицы, т.е. для последних элементов строк, а также в тех случаях, когда изменяется значение часа (как в строке с начальным значением 1 145).
Еще одна проблема
Проводя подобные исследования, мы бы хотели установить, будет ли полезным создание отдельного класса для значений времени, Хотя использование целых чисел для указания времени дало хороший результат, данное решение было некорректным, поскольку 915 означает не ''девятьсот пятнадцать секунд”, а '‘девять часов пятнадцать минут'\ Правильное решение — представить время в виде двух целых чисел (часы и минуты), А для этого мы должны создать класс для значений времени.
Таким образом, нашей задачей является создание такого класса и использование его в программе PizzaDelivery* чтобы проверить, как он работает. После этого мы можем сравнить выходные данные предыдущей и новой версий программы PizzaDe-1 і very, чтобы убедиться в том, что они не изменились. Нам представится также возможность оценить, насколько использование такого класса усложняет процесс программирования. С нашей точки зрения, новая версия программы немного сложнее, но в тоже время она имеет более четкую структуру, является более гибкой и в ней легче исправлять ошибки.
*
Классы Date и Calendar языка Java
Прежде чем приступить к разработке нового класса для значений времени, проверим, не предоставляет ли сам язык Java какое-либо средство для работы с этими значениями. Не хотелось бы создавать то, что уже существует. Если мы обратимся к опубликованной в сети документации по языку Java и поищем слово ‘'time”, то увидим, что оно занимает одну из первых позиций в списке, который выводится для класса Date. Данный класс включает немного методов, перечень которых представлен ниже. Он представляет время в миллисекундах и позволяет работать с датами, начиная с 1 января 1970 года- Однако класс Date нам не подойдет, поскольку он работает лишь со значениями времени в миллисекундах.
Предыдущая << 1 .. 34 35 36 37 38 39 < 40 > 41 42 43 44 45 46 .. 259 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.