Пример 1 (текстовая версия).Возможно изготовление любого размера и диаметра по желанию Клиента длиной до 6-ти метров с разными вариантами компоновки. Раздельная компиляция. Заголовочный файл, файл исходных кодов, файл с главной функцией main()
Пример 1. Необходимо осуществить перевод координат точки из декартовых прямоугольных в полярные координаты, используя составной тип данных - структуры (struct). Результата работы программы:
Замечание. В С++ основная разница между структурой и классом - это модификатор доступа, который используется по умолчанию для их членов. Для классов, по умолчанию используется модификатор private, а для структур - public. Т.е.
Пример 1 (текстовая версия). // pr001.cpp: Defines the entry point for the console application.
#include "stdafx.h" #include <iostream> #include <cmath>
struct polar // структура polar - полярные координаты { double distance; // полярный радиус (расстояние) double angle; // полярный угол (угол наклона) };
struct rect // структура rect - прямоугольные координаты { double x; // абсцисса точки double y; // ордината точки };
polar rect_to_polar(rect xypos);//прототип функции rect_to_polar() void show_polar(polar dapos); //прототип функции show_polar()
int _tmain(int argc, _TCHAR* argv[]) { using namespace std; rect rplace; // переменная rplace типа данных rect polar obj; // переменная obj типа данных polar cout << "Enter the x and y: "; //ввод координат (х, у) while (cin >> rplace.x >> rplace.y) //пока вводим числа { obj = rect_to_polar(rplace); show_polar(obj); cout << "Next two numbers (q to quit): "; //ввод следующих двух чисел (q для выхода) } cout << "Done.\n"; system("pause"); return 0; }
//Определение функции rect_to_polar(), которая преобразует //прямоугольные координаты в полярные polar rect_to_polar(rect xypos) { using namespace std; polar answer;// переменная answer типа данных polar //вычисляем полярный радиус (расстояние) answer.distance = sqrt(xypos.x*xypos.x + xypos.y*xypos.y); //вычисляем угол с помощью арктангенса answer.angle = atan2(xypos.y, xypos.x); //функция возвращает структуру типа данных polar return answer; }
//Определение функции show_polar(), которая выводит на экран //полярные координаты с преобразованием радиан в градусы void show_polar(polar d) { using namespace std; //константа 1 рад - это примерно 57 градусов const double Rad_to_deg = 57.29577951; cout << "distance = " << d.distance; cout << ", angle = " << d.angle*Rad_to_deg;//перевод в градусы cout << " degrees.\n"; }
Исходную программу можно разбить на три части: 1) заголовочный файл, содержащий объявления структур и прототипы функций, которые используют эти структуры; 2) файл исходного кода, содержащий код функций, которые работают со структурами; 3) файл исходного кода, содержащий код, который вызывает функции работы со структурами. Пример 2. Состоит из трех файлов: coordin.h, coordin.cpp, pr002.cpp. Пример 2.1 (coordin.h). Заголовочный файл.
Пример 2.2 (coordin.cpp). Файл исходных кодов.
Пример 2.3 (pr002.cpp). Файл c главной функцией main(). Результат:
|