Выполнение работы. #include "stdafx.h"
#include "stdafx.h" #include<iostream> #include<math.h> using namespace std;
class uniform_motion //базовый класс равномерного движения { public: uniform_motion();//конструктор double v0, t0, a0; double track();//метод для вычисления пути virtual void show_parametri();//метод для вывода результатов };
//базовый конструктор uniform_motion::uniform_motion() { cout << "Input initial speed: " << endl; cin >> v0; cout << "Input time: " << endl; cin >> t0; }
//Путь для равномерного движения double uniform_motion::track() { double S; S = v0*t0; return S; }
//Результаты для равномерного движения void uniform_motion::show_parametri() { cout << "This is uniform motion" << endl; cout << "Initial speed= " << v0 << endl; cout << "Time= " << t0 << endl; cout << "Track= " << track() << endl; cout << " " << endl; }
//производный класс равноускоренного движения, основанный на классе равномерного движения class uniformly_accelerated_motion:public uniform_motion { public: uniformly_accelerated_motion();//конструктор double track(); virtual void show_parametri(); };
//производный класс равнозамедленного движения, основанный на классе равномерного движения class uniformly_retarded_motion:public uniform_motion { public: uniformly_retarded_motion();//конструктор double track(); virtual void show_parametri(); };
void main() { uniform_motion RR; RR.show_parametri();
uniformly_accelerated_motion YY; YY.show_parametri();
uniformly_retarded_motion ZZ; ZZ.show_parametri();
system("pause");
}
//конструктор класса равноускоренного движения uniformly_accelerated_motion::uniformly_accelerated_motion() { cout << "Input acceleration for uniformly accelerated motion: " << endl; cin >> a0; }
// Метод вычисления пути при равноускоренном движении double uniformly_accelerated_motion::track() { return v0*t0 + 0.5*a0*pow(t0,2); }
//Метод вывода результатов при равноускоренном движении void uniformly_accelerated_motion::show_parametri() { cout << "This is uniformly accelerated motion" << endl; cout << "Initial speed= " << v0 << endl; cout << "Time= " << t0 << endl; cout << "Acceleration= " << a0 << endl; cout << "Track= " << track() << endl; cout << " " << endl; }
//конструктор класса равнозамедленного движения uniformly_retarded_motion::uniformly_retarded_motion() { cout << "Input acceleration for uniformly retarded motion: " << endl; cin >> a0; }
//Метод вычисления пути при равнозамедленном движении double uniformly_retarded_motion::track() { double S1, tz; tz = v0 / a0; if (t0 > tz) S1 = v0*tz - 0.5*a0*pow(tz,2); else S1 = v0*t0 - 0.5*a0*pow(t0,2); return S1; }
//Метод вывода результатов при равнозамедленном движении void uniformly_retarded_motion::show_parametri() { cout << "This is uniformly retarded motion" << endl; cout << "Initial speed= " << v0 << endl; cout << "Time= " << t0 << endl; cout << "Acceleration= " << a0 << endl; cout << "Track= " << track() << endl; }
|