Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Хід роботи. 1. Для класу coord перевантажте оператор /

Читайте также:
  1. Актуальність соціальної роботи у світлі реформування пенітенціарної системи України.
  2. Алгоритм виконання курсової роботи
  3. Алгоритмічні роботи з величинами
  4. Безпека роботи з комп'ютерною технікою.
  5. Бібліографічне оформлення індивідуальної роботи
  6. ВАРІАНТИ ІНДИВІДУАЛЬНОЇ РОБОТИ
  7. Взаємозв'язок соціології та соціальної роботи.
  8. Взаємозв'язок теорії та практики соціальної роботи
  9. ВИБІР ТЕМИ КУРСОВОЇ РОБОТИ
  10. ВИБІР ТЕМИ КУРСОВОЇ РОБОТИ

1. Для класу coord перевантажте оператор /. Складіть програму.

2. Для класy coord перевантажте оператор *. Складіть програму.

3. Для класy coord перевантажте оператор -. Складіть програму.

4. Для класy coord перевантажте оператор =. Складіть програму.

 

Контрольні запитання

 

1. Яке ключове слово застосовується для перевантаження операторів?

2. Перевантаження – це метод чи ні?

3. Перевантаження застосовується в класі чи ні?

 

Лабораторна робота №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. Наберіть програму.

2. Напишіть коментарі до програми.

3. Відповісти на контрольні запитання.

 

Контрольні запитання

1. Для чого утворюють віртуальні функції?

2. Яка функція називається віртуальною?

3. Яка функція – чисто віртуальна?

4. Для яких класів утворюють віртуальні функції?

 

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

Тема: Використання абстрактних класів.

Мета: Ознайомитися з поняттям поліморфизму.Відладити програму, яка використовує ці поняття.

Література:Г.Шилдт,Самоучитель С++, С.В. Глушков, Практикум по С++.




Дата добавления: 2015-01-05; просмотров: 33 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав