Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 17.10.2019
Сообщений: 14

Меню и его особенности

05.03.2020, 19:35. Показов 341. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <math.h>
const float pi = 3.141592;
using namespace std;
void vvod(float *pa,float *pb,float *pc)
{
    setlocale(LC_ALL, "ru");
    string path = "laba1.txt";
    ifstream fin;
    fin.open(path);
    if (!fin.is_open())
    {
        cout << "Ошибка!" << endl;
    }
    else
    {
        cout << "Файл открыт" << endl;
        fin >> *pa >> *pb >> *pc;
        /*cout << "Cторона треугольника a\t" << *pa << endl;
        cout << "Cторона треугольника b\t" << *pb << endl;
        cout << "Угол между a и c\t" << *pc << endl;*/
        fin.close();
    }
}
float raschetuglov(float pa, float pb, float ugolac)
{
        float ugolacrad = (ugolac * pi) / 180; // Перевод угла ac в радианны
        float x = sin(ugolacrad); //Переменная х для синуса угла ас
        /*cout << x << "\t Первый синус"<<endl;*/
        float y = pa * x / pb;    //Переменная y для синуса угла bc
        /*cout << y << "\t Второй синус"<<endl;*/
        float x1 = asin(x)*180/pi;// Угол ac в градусах
        float y1 = asin(y) * 180 / pi;// Угол bc в градусах
        float z = sin((180 - x1 - y1)*pi/180);// Переменная z для синуса угла ab
        /*cout << z << "\t Третий синус"<<endl;*/
        return(z);
}
float raschetploshadi(float pa, float pb, float pz)
{
    float s = 0.5 * pa * pb * pz;
    return(s);
}
float vicheslenieminugla(float pa, float pb, float ugolac)
{
    float min;
    float ugolacrad = (ugolac * pi) / 180; // Перевод угла ac в радианны
    float x = sin(ugolacrad); //Переменная х для синуса угла ас
    float y = pa * x / pb;    //Переменная y для синуса угла bc
    float x1 = asin(x) * 180 / pi;// Угол ac в градусах
    //cout << x1 << "\t Угол АС"<<endl;
    float y1 = asin(y) * 180 / pi;// Угол bc в градусах
    //cout << y1 << "\t Угол ВС"<<endl;
    float z1 = (180 - x1 - y1);// Угол ab в градусах
    //cout << z1 << "\t Угол АВ" << endl;
    if (x1 < y1)
    {
        if (x1 < z1)
            //cout << x1 << "\t Угол АС минимальный" << endl;
        min = x1;
    }
    else
    {
        if (y1 < z1)
        {
            //cout << y1 << "\t Угол ВС минимальный" << endl;
            min = y1;
        }
        else
        {
            //cout << z1 << "\t Угол АВ минимальный" << endl;
            min=z1;
        }
    }
    return(min);
}
float vichesleniecosminugla(float pa) 
{
 
    float s = cos(pa*pi/180);
    return(s);
}
void vivod(float a, float b, float c)
{
    string path = "Result.txt";
    ofstream fout;
    fout.open(path);
    if (!fout.is_open())
    {
        cout << "Ошибка открытия файла!" << endl;
    }
    else
    {
        fout << "Площадь треугольника " << a << endl << "Наименьший угол " << b << endl << "Косинус наименьшего угла " << c << endl;
    }
    fout.close();
}
    int main()
    {
        int selection;
        setlocale(LC_ALL, "ru");
        cout << "Выберите пункт меню" << endl <<
            "1.Ввод нового треугольника" << endl <<
            "2.Вычисличение площади треугольника" << endl <<
            "3.Вычисление наименьшего угла" << endl <<
            "4.Вычисление косинуса наименьшего угла" << endl <<
            "5.Окончание работы" << endl;
        cin >> selection;
        float a, b, ugolac, sinugla, s, min, cosmin;
        switch (selection)
        {
        case 1:
            vvod(&a, &b, &ugolac);
            sinugla = raschetuglov(a, b, ugolac);
            /*cout << sinugla << " Синус АВ" << endl;*/
            break;
        case 2:
            s = raschetploshadi(a, b, sinugla);
            break;
            //cout << s << "\t Площадь" << endl;
        case 3:
            min = vicheslenieminugla(a, b, ugolac);
            break;
        case 4:
            cosmin = vichesleniecosminugla(min);
            break;
            //cout << cosmin << "\t Косинус минимального угла " << endl;
        case 5:
            vivod(s, min, cosmin);
            break;
        default:
            cout << "Ошибка!Такого пункта меню не существует" << endl;
            break;
        }
    }
Здравствуйте,проблема возникла небольшая.Во первых когда у меня выполняется кейс и создается переменная(допустим sinugla) то другой кейс ее не видит,как поправить это?И хочу чтобы я мог несколько кейсов подряд выполнять,мне нужно цикл добавить перед switch?И как тогда программа поймет когда я захочу закончить цикл?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2020, 19:35
Ответы с готовыми решениями:

Полиморфизм и его особенности
Скажите в двух словах, какой главный смысл полиморфизма(читал что 1 интерфейс и множество реализаций), и приведенный код нже демонстрирует...

Работа с меню. При клике на кнопке меню или вне его, меню должно закрываться
Добрый вечер! Изучаю JQuery. Вот ради развития решил написать меню, практически такое же как на Хабре. Два дня ломаю голову над тем, как...

Работа с Фокусом и его особенности
Доброго времени суток , как можно настроить фокус , чтобы можно было работать с textbox и некоторыми кнопками одновременно, если это...

2
Just Do It!
 Аватар для XLAT
4211 / 2668 / 655
Регистрация: 23.09.2014
Сообщений: 9,082
Записей в блоге: 3
05.03.2020, 19:52
Цитата Сообщение от FFGT Посмотреть сообщение
хочу чтобы я мог несколько кейсов подряд
например так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
...
 
int main()
{   int selection = -1;
    setlocale(LC_ALL, "ru");
    cout << "Выберите пункт меню" << endl <<
         "1.Ввод нового треугольника" << endl <<
         "2.Вычисличение площади треугольника" << endl <<
         "3.Вычисление наименьшего угла" << endl <<
         "4.Вычисление косинуса наименьшего угла" << endl <<
         "5.Окончание работы" << endl;
 
    if(selection == -1)
        cin >> selection;
 
    float a, b, ugolac, sinugla, s, min, cosmin;
    switch (selection)
    {   case 1:
            {   vvod(&a, &b, &ugolac);
                sinugla = raschetuglov(a, b, ugolac);
                /*cout << sinugla << " Синус АВ" << endl;*/
                ///---------------------------------------|
                /// К какому кейсу желаем передать?       |
                /// Пусть это будет 4 (хотя 2 просит)     |
                ///---------------------------------------:
                selection = 4;
                break;
            }
        case 2:
            s = raschetploshadi(a, b, sinugla);
            break;
            //cout << s << "\t Площадь" << endl;
        case 3:
            min = vicheslenieminugla(a, b, ugolac);
            break;
        case 4:
            cosmin = vichesleniecosminugla(min);
            break;
            //cout << cosmin << "\t Косинус минимального угла " << endl;
        case 5:
            vivod(s, min, cosmin);
            break;
        default:
            cout << "Ошибка!Такого пункта меню не существует" << endl;
            break;
    }
    selection = -1;
}
0
0 / 0 / 0
Регистрация: 17.10.2019
Сообщений: 14
05.03.2020, 20:04  [ТС]
По-прежнему просит эти переменные,якобы они неинициализированные
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.03.2020, 20:04
Помогаю со студенческими работами здесь

Стабилизатор тока и его особенности
Прошу помочь с обретением понятия &quot;стабилизатор тока&quot;. Сначала, чем отличается обычный БП от зарядного устройства? Зарядка всегда...

PHP DEsigner и его особенности
Где в программе PhpDesigner нажать чтоб запустить код в одном из браузеров прямо в среде PHPDESIGNER 2007?

Оператор варианта: определить вид треугольника и его особенности
Даны вещественные положительные числа a, b, c. Если существует треугольник со сторонами a, b, c, то: 1.определить его вид...

При нажатии на пункт меню скрыть его, и показать другой пункт меню
Прошу помощи, как можно допустим при нажатии на пункт меню, его скрыть, и показать другой пункт меню? я делаю так : public boolean...

Создать меню и его обработчики
Помогите пожалуйста с этим.... Создать меню, состоящее из пунктов Input color, Change, Exit, Help. При выборе команды Exit приложение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru