Будь умным!


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

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

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


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. Вариант 1 На вакантную должность водителя автобуса имеется 6 претендентов- b c d e f
2. БравоДваНоль- Эксмо; Москва; 2007 ISBN 9785699243952 Аннотация Они были лучшими из лучших
3. Лабораторна робота 3 Виконав- ст
4. Глобалистика и международные отношения Глобалистика как наука
5. Обращение как единица речи
6. Реферат Планування продуктивності праці
7. задание Ознакомьтесь с технологией выполнения каждого задания
8. Рекомендации по проведению у рока на тему- Обработка двухшовного рукава покроя реглан
9. ТЕМА ВОЛЬНОСТИ В ПРОИЗВЕДЕНИЯХ А
10. Зміст поняття. Загальна характеристика методів навчання їх функції У дидактиці метод навчання це пев
11. тематика контрольных работ
12. Реферат- Откуда происходит человеческая энергия
13. Революции как и почему они случаются
14. Kondurov 15 дек FTHER 14 дек Фотосессия очень красивой девушки в студии
15. отголоски Малевича
16. Этапы развития медицины и здравоохранения России в 20 веке
17. Реферат Глобальные проблемы современности Содержание
18. тема освещения играет существенную роль в снижении производственного травматизма уменьшения потенциальной
19. реферат дисертації на здобуття наукового ступеня кандидата технічних наук Дн1
20. Психология допроса