Скачиваний:
17
Добавлен:
01.05.2014
Размер:
133.12 Кб
Скачать

Санкт-Петербургский Государственный Электротехнический

Университет «ЛЭТИ»

Кафедра МОЭВМ

Лабораторная работа №2 по

Объектно-ориентированному программированию

О Т Ч Е Т

Факультет КТИ

группа 3341

студент Худяков Я.

Санкт-Петербург

2006 г.

Постановка задачи.

Содержательная постановка задачи.

Реализовать минимальный необходимый набор классов для работы с какой-нибудь геометрической фигурой и со списком произвольного типа. Разработать программу, позволяющую тестировать созданные классы. В качестве основного объекта выбран равнобедренный треугольник. В программе используется циклический список.

Сценарий диалога с пользователем.

Тестирующая программа выполняет автоматически необходимые действия по тестированию методов классов и выводит соответствующие результаты на экран.

Описание программы.

Классовая структура.

В программе разработаны 4 класса:

  1. класс «l1c1Point» - реализация точки

  2. класс «l1c2Triangle» - реализация равнобедренного треугольника

  3. класс «l1c3LiEl» - реализация элемента списка

  4. класс «l1c4List1» - реализация циклического списка

cPoint

члены-данны

  1. double x Декартова абсцисса

  2. double y Декартова ордината

  3. Int quantity Кол-во объектов

члены-функции

  1. void inv Инвариант

  2. void GetXY Селектор

  3. void SetXY Модификатор

  4. void Move Перемещение точки

  5. void Rotate Поворот точки

ListEl

члены-данные

  1. Typer Date Данные

  2. ListEl* Next Ссылка на след.

члены-функции

  1. Void GetFig Селектор данных

  2. ListEl* GetNext Селектор ссылки на следующий

  3. void GetNext Селектор ссылки на следующий

  4. void SetEl Модификатор

  5. void SetFig Модификатор данных

  6. void SetNext Модификатор ссылки на след.

List1

члены-данные

  1. ListEl* First Указатель на первый

  2. ListEl* current Указатель на текущий

члены-функции

  1. void move Перемещение по списку

  2. Void add Добавление элемента

  3. Void del Удаление элемента

  4. Void out Вывод списка на экран

  5. void GetCur Извлечение текущего

  6. void GetInf Селектор

  7. Void tobegin Возвращение в начало списка

  8. int Empty Проверка на пустоту списка

cTriangle

члены-данные

  1. List<cPoint> список точек

члены-функции

  1. Int rb Проверка равнобедренности

  2. Int correct Строгое н/в треугольника

  3. float GetX Селектор абсциссы

  4. float GetY Селектор ординаты

  5. void Move Перемещение треугольника

  6. void Rotate Поворот треугольника

  7. void Scale Масштабирование треугольника

  8. 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

Соседние файлы в папке Лабораторная работа 22