Санкт-Петербургский Государственный Электротехнический
Университет «ЛЭТИ»
Кафедра МОЭВМ
Лабораторная работа №2 по
Объектно-ориентированному программированию
О Т Ч Е Т
Факультет КТИ
группа 3341
студент Худяков Я.
Санкт-Петербург
2006 г.
Постановка задачи.
Содержательная постановка задачи.
Реализовать минимальный необходимый набор классов для работы с какой-нибудь геометрической фигурой и со списком произвольного типа. Разработать программу, позволяющую тестировать созданные классы. В качестве основного объекта выбран равнобедренный треугольник. В программе используется циклический список.
Сценарий диалога с пользователем.
Тестирующая программа выполняет автоматически необходимые действия по тестированию методов классов и выводит соответствующие результаты на экран.
Описание программы.
Классовая структура.
В программе разработаны 4 класса:
класс «l1c1Point» - реализация точки
класс «l1c2Triangle» - реализация равнобедренного треугольника
класс «l1c3LiEl» - реализация элемента списка
класс «l1c4List1» - реализация циклического списка
cPoint
члены-данны
double x Декартова абсцисса
double y Декартова ордината
Int quantity Кол-во объектов
члены-функции
void inv Инвариант
void GetXY Селектор
void SetXY Модификатор
void Move Перемещение точки
void Rotate Поворот точки
ListEl
члены-данные
Typer Date Данные
ListEl* Next Ссылка на след.
члены-функции
Void GetFig Селектор данных
ListEl* GetNext Селектор ссылки на следующий
void GetNext Селектор ссылки на следующий
void SetEl Модификатор
void SetFig Модификатор данных
void SetNext Модификатор ссылки на след.
List1
члены-данные
ListEl* First Указатель на первый
ListEl* current Указатель на текущий
члены-функции
void move Перемещение по списку
Void add Добавление элемента
Void del Удаление элемента
Void out Вывод списка на экран
void GetCur Извлечение текущего
void GetInf Селектор
Void tobegin Возвращение в начало списка
int Empty Проверка на пустоту списка
cTriangle
члены-данные
List<cPoint> список точек
члены-функции
Int rb Проверка равнобедренности
Int correct Строгое н/в треугольника
float GetX Селектор абсциссы
float GetY Селектор ординаты
void Move Перемещение треугольника
void Rotate Поворот треугольника
void Scale Масштабирование треугольника
void Set модификатор
Характеристика программы.
Список файлов.
L1c1point.h,l1c1point.cppкласс точка
L1c2triangle.h,l1c2triangle.cppкласс треугольник
L1c3LiEl.h,l1c3LiEl.cppкласс элемент списка
L1c4List.h,l1c4List.cppкласс циклический однонаправленный список
tester.cppтестирующая программа.
Исследование.
Все проведенные тесты показывают корректность работы программы. Представленная тестирующая программа демонстрирует работу интерфейсных функций.
Приложения.
Листинг исходного кода программы.
1. l1c1point.h
#ifndef IIIpointIII
#define IIIpointIII
#include <math.h>
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <values.h>
#include <conio.h>
class cPoint
{
private:
double x,y;
static int quantity;
public:
void inv() const;
void SetXY(const double x1,const double y1);
void Set(const cPoint &F);
void Move(const double dx,const double dy);
void GetXY(double &x1,double &y1) const;
int Getquantity();
double GetX() const;
double GetY() const;
void Rotate(const double x0,const double y0,const double alpha);
void Mirror(const double x0,const double y0);
double Distance(const double x0,const double y0) const;
void Out() const;
cPoint(const double x1,const double y1);
cPoint();
~cPoint ();//cout<<"Point ("<<x<<","<<y<<") deleted";}//Destructor
};
#endif