Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаб3.ТП.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
53.24 Кб
Скачать

Void main ()

{

//managed 1D array of int (using MC++ 2005)

Console::WriteLine("managed 1D array of int");

//int intArray __gc[]= new int __gc[5];

array<int>^ intArray = gcnew array<int>(5);

for (int i=0; i<intArray->Length; i++)

{

intArray[i] = i;

Console::Write(intArray[i]);

Console::Write("\t");

}

Console::WriteLine();

//managed 2D array of Strings (using managed type)

Console::WriteLine("managed 2D array of Strings");

// String *str2DArray[,] = new String *[2,3];

array<String^,2>^ str2DArray = gcnew array<String^,2>(2,3);

for(int row=0; row<str2DArray->GetLength(0); row++)

{

for(int col=0; col<str2DArray->GetLength(1); col++)

{

str2DArray[row,col] = (row*10 + col).ToString();

Console::Write(str2DArray[row,col]);

Console::Write("\t");

}

Console::WriteLine();

}

//unmanaged 2D array of int (for comparison)

Console::WriteLine("unmanaged 2D array of int");

int int2DArray[2][3];

for(int row=0; row<2; row++)

{

for(int col=0; col<3; col++)

{

int2DArray[row][col] = row*10 + col;

Console::Write(int2DArray[row][col]);

Console::Write("\t");

}

Console::WriteLine();

}

}

Рис. 10. Программа Array1_05

//Array2_05.cpp

#using <mscorlib.dll>

using namespace System;

Void main(void)

{

Console::WriteLine("Rectangular array using [,]");

// int rect2DArray [,] = new int __gc [3,4]; //managed

array<int,2>^ rect2DArray = gcnew array<int,2>(3,4);

for(int row=0; row< rect2DArray ->GetLength(0); row++)

{

for(int col=0; col< rect2DArray->GetLength(1); col++)

{

rect2DArray [row,col] = row*10 + col;

Console::Write(rect2DArray[row,col]);

Console::Write("\t");

}

Console::WriteLine();

}

Console::WriteLine("Array of arrays using [][]");

int arrayOfArray[3][4]; //unmanaged

for(int row=0; row<3 ; row++)

{

for(int col=0; col<4; col++)

{

arrayOfArray[row][col] = row*10 + col;

Console::Write(arrayOfArray[row][col]);

Console::Write("\t");

}

Console::WriteLine();

}

}

Рис. 11. Программа Array2_05

Реализация класса Complex

//managed версия

//Complex.h

ref class Complex{

public private:

double re;

double im;

public:

Complex(double a, double b);

Complex(const Complex %a);

void assign(const Complex %a);

void add(const Complex %a);

void print();

};

Complex %plus(const Complex %a, const Complex %b);

//Complex.cpp

#include "complex.h"

Complex::Complex(double a, double b)

{

re=a;

im=b;

}

Complex::Complex(const Complex %a)

{

re=a.re;

im=a.im;

}

void Complex::assign(const Complex %a)

{

re=a.re;

im=a.im;

}

Complex %plus(const Complex %a, const Complex %b)

{

Complex z(a.re + b.re, a.im + b.im);

return z;

}

void Complex::print()

{

System::Console::WriteLine("Re={0}; Im={1}", re, im);

}

void Complex::add(const Complex %a)

{

re=re + a.re;

im=im + a.im;

}

//main.cpp

#include "complex.h"

#using <mscorlib.dll>

int main()

{

Complex x(1.3,4.2), y(4.0,8.1), z(y);

x.add(y);

z.assign(plus(x,y));

z.print();

System::Console::ReadLine();

}

Рис. 12. Результат работы программы

ВЫВОД О ПРОДЕЛАННОЙ РАБОТЕ

Мы ознакомились с технологией создания и отладки объектно-ориентированных программ на управляемом (managed) языке С++ и получили практические навыки работы в интегрированной среде разработки приложений Visual Studio 2012.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]