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

Код нормально компилируется но работает не весь

22.08.2014, 19:38. Показов 1343. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые форумчане! Итак есть программа, которая нормально компилируется, но при запуске работает не как задумано. (Говно)кодить начал недавно поэтому прошу не ругаться К тому же первый раз реализую класс менеджер, скорее всего всё можно было сделать изящнее. goto, continue, break старался избежать. Буду рад любой помощи и советам!

P.S. IDE - Dev-C++ 5.7.0 Windows 7 Professional 64 bit

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
#include<iostream>
#include<locale.h>
 
class FunctionsManager
{
    private:
        short int FunctionToLaunch; //Íîìåð ôóíêöèè äëÿ çàïóñêà
    public:
        bool LaunchCalc() //Îáúÿâëåíèå ôóíêöèè äëÿ çàïóñêà êàëüêóëÿòîðà
        {
            return true;
        }
        bool LaunchFigures() //Îáúÿâëåíèå ôóíêöèè äëÿ çàïóñêà ïðîãðàììû, âû÷èñëÿþùåé ïëîùàäü ôèãóð
        {
            return true;
        } 
        void SetFunctionToLaunch(short int ManagersFunctionToLaunch) //Ãëàâíûé ìåòîä
        {
            FunctionToLaunch = ManagersFunctionToLaunch;
            
            if(FunctionToLaunch = 1)
            {
                LaunchCalc();
            }
            else if(FunctionToLaunch = 2)
            {
                LaunchFigures();
            }
        }   
};
 
int main()
{
    using std::cout;
    using std::cin;
    using std::endl;
    
    setlocale(LC_ALL, "Rus");
            
    cout << "Äîáðî ïîæàëîâàòü â ìàñòåð-êàëüêóëÿòîð!" << endl;
    cout << "Âûáåðèòå òðåáóåìîå äåéñòâèå: " << endl;
    cout << "1.Óíèâåðñàëüíûé êàëüêóëÿòîð(1), 2.Âû÷èñëåíèå ïëîùàäè ôèãóð(2)" << endl;
    cout << "" << endl;
    
    bool Correct = 1; //Òðåáóåòñÿ äëÿ ïåðåçàïóñêà öèêëà íèæå ïðè íåïðàâèëüíîì ââîäå è âûõîäà èç öèêëà ïðè ïðàâèëüíîì
    
    short int FunctionChoice = 0; //Ïåðåìåííàÿ äëÿ âûáîðà íîìåðà ôóíêöèè
    
    do
    {
    cout << "Ââåäèòå íîìåð ôóíêöèè êîòîðóþ âû õîòèòå èñïîëüçîâàòü:" << endl;
    cin >> FunctionChoice;
    
    if(FunctionChoice <= 0 || FunctionChoice > 2)
    {
        cout << "Ââåäèòå êîððåêòíûé íîìåð ôóíêöèè!" << endl;
    }
    else 
    {
        cout << "Ïðîäîëæàåì" << endl;
        Correct = 0;
    }
    }while(Correct != 0);
    
    FunctionsManager Manager;
    Manager.SetFunctionToLaunch(FunctionChoice);
    
    void Calculator();
    
    if(Manager.LaunchCalc() == 0)
    {
        void Calculator();
    }
    
    return 0;
}
 
void Calculator()
{
    using std::cout;
    using std::cin;
    using std::endl;
    
    cout << "Âû ïåðåøëè â êàëüêóëÿòîð!" << endl;
    cout << "Ââåäèòå äâà ÷èñëà" << endl;
    
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.08.2014, 19:38
Ответы с готовыми решениями:

Код компилируется, но не работает
Написано для Java Windows Application import com.ms.wfc.app.*; import com.ms.wfc.core.*; import com.ms.wfc.core.Event.*; import...

Не работает нормально код
Хотел написать маленький код для игры, но цикл почему то идет бесконечно, помогите пожалуйста) #include &lt;iostream&gt; #include...

Не работает нормально код
Надо найти разность между максимальным четным и максимальным нечетным элементом массива. Выдает : Run-Time Check Failure #2 - Stack around...

10
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
22.08.2014, 19:59
Coding_fun, 68 и 72 строки
C++
1
void Calculator(); //Уберите void
1
0 / 0 / 0
Регистрация: 22.08.2014
Сообщений: 11
22.08.2014, 20:05  [ТС]
На 68 вообще убрал, после класса объявил функцию void Calculator(), а на 72 void убрал, результатат тот же, компилируется, запускается, доходит до "Продолжаем" и прекращает выполнение.
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
#include<iostream>
#include<locale.h>
 
class FunctionsManager
{
    private:
        short int FunctionToLaunch; //Íîìåð ôóíêöèè äëÿ çàïóñêà
    public:
        bool LaunchCalc() //Îáúÿâëåíèå ôóíêöèè äëÿ çàïóñêà êàëüêóëÿòîðà
        {
            return true;
        }
        bool LaunchFigures() //Îáúÿâëåíèå ôóíêöèè äëÿ çàïóñêà ïðîãðàììû, âû÷èñëÿþùåé ïëîùàäü ôèãóð
        {
            return true;
        } 
        void SetFunctionToLaunch(short int ManagersFunctionToLaunch) //Ãëàâíûé ìåòîä
        {
            FunctionToLaunch = ManagersFunctionToLaunch;
            
            if(FunctionToLaunch = 1)
            {
                LaunchCalc();
            }
            else if(FunctionToLaunch = 2)
            {
                LaunchFigures();
            }
        }   
};
 
void Calculator();
 
int main()
{
    using std::cout;
    using std::cin;
    using std::endl;
    
    setlocale(LC_ALL, "Rus");
            
    cout << "Äîáðî ïîæàëîâàòü â ìàñòåð-êàëüêóëÿòîð!" << endl;
    cout << "Âûáåðèòå òðåáóåìîå äåéñòâèå: " << endl;
    cout << "1.Óíèâåðñàëüíûé êàëüêóëÿòîð(1), 2.Âû÷èñëåíèå ïëîùàäè ôèãóð(2)" << endl;
    cout << "" << endl;
    
    bool Correct = 1; //Òðåáóåòñÿ äëÿ ïåðåçàïóñêà öèêëà íèæå ïðè íåïðàâèëüíîì ââîäå è âûõîäà èç öèêëà ïðè ïðàâèëüíîì
    
    short int FunctionChoice = 0; //Ïåðåìåííàÿ äëÿ âûáîðà íîìåðà ôóíêöèè
    
    do
    {
    cout << "Ââåäèòå íîìåð ôóíêöèè êîòîðóþ âû õîòèòå èñïîëüçîâàòü:" << endl;
    cin >> FunctionChoice;
    
    if(FunctionChoice <= 0 || FunctionChoice > 2)
    {
        cout << "Ââåäèòå êîððåêòíûé íîìåð ôóíêöèè!" << endl;
    }
    else 
    {
        cout << "Ïðîäîëæàåì" << endl;
        Correct = 0;
    }
    }while(Correct != 0);
    
    FunctionsManager Manager;
    Manager.SetFunctionToLaunch(FunctionChoice);
    
    if(Manager.LaunchCalc() == 0)
    {
        Calculator();
    }
    
    return 0;
}
 
void Calculator()
{
    using std::cout;
    using std::cin;
    using std::endl;
    
    cout << "Âû ïåðåøëè â êàëüêóëÿòîð!" << endl;
    cout << "Ââåäèòå äâà ÷èñëà" << endl;
    
}
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
22.08.2014, 20:13
Цитата Сообщение от Coding_fun Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
if(FunctionToLaunch = 1) 
{ 
    LaunchCalc(); 
} 
else if(FunctionToLaunch = 2) 
{ 
    LaunchFigures(); 
}
Равенство - это ==.
А у тебя присваивание в if.
1
0 / 0 / 0
Регистрация: 22.08.2014
Сообщений: 11
22.08.2014, 20:16  [ТС]
Так и было, подумал что из-за этого другие ошибки были, изменил. Не поверите, сейчас сделал == все равно та же самая фигня
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
22.08.2014, 20:17
Лучший ответ Сообщение было отмечено Coding_fun как решение

Решение

Цитата Сообщение от Coding_fun Посмотреть сообщение
if (Manager.LaunchCalc() == 0)
Цитата Сообщение от Coding_fun Посмотреть сообщение
bool LaunchCalc() //Объявление функции для запуска калькулятора
* * * * {
* * * * * * return true;
* * * * }
upd: launchcalc всегда вернет 1, условие не выполнится никогда
1
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
22.08.2014, 20:18
Цитата Сообщение от Coding_fun Посмотреть сообщение
подумал что из-за этого другие ошибки были, изменил
Не надо шаманить
Цитата Сообщение от Coding_fun Посмотреть сообщение
Не поверите, сейчас сделал == все равно та же самая фигня
Ну значит есть еще ошибки
1
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
22.08.2014, 20:20
C++
1
2
3
4
if(Manager.LaunchCalc()) // не равно
{
    Calculator();
}
1
0 / 0 / 0
Регистрация: 22.08.2014
Сообщений: 11
22.08.2014, 20:21  [ТС]
Спасибо, должно быть изменил опять же подумав что из-за этого не работает. Поменял на != и всё как по маслу!
Всем спасибо, всем плюсов!
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
22.08.2014, 20:32
Coding_fun, судя по тому, что написано, должно быть как-то так (до конца сам допишешь):
Кликните здесь для просмотра всего текста
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
#include<iostream>
#include<locale.h>
 
class FunctionsManager
{
private:
    short int FunctionToLaunch; //Номер функции для запуска
 
public:
    bool LaunchCalc() //Объявление функции для запуска калькулятора
    {
        return FunctionToLaunch == 1;
    }
    bool LaunchFigures() //Объявление функции для запуска программы, вычисляющей площадь фигур
    {
        return FunctionToLaunch == 2;
    }
    void SetFunctionToLaunch(short int ManagersFunctionToLaunch) //Главный метод
    {
        FunctionToLaunch = ManagersFunctionToLaunch;
    }
};
 
void Calculator();
void Figures();
 
int main()
{
    using std::cout;
    using std::cin;
    using std::endl;
 
    setlocale(LC_ALL, "Rus");
 
    cout << "Добро пожаловать в мастер-калькулятор!" << endl;
    cout << "Выберите требуемое действие: " << endl;
    cout << "1.Универсальный калькулятор(1), 2.Вычисление площади фигур(2), 3.Exit(3)" << endl;
    cout << "" << endl;
 
    bool Correct = 1; //Требуется для перезапуска цикла ниже при неправильном вводе и выхода из цикла при правильном
 
    short int FunctionChoice = 0; //Переменная для выбора номера функции
 
    do
    {
        cout << "Введите номер функции которую вы хотите использовать:" << endl;
        cin  >> FunctionChoice;
 
        if(FunctionChoice <= 0 || FunctionChoice > 3)
        {
            cout << "Введите корректный номер функции!" << endl;
        }
        else
        {
            if(FunctionChoice == 3)
            {
                Correct = 0;
            }
            else
            {
                cout << "Продолжаем" << endl;
 
                FunctionsManager Manager;
                Manager.SetFunctionToLaunch(FunctionChoice);
 
                if(Manager.LaunchCalc())
                {
                    Calculator();
                }
                else if(Manager.LaunchFigures())
                {
                    Figures();
                }
            }
        }
    }
    while(Correct != 0);
 
    return 0;
}
 
void Calculator()
{
    using std::cout;
    using std::cin;
    using std::endl;
 
    int a, b;
    cout << "Вы перешли в калькулятор!" << endl;
    cout << "Введите два числа" << endl;
    cin  >> a >> b;
 
}
 
void Figures()
{
    using std::cout;
    using std::cin;
    using std::endl;
 
    //
}
0
0 / 0 / 0
Регистрация: 22.08.2014
Сообщений: 11
22.08.2014, 20:36  [ТС]
Спасибо, примерно Допишу, там дело техники
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.08.2014, 20:36
Помогаю со студенческими работами здесь

видеокарта перестала работать, но на другом пк работает нормально, мой пк с другой видеокартой работает нормально тоже
мой пк: мать - ga-78lmt-s2p видеокарта - amd radeon r7 200 одно время комп начал тормозить, выключаться, позже начал...

Как работает данный код? И почему не компилируется?
Обьясните пожалуйста как работает данный код, и скажите почему он не компилируется? И есть ли способ считать числа еще быстрее? ...

В консольном приложении код работает нормально, в оконном - нет
суть в чем. используется один и тот же модуль ATD. Но в консольном приложении работает нормально все, все методы. А вот в окне формы...

Код компилируется и работает в WinXP, при запуске же под 7-кой вылезают кракозябры
Столкнулся с какой-то совершенно непонятной проблемой. Есть вот такой код: vector&lt;char*&gt;::iterator iv; QString qs; ...

Программа компилируется не нормально
Всем привет! Пытаю скомпилировать программу, код верный (смотрите ниже), но при компиляции высвечивается ошибка (смотрите рисунок). Не могу...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
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 На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru