Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Блок-схема


Автор: topikku 12.6.2019, 13:43
Помогите сделать блок-схему
Код

#include <iostream>
 
 
class Angle
{
public:
    Angle();
    Angle(int deg, int min);
    Angle(double rad);
    ~Angle() {};
   
    void Read();
    void Display();
    void Inc(int add);
    void Dec(int sub);
 
 
private:
    // переменные
    int degrees;
    int minutes;
    double radians;
 
    // закрытые методы (будут вызываться из функций)
    void DM_to_rad();
    void RAD_to_DM();
 
};
 
// конструктор пустой - выделение памяти не нужно
Angle::Angle()
{
}
// конструктор для инициализации объекта градусами и минутами
Angle::Angle(int deg, int min)
{
    degrees = deg;
    minutes = min;
    DM_to_rad();
}
// конструктор для иницализации объекта радианами
Angle::Angle(double rad)
{
    radians = rad;
    RAD_to_DM();
}
 
 
// чтение
void Angle::Read()
{
    using std::cout;
    using std::cin;
    using std::endl;
 
    int ch;
 
    cout << "0. Ввод градусов и минут" << endl
        << "1. Ввод радиан" << endl
        << "Ввод >> ";
    cin >> ch;
    if (ch == 0)
    {
        cout << "Введите градусы: ";
        cin >> degrees;
        cout << "Введите минуты: ";
        cin >> minutes;
        DM_to_rad();
    }
    else
    {
        cout << "Введите радианы: ";
        cin >> radians;
        RAD_to_DM();
    }
}
 
void Angle::Display()
{
    using std::cout;
    using std::cin;
    using std::endl;
 
    int ch;
 
    cout << "0. Отобразить градусы и минуты" << endl
        << "1. Отобразить радианы" << endl
        << "Ввод >> ";
    cin >> ch;
    if (ch == 0)
    {
        cout << "Градусы: " << degrees;
        cout << " Минуты: " << minutes;
    }
    else
    {
        cout << "Радианы: " << radians;
    }
    cout << endl;
}
 
void Angle::Inc(int add)
{
    degrees += add;
}
 
void Angle::Dec(int sub)
{
    degrees -= sub;
}
 
void Angle::DM_to_rad()
{
    double temp;
    temp = (degrees + minutes / 60);
    radians = temp * 3.14 / 180;
}
 
void Angle::RAD_to_DM()
{
    int min_temp;
    double temp;
    temp = radians * 180 / 3.14;
    degrees = static_cast<int>(temp);
    temp -= degrees;
    minutes = static_cast<int>(temp * 60);
}
 
 
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    Angle a(130.3);
 
    a.Display();
    a.Inc(10);
    a.Dec(9);
    a.Read();
 
    a.Display();
    a.Display();
 
    return 0;
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)