Игра "Тетрис"

Объектно-ориентированный анализ и проектирование системы на языке 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.