
- •Проектування програмних засобів. Загальні відомості.
- •Лабораторна робота № 1 Робота з потоками.
- •Лабораторная работа n2.
- •Лабораторная работа n3.
- •Лабораторная работа №4 Разработка объектно-ориентированных программ. Взаємодія класів. Порядок выполнения работы (по занаятиям).
- •Требования к программе
- •Лабораторная работа №5
- •Перелік літератури
Лабораторная работа n3.
Разработка простых классов.
Порядок выполнения работы (по занятиям):
Ознакомление с заданием. Разработка алгоритма основной программы. Разработка класса(состав данных, перечень методов и их алгоритмы).
Написание программы. Ввод программы. Тестирование программы
Защита работы.
Разработать объектно-ориентированную программу на базе результатов лабораторной работы №1. Несколько объектов в виде заданного рисунка должны перемещаться по экрану в соответствии с индивидуальным заданием. Количество объектов и их параметры задаются пользователем в начале работы программы( задавать как динамические объекты). Ниже перечислены параметры, которыми могут отличаться объекты друг от друга в зависимости от варианта.
№ варианта |
Параметры, которыми отличаются объекты |
1 |
Количество точек смещения, через сколько секунд смещаться |
2 |
Количество точек смещения, начальный цвет заполнения |
3 |
Количество точек смещения, номер стиля линии, который надо исключить. |
4 |
Количество точек смещения, клавиша, на которая управляет отсчетом времени. |
5 |
Количество точек смещения, время обратного отсчета. |
6 |
Количество точек смещения, координаты исходной точки. |
7 |
Количество точек смещения, цвет, которым выводится системное время. |
8 |
Количество точек смещения, количество секунд, которые перед выводом необходимо вычесть из времени работы программы. |
9 |
Количество точек смещения, начальный цвет линии. |
10 |
Количество точек смещения, клавиша которая управляет смещением. |
11 |
Количество точек смещения, цвет, которым выводится время обратного отсчета. |
12 |
Количество точек смещения, период времени смещения. |
13 |
Количество точек смещения, исходная координата по вертикали в левой части экрана. |
14 |
Количество точек смещения, клавиша, на которую реагирует фигура. |
15 |
Количество точек смещения, фигура должна останавливаться после указанного количества циклов работы |
16 |
Количество точек смещения, номер стиля заполнения, который надо исключить. |
17 |
Количество точек смещения, граница в правой части экрана, до которой смещается фигура. |
18 |
Количество точек смещения, клавиша, на количество нажатий которой надо подсчитать. |
19 |
Количество точек смещения, время смещения. |
20 |
Количество точек смещения, стиль заполнения, который должен использоваться при каждой второй перемене. |
21 |
Количество точек смещения, дойдя до середины верхней части каждая фигура должна делать паузу в движении на свое количество секунд. |
22 |
Количество точек смещения, цвет, которым выводится время. |
23 |
Количество точек смещения, клавиша, на которую надо реагировать. |
24 |
Количество точек смещения, значение обратного отсчета. |
25 |
Количество точек смещения, координата начальной точки по горизонтали. |
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
#include <dos.h>
#include <conio.h>
class pfigura{
int x,x0,y0,v,c_l,style,t,f;
public:
pfigura()
{
c_l=1;
style=0;
t=0;
f=0;
printf("‚ўҐ¤ЁвҐ Є®®а¤Ё вл Ёб室®© в®зЄЁ Ё бЄ®а®бвм ¤ўЁ¦ҐЁп-");
scanf("%d%d%d",&x0,&y0,&v);
x=x0;
}
void draw()
{
char s[4];
setcolor(c_l);
moveto(x,y0); //в®зЄ 1
lineto(x+20,y0-10);//в®зЄ 2
lineto(x+50,y0-10);//в®зЄ 3
lineto(x+70,y0);//в®зЄ 4
lineto(x+50,y0+10);//в®зЄ 5
lineto(x+20,y0+10);//в®зЄ 6
lineto(x,y0);//в®зЄ 1
setfillstyle(style,GREEN);
floodfill(x+10,y0,c_l);
moveto(x+20,y0-4); //в®зЄ 1
setcolor(WHITE);
itoa(t,s,10);
outtext(s);
}
void move()
{
if(f) t++;
x+=v;
if((x+70>getmaxx())||(x<0))
{
c_l++;
if(c_l>14) c_l=1;
style++;
if(style>11) style=0;
v=-v;
if(x+70>getmaxx())
{
x=2*getmaxx()-x-2*70;// x=getmaxx()-(x+70-getmaxx())-70;
t=0;
f=1;
}
if(x<0)
{
x=x0;
}
}
}
};//end class
void main()
{
int N,i,GD=0,GM;
printf("Vvedite kolichectvo figur");
scanf("%d",&N);
pfigura *p=new pfigura[N];
initgraph(&GD,&GM,"");
struct time tm1,tm2;
gettime(&tm1);
for(;;)
{
cleardevice();
for(i=0;i<N;i++)
(p+i)->draw();
do
{
if(kbhit()) if(getch()==27)
{
closegraph();
delete []p;
return;
}
gettime(&tm2);
}while(tm1.ti_sec==tm2.ti_sec);
tm1=tm2;
for(i=0;i<N;i++)
(p+i)->move();
}
}