uzluga.ru
добавить свой файл
Федеральное агентство по образованию РФ

Государственное образовательное учреждение

высшего профессионального образования

Тульский государственный университет

кафедра «ЭВМ»


Курсовая работа

по дисциплине:

«Технология программирования»


Вариант №1



Выполнили:

студенты гр. 250261

Некрасов В..

Деев В..

Проверила:

Басалова Г.В.



Тула 2010

Содержание


Задание 4

Цель 4

Задача 4

Текст кода программы 4

Результаты работы программы 6



Задание

Цель


Изучение возможности применения классов

Задача


Написать тексты .h файлов и .cpp для класса Rect (прямоугольник), который имеет поля x, y, dx, dy, а так же имеет интерфейс: конструктор, move, square, операции <<, >>, =, +=(увеличить ширину и высоту), !(отразить относительно оси X).

Текст кода программы


//---------------------------------------------------------------------------


#ifndef RectH

#define RectH

//---------------------------------------------------------------------------

#include


class Rect {

public:

Rect();

Rect(int x, int y, int dx, int dy);


int x;

int y;

int dx;

int dy;

int square();

void move(int xOffset, int yOffset);

void operator=(::Rect rect);

void operator +=(int value);

Rect operator!();

};


// ::Rect используем чтобы C++ не перепутал наш класс со стандартным классом Rect

ostream& operator<<(ostream& out, ::Rect& r);

istream& operator>>(istream& in, ::Rect& r);


#endif


//---------------------------------------------------------------------------


#pragma hdrstop


#include "Rect.h"


//---------------------------------------------------------------------------


#pragma package(smart_init)


Rect::Rect() {

x = 0;

y = 0;

dx = 0;

dy = 0;

}


Rect::Rect(int x, int y, int dx, int dy) {

this->x = x;

this->y = y;

this->dx = dx;

this->dy = dy;

}


int Rect::square() {

return dx * dy;

}


void Rect::move(int xOffset, int yOffset) {

x += xOffset;

y += yOffset;

}


void Rect::operator=(::Rect rect) {

x = rect.x;

y = rect.y;

dx = rect.dx;

dy = rect.dy;

}


void Rect::operator+=(int value) {

dx += value;

dy += value;

}


Rect Rect::operator!() {

Rect result;

result.dx = dx;

result.dy = dy;

result.x = x;

result.y = -(y + result.dy);

return result;

}


ostream& operator<<(ostream& out, Rect& r) {

out<<r.x<<" "

<<r.y<<" "

<<r.dx<<" "

<<r.dy<<endl;

return out;

}


istream& operator>>(istream& in, Rect& r) {

in>>r.x>>r.y>>r.dx>>r.dy;

return in;

}


Результаты работы программы