Данные о работе:
Курсовая работа
Название дисциплины: Алгоритмические языки и программирование
Тема: Написание программы "Угадайка"
Введение
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.
Рис. 1 – Окно формы Ugadaika
Свойства формы Form1:
Cобытия формы 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]
Рис. 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:
Рис. 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
|