Як розробити просту програму Java

Як розробити просту програму Java
Остання редакція: червень 2001 р
(Мак-Кенн)
Здається, студенти завжди мають проблеми з розумінням (або, можливо, просто виконанням) того, що я від них очікую, коли я призначаю програму. Вимоги дійсно дуже прямі; в основному це питання залишити собі достатньо часу, щоб все зробити.

програму

Щоб допомогти вам зрозуміти, що від вас очікується, у цьому документі я візьму простий зразок завдання програмування та проведу вас через основні етапи процесу розробки програми.

(Якщо ви шукаєте детальну інформацію про програмну документацію, ви знайдете дещо тут, але вам дійсно слід відвідати мою сторінку стилю програмування, де є моя колекція стильових документів, включаючи кілька сторінок стилів від інших людей. Програмістів. Цей документ призначений для студентів, які тільки починають вивчати Java.)


Крок No1: Почніть рано
Програмування - це не та діяльність, яку можна надійно запланувати на заздалегідь визначену кількість часу. Навіть програми, схожі на те, що вони мають бути виконані за 2 години, часто вимагають 4–5 годин. Найкраще, що ви можете зробити для себе, це сказати: "Я не уявляю, скільки часу це займе; мені краще почати негайно".

Крок 2: Уважно прочитайте роздатковий матеріал
Мої роздаткові завдання з програмування, як правило, дуже детальні, якщо не ідеально організовані. Все, чого я чекаю від вас, там десь подано, тож уважно прочитайте і виділіть ключові моменти, щоб не пропустити жодного з них.

Наприклад, розглянемо цей приклад призначення:

CS 001 - Інформатика I

Програма №1: Калорії через жир

Дата закінчення: Смерть 36-го, 2028, на початку заняття

Огляд: Будь-який дієтолог скаже вам, що обмеження щоденного споживання жиру до 30% від загальної кількості калорій - це гарна ідея. Але скільки калорій у вашій улюбленій їжі складається з жиру? Харчові ярлики повідомлять вам, скільки грамів жиру в порції, і скільки загальної кількості калорій у цій порції, але решту питань потрібно робити самостійно.

Як це трапляється, грам жиру має близько 9 калорій. Тому, якщо взяти грами жиру в порції певної їжі, помножити його на 9 і розділити на загальну кількість калорій у порції, ви отримаєте частку калорій за рахунок жиру. Щоб отримати результат у відсотках, просто помножте на 100.

Наприклад, розглянемо продукт, який містить 3 грами жиру і 170 калорій на порцію. Є 27 калорій завдяки жиру (3 * 9), і 27/170 = 0,1588. Помноження на 100 дає остаточну відповідь: 15,88 відсотка калорій припадає на жир.

Завдання: Напишіть повну, добре задокументовану програму Java, яка починається з прохання користувача ввести грами жиру та калорії в порцію харчового продукту. Програма обчислить відсоток калорій у їжі, що спричинені жиром, і відобразить вхідну інформацію та відсоток у вигляді повного англійського речення.

Дані: Запустіть програму двічі, один раз для кожного набору даних, показаних у наступній таблиці:

Загальна калорійність

Здайте: У встановлений термін здайте такі пункти: роздруківку документованої програми Java та роздруківку результатів, які ваша програма видала під час запуску на кожному з наборів даних, наведених вище. Обов’язково напишіть своє ім’я у верхньому правому куті роздруківки; це полегшить вам повернення вашої програми, коли я поверну її вам.

Крок 3: Напишіть зовнішню документацію
Я вже чую посмішку ("Напишіть коментарі зараз! Станьте серйозним!"), Але я серйозно: вам слід писати свою документацію під час написання програми, а не пізніше. Зокрема, зовнішня документація повинна бути майже повною, перш ніж ви напишете навіть рядок коду.

Я роздаю однокласний документ (у форматі PDF) своїм класам програмування, де перелічується інформація, яку я очікую побачити у ваших програмах. Зокрема, ось що має містити Зовнішня документація:

  1. Ваше ім'я, назва/номер курсу, ім'я/номер завдання, ім'я викладача та термін виконання.
  2. Детальний опис проблеми, для вирішення якої була написана програма, включаючи методи (наприклад, алгоритми), що використовуються для вирішення проблеми.
  3. Робочі вимоги програми: Яку мовну систему ви використовували, спеціальну інформацію про компіляцію, де вхідні дані можуть бути розташовані на диску тощо.
  4. Обов’язкові функції призначення, які ви не змогли включити, та/або інформація про помилки, про які все ще відомо. (Будьте чесними та повними!)
