Игра "Тетрис"
Объектно-ориентированный анализ и проектирование системы на языке UML. Программная реализация на языке С++. Исходный текст программы. Описание реализации программных модулей. Инструкция пользователя, методика и результаты тестирования программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.06.2017 |
Размер файла | 118,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования Республики Беларусь
Учреждение образования «Белорусский государственный университет информатики и радиоэлектроники»
Факультет непрерывного и дистанционного образования
Дисциплина: Объектно-ориентированное программирование
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту
на тему Игра «Тетрис»
Минск 2017
Введение
Созданием языков программирования занимаются в большинстве случаев очень квалифицированные люди, часто группы программистов, а иногда даже международные коллективы. Однако подавляющее большинство языков программирования умирало, едва родившись. Лишь к немногим из них был проявлен интерес, и буквально единицы получили действительно широкое распространение. К таким «счастливым» языкам принадлежит язык Си, разработанный Денисом Ритчи. Серьезное влияние на него оказали предшествующие языки BCPL и Би (B).
С++ модификация языка С универсальный язык программирования, предназначенный для решения широкого круга задач и содержащий современные механизмы управления вычислительным процессом и работы с данными. В то же время язык С++ очень прост: в него введены некоторые средства, характерные скорее для ассемблеров, чем для языков высокого уровня.
Простота языка не требует создания слишком сложных компиляторов и позволяет получать достаточно эффективный объектный код. Эти свойства языка особенно важны при написании операционных систем, но они могут быть очень полезными и при разработке прикладных программ.
Среди преимуществ языка С++ можно отметить переносимость программ, написанных на языке С++, на компьютеры различной архитектуры и из одной операционной системы в другую с незначительными изменениями (или вообще без них), лаконичность записи алгоритмов, логическую стройность и удобочитаемость программ, возможность получить эффективный код программ, сравнимых по скорости с программами, написанными на ассемблере. Главное удобство языка С++ состоит в том, что он является одновременно и языком высокого уровня, имеющим полный набор конструкций структурного программирования, поддерживающим модульность, блочную структуру программ, возможность раздельной компиляции модулей, и в тоже самое время язык С++ имеет набор низкоуровневых средств, позволяющих добраться до каждого бита памяти.
К достоинствам языка С++ можно отнести и его высокую эффективность, так как его структура позволяет наилучшим образом использовать возможности современных персональных компьютеров.
Гибкость и универсальность языка С++ обеспечивают его широкое распространение среди программистов-профессионалов. Его можно использовать для решения практически всех типов задач.
Данный программный продукт игровая программа «TETRIS», написана на языке С++ с целью показать некоторые его основные свойства.
Объектно-ориентированный анализ и проектирование системы на языке UML
Диаграмма вариантов использования
Рис. 1
Диаграммы классов
Диаграммы последовательности
1 - Генерация новой фигуры;
2 - Сдвиг фигуры влево;
3 - Сдвиг фигуры вправо;
4 - Поворот фигуры вокруг оси вращения;
5 - Быстрое падение;
6 - Удаление заполненной строки.
Диаграмма состояний
Программная реализация на языке С++. Краткая характеристика инструментальной программной среды
Для написания игровой программы «TETRIS» был выбран язык C++, т.к. в последнее время он является одним из наиболее распространенных языков объектно-ориентированного программирования.
Интегрированная среда разработки Visual C++ 6.0 представляет собой программный комплекс, который объединяет в себе текстовый редактор, ориентированный на создание программ на языке С++, редактор ресурсов, вьювер классов и т.д.
Достоинством интегрированной среды является достигнутый уровень интеграции между редактором, компилятором и компоновщиком. Находясь в интегрированной среде, программист может редактировать программу, транслировать ее, компоновать ее с другими исходными модулями и библиотеками и запускать на выполнение.
Структура программы
Исходный текст программы хранится в двух файлах: resource.h и tetris.cpp.
Resource.h: описание идентификаторов пунктов меню.
Tetris.cpp: описание и реализация классов shape и tetriswnd.
Входные данные:
Клавиши left, right, up, down;
Уровень игры (level1, level2, level3).
Выходными данными является информация, выводимая на экран в графическом режиме: рисунок ящика, падающие и лежащие на дне фигуры.
Описание реализации программных модулей
В состав программы входят функции отображения на экране движущихся фигурок, параллельного переноса их вправо и влево, поворота вокруг собственной оси, быстрого падения на дно короба и ряд вспомогательных функций (контроль наложения фигур, отображение элементов фигур и т.д.).
В соответствии с принципами объектно-ориентированного программирования данные в программе организованы в несколько классов:
class Shape // фигура
{
public:
boolcells[4][4];
ShapeTypecurType;
voidNewShape( ShapeType );
voidRotate();
voidClearShape( bool c[4][4] );
А также класс приложения TetrisWnd.
Инструкция пользователя
Запуск программы осуществляется командой tetris из каталога, содержащего файлы tetris.exe. Управление игрой осуществляется клавишами, представленными в таблице:
Название клавиши |
Выполняемая функция |
|
Стрелка вправо |
Сдвиг фигуры вправо |
|
Стрелка влево |
Сдвиг фигуры влево |
|
Стрелка вверх |
Поворот фигуры вокруг собственной оси по часовой стрелке |
|
Стрелка вниз |
Падение фигуры до дна ящика |
Методика и результаты тестирования программы
программа язык пользователь uml
Утверждение о работоспособности программы осуществляется на основе следующих фактов:
1. независание фигуры при падении;
2. падение фигуры до дна ящика;
3. невыход фигуры за границы ящика;
4. сдвиг фигуры и поворот её на расстоянии от стенок;
5. неналожение фигуры при достижении лежащих на дне ящика других фигур;
6. изъятие слоя, не содержащего пустых ячеек (все ячейки заполнены квадратами фигур);
7. окончание игры при заполнении ящика или по команде игрока.
Надежное функционирование программы обеспечивается проверкой наложения при перемещении фигур и ограничением, накладываемым на набор входных данных (коды нажатых клавиш игнорируются, если эти клавиши не являются управляющими в игре).
Заключение
Разработав модель и специфицировав ее на языке UML, разработчик имеет все основания быть понятым и по достоинству оцененным своими коллегами. При этом могут быть исключены ситуации, когда тот или иной разработчик применяет свою собственную графическую нотацию для представления тех или иных аспектов модели, что практически исключает ее понимание другими специалистами в случае нетривиальности исходной модели. Последующая разработка модели системы, направленная на решение определенных проблем, может потребовать привлечения знаний из различных дисциплин. С этой точки зрения язык UML может быть использован не только для унификации представлений этих знаний, но что не менее важно - для их интеграции, направленной на повышение адекватности много-модельных представлений сложных систем.
Возможно со временем язык UML станет тем "эсперанто", на котором смогут общаться математики, системные аналитики, физики, программисты, менеджеры, экономисты и специалисты других профессий, представляя свои профессиональные знания в унифицированном виде. Ведь, по существу, каждый из специалистов оперирует модельными представлениями в своей области знаний. И именно этот модельный аспект может быть специфицирован средствами языка UML.
В связи с этим значение языка UML существенно возрастает, поскольку он все более приобретает черты языка представления знаний. При этом наличие в языке UML изобразительных средств для представления структуры и поведения модели позволяет достичь адекватного представления декларативных и процедурных знаний и, что не менее важно, установить между этими формами знаний семантическое соответствие. Все эти особенности языка UML позволяют сделать вывод о том, что он имеет самые серьезные перспективы уже в ближайшем будущем.
Список литературы
1. Т.Павловская «С++: Учебник»
2. Б.Карпов, Т.Баранова «С++: Специальный справочник»
3. Г.Шилдт «Полный справочник по С»
4. И. Труб «Объектно-ориентированное моделирование на С++»
5. С. Холзнер «Visual C++ 6», учебный курс.
Приложение
Листинги программы.
Файл RESOURCE.H
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by Tetris.rc
//
#define IDR_MENU1 101
#define IDR_MENU 101
#define IDI_IC 102
#define IDD_ABOUT 105
#define ID_GAME_NEW 40001
#define ID_GAME_EXIT 40002
#define ID_HELP_ABOUT 40003
#define ID_LEVEL_LEVEL1 40007
#define ID_LEVEL_LEVEL2 40008
#define ID_LEVEL_LEVEL3 40009
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 107
#define _APS_NEXT_COMMAND_VALUE 40010
#define _APS_NEXT_CONTROL_VALUE 1003
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
Файл Tetris.cpp
#include<afxwin.h>
#include<stdio.h>
#include<time.h>
#include"resource.h"
enum ShapeType { line, square, rightL, leftL, pyramide, leftZ, rightZ};//The
type of shape:
#define size 20//size of shape square
//--------------------------------
// class Shape
//--------------------------------
class Shape
{
public:
boolcells[4][4]; // 4x4 matrix that conatains the shape
ShapeTypecurType; // current type of shape
voidNewShape( ShapeType );
voidRotate();
voidClearShape( bool c[4][4] ); // clear the 4x4 matrix
};
void Shape::ClearShape( bool c[4][4] )
{
for( int i=0; i<4; i++)
for( int j=0; j<4; j++)
c[i][j]=false;
}
void Shape::NewShape( ShapeType type )
{
ClearShape(cells);
int i;
curType=type;
switch(type)
{
case line:for(i=0; i<4; i++)
cells[0][i]=true;
break;
case square:for(i=0; i<2; i++)
for(int j=0; j<2; j++)
cells[i][j]=true;
break;
case leftL:for(i=0; i<3; i++)
cells[0][i]=true;
cells[1][2]=true;
break;
case rightL:for(i=0; i<3; i++)
cells[0][i]=true;
cells[1][0]=true;
break;
case pyramide:for(i=0; i<3; i++)
cells[1][i]=true;
cells[0][1]=true;
break;
case leftZ:cells[0][0]=true; cells[1][0]=true;
cells[1][1]=true; cells[2][1]=true;
break;
case rightZ:cells[0][1]=true; cells[1][0]=true;
cells[1][1]=true; cells[2][0]=true;
break;
}
}
void Shape::Rotate()
{
switch(curType)
{
case line:
{
int k;
if(cells[0][0]==true)
{
ClearShape(cells);
for(k=0; k<4; k++)
cells[k][1]=true;
}
else
{
ClearShape(cells);
for(k=0; k<4; k++)
cells[0][k]=true;
}
}
case square: return;
}
bool tempShape[4][4];
ClearShape(tempShape);
for(int j=3-1, c=0; j>=0 ; j--, c++)
for(int i=0; i<3; i++)
tempShape[c][i]=cells[i][j];
ClearShape(cells);
for(int f=0; f<3; f++)
for(int d=0; d<3; d++)
cells[f][d]=tempShape[f][d];
}
//-----------------------------------
// Tetris window class
//-----------------------------------
class TetrisWnd : public CFrameWnd
{
public:
TetrisWnd();
void NewShape(); // appearance of new shape at the top
COLORREF ShapeColor(int color); // some reserved colors
void SetLevel(int);
bool CheckLeft(); // check the possibility to move on the left
bool CheckRight(); // check the possibility to move on the right
void ShowTitle(); // show the window title
void CheckForLine(); // check for the completed line
bool IsAtBottom(); // check the possibility to move on the bottom
void ClearStock(); // clear the field
CRect GetRect(); // get the rectangle of shape's placement
int color; // current color
private:
CMenumenu;
Shapeshape;
shortstock[20][10];
intcurY;
intcurX;
boolbGame;
intscore;
intlevel;
boollevel1;
boollevel2;
boollevel3;
protected:
//{{AFX_VIRTUAL(TetrisWnd)
protected:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL
protected:
//{{AFX_MSG(TetrisWnd)
afx_msg void OnPaint();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
afx_msg void OnGameNew();
afx_msg void OnGameExit();
afx_msg void OnClose();
afx_msg void OnLevelLevel1();
afx_msg void OnUpdateLevelLevel1(CCmdUI* pCmdUI);
afx_msg void OnLevelLevel2();
afx_msg void OnUpdateLevelLevel2(CCmdUI* pCmdUI);
afx_msg void OnLevelLevel3();
afx_msg void OnUpdateLevelLevel3(CCmdUI* pCmdUI);
afx_msg void OnHelpAbout();
//}}AFX_MSG
//{{AFX_DATA_MAP(TetrisWnd)
//}}AFX_DATA_MAP
//{{AFX_DATA(TetrisWnd)
//}}AFX_DATA
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(TetrisWnd,CFrameWnd)
//{{AFX_MSG_MAP(TetrisWnd)
ON_WM_PAINT()
ON_WM_TIMER()
ON_WM_KEYDOWN()
ON_COMMAND(ID_GAME_NEW, OnGameNew)
ON_COMMAND(ID_GAME_EXIT, OnGameExit)
ON_WM_CLOSE()
ON_COMMAND(ID_LEVEL_LEVEL1, OnLevelLevel1)
ON_UPDATE_COMMAND_UI(ID_LEVEL_LEVEL1, OnUpdateLevelLevel1)
ON_COMMAND(ID_LEVEL_LEVEL2, OnLevelLevel2)
ON_UPDATE_COMMAND_UI(ID_LEVEL_LEVEL2, OnUpdateLevelLevel2)
ON_COMMAND(ID_LEVEL_LEVEL3, OnLevelLevel3)
ON_UPDATE_COMMAND_UI(ID_LEVEL_LEVEL3, OnUpdateLevelLevel3)
ON_COMMAND(ID_HELP_ABOUT, OnHelpAbout)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
TetrisWnd::TetrisWnd()
{
CString s=AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,
AfxGetApp()->LoadStandardCursor(IDC_ARROW),
(HBRUSH)GetStockObject(BLACK_BRUSH),
AfxGetApp()->LoadIcon(IDI_IC));
Create(s,"Tetris");
menu.LoadMenu(IDR_MENU);
SetMenu(&menu);
level=700;
SetLevel(1);
srand(time(0));
ClearStock();
}
/////////////////////////////////////////////////////////////////
class MyApp : public CWinApp
{
public:
virtual BOOL InitInstance()
{
m_pMainWnd = new TetrisWnd;
m_pMainWnd->ShowWindow(SW_SHOWNORMAL);
return TRUE;
}
};
MyApp app;
//////////////////////////////////////////////////////////////////
BOOL TetrisWnd::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style &= ~WS_MAXIMIZEBOX;
cs.style &= ~WS_THICKFRAME;
cs.cx = 210;
cs.cy = 450;
return CFrameWnd::PreCreateWindow(cs);
}
void TetrisWnd::OnPaint()
{
CPaintDC dc(this);
int i,j;
CBrush brush;
brush.CreateSolidBrush(ShapeColor(color));
dc.SelectObject(&brush);
for(i=0; i<4; i++)
{
for(j=0; j<4; j++)
{
if(shape.cells[i][j]==true)
dc.Rectangle(curX+j*size, curY+i*size, curX+(j+1)*size, curY+(i+1)*size);
}
}
for(i=0; i<20; i++)
{
for(j=0; j<10; j++)
{
if(stock[i][j]!=-1)
{
brush.DeleteObject();
brush.CreateSolidBrush(ShapeColor(stock[i][j]));
dc.SelectObject(&brush);
dc.Rectangle(j*size,i*size,(j+1)*size,(i+1)*size);
}
}
}
}
CRect TetrisWnd::GetRect()
{
CRect r;
r.left=curX-size;
r.right=curX+size*5;
r.top=curY-size;
r.bottom=curY+size*5;
return r;
}
void TetrisWnd::OnTimer(UINT nIDEvent)
{
if(nIDEvent==1 && bGame==true)
{
if(IsAtBottom())
{
for(int i=0; i<4; i++)
for(int j=0; j<4; j++)
{
if(shape.cells[i][j]==true)
stock[curY/20+i][curX/20+j]=color;
}
NewShape();
if(IsAtBottom())
{
bGame=false;
}
InvalidateRect(GetRect());
CheckForLine();
return;
}
curY+=20;
InvalidateRect(GetRect());
}
else if(bGame==false)
{
KillTimer(1);
CString s;
s.Format("%d",score);
MessageBox("You are lost !\rYour score is : "+s);
}
CFrameWnd::OnTimer(nIDEvent);
}
void TetrisWnd::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
switch(nChar)
{
case VK_CONTROL:
case VK_UP:shape.Rotate();break;
case VK_LEFT:if(CheckLeft()) return; curX-=20; break;
case VK_RIGHT:if(CheckRight()) return; curX+=20; break;
case VK_DOWN:KillTimer(1); SetTimer(1,20,NULL); break;
}
InvalidateRect(GetRect());
CFrameWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}
void TetrisWnd::OnGameNew()
{
ClearStock();
score=0;
bGame=true;
SetLevel(1);
NewShape();
ShowTitle();
Invalidate();
}
void TetrisWnd::ClearStock()
{
for(int i=0; i<20; i++)
for(int j=0; j<10; j++)
stock[i][j]=-1;
}
bool TetrisWnd::IsAtBottom()
{
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
if(shape.cells[i][j]==true)
{
if((curY/20+i)>=19 || stock[curY/20+i+1][curX/20+j]!=-1)
return true;
}
}
}
return false;
}
void TetrisWnd::CheckForLine()
{
int i,j,k,c=0;
bool flag;
for(i=0; i<20; i++)
{
flag=true;
for(j=0; j<10; j++)
flag &= (stock[i][j]!=-1);
if(flag==true && j!=0)
{
c++;
score++;
ShowTitle();
for(k=i; k>0; k--)
{
for(j=0; j<10; j++)
{
stock[k][j]=stock[k-1][j];
}
}
}
}
for(k=0; k<c; k++)
for(j=0; j<10; j++)
stock[k][j]=-1;
Invalidate();
}
void TetrisWnd::ShowTitle()
{
CString title;
title.Format("Tetris score : %d",score);
SetWindowText(title);
}
bool TetrisWnd::CheckRight()
{
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
if(shape.cells[i][j]==true)
{
if((curX/20+j)>=9 || stock[curY/20+i][curX/20+j+1]!=-1)
return true;
}
}
}
return false;
}
bool TetrisWnd::CheckLeft()
{
for(int i=0; i<4; i++)
{
for(int j=0; j<4; j++)
{
if(shape.cells[i][j]==true)
{
if((curX/20+j)<=0 || stock[curY/20+i][curX/20+j-1]!=-1)
return true;
}
}
}
return false;
}
////////////////////////////////////////////////////////////////////////////////
// Menu commands
////////////////////////////////////////////////////////////////////////////////
void TetrisWnd::OnGameExit()
{
OnClose();
}
void TetrisWnd::OnClose()
{
KillTimer(1);
CFrameWnd::OnClose();
}
void TetrisWnd::OnLevelLevel1()
{
SetLevel(1);
}
void TetrisWnd::OnUpdateLevelLevel1(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(level1);
}
void TetrisWnd::OnLevelLevel2()
{
SetLevel(2);
}
void TetrisWnd::OnUpdateLevelLevel2(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(level2);
}
void TetrisWnd::OnLevelLevel3()
{
SetLevel(3);
}
void TetrisWnd::OnUpdateLevelLevel3(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(level3);
}
/////////////////////////////////////////////////////////////////////////////////
void TetrisWnd::SetLevel(int lev)
{
level1=level2=level3=false;
switch(lev)
{
case 1: level=700; level1=true; break;
case 2: level=500; level2=true; break;
case 3: level=300; level3=true; break;
}
}
void TetrisWnd::OnHelpAbout()
{
CDialog dlg(IDD_ABOUT);
dlg.DoModal();
}
COLORREF TetrisWnd::ShapeColor(int color)
{
switch(color)
{
case 0: return RGB(255,0,0);
case 1: return RGB(0,255,0);
case 2: return RGB(0,0,255);
case 3: return RGB(255,0,255);
case 4: return RGB(0,255,255);
case 5: return RGB(255,255,0);
}
return RGB(255,255,255);
}
void TetrisWnd::NewShape()
{
KillTimer(1);
SetTimer(1,level,NULL);
curY=0;
curX=60;
ShapeType t=ShapeType(rand()%7);
shape.NewShape(t);
color=rand()%6;
}
Размещено на Allbest.ru
...Подобные документы
C# как объектно-ориентированный язык программирования. Объектно-ориентированный анализ и проектирование системы на языке UML. Сущность программы "Учёт пациентов в регистратуре поликлиники", ее достоинства и недостатки, пошаговая инструкция пользователя.
курсовая работа [1,5 M], добавлен 17.02.2013Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.
курсовая работа [639,0 K], добавлен 16.03.2012Синтаксический анализ простой программы на языке С. Предварительный выбор метода решения задачи. Разработка технологии обработки информации. Проектирование программных модулей. Процесс тестирования программы. Требования к программному обеспечению.
курсовая работа [934,7 K], добавлен 01.07.2011Проектирование программы в среде Delphi для тестирования знаний студентов по программированию, с выводом оценки по окончанию тестирования. Разработка экранных форм и алгоритма программы. Описание программных модулей. Алгоритм процедуры BitBtn1Click.
курсовая работа [365,0 K], добавлен 18.05.2013Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.
курсовая работа [1,0 M], добавлен 26.12.2013Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя.
курсовая работа [1,5 M], добавлен 17.01.2011Введение в объектно-ориентированное программирование. Постановка задачи. Описание алгоритма решения в псевдокоде (команды в виде текста на русском языке). Исходный текст программы на С. Тестирование программы. Модификация программы. Полиморфизм.
курсовая работа [294,0 K], добавлен 08.09.2008Описание принципа развивающей игры в слова "Виселица". Разработка программы, реализующей задачу данной игры на языке Delphi. Обоснование выбора среды программирования, листинг файла, результаты отладки и тестирования, руководство для пользователя.
курсовая работа [572,7 K], добавлен 14.07.2012Последовательность работ при разработке объектно-ориентированных программ. Виды синтаксических анализаторов и способы их применения. Описание алгоритма и анализ результативности работы программы, написанной на языке С, ее константы, переменные и функции.
курсовая работа [441,7 K], добавлен 03.07.2011Разработка технологии обработки информации, структуры и формы представления данных. Проектирование программных модулей. Блок-схема алгоритма и исходный код программы анализа арифметического выражения, синтаксического анализа простой программы на языке С.
курсовая работа [2,4 M], добавлен 12.12.2011Разработка программы проверки знаний для тестирования студентов по программированию с кодом на языке Delphi. Проектирование визуального интерфейса и словесный алгоритм работы программы. Алгоритмы разработанных процедур и функций, инструкция пользователя.
курсовая работа [506,5 K], добавлен 21.02.2011Создание игровой системы "Тетрис": количество игр, режимы сложности, интерфейс пользователя, игровая статистика, обработка исключений. Структура входных и выходных данных. Диаграммы и описание классов. Блок-схема алгоритма программы, результаты ее работы.
курсовая работа [1,9 M], добавлен 13.06.2012Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.
курсовая работа [1,5 M], добавлен 21.09.2010Разработка программы обработки типизированных файлов с кодом на языке Object Pascal, с использованием компонентов Delphi для ввода и вывода данных. Разработка экранных форм и алгоритма программы. Описание программных модулей и инструкция оператору.
курсовая работа [1,5 M], добавлен 08.02.2011Разработка приложения "Ведомость начисления заработной платы" в среде программирования C++Builder. Алгоритм и сценарий работы программы. Проектирование интерфейса пользователя. Написание программных модулей и результаты тестирования данной программы.
курсовая работа [597,4 K], добавлен 31.01.2016Проектирование программного обеспечения, позволяющего создавать и вести множество электронных словарей. Обоснование выбора программных средств решения задачи. Разработка формы входных и выходных данных. Описание модулей программы и процесса отладки.
дипломная работа [1007,7 K], добавлен 03.07.2015Описание проектного решения стратегической системы, этапы объектно-ориентированного анализа и проектирования. Описание связей между объектами. Программная реализация, построение модели состояний объекта. Руководство пользователя и описание программы.
курсовая работа [388,8 K], добавлен 17.11.2011Резидентная программа, контролирующая наличие одинаковых файлов на диске в фоновом режиме на языке С++. Структура основной программы, программная реализация алгоритма, её исходный текст, функциональные возможности и руководство по использованию.
курсовая работа [1,1 M], добавлен 17.12.2009Теоретическое исследование вопроса и практическое применение. Общие сведения о графах. Алгоритм Дейкстры. Особенности работы в среде. Программная реализация. Описание алгоритма и структуры программы. Описание программных средств. Текст программы.
курсовая работа [1,0 M], добавлен 27.11.2007Составление транслятора на языке С для перевода кода программы из языка Pascal в код программы на языке Cи. Распознавание и перевод конструкций: for, type, function, integer. Вешняя спецификация, описание, структура, текст программы; распечатка текстов.
курсовая работа [287,8 K], добавлен 24.06.2011