Курсова робота: Написання програми "Угадайка"

  1. 1. Розробка програми
  2. 2. Розробка робочого проекту
  3. 3 Впровадження

Дані про роботу:

Курсова робота

Назва дисципліни: Алгоритмічні мови та програмування

Тема: Написання програми "Угадайка"

Вступ

1. Розробка програми

1.1 Технічні характеристики

1.2 Вибір складу технічних і програмних засобів

2. Розробка робочого проекту

2.1 Розробка програми

2.2 Специфікація програми

2.3 Опис програми

2.4 Тестування програми

3. Впровадження

висновок

глосарій

Список використаних джерел

додатки

Завдання на курсову роботу з дисципліни: «Алгоритмічні мови та програмування».

Тема: Розробка ігрового програми для ОС MicrosoftWindows.

Умова завдання: Написати програму «Угадайка». Комп'ютер випадковим чином загадує число від 1 до 100. Завдання користувача - за мінімальну кількість спроб, але не більше шести, вгадати це число, пропонуючи комп'ютера свої варіанти, у відповідь на які програма вказує рахунок спроби і повідомлення про те, більше загадане число або менше введеного з клавіатури. При правильній стратегії (розподіл інтервалу чисел навпіл) напевно вгадати число можна за сім спроб. Гра складається з п'яти партій. Після останньої партії виводяться результати.

Призначення програми: гра.

Область застосування: ПК, що працює під управлінням ОС MicrosoftWindows (версії 9x / 2k / XP і пізніших).

1. Розробка програми

1.1 Технічні характеристики

За умовою завдання, необхідно розробити програму для ОС MicrosoftWindows - гру. За правилами гри, комп'ютер буде загадувати число, а користувачеві необхідно буде за обмежену кількість спроб (6 спроб) його вгадати.

Числа користувач повинен буде або вводити з клавіатури, або збільшувати або зменшувати значення числа в полі введення стрілками. Після кожної спроби користувачеві необхідно повідомити: більше загадане число або менше того, що він ввів.

Якщо за 6 спроб користувачеві вдається вгадати число, гра завершується. Якщо число так і не було відгадати, гра також завершується, а користувачеві повідомляється загадане число. [1]

Для перевірки чесності буде використаний алгоритм шифрування MD5. Механізм його роботи полягає в наступному: після генерації випадкового числа, яке користувачеві необхідно буде відгадати в процесі гри, генерується і текстовий рядок, по якій можна буде явно визначити яке число було загадане (наприклад, «__загадано __: _ число ___ 99»).

Цей рядок є вихідною, а її md5-хеш (послідовність з 32 шістнадцяткових чисел) буде повідомлятися користувачеві до початку гри. Даний хеш практично неможливо розшифрувати (отримати з нього вихідну рядок), що запобігає можливість отримання задуманого числа іншими методами, крім вгадування його, однак для перевірки чесності користувачеві досить особисто отримати з початкового рядка md5-хеш (для цього існує безліч невеликих програм, в тому числі і веб-додатків). [2]

Для ведення «бази» досягнень гравця (або гравців) в програмі буде реалізована функція додавання кращих результатів в текстовий файл з можливістю перегляду їх в будь-який час. [3]

У файлі будуть зберігатися: ім'я гравця (вводиться користувачем в разі успішної гри), результат (кількість спроб, за які було відгадати число), а також дата і час завершення гри.

1.2 Вибір складу технічних і програмних засобів

Оскільки, згідно з умовою завдання, необхідно розробити програму для операційної системи MicrosoftWindows, для написання програми була обрана інтегроване середовище розробки BorlandDelphi версії 7, яка дозволяє досить швидко створювати додатки за рахунок спрощення розробки візуальної частини проекту. [4]

Delphi 7 може працювати в середовищі ОС від Windows 95 до Windows XP і Vista. Особливих вимог до комп'ютера система не пред'являє, за винятком того, що процесор повинен бути типу Pentium, оперативної пам'яті - не менше 32 Мбайт і достатня кількість вільної дискової пам'яті. [5]

2. Розробка робочого проекту

2.1 Розробка програми

При розробці програми «Угадайка» була використана середовище програмування BorlandDelphi 7. Проект містить одну форму - Form1 (див. Малюнок 1). На формі розташовані кнопки (TButton) - меню програми (повторює елементи TMainMenu1), 4 контейнери TPanel і TMainMenu.

