Отчет по лабораторным работам по "Технологии программирования"

Автор работы: Пользователь скрыл имя, 03 Марта 2013 в 20:31, лабораторная работа

Описание работы

Цель работы:
Изучить основы объектно-ориентированного программирования на алгоритмическом языке С++. Получить представление об организации инкапсуляции, наследования и полиморфизма.
Порядок выполнения работы
1. Изучить предлагаемую программу изображения элементарных графических образов. Исследовать порядок наследования.
2. Ввести в схему наследования новый класс графической фигуры предложенный преподавателем.
3. В разрабатываемом классе графической фигуры определить атрибуты и сделать их полями класса.

Файлы: 1 файл

мой отчет по быкову.doc

— 120.00 Кб (Скачать файл)

};

 

template<class Element> void Vector<Element>::sort()

{

int i=0; Element zn1;

do

{

zn1=array[i];

zn1.Sort();

i++;

} while (i<size);

i--;

for(int j = i; j<size-1; j++)

                        if(array[j]>array[j+1])

                        {

                                Element e = array[j];

                                array[j] = array[j+1];

                                array[j+1] = e;

                        }

}

 

template<class Element> void Vector<Element>::outputToScreen(int ima)

{

cout << "\nArray " << ima << ": " << endl;

        for(int i=0; i<size; i++)

                cout << array[i] << endl;

}

 

template<class Element>

        Vector<Element>& Vector<Element>::operator=(Vector<Element> &arg2)

{

        if(array != NULL)

                delete[] array;

        size = arg2.size;

        array = new Element[size];

        for(int i=0; i<size; i++)

                array[i] = arg2.array[i];

        return *this;

}

 

template<class Element>

        int Vector<Element>::operator<(Vector<Element> &arg2)

{

        int isLess = 1;

        int minSize = size<arg2.size ? size : arg2.size;

        for(int i=0; i<minSize; i++)

        {

                if((*this)[i] > arg2[i])

                {

                        isLess = 0;

                        break;

                }

        }

        return isLess;

}

 

struct Complex

{

        double re,im;

        Complex()

        {

                re=im=0.0;

        }

        Complex(double x, double y)

        {

                re = x;

                im = y;

        }

Complex& operator = (Complex & arg2)

        {

                re = arg2.re;

                im = arg2.im;

        return *this;

        }

};

 

int operator == (Complex &arg1, Complex & arg2)

{

  return ((arg1.re == arg2.re)&&(arg1.im == arg2.im));

}

 

int operator > (Complex &arg1, Complex &arg2)

{

return (arg1.re*arg1.re+arg1.im*arg1.im > arg2.re*arg2.re+arg2.im*arg2.im);

}

 

int operator < (Complex &arg1, Complex &arg2)

{

return (arg1.re*arg1.re+arg1.im*arg1.im < arg2.re*arg2.re+arg2.im*arg2.im);

}

 

ostream& operator << (ostream &arg1, Complex &arg2)

{

        return arg1 << "(" << arg2.re << ((arg2.im < 0) ?"":"+") << arg2.im << "i)";

}

 

 

int main()

{

    clrscr();

cout << "\nTest for template Vector" << endl;

Vector<ArrayWithIterance<Complex> > vect1(2), vect2(1);

 

ArrayWithIterance<Complex> cAWI1, cAWI2, cAWI3;

     randomize();

for (int i=0; i<7; i++)

{

cAWI1.Push(Complex(random(6),random(6)));

cAWI2.Push(Complex(random(6),-random(6)));

cAWI3.Push(Complex(random(6),random(6)));

}

 

vect1[0] = cAWI1;

vect1[1] = cAWI2;

 

vect2[0] = cAWI3;

 

vect1.outputToScreen(1);

vect2.outputToScreen(2);

cout <<"\n Сравнение множеств по сумме элементов:"<< endl;

char tf1[20] = "";

if (vect1 < vect2)

strcat(tf1,"TRUE!!!");

else

strcat(tf1,"FALSE!!!");

        cout << "\n vect1 < vect2 = "<< tf1 << endl;

cout << "\n vect2 = vect1  "<<  endl;

vect2 = vect1;

vect1.outputToScreen(1);

vect2.outputToScreen(2);

 

  getch();

        return 0;

}

 


Информация о работе Отчет по лабораторным работам по "Технологии программирования"