Рекомендации по выполнению курсовой работы (ООП)

Методические указания по предмету «Программирование»
Информация о работе
  • Тема: Рекомендации по выполнению курсовой работы (ООП)
  • Количество скачиваний: 27
  • Тип: Методические указания
  • Предмет: Программирование
  • Количество страниц: 8
  • Язык работы: Русский язык
  • Дата загрузки: 2014-10-19 17:50:12
  • Размер файла: 21.76 кб
Помогла работа? Поделись ссылкой
Информация о документе

Документ предоставляется как есть, мы не несем ответственности, за правильность представленной в нём информации. Используя информацию для подготовки своей работы необходимо помнить, что текст работы может быть устаревшим, работа может не пройти проверку на заимствования.

Если Вы являетесь автором текста представленного на данной странице и не хотите чтобы он был размешён на нашем сайте напишите об этом перейдя по ссылке: «Правообладателям»

Можно ли скачать документ с работой

Да, скачать документ можно бесплатно, без регистрации перейдя по ссылке:

Курсовая работа состоит из одного задания. Вид графического объекта, движение которого надо будет реализовать в работе, выбирается согласно своему варианту (см. далее таблицу вариантов).
Задание:
Написать программу, используя объектно-ориентированный подход, которая двигает по экрану изображение заданного графического объекта.
Допускается: замена некоторых элементов графического объекта, изменение его цветовой гаммы.
Реализовать два вида движения: случайное и по нажатию на клавиши со стрелками. Предусмотреть для пользователя возможность выбора одного из двух режимов движения.
Описание классов необходимо оформить в виде отдельного модуля. Иерархия классов должна включать минимум четыре класса, один из которых – абстрактный.
Работу следует выполнять в среде программирования Турбо Паскаль (версии 6.0 или 7.0) или в среде Borland Pascal.
1. Рекомендации по выполнению курсовой работы
Прежде, чем приступать к выполнению курсовой работы, помимо уже изученного лекционного материала в ходе выполнения лабораторных работ, выполните и разберитесь в работе программы, приведенной в примере 2.7 конспекта лекций (§ 10). В данной программе реализована значительная часть задания курсовой работы.
Далее, проанализируйте свой графический объект. Из каких фигур он может быть построен? Продумайте необходимые поля и методы и опишите классы этих фигур. Создайте иерархию. Ваш заданный графический объект должен включать как минимум (можно и больше) 3 различные фигуры, чтобы описать минимум 3 класса (плюс один абстрактный, итого получается 4 класса, чего и требует задание).
Оформите описание классов в виде модуля. Сохраните и выполните его компиляцию (см. в лекциях “Классы и модули”).
Теперь можете приступать к написанию самой программы. Не забудьте подключить к программе написанный Вами модуль.
Исключите из программы прямое обращение к полям.
2. Требования к программе. Критерий оценки.
Программа должна быть написана в соответствии с заданием своего варианта, в ней должны быть правильно применены все изученные нами принципы ООП, и получен правильный, соответствующий заданию результат ее работы.
В зависимости от степени выполнения изложенных требований Вам будет поставлена оценка за курсовую работу по 5-ти бальной шкале.
3. Требования к оформлению отчета
Необходимо представить следующее:
1. Текст задания с точным видом графического объекта, включая цвет, который реализован в программе (в файле с расширением .doc);
2. Текст программы (файл с расширением .pas) ;
3. Текст модуля (файл с расширением .pas) .
Таким образом, необходимо прислать три файла: с заданием, с программой и с модулем.
!!! При невыполнении какого-либо из требований к оформлению работа проверяться не будет.
Виды графических объектов:


Таблица вариантов
!!! Номер варианта определяется по двум последним цифрам пароля
Номер
варианта Задание Номер
варианта Задание Номер
варианта Задание
01 1 35 8 69 15
02 2 36 9 70 16
03 3 37 10 71 17
04 4 38 11 72 18
05 5 39 12 73 19
06 6 40 13 74 20
07 7 41 14 75 15
08 15 42 1 76 12
09 2 43 5 77 9
10 17 44 3 78 8
11 18 45 4 79 11
12 16 46 19 80 10
13 20 47 6 81 7
14 14 48 13 82 13
15 3 49 2 83 17
16 8 50 12 84 4
17 7 51 18 85 15
18 20 52 13 86 10
19 5 53 14 87 9
20 11 54 6 88 1
21 19 55 16 89 17
22 19 56 14 90 18
23 2 57 15 91 6
24 3 58 12 92 17
25 4 59 11 93 20
26 10 60 1 94 16
27 5 61 8 95 13
28 7 62 9 96 8
29 9 63 19 97 20
30 4 64 2 98 16
31 3 65 18 99 10
32 6 66 1 00 11
33 14 67 5
34 12 68 13


Пример 2.7. ЛЕКЦИЙ ИЗ ПАРАГРАФА 10
(в котором приведены коды Программы GRAFICA и Модуля FIGURA.)
(Рекомендую набрать, запустить и разобрать работу данной программы)

Программа GRAFICA, в которой реализовано движение графических фигур
(сохранена в файле OOP_DO.pas )

PROGRAM GRAFICA;
Uses Crt,Graph,Figura;

const Path_of_driver=c: p6gi;

Procedure Coords(a:char; var NewX,NewY:integer; h:integer);
begin
if a=#0 then begin
a:=readkey; {в переменную a записывается код клавиши,
которую Вы нажали}

{#80,#75,#77,#72 – это коды клавиш со стрелками;
работа оператора case: в зависимости от значения переменной a выбирается
соответствующая последовательность действий; подробнее можно посмотреть в
лекциях по ПЯВУ часть1}
case a of
#80: begin
Inc(NewY,h); if NewY>GetMaxY-20 then NewY:=20;
end;
#75: begin
dec(NewX,h); if NewX<10 then NewX:=GetMaxX-10;
end;
#77: begin
inc(NewX,h); if NewX>GetMaxX-10 then NewX:=10;
end;
#72: begin
dec(NewY,h); if NewY<20 then NewY:=GetMaxY-20;
end;
end;
end
end;

VAR gd,gm,NewX,NewY,h: integer;
Q,a:char;
str:string;
pP:tPoint;
pEl:tEllipse;

BEGIN
{Начало работы программы. С этого момента и надо начинать разбирать
работу программы}
gd:=Detect;
InitGraph(gd,gm,Path_of_driver);
if GraphResult<>grok then begin
write(error:,GraphErrorMsg(GraphResult));
halt;
end;

pP.Init(GetMaxX div 2,GetMaxY div 2,10,15);
pEl.Init(GetMaxX div 2,GetMaxY div 2,10,14,70,40);

NewX:=GetMaxX div 2; {GetMaxX - максимальное значение экрана по оси x}
NewY:=GetMaxY div 2;

h:=100; {влияет на скорость передвижения фигур при нажатии
клавиш со стрелками}

RestoreCrtMode; {восстановление текстового режима (так можно выйти из
графического режима и вернуться к текстовому)}
Q:=y;
While Q<>n do begin
write( Выберите фигуру, для этого введите: p (если выбрали точку));
write ( el (если выбрали эллипс): );
readln(str);

{то, что Вы наберете, т.е. p или el, запишется в строковую переменную str. Значение этой переменной нам понадобится далее, чтобы выбрать какую фигуру перемещать по экрану }

writeln(Нажмите клавишу Enter);
writeln(Нажимайте клавиши со стрелками, чтобы двигать фигуру);
readln;
SetGraphMode(gm); {восстановление графического режима}

repeat
a:=readkey;
Coords(a,NewX,NewY,h);
if str=p then pP.Move(NewX,NewY);
if str=el then pEl.Move(NewX,NewY);
until a=#27; {#27– код клавиши Esc }

RestoreCrtMode;

write(Продолжить? (y/n) );

readln(Q); {в переменную Q запишется введенный символ: либо y, либо n}
end; {окончание тела цикла While}

closegraph;
clrscr;

END.

Модуль FIGURA, в котором реализована иерархия классов графических фигур
(сохранен в файле FIGURA.pas )

Unit FIGURA;
interface
TYPE
TLocation=object
x,y:integer;
Constructor Init(InitX,InitY:integer);
Function GetX: integer;
Function GetY: integer;
Procedure Move(NewX,NewY:integer);
Procedure Hide; virtual;
Procedure Draw; virtual;
end;

tPoint=object(tLocation)
vh:integer;
color:word;
Constructor Init(InitX,InitY,InitVh:integer; col:word);
Procedure Hide; virtual;
Procedure Draw; virtual;
end;

tEllipse=object(tPoint)
Rx,Ry:word;
Constructor Init(InitX,InitY,InitVh:integer; col,InitRx,InitRy:word);
Procedure Hide; virtual;
Procedure Draw; virtual;
end;

implementation

Uses Crt,Graph;

{методы tLocation}

Constructor tLocation.Init(InitX,InitY:integer);
begin
x:=InitX; y:=InitY;
end;

Function tLocation.GetX:integer;
begin
GetX:=X;
end;
Function tLocation.GetY:integer;
begin
GetY:=Y;
end;

Procedure tLocation.Move(NewX,NewY:integer);
begin
Hide;
x:=NewX; y:=NewY;
Draw;
end;

Procedure tLocation.Hide;
begin
end;

Procedure tLocation.Draw;
begin
end;

{методы tPoint}

Constructor tPoint.Init(InitX,InitY,InitVh:integer; col:word);
begin
tLocation.Init(InitX,InitY);
vh:=InitVh; color:=col;
end;

Procedure tPoint.Hide;
begin
PutPixel(x,y,GetBkColor);
end;

Procedure tPoint.Draw;
begin
PutPixel(x,y,color);
end;

{методы tEllipse}
Constructor tEllipse.Init(InitX,InitY,InitVh:integer;
col,InitRx,InitRy:word);
begin
tPoint.Init(InitX,InitY,InitVh,col);
Rx:=InitRx; Ry:=InitRy;
end;


Procedure tEllipse.Hide;
begin
SetFillStyle(1,GetBkColor);
SetColor(GetBkColor);
FillEllipse(x,y,Rx,Ry);
end;

Procedure tEllipse.Draw;
begin
SetFillStyle(1,GetBkColor);
SetColor(color);
FillEllipse(x,y,Rx,Ry);
end;

end.