Щоб допомогти вам, я створив шаблон, який ви можете імпортувати у свою програму та містить мітку для кожного розділу, який я хочу бачити. Все, що вам потрібно зробити, це заповнити пропуски; Я не можу зробити це набагато простіше. На сторінці Блокувати шаблони коментарів із прикладами відображається шаблон Зовнішня документація, і ви можете знайти його в каталозі/home/student/Classes/mccann/general/templates з лабораторних машин. Можливо, ви захочете зробити копії шаблонів у вашому домашньому каталозі, просто щоб полегшити використання команди імпорту файлів вашого редактора (наприклад, r у редакторі vi), щоб залишити його у вашій програмі; імпорт шаблону може значно заощадити набір тексту.

Ось як виглядає шаблон зовнішньої документації (external.txt):

Зауважте, що до кожного розділу я включив кілька коротких коментарів, щоб повідомити, що потрібно додати. Оскільки видалення всіх цих коментарів - це біль, у мене є версія без коментарів у тому ж каталозі, що називається ext.txt, яку ви можете замість цього імпортувати.

Ви повинні мати можливість заповнити весь цей шаблон, за винятком останніх двох розділів, перш ніж писати програму. Ось як це може виглядати для нашого прикладу призначення:

Будь ласка, зверніть увагу на обсяг інформації; всі пояснення досить детальні. Багато студентів намагаються включити в свою документацію мінімум інформації; це зовсім не добре. Документація повинна допомогти читачеві зрозуміти програму, а не викликати більше запитань, ніж вона відповідає. Цей приклад показує адекватну кількість інформації. (Чи можете ви придумати якусь додаткову інформацію, яку ви хотіли б бачити включеною?) Деякі студенти вважають, що читач може просто звернутися до роздаткового завдання, щоб отримати інформацію. Запам’ятайте дві речі: По-перше, документація є частиною програмного коду; роздатковий матеріал - ні. По-друге, коли ви влаштовуєтесь програмістом, ваш начальник не збирається ходити, роздаючи вам завдання. Ви могли б отримати звичку писати хорошу інформативну документацію вже зараз.

Звичайно, програмісту доведеться переглянути документацію після завершення програми та переконатися, що вся інформація правильна (і заповнити останні два розділи). Але, якщо ви добре продумаєте деталі програми заздалегідь, вам не доведеться сильно змінюватись, якщо що.

Крок No4: Напишіть програму поштучно
Студенти люблять намагатися писати свої програми відразу. Ви можете врятуватися від цього на невеликих програмах, але в міру збільшення кількості коду ви просите про головний біль, якщо не пишете по кілька разів, і тестуйте кожен розділ, коли пишете.

Наприклад, у нашій програмі ми знаємо, що нам потрібно прочитати дві частини даних і вивести три, з деякими розрахунками між ними. Забудьте про розрахунки на даний момент і просто спробуйте розібратися із входом і результатом. Ваша програма може виглядати так: (я залишив зовнішню документацію задля економії місця.)

Так, це дуже спартанське. Не хвилюйтесь, ми заповнимо деталі вчасно. Справа в тому, що ми можемо скомпілювати та запустити цю програму як є, і бути впевненими, що ми можемо успішно читати та записувати дані. Немає особливого сенсу писати відсоткові розрахунки, поки ми не знаємо, що обчислення матимуть правильні значення для роботи. Додавши простий висновок, ми бачимо, що значення читаються правильно.

Якби вам потрібно було скомпілювати та запустити цю програму під Linux за допомогою Sun JDK, ось що ви побачите:

Очевидно, що перед тим, як закінчити, нам потрібно буде зробити ці дії введення та виведення набагато зручнішими для користувача.

Далі ми можемо додати розрахунки:

Не забудьте протестувати розрахунки, щоб переконатися, що вони працюють правильно. Пам'ятаєте приклад розрахунку, наведений у роздатковому матеріалі? Це робить хороший тест:

Врешті-решт ви додасте всю функціональність, яка потрібна вашій програмі, ретельно протестує її роботу та додасте залишену документацію. На цьому етапі ви можете додати деякі «додаткові засоби», які покращують програму, але не були потрібні для призначення. (У мене ніколи не виникає проблем, коли ви виконуєте більше, ніж вимагає завдання!) Ось як може виглядати завершена програма:

У цій програмі я вирішив, що було б непогано, якби вихідне формулювання відповідало значенням, які ввів користувач. Заяви IF-ELSE дозволять слова відповідати кількості; наприклад, "1 грам" замість "1 грам". Цей крок не був необхідним, але він робить для більш досконалої остаточної програми. Метод twoPlaces допомагає очистити результат, зменшуючи кількість цифр, показаних після десяткової коми.

І ось що побачить користувач, коли він/вона його запустить: