
Лабораторная работа 3 / отчет3
.docСанкт-Петербургский Государственный Электротехнический Университет
“ЛЭТИ”
Кафедра МО ЭВМ
Отчет
Лабораторная работа №3
Выполнил:
Грудинин Н. А. гр. 3341
Санкт–Петербург 2006 г.
-
Содержательная постановка задачи
Разработать программу, моделирующую размещение набора цветных окружностей на прямоугольном планшете. Представление цветных окружностей выполнить с использованием простого наследования. Представление набора цветных окружностей, размещенных на прямоугольном планшете, реализовать на основе множественного наследования.
2. Описание программы
Классовая структура
В программе разработано три класса:
-
класс «ColorRound» - реализация цветной окружности. Наследник класса окружности
-
класс «Board» - реализация прямоугольного планшета.
-
класс «RoundOnBoard» - реализация размещения Л1 списка цветных окружностей на прямоугольном планшете. Наследник класса Л1 список и класса прямоугольный планшет.
ColorRound |
|||
члены-данные |
члены-функции |
||
int Color |
Цвет окружности |
ColorRound |
конструктор |
|
|
void SetColor |
Модификатор цвета |
|
|
int GetColor |
Селектор цвета |
Board |
|||
члены-данные |
члены-функции |
||
Point Top[4] |
Вершины прямоугольника |
Board |
Конструктор |
|
|
Point GetTop(int i) |
Селектор данных |
|
|
void SetTop(Point A, int i) |
Модификатор |
RoundOnBoard |
|||
члены-данные |
члены-функции |
||
|
|
RoundOnBoard |
Конструктор |
|
|
Void addonboard (ColorRound A) |
Добавление окружности на планшет |
|
|
void view |
Вывод на экран |
3. Характеристика программы
Список файлов.
colorround.h, colorround.cpp класс цветной окружности
board.h, board.cpp класс прямоугольный планшет
roundonboard.h, roundonboard.cpp класс набор цветных окружностей на планшете
tester.cpp тестирующая программа.
Исследование.
Все проведенные тесты показывают корректность работы программы.
4. Приложение
Листинг исходного кода программы.
-
colorround.h
#ifndef _ColorRound_h
#define _ColorRound_h
#include <Round.cpp>
class ColorRound: public Round {
int color;
public:
ColorRound();
ColorRound( const Point &O, const double radius0, const int color0, int &id);
~ColorRound();
void SetColor(const int color0);
const int GetColor();
};
#endif
-
colorround.cpp
#include <ColorRound.h>
ColorRound::ColorRound(){
color=1;
}
ColorRound::ColorRound(const Point &O, const double radius0, const int color0, int &id){
SetCenter(O);
SetRadius(radius0);
color=color0;
SetId(id);
}
ColorRound::~ColorRound(){
}
inline void ColorRound::SetColor(const int color0){
color=color0;
}
inline const int ColorRound::GetColor(){
return color;
}
-
board.h
#ifndef board_h
#define board_h
#include <point.cpp>
class board{
Point Top[4];
public:
board();
board(const Point &A, const Point &B, const Point &C, const Point &D);
~board();
Point GetTop(const int i);
void SetTop(const int i, const Point &X);
};
#endif
-
board.cpp
#include <board.h>
board::board(){
int id=0;
Point temp(0,0,id);
Point temp1(1,0,id);
Point temp2(0,1,id);
Point temp3(1,1,id);
Top[0]=temp;
Top[1]=temp1;
Top[2]=temp2;
Top[3]=temp3;
}
board::board(const Point &A, const Point &B, const Point &C, const Point &D){
Top[0]=A;
Top[1]=B;
Top[2]=C;
Top[3]=D;
}
board::~board(){
}
inline void board::SetTop(const int i, const Point &X){
Top[i]=X;
}
inline Point board::GetTop(const int i){
return Top[i];
}
-
roundonboard.h
#ifndef _RoundOnBoard_h
#define _RoundOnBoard_h
#include <list.cpp>
#include <board.cpp>
class roundonboard : public board, public list
{
public:
roundonboard();
~roundonboard();
void addonboard(const ColorRound &A);
void view();
};
#endif
-
roundonboard.cpp
#include <roundonboard.h>
roundonboard::roundonboard(){
}
roundonboard::~roundonboard(){
}
inline void roundonboard::addonboard(const ColorRound &A){
insert(A);
}
void roundonboard::view(){
print();
}