На формі розташовані кнопки (TButton) - меню програми (повторює елементи TMainMenu1), 4 контейнери TPanel і TMainMenu

Мал. 1 - Вікно форми Ugadaika

Властивості форми Form1:

Події форми Form1:

TMainMenu1 - головне меню програми, прихований елемент управління, що містить масив розділу меню (див. Малюнок 2).

Мал. 2 - Вікно TMainMenu1

1. Елементи TMainMenu1:

N1: Гра

N2: Довідка

Для елементів меню «Про програму» (About) і «Нова гра» (NewGame) призначені «гарячі клавіші» - F1 і F2 відповідно. Це зроблено як для зручності користувача, так і відповідно до усталених традицій створення програмного забезпечення для ОС MicrosoftWindows. Кнопки TButton10, TButton11, TButton12, TButton13 і TButton14 розташовані на формі лише для зручності управління додатком. Їх події повністю повторюють події відповідних елементів головного меню (точніше, при кліці по кожній кнопці ініціюється подія відповідного елемента TMainMenu1), однак управління додатком для користувача помітно спрощується. [6]

2. Властивості компонента TButton10:

Події компонента TButton10:

3. Властивості компонента TButton11:

Події компонента TButton11:

4. Властивості компонента TButton12:

Події компонента TButton12:

5. Властивості компонента TButton14:

Події компонента TButton14:

5. Властивості компонента TButton13:

Події компонента TButton13:

Компоненти, що відносяться до різних «частин» гри були розміщені на чотирьох різних TPanel. Панель є «контейнером» компонентів і елементів управління додатком. [7]

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

TPanel1 (див. Малюнок 3) містить компоненти, задіяні в основній грі. Коли властивості Visible присвоюється значення true, аналогічне властивість інших трьох компонентів TPanel набуває значення false. Також при цьому властивість Align набуває значення alClient, що дозволяє «розгорнути» TPanel1 за розміром форми. [9]

[9]

Мал. 3 - Компонент TPanel1

6. Масиви з груп компонентів, які перебувають на TPanel1:

Властивості компонента TPanel1:

6.1. Властивості компонента TLabel1:

6.2. Властивості компонента TLabel2:

6.3. Властивості компонента TLabel9:

6.4. Властивості компонента TLabel10:

6.5. Властивості компонента AHint (тип - TLabel):

6.6. Властивості компонента TEdit1:

6.7. Властивості масиву компонентів AttemptLabel (тип - TLabel):

6.8. Властивості масиву компонентовAttemptSpin (тип - TspinEdit):

6.9. Властивості масиву компонентів AttemptButton (тип - TButton):

Компонент має одну властивість: OnClick - порівняння введеного числа і задуманого, висновок проміжних або остаточних результатів гри.

На TPanel2 (див. Малюнок 4) перебувають компоненти, задіяні при виведенні кращих результатів гри. [10]


Мал. 4 - Компонент TPanel2

7. Масиви з груп компонентів, які перебувають на TPanel2:

Властивості компонента TPanel2:

7.1. Властивості компонента TLabel11:

7.2. Властивості компонента TLabel12 і масиву компонентів r0 (тип - TLabel):

7.3. Властивості компонента TLabel13 і масиву компонентів r1 (тип - TLabel):

7.4. Властивості компонента TLabel14 і масиву компонентів r2 (тип - TLabel):

7.5. Властивості компонента TLabel15 і масиву компонентів r3 (тип - TLabel):

7.6. Властивості компонента TButton7:

Компонент має одна подія - OnClick: при його ініціалізації Panel2 забирається з екрану. TPanel3 - інформаційна панель «Про програму» (див. Малюнок 5). На ній розташовані текстові мітки (TLabel) і кнопка (TButton8) для повернення в «головне меню» програми.

8. Властивості компонента TPanel3:

Властивості компонента TPanel3:

Мал. 5 - Компонент TPanel3

8.1. Властивості компонента TLabel56:

8.2. Свойствакомпонента TLabel57:

8.3. Свойствакомпонента TLabel58:

8.4. Свойствакомпонента TLabel59:

8.5. Свойствакомпонента TLabel60:

8.6. Свойствакомпонента TLabel61:

8.7. Свойствакомпонента TLabel62:

8.8. Властивості компонента TButton8:

Компонент має одна подія - OnClick: при його ініціалізації Panel3 забирається з екрану.

TPanel4 - панель, що містить інформацію про правила гри (див. Малюнок 6). Містить всього 3 компонента типу TLabel і одну кнопку - TButton9.


Мал. 9 - Компонент TPanel4

9. Властивості компонента TPanel4:

9.1. Свойствакомпонента TLabel63:

9.2. Свойствакомпонента TLabel64:

9.3. Свойствакомпонента TLabel65:

9.4. Властивості компонента TButton9:

Компонент має одна подія - OnClick: при його ініціалізації Panel3 забирається з екрану.

2.2 Специфікація програми

Виконуваний файл програми носить назву Ugadaika.exe, його розмір становить 453632 байт, файл розташований в кореневому розділі носія. Вихідний код проекту знаходиться в файлі Ugadaika.pas (Додаток А), розмір файлу складає 12976 байт (містить 559 рядків коду).

Таблиця 2.1 - Специфікація програми

Найменування Позначення Примітка Md5hash.dcu Об'єктний файл для Md5hash.pas відкомпільоване версія Md5hash.pad Md5hash.pas Файл програмного модуля Md5hash Визначає функціональність Md5hash Md5lib.dll Файл бібліотек Зберігає набір відкомпільованих ресурсів Project1.dof Файл параметрів проекту Містить поточні установки проекту: настройки компілятора і компоновщика, імена службових каталогів, умовні директиви. Project1.dpr Файл проекту Пов'язує між собою всі файли, з яких складається проект Project1.res Файл ресурсів Містить піктограми, графічні зображення Ugadaika.pas Файл програмного модуля Форми 1 Визначає функціональність форми №1 Ugadaika.dfm Файл форми 1 Містить список всіх компонентів, включених в форму 1 Ugadaika.dcu Об'єктний файл для Unit1.Pas відкомпільоване версія Unit1.Pas Project1.exe Виконавчий файл відкомпілювати файл проекту Results.dat Текстовий файл Містить інформацію про кращі результати попередніх ігор

2.3 Опис програми

Загальні відомості: програма «Угадайка» була створена за допомогою середовища розробки BorlandDelphi версії 7.0. Програма працює в ОС MSWindows 98 і вище.

Функціональне призначення програми: дозвілля, розвага.

Опис логічної структури: дана програма не має зв'язків з іншими додатками.

Використовувані технічні засоби: програма була розроблена при використанні комп'ютера на базі процесора IntelCeleron 2.2 МГц, обсягом ОЗУ 2048 Мб. Програмні засоби: ОС MicrosoftWindowsXP, BorlandDelphi 7.0.

Виклик і завантаження: гра завантажується після запуску виконуваного файлу Ugadaika.exe

ігровий додаток програма Відгадайка

2.4 Тестування програми

Після запуску програми необхідно або натиснути «Нова гру» в основному меню програми, або в головному меню вибрати пункт «Гра» - «Нова гра», або натиснути F2.

При тестуванні програми слід звернути увагу на наступні моменти:

1. Для перевірки «чесності» комп'ютера використовується 128-бітний алгоритм хешування MD5. Шляхом порівняння хеша згенерованої перед початком гри рядки, і початкового рядка, користувач може упевнитися, що протягом гри він відгадував саме те число, яке було загадане перед грою, а комп'ютер «грав» проти нього чесно. Сервісів по перетворенню рядки в md5-хеш Сущетсвует безліч, в тому числі, і у вигляді окремих невеликих програм (наприклад, http://igrun.com/MD5hasher.exe). Для ігрових додатків подібна перевірка чесності останнім часом стала практично «стандартом».

2. Якщо користувач відгадує число за відведений для цього кількість спроб, програма просить ввести його своє ім'я і, якщо результат гри входить в число десяти кращих, його ім'я вписується в таблицю рекордів (зберігається в текстовому файлі results.dat в папці з програмою).

3. Програма не запам'ятовує раніше введені числа користувача і дозволяє ввести одне і те ж число кілька разів протягом однієї гри. Однак користувач бачить «історію» введення чисел на екрані.

3 Впровадження

Для нормальної роботи програми необхідно дотримання наступних умов:

Запускати програму з пристроїв, захищених від записи, не рекомендується, оскільки в ході виконання програми створюється, або змінюється файл records.dat, що знаходиться в папці з програмою. [11]

Програма запускається файлом Ugadaika.exe. Після запуску програми користувач бачить головне меню. Для запуску гри необхідно або натиснути клавішу F2, або вибрати пункт меню «Нова гру». При виборі будь-якого пункту головного меню в той час, коли запущена гра, результати гри не зберігаються.

Для переходу до списку кращих результатів гри, необхідно вибрати в меню «Гра» - «Кращі результати». Результати зчитуються з файлу results.dat, що знаходиться в папці з програмою.

Якщо файл не існує, програма створює його автоматично. При неможливості записати дані в файл або вважати їх, користувач повідомляється про це. Для отримання інформації про автора програми, необхідно вибрати пункт меню «Довідка» - «Про програму» або натиснути клавішу F1. Для того, щоб ознайомитися з правилами гри, необхідно вибрати пункт меню «Довідка» - «Правила гри».

Для виходу з програми необхідно вибрати пункт меню «Гра» - «Вихід» або натиснути кнопку «Вихід» на самій формі.

Інтерес до програмування останнім часом різко зріс. В значній мірі це пов'язано з розвитком і впровадженням в повсякденне життя інформаційно-комунікаційних технологій. Якщо людина має справу з комп'ютером, то рано чи пізно у нього виникає бажання, а іноді і необхідність, програмувати.

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

Borland Delphi - це високопродуктивний інструмент візуального побудови додатків для MicrosoftWindows (Додаток Б). В основі Delphi лежить мова Object Pascal (починаючи з версії 7, мова Delphi), який є розширенням об'єктно-орієнтованої мови Pascal (Turbo / Borland Pascal, починаючи з версії 5.5). Середовище розробки Delphi призначена як для професійних розробників, так і для початківців програмістів. У порівнянні з іншими середовищами розробки, Borland Delphi має масу переваг, серед яких:

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

2. Інтерфейси на основі жестів, що звільняють від необхідності використовувати клавіатуру. Розробники отримали можливість швидко створювати використовують сенсорний ввід даних графічні інтерфейси і додатки для КПК, сенсорних панелей і автономних загальнодоступних систем і вбудовувати підтримку роботи з жестами в існуючі програми. Delphi надає гнучкі засоби підтримки жестів і інтерактивні засоби мультисенсорного введення на платформі Windows 7 і забезпечує підтримку жестів під управлінням Windows XP і Windows Vista, а також підтримку введення з використанням декількох джерел, включаючи мишу, перо і сенсорний екран.

3. Підвищення ефективності завдяки повторному використанню коду. Код та компоненти в Delphi спочатку спроектовані для повторного використання. Сотні настроюються включених компонентів, призначених для вирішення широкого кола завдань - від створення призначеного для користувача інтерфейсу до роботи з базами даних, - і десятки тисяч комерційних і безкоштовних компонентів сторонніх розробників дозволяють реалізувати будь-які ідеї. У вас виникла ідея? Можливо, ця ідея вже реалізована в якомусь компоненті.

4. Миттєва компіляція. До складу Delphi входить висококласний швидко-діючий компілятор. Зручний для підтримки і сприйняття, повністю об'єктно орієнтована мова Delphi, створений на основі мови Object Pascal, включає всі можливості сучасних мов, що дозволяють створювати потужний, продуктивний і стійкий код. Крім того, Delphi забезпечує повний доступ до інтерфейсу Windows API. Компіляція всього коду, навіть величезних проектів, виконується за лічені секунди.

Завдяки засобам візуальної розробки можна працювати з об'єктами, «тримаючи» їх перед очима й одержуючи результати практично відразу.

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

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

№ п / п Поняття Визначення 1 Алгоритм Точний набір інструкцій, что опісують послідовність Дій Деяк Виконавця для Досягнення результату, решение деякої задачі. 2 Бібліотека збірник підпрограм або об'єктів, Які Використовують для розробки програмного забезпечення. 3 Інтегроване середовище розробки система програмних ЗАСОБІВ, яка вікорістовується програмістамі для розробки програмного забезпечення. 4 Виконавчий файл файл, який містить програму у вигляді, в якому вона може бути виконана комп'ютером після завантаження в пам'ять. 5 Компонент безліч класів і мовних конструкцій, об'єднаних за спільною ознакою. 6 Масив проста статична структура даних, призначена для зберігання набору одиниць даних, кожна з яких ідентифікується індексом або набором індексів. 7 Налагодження етап розробки комп'ютерної програми, на якому виявляють, локалізують і усувають помилки. 8 Мінлива пойменована осередок пам'яті, ім'я якої можна використовувати для здійснення доступу до даних, що знаходяться за даною адресою. 9 Програма послідовність формалізованих інструкцій, призначена для виконання пристроєм управління обчислювальної машини. 10 Програмування процес і мистецтво створення комп'ютерних програм за допомогою мов програмування. 11 Програмне забезпечення сукупність програм, процедур і правил, а також документації, що відносяться до функціонування системи обробки даних 12 Хешування перетворення вхідного масиву даних довільної довжини в вихідну бітову рядок фіксованої довжини. 13 Мова програмування формальна знакова система, призначена для опису алгоритмів в формі, яка зручна для виконавця (наприклад, комп'ютера).

1Delphi 7: Розробка додатків електронного бізнесу: від проектування до розгортання [Електронний ресурс], Режим доступу: http://www.interface.ru/borland/delphi7_ds_rus.htm

2 Delphi-програмування: вихідні та компоненти [Електронний ресурс] 2010, Режим доступу: http://www.delphisources.ru/

3 Delphi: поради, приклади, рішення [Електронний ресурс], 2007. Режим доступу: http://www.dimassoft2000.narod.ru/delphi.htm

4 Архангельський, А.Я., 100 компонентів Delphi [Електронний ресурс], 2009. Режим доступу: http://www.beluch.ru/progr/100comp/index.htm

5 Архангельський, А.Я., Програмування в Delph; Підручник за класичними версіями Delphi. / М: Біном-прес, 2008, 1152 с.

6 Дарахвелидзе П., Програмування в Delphi 7. / П.Дарахвелідзе, Е.Марков - СПб: БХВ-Петербург 2009

7 кент М., Delphi 7 для професіоналів. / СПб: Пітер, 2004, - ISBN: 5-94723-593-5

8 Паризький С., Delphi: Тільки практика. / М: МК-прес, 2005, 208 с., - ISBN: 966-96415-6-Х

9 П'ять простих порад для початківців програмістів [Електронний ресурс] 2009, Режим доступу: http://www.webdelphi.ru/2009/12/pyat-prostyx-sovetov-dlya-nachinayushhix-programmistov/

10 Вейлз Дж., Вікіпедія: вільна енциклопедія. / Дж.Уейлс, Л.Сенгер [Електронний ресурс], 2010. Режим доступу: http://ru.wikipedia.org/wiki/

11 Флёнов М., Біблія Delphi, 2-е вид. / СПб: БХВ-Петербург, 2008, 880 с.

12 Чеснокова О.В., Delphi 2007: Додати Алгоритми і програми. / М: НТ-прес, 2008, 368 с. - ISBN 978-5-477-01130-8


[1] Delphi 7: Розробка додатків електронного бізнесу: від проектування до розгортання [Електронний ресурс], Режим доступу: http://www.interface.ru/borland/delphi7_ds_rus.htm

[2] Delphi: поради, приклади, рішення [Електронний ресурс], 2007. Режим доступу: http://www.dimassoft2000.narod.ru/delphi.htm

[3] Архангельський, А.Я., Програмування в Delph; Підручник за класичними версіями Delphi. / М: Біном-прес, 2008, 1152 с. - ISBN 5-9518-0235-4

[4] П'ять простих порад для початківців програмістів [Електронний ресурс] 2009, Режим доступу: http://www.webdelphi.ru/2009/12/pyat-prostyx-sovetov-dlya-nachinayushhix-programmistov/

[5] Delphi 7: Розробка додатків електронного бізнесу: від проектування до розгортання [Електронний ресурс], Режим доступу: http://www.interface.ru/borland/delphi7_ds_rus.htm

[6] Delphi-програмування: вихідні та компоненти [Електронний ресурс] 2010, Режим доступу: http://www.delphisources.ru/

[7] Паризький С., Delphi: Тільки практика. / М: МК-прес, 2005, 208 с., - ISBN: 966-96415-6-Х

[8] П'ять простих порад для початківців програмістів [Електронний ресурс] 2009, Режим доступу: http://www.webdelphi.ru/2009/12/pyat-prostyx-sovetov-dlya-nachinayushhix-programmistov/

[9] Флёнов М., Біблія Delphi, 2-е вид. / СПб: БХВ-Петербург, 2008, 880 с. - ISBN 978-5-9775-0116-3

[10] Кент М., Delphi 7 для професіоналів. / СПб: Пітер, 2004, - ISBN: 5-94723-593-5

[11] Delphi 7: Розробка додатків електронного бізнесу: від проектування до розгортання [Електронний ресурс], Режим доступу: http://www.interface.ru/borland/delphi7_ds_rus.htm

У вас виникла ідея?

Новости