Министерство образования и науки Российской Федерации
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Аэрокосмический институт
Кафедра управления и информатики в технических системах
КУРСОВОЙ ПРОЕКТ
по дисциплене «Программирование на языке высокого уровня»
Разработка программного средства для долговременного хранения и обработки информации на примере игры «Скачки»
Пояснительная записка
ОГУ 27.03.03.0316.000ПЗ
Руководитель
преподаватель
__________________ В. В. Чекрыгина «___»_____________ 2016 г.
Студент группы 14САУ(ба)САУИТ _______ _________И.О. Фамилия
«___»_____________ 2016 г.
Оренбург 2016
Аннотация
Курсовая работа содержит 18 страницы, в том числе 4 рисунка, 5 источников и листинг программы.
В данной курсовой работе подробно рассмотрена технология создание программного продукта с использованием системы объектно-ориентированного программирования Delphi . Кратко рассмотрены существующие языки объектно-ориентированного программирования. Произведено описание технического задания и сам алгоритм программа. В конце работы представлено тестирование программного продукта и его листинг.
Содержание
Введение. 5
1 Техническое задание. 6
2 Описание программы.. 7
3 Руководство пользователю.. 9
4 Тестирование программы.. 10
Заключение. 11
Список использованных источников. 12
Приложение А.. 13
Введение
В настоящее время среди широкого круга пользователей популярна система объектно-ориентированного программирования Delphi, основу которой составляет язык Оbject Pascal, который изначально был разработан Н. Виртом в начале 60–х годов прошлого века специально как язык обучения программированию. Delphi позволяет быстро создавать приложения различной степени сложности на основе технологии визуального программирования.
Система Delphi воплощает в себе лучшие достижения современной теории программирования. Эта интегрированная среда объединяет в себе множество полезных инструментов и готовых компонентов, из которых собираются пользовательские программы – проекты. Delphi – это визуальная среда разработки программ. Это означает, что внешний вид каждой программы (интерфейс) создаётся простым перемещением компонентов.
Базовым языком программирования служит язык Object Pascal – объектно-ориентированный Паскаль. Принципиальное различие систем программирования Delphi и Turbo Pascal (Turbo – торговая марка разработчика системы фирмы Borland International, Inc.(США)) состоит в использовании экранного режима монитора: Turbo Pascal – ориентирован на текстовый режим системы DOS, а Delphi, как и Windows – на графический. Поэтому одна из последних версий Delphi 7 уже может создавать приложения для новейшей среды .NET. Причём последние версии позволяет программировать и для операционной системы Linux.
Система Delphi реализует технологию объектно-ориентированного виртуального программирования (ООП). От всех других языков программирования его отличают строгость в определении всех переменных и констант, модульность программирования, широкие возможности в создании собственных структур данных, использование объектно-ориентированного программирования, отсутствие машинно-ориентированных конструкций. Корпорация Borland, которая является родоначальником Delphi, с самого начала сделала ставку на визуальное объектно–ориентированное программирование с предоставлением возможности работы с любыми базами данных. В настоящее время система программирования Delphi ни в чем не уступает по своим возможностям таким языкам программирования, как C++, С#, Visual C++, C–Builder, Visual Basic и др.
1 Техническое задание
Была поставлена задача: разработать игру на тему скачек на ипподроме в среде Delphi с организованным тотализатором.
В процессе решения данной задачи получили следующее приложение:
Имеется 5 лошадей, которые должны пробежать по прямой, с организованной анимацией движения, состоящей из 2-хкартинок, так же должен присутствовать тотализатор. Лошади должны выигрывать в разном порядке.
Задача играющего: выиграть как можно больше «денег» на тотализаторе.
Минимальные требования для работы с программой: IBM-совместимый 486dx или выше, 5 мб. свободного пространства на жестком диске, ОС Win9x/Me, Win2000/XP/Vista/Seven.
В программе предусмотрено:
- возможность при нулевом балансе можно взять долг;
- лошади движутся с разными скоростями и узнать победителя заранее невозможно.
2 Описание программы
2.1 Структурная схема программы
На рисунке 1 показано, расположение основных элементов программы, так выглядит основное окно программного продукта.
Рисунок 1 – Основное окно программы
2.2 Описание особенностей алгоритма в модулях
Unit1.Данный модуль содержит переменные и методы, с помощью которых осуществляется управление программой.
Глобальные переменные:
A:mass2- массив, содержащий скорости лошадей, заполняющийся в рандомном порядке.
d, s ,j, k, b, w, h1, h2, bn, h3, h4, d1, h5:integer – переменные необходимые для организации тотализатора.
b1, b2:tbitmap – изображения анимации бегущих лошадей.
Методы:
procedure TForm1.FormCreate(Sender: TObject) – очистка edit1,edit2,Memo1, присваивается первоначальная сумма очков, вывод количества очков в Memo1,переменным анимации движения лошадей присваиваются соответствующие значения.
procedure TForm1.Button3Click(Sender: TObject) – принимается размер ставки и лошадь на которую поставил игрок.
procedure TForm1.Button1Click(Sender: TObject) - заполняет массив скоростей произвольными значениями и запускает забег включением Timer1.
procedure TForm1.Timer1Timer(Sender: TObject) – изменяет параметр компонентов bitbtn1-5 .left и после каждого шага меняет параметр Glyph. Действие происходит пока лошади не достигнут финиша. После этого запускается Timer2.
procedure TForm1.Timer2Timer(Sender: TObject) – определяет лошадь-победителя, выводит сообщение, подсчитывает выигрыш/проигрыш. Выводит количество очков в Memo1. Возвращает лошадей на стартовую позицию.
procedure TForm1.Button2Click(Sender: TObject) – принимает из edit1 количество долга и выводит его количество количество очков в Memo1.
procedure TForm1.Button2Click(Sender: TObject) – возвращает весь долг.
2.3 Алгоритм работы программы
Блок-схема работы программы представлена на рисунке 2.
Рисунок 2 – Алгоритм работы
программы
3 Руководство пользователю
Для запуска программы необходимо выбрать файл «Project1.exe».
После того, как пользователь откроет данный файл, на экране появится окно программы, как показано на рисунке 3.
Рисунок 3 –Окно начало программы
Для того чтобы начать играть необходимо сделать ставку и нажать клавишу начать забег. Результат забега представлен на рисунке 4.
Рисунок 3 –Окно конца забега
4 Тестирование программы
Испытания на представительном множестве примеров с выполнением проверок правильности результатов, которые программа позволяет осуществлять, показали корректность программы. Тестирование программы показало, что данный проект может работать при любых несанкционированных действиях пользователя.
Минимальные требования для работы с программой: IBM – совместимый 486dx или выше, 5 мб. свободного пространства на жестком диске, ОС Win9x/Me, Win2000/XP/Vista/7.
Заключение
В данной курсовой работе разработано игровое приложение. Проведенные тестирование программы показывают корректность её работы. Опыт работы с ней свидетельствует о дружелюбности и высокой наглядности интерфейса, что наряду с наличием упомянутых дополнительных режимов дает основание рекомендовать данную программу для применения в целях развлечения.
По мнению автора программы, основные задачи проекта выполнены полностью
.
Список использованных источников
1 СТО 02069024. 101 – 2014. Работы студенческие. Общие требования и правила оформления–Введ. 2002–07–01. – Оренбург: отдел качества образования федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Оренбургский государственный университет», 2014. – 86 с.
2 Архангельский А.Я. Программирование в Delphi 6 /А.Я. Архангельский// М.: ЗАО «Издательство БИНОМ», 2002г. – 1200 с.
3 Фаронов В.В. Delphi 6. Учебный курс / В.В. Фараонов// Издательство Молгачев С.В., 2001. – 672с.
4 Колосов С.В. Объектно-ориентированное программирование в среде Delphi / С.В. Колосов// М.: БГУИР, 2001. – 48с.
5 Программирование в среде DELPHI. Лабораторный практикум для студентов всех специальностей/ А.Б. Закалюкин, С.В. Колосов, А.А. Навроцкий, А.К. Синицын, А.И. Шакирин; Под общ. ред. А.К ... – Мн.: БГУИР, 1998. – 94 с.
Приложение А
(обязательное)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, jpeg;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button3: TButton;
RadioGroup1: TRadioGroup;
Edit1: TEdit;
Label1: TLabel;
Image2: TImage;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
Timer1: TTimer;
Timer2: TTimer;
Button2: TButton;
Edit2: TEdit;
Button4: TButton;
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Timer2Timer(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
Nmax=5;
n=5;
Type
mas2 = array[1..Nmax] of integer;
var
Form1: TForm1;
A:mas2;
d,s,j,k,b,w,h1,h2,bn,h3,h4,d1,h5:integer;
b1,b2:tbitmap;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
b:=5000;
memo1.Clear;
edit1.clear;
edit2.Clear;
Memo1.Lines.Add("Âàø áàíê ñîñòàâëÿåò 5000") ;
b1:=tbitmap.create;
b1.LoadFromFile("D:suirêóðñîâàÿíîâàÿ ïàïêà12345.bmp");
b2:=tbitmap.create;
b2.LoadFromFile("D:suirêóðñîâàÿíîâàÿ ïàïêà54321.bmp");
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
bn:=b;
s:=StrToint(Edit1.Text);
b:=b-s;
Memo1.Lines.Add("Ñòàêà â ðàçìåðå "+inttostr(s)+" ïðèíÿòà.Ïðè âûéãðûøå âû ïîëó÷èòå "+inttostr(2*s));
h1:=0;
h2:=0;
h3:=0;
h4:=0;
h5:=0;
case radiogroup1.itemindex of
0:h1:=s;
1:h2:=s;
2:h3:=s ;
3:h4:=s;
4:h5:=s;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var n,j:integer;
begin
while (bitbtn1.Left<400) and (bitbtn2.Left<400) and (bitbtn3.Left<400) and (bitbtn4.Left<400) and (bitbtn5.Left<400) do begin
bitbtn1.Glyph:=b2; bitbtn1.Repaint;
bitbtn2.Glyph:=b2; bitbtn2.Repaint;
bitbtn3.Glyph:=b2;bitbtn3.Repaint;
bitbtn4.Glyph:=b2; bitbtn4.Repaint;
bitbtn5.Glyph:=b2; bitbtn5.Repaint;
sleep(200) ;
bitbtn1.Left:=bitbtn1.left+A[1]; bitbtn1.Repaint;
bitbtn2.Left:=bitbtn2.left+A[2];bitbtn2.Repaint;
bitbtn3.Left:=bitbtn3.left+A[3];bitbtn3.Repaint;
bitbtn4.Left:=bitbtn4.left+A[4];bitbtn4.Repaint;
bitbtn5.Left:=bitbtn5.left+A[5];bitbtn5.Repaint;
bitbtn1.Glyph:=b1; bitbtn1.Repaint;
bitbtn2.Glyph:=b1; bitbtn2.Repaint;
bitbtn3.Glyph:=b1; bitbtn3.Repaint;
bitbtn4.Glyph:=b1; bitbtn4.Repaint;
bitbtn5.Glyph:=b1; bitbtn5.Repaint;
sleep(200);
end;
while (bitbtn1.Left<824) and (bitbtn2.Left<824) and (bitbtn3.Left<824) and (bitbtn4.Left<824) and (bitbtn5.Left<824) do begin
bitbtn1.Glyph:=b2; bitbtn1.Repaint;
bitbtn2.Glyph:=b2; bitbtn2.Repaint;
bitbtn3.Glyph:=b2;bitbtn3.Repaint;
bitbtn4.Glyph:=b2; bitbtn4.Repaint;
bitbtn5.Glyph:=b2; bitbtn5.Repaint;
sleep(200) ;
bitbtn1.Left:=bitbtn1.left+A[1]; bitbtn1.Repaint;
bitbtn2.Left:=bitbtn2.left+A[2];bitbtn2.Repaint;
bitbtn3.Left:=bitbtn3.left+A[3];bitbtn3.Repaint;
bitbtn4.Left:=bitbtn4.left+A[4];bitbtn4.Repaint;
bitbtn5.Left:=bitbtn5.left+A[5];bitbtn5.Repaint;
bitbtn1.Glyph:=b1; bitbtn1.Repaint;
bitbtn2.Glyph:=b1; bitbtn2.Repaint;
bitbtn3.Glyph:=b1; bitbtn3.Repaint;
bitbtn4.Glyph:=b1; bitbtn4.Repaint;
bitbtn5.Glyph:=b1; bitbtn5.Repaint;
sleep(200);
end;
timer2.Enabled:=true;
timer1.Enabled:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
k:=0;
randomize;
bn:=b;
for j:=1 to n do A[j]:=random(4)+15 ;
timer1.enabled:=true;
end;
procedure TForm1.Timer2Timer(Sender: TObject);
var l,j,n:integer;
begin
l:=1;
if
k
timer1.Enabled:=true;
if bitbtn1.Left+5>824 then begin sleep(2000);
b:=b+2*h1;
k:=l;
timer2.Enabled:=false;
memo1.Lines.add("âûéãðàëà ëîøàäü ¹1") ;
end;
if bitbtn2.Left+5>824 then begin sleep(2000);
b:=b+2*h2;
k:=l;
timer2.Enabled:=false;
memo1.Lines.add("âûéãðàëà ëîøàäü ¹2") ;
end;
if bitbtn4.Left+5>824 then begin sleep(500);
b:=b+2*h4;
k:=l;
timer2.Enabled:=false;
memo1.Lines.add("âûéãðàëà ëîøàäü ¹4") ;
end;
if bitbtn5.Left+5>824 then begin sleep(500);
b:=b+2*h5;
k:=l;
timer2.Enabled:=false;
memo1.Lines.add("âûéãðàëà ëîøàäü ¹5") ;
end;
if bitbtn3.Left+5>824 then begin sleep(500);
b:=b+2*h3;
k:=l;
timer2.Enabled:=false;
memo1.Lines.add("âûéãðàëà ëîøàäü ¹3") ;
end;
if bitbtn1.Left+5>824 then showmessage("Âûéãðàëà ëîøàäü ¹1") ;
if bitbtn2.Left+5>824 then showmessage("Âûéãðàëà ëîøàäü ¹2") ;
if bitbtn4.Left+5>824 then showmessage("Âûéãðàëà ëîøàäü ¹4") ;
if bitbtn5.Left+5>824 then showmessage("Âûéãðàëà ëîøàäü ¹5") ;
if bitbtn3.Left+5>824 then showmessage("Âûéãðàëà ëîøàäü ¹3") ;
memo1.Lines.add("Âàø áàíê ñîñòàâëÿåò "+inttostr(b)) ;
bitbtn1.Left:=86;
bitbtn2.Left:=86;
bitbtn3.Left:=86;
bitbtn4.Left:=86;
bitbtn5.Left:=86;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
d1:=strtoint(edit2.text);
d:=d+d1;
b:=b+d1;
memo1.Lines.add("Âû âçÿëè â äîëã "+inttostr(d1)+".íå çàáóäüòå âåðíóòü äîëã."+"Âàøü áàíê ñîñòàâëÿåò "+inttostr(b)) ;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
b:=b-d;
memo1.Lines.Add("Ïðèÿòíî áûëî èìåòü ñ âàìè äåëî.Âàø áàíê ñîñòàâëÿåò "+inttostr(b)) ;
end;
end.