Студопедия — Файл 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; просмотров: 252. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

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

Тема 5. Анализ количественного и качественного состава персонала Персонал является одним из важнейших факторов в организации. Его состояние и эффективное использование прямо влияет на конечные результаты хозяйственной деятельности организации.

СПИД: морально-этические проблемы Среди тысяч заболеваний совершенно особое, даже исключительное, место занимает ВИЧ-инфекция...

Понятие массовых мероприятий, их виды Под массовыми мероприятиями следует понимать совокупность действий или явлений социальной жизни с участием большого количества граждан...

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

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