Студопедия — Файл DotVec.h
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Файл DotVec.h






Отчёт должен быть распечатан на листах А4 с использованием стандартных рамок. Отчёт должен содержать:

Ø название дисциплины;

Ø номер лабораторной работы;

Ø тему лабораторной работы;

Ø номер варианта;

Ø общие требования к лабораторной работе;

Ø тематические требования к лабораторной работе;

Ø индивидуальное задание;

Отчёт должен содержать код программы в следующем порядке:

Ø интерфейсы классов – файлы *.h;

Ø реализация классов – файлы *.cpp;

Ø тело функции main () – файл main.cpp;

Отчёт должен содержать результат работы вашей программы.

Отчёт должен содержать выводы. В выводах вы перечисляете синтаксические приемы, которые были использованы вами при разработке программы.

 

Пример № 3

ТЕМА: Дружественные функции

В приведённом примере решена следующая задача:

Заданы координаты двух вершин правильного треугольника. Определить координаты третьей вершины и его площадь.

 

Задача решается по следующему алгоритму:

Действия Функция

Ø вводим координаты точек A и B с клавиатуры Input (Dot&)

Ø вычисляем вектор AB по координатам его концов Vector (const Dot&, const Dot&)

Ø поворачиваем вектор AB на 60º и определяем вектор AC Rotate (const Vec&, double, Vec&)

Ø прибавляем вектор AC к точке A и получаем точку C EndVec (const Dot&, const Vec&, Dot&)

Ø выводим на экран координаты точки C Print (const Dot&)

Ø длины сторон вычисляем по теореме Пифагора Dist (const Dot&, const Dot &)

Ø вычисляем площадь треугольника по его вершинам Area (const Dot&, const Dot&, const Dot&)

Проверка правильности работы программы:

Ø вычисляем длины всех сторон треугольника Dist (const Dot&, const Dot&)

Ø вычисляем значения всех углов треугольника Angle(const Dot&, const Dot&,const Dot&)

При вычислении угла используются функции:

Ø вычисление скалярного произведение двух векторов Scalar (const Vec&, const Vec&)

Ø вычисление модуля вектора Modul (const Vec&)

Для каждого действия объявляем соответствующую функцию-член в классах Dot и Vec.

Файл DotVec.h

////////////////////////////////////////////////// подключение библиотек ////////////////////////////////////////////////////

#include<iostream.h> // содержит функции ввода-вывода

#include<windows.h> // содержит функцию CharToOem

#include <math.h> // содержит математические функции

 

class Vec; // предварительное объявление класса

///////////////////////////////////////////////// интерфейс класса точки /////////////////////////////////////////////////

class Dot // класс точки

{ // закрытые члены класса

double x, y; // координаты точки

char name; // имя точки

public: // открытые члены класса

// конструкторы класса

Dot (char Name): name (Name), x (0), y (0) { } // использует список инициализации

Dot (char Name, double X, double Y) { name = Name; x = X; y = Y; }

// функции, дружественные классу Dot

friend void Print (const Dot & D); // выводит на экран имя и координаты заданной точки

friend void Input (Dot & D); // вводит значения координат заданной точки с клавиатуры

friend double Dist (const Dot & A, const Dot & B);

// возвращает расстояние между заданными точками

friend double Area (const Dot & A, const Dot & B, const Dot & C);

// возвращает значение площади треугольника, образованного заданными точками

friend double Angle (const Dot & A, const Dot & B, const Dot & C);

// возвращает значение угла с вершиной в точке B

// функции, дружественные классам Dot и Vec

friend void Vector (const Dot & N, const Dot & K, Vec & V);

// вычисляет вектор по координатам его концов

friend void EndVec (const Dot & N, const Vec & V, Dot & K);

// вычисляет координаты конца вектора

};

/////////////////////////////////////////// интерфейс класса вектора /////////////////////////////////////////////////

class Vec // класс вектора

{ // закрытые члены класса

double x, y; // проекции вектора

char name [ 3 ]; // имя вектора

public: // открытые члены класса

// конструкторы

Vec (char* pName): x (0), y (0) { strncpy (name, pName, 3); }

Vec (char* pName, double X, double Y): x (X), y (Y) { strncpy (name, pName, 3); }

// функции, дружественные классу Vec

friend void Print (const Vec & V); // выводит на экран имя и проекции заданного вектора

friend double Modul (const Vec & V); // возвращает длину заданного вектора

friend double Scalar (const Vec & V, const Vec & W);

// возвращает скалярное произведение заданных векторов

friend void Rotate (const Vec & V, double f, Vec & W);

// поворачивает заданный вектор на заданный угол

// функции, дружественные классам Dot и Vec

friend void Vector (const Dot & N, const Dot & K, Vec & V);

// вычисляет вектор по координатам его концов

friend void EndVec (const Dot & N, const Vec & V, Dot & K);

// вычисляет координаты конца вектора

};







Дата добавления: 2015-10-01; просмотров: 250. Нарушение авторских прав; Мы поможем в написании вашей работы!



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

Способы тактических действий при проведении специальных операций Специальные операции проводятся с применением следующих основных тактических способов действий: охрана...

Искусство подбора персонала. Как оценить человека за час Искусство подбора персонала. Как оценить человека за час...

Схема рефлекторной дуги условного слюноотделительного рефлекса При неоднократном сочетании действия предупреждающего сигнала и безусловного пищевого раздражителя формируются...

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

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия