Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема-Створення віртуальних функцій

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 2.11.2024

PAGE 4

Лабораторна робота №9

Тема:Створення віртуальних функцій.

Мета : Навчитись використовувати вiртуальнi функції у програмах.


Завдання:


Створити абстрактний клас для роботи з геометричною фігурою типу «пряма» на екрані. Передбачити такі функції–методи: показати фігуру на екрані; зробити фігуру невидною (знищити її зображення); повернути фігуру на заданий кут (кут надається у градусах); пересунути фігуру на наданий вектор. Створити похідний клас для роботи з фігурою типу «пряма». Визначити інтерфейсну частину у класах.

Код програми:

#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <graphics.h>
#include <dos.h>
#include <math.h>

class Pryamay
{
  int x1,x2,y1,y2;
  int X,Y,r1,r2,k1,k2,W1,W2,Z1,Z2,a;
  public:
virtual void Vvod ();
virtual void Delete ();
virtual void Sdvig ();
virtual void Povorot ();
};
class  Proiz : public Pryamay
{ // int x1,x2,y1,y2,X,Y,r1,r2,k1,k2,W1,W2,Z1,Z2,a;
    public:
  void Vvod ();
  void Delete ();
  void Sdvig ();
  void Povorot ();
};

  int main ()
    {
    Pryamay A;
   char reg;
   for (;;)
   {
    do
    {
     //clrscr ();
   cout<<"\n                   MENU  "<<endl;
   cout<<"          1 - Narisovat' pryamyuy"<<endl;
   cout<<"          2 - Ydalit'"<<endl;
   cout<<"          3 - Sdvinyt'"<<endl;
   cout<<"          4 - Povorot"<<endl;
   cout<<"          5 - vihod"<<endl;
   cout<<"\n Vibereti punkt menu: ";
  cin>>reg;
     }
  while(reg!='1' && reg!='2' && reg!='3' && reg!='4' && reg!='5');
  switch(reg)
  {
   case '1': A.Vvod();  break;
   case '2': A.Delete(); break;
   case '3': A.Sdvig(); break;
   case '4': A.Povorot(); break;
     case '5': exit(0); break;
}
}
getch ();
return 0;
}
void Pryamay :: Vvod()
{
int gdriver = DETECT,gmode,errorcode;
initgraph(&gdriver,&gmode," ");
errorcode = graphresult();
if(errorcode!= grOk)
{
cout<<"oshibka" <<grapherrormsg(errorcode);
cout<< "\npress ani Key";
  getch();
  exit(1);
}
cout << "Vvedite coordinati\n:";
cin >> x1;
cin >>y1;
cin >>x2;
cin >>y2;
setcolor (GREEN);
  line (x1,y1,x2,y2);
getch();
// closegraph();
}
  void Pryamay :: Delete()
  {
int gdriver = DETECT,gmode,errorcode;
initgraph(&gdriver,&gmode," ");
errorcode = graphresult();
if(errorcode!= grOk)
{
cout<<"oshibka" <<grapherrormsg(errorcode);
cout<< "\npress ani Key";
  getch();
  exit(1);
}
setfillstyle (EMPTY_FILL, BLACK);
getch();
// closegraph();
}
  void Pryamay :: Sdvig ()
   {
  int gdriver = DETECT,gmode,errorcode;
initgraph(&gdriver,&gmode," ");
errorcode = graphresult();
if(errorcode!= grOk)
{
cout<<"oshibka" <<grapherrormsg(errorcode);
cout<< "\npress ani Key";
  getch();
  exit(1);
}
cout << "Vvedite coordinati\n:";
cin >> x1;
cin >>y1;
cin >>x2;
cin >>y2;
setcolor (GREEN);
  line (x1,y1,x2,y2);
cout <<"Vvedite vector  ";
cin >>X;
cin >>Y;
r1=x1+X;
r2=x2+X;
k1=y1+Y;
k2=y2+Y;
setcolor (GREEN);
line (r1,k1,r2,k2);
getch();
// closegraph();
}
void Pryamay :: Povorot ()

//float w1,w2,z1,z2;
   int gdriver = DETECT,gmode,errorcode;
initgraph(&gdriver,&gmode," ");
errorcode = graphresult();
if(errorcode!= grOk)
{
cout<<"oshibka" <<grapherrormsg(errorcode);
cout<< "\npress ani Key";
  getch();
  exit(1);
}
cout << "Vvedite coordinati\n:";
cin >> x1;
cin >>y1;
cin >>x2;
cin >>y2;
setcolor (GREEN);
line (x1,y1,x2,y2);
cout <<"Vvedite ygol  ";
cin >> a;
/* w1=x1*cos(a)-y1*sin(a);
w2=x2*cos(a)-y2*sin(a);
z1=x1*sin(a)+y1*cos(a);
z2=x2*sin(a)+y2*cos(a); */
if (a==45)
{
Z2=(x2+x1)-y1;
clrscr ();
  line (x1,y1,x2,Z2);
}
if (a==90)
{ Z2= x2+x1;
clrscr ();
line (x1,y1,x1,Z2);
}
if (a==180)
{
   W2=x1+x2;
   clrscr ();
line (W2,y1,x1,y1);
}
getch();
// closegraph();
}




1. практическая конференция ИННОВАЦИОННОЕ РАЗВИТИЕ СОВРЕМЕННОЙ НАУКИ 31 ЯНВАРЯ 2014Г
2. Спешнев Николай Александрович
3. тема государственного управления в АПК
4. Доклад- Пастернак посевной
5. Пояснительная записка к курсовой работе Проектирование обогатительных фабрик Курсовая
6. 3 Класифікація національних систем бухгалтерського обліку Оскільки неможливим є розгляд НСБО
7. руб у Оборот капитала млрд
8. СОЦИАЛЬНОЕ СРАВНЕНИЕ И ЯКОНЦЕПЦИЯ В КОНТЕКСТЕ СОЦИАЛЬНОЙ ПСИХОЛОГИИ
9. БМ- змістпредметобєктсубєкт.html
10. Этот раздел необходим для более детального обоснования средств транспорта в горных выработках
11. Клиент Внедрение автоматизированной информационной системы учитывает капитальные финансовые затраты
12. Афон. Скит Кавсокаливия.html
13. История развития терапии в Украине, представление о понятии «внутренние болезни» и «пропедевтика внутренних болезней», болезнь и этапы её развития.html
14. Методика развития силовых способностей у начинающих спортсменов в пауэрлифтинге
15. Монетарная или денежно-кредитная политика государства
16. это программа Отдела образовательных и культурных программ Госдепартамента США которая администрируется
17. Tv.ru; echo3@echomsk.spb.ru; edurd@1tvspb
18. волевой сферы
19. НЕ БОЛЬШЕВИКИ РАЗВАЛИЛИ АРМИЮ Временное правительство в борьбе за сохранение боеспособности Вооружен
20. разбрасываются по порядковой шкале от первой до последней