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

Не могу разобраться с оператором условия

11.09.2016, 00:57. Показов 682. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток. В общем такая проблема,у меня задание,"Фотоаппарат",все вроде бы неплохо работает,но есть одно "но",в задании сказано,что нельзя сделать фото не переключив кадр,я сделал проверку,все попытался сделать так,чтобы этого не происходило,но все же,когда я делаю фото во второй и последующие разы,у меня появляется сообщение "Поменяйте кадр",но счетчик все равно продолжает считать кадры,чего не должно быть.
За помощь буду очень признателен.Спасибо

Код:

НАЗВАНИЕ ХЕДЕРА : Camera.h
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
#pragma once
class Camera
{
private:
    int cameraFrames;
public:
    Camera();
    void SwitchFrame();
    void chargeFilm();
    void makePhoto();
};
 
Первый cpp-файл.
#include "stdafx.h"
 
Camera::Camera()
{
    cameraFrames = 10;
}
 
void Camera::chargeFilm()
{
    cameraFrames = 10;
    cout << "Camera charged!" << endl;
}
 
void Camera::SwitchFrame()
{
    if (cameraFrames<10 && cameraFrames>0)
    {
        
        cout << "The frame was switched on : " << cameraFrames << " frame" << endl;
    }
    else if (cameraFrames <= 0)
    {
        cout << "ERROR:CHARGE THE CAMERA" << endl;
    }
    else if (cameraFrames == 10)
    {
        cout << "The frame is full,make a photo" << endl;
    }
}
 
void Camera::makePhoto()
{
    int makedPhoto = 0;
 
    if (cameraFrames <= 0)
    {
        cout << "Please charge the camera!" << endl;
    }
    else if (cameraFrames<10 && cameraFrames>0)
    {
        cout << "ERROR:FRAME WAS NOT SWITCHED!" << endl;
    }
 
        cout << "Photo!" << endl;
        cameraFrames--;
        makedPhoto++;    //проблема в этом участке кода,думаю,я думаю,что тут должен быть либо оператор условия,либо цикл,который не будет пропускать верхнюю часть кода,с этим и у меня возникла проблема,не могу сообразить,какое условие подобрать.
}
MAIN
#include "stdafx.h"
 
void main()
{
    enum cameraPhoto { MakePhoto = 1, ChargeCamera, Switch, Exit };
 
    Camera camera;
 
    int choice = 0;
 
    while (true)
    {
        cout << "1.Make photo" << endl;
        cout << "2.Charge camera" << endl;
        cout << "3.Switch" << endl;
        cout << "4.EXIT" << endl;
        cin >> choice;
        cout << "\n";
 
        switch (choice)
        {
        case MakePhoto:
                camera.makePhoto();
                cout << "\n";
            break;
        case ChargeCamera:
            camera.chargeFilm();
            cout << "\n";
            break;
        case Switch:
            camera.SwitchFrame();
            cout << "\n";
            break;
        case Exit:
            exit(0);
        }
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.09.2016, 00:57
Ответы с готовыми решениями:

Не могу разобраться с оператором while
Столкнулся со странной проблемой. В простой программе цикл с условие while работает неправильно. Подскажите в чём проблема? Эта часть...

Не могу разобраться с оператором goto
Есть код в паскаль я его переделываю в c++ Program Pr4; label 1; const a=-2;b=2.5;h=0.5; var x,y:real; begin ...

Не могу разобраться с записью условия
Здравствуйте. Возникла не большая проблема. Есть строка, в ней содержится один из символов &quot;&lt;&quot; &quot;==&quot;...

3
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.09.2016, 01:18
Если, в makePhoto(), обнаружил, что чего-то не хватает для того, чтобы сделать фото, делай return.
0
0 / 0 / 0
Регистрация: 14.12.2015
Сообщений: 55
11.09.2016, 02:17  [ТС]
Ну,это не совсем так,там же функция void,зачем что-то возвращать? Оно работает в принципе правильно,но нужно просто проверку правильно составить,но я не совсем понимаю как.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
11.09.2016, 02:29
Цитата Сообщение от Lazariev_V Посмотреть сообщение
там же функция void,зачем что-то возвращать?
Что-то не нужно, просто return. Логику включи: ты зашёл в функцию makePhoto(), камера не заряжена, что ты там ещё какие-то условия после этого проверяешь? Нужно выйти и зарядить камеру. То же самое насчёт переключения кадра.

Добавлено через 3 минуты
Что у тебя, вообще, SwitchFrame() делает? Сообщения выводит?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.09.2016, 02:29
Помогаю со студенческими работами здесь

Не могу разобраться с записью условия
Здравствуйте. Возникла не большая проблема. Есть строка, в ней содержится один из символов &quot;&lt;&quot; &quot;==&quot;...

Не могу разобраться с оператором стрелка "->"
Вот пример функции удаляющей фамилию из списка: void del(void) {spis *p,*temp;char f; // f – Строка для удаляемой фамилии ...

проблема с оператором условия
#include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;iomanip.h&gt; #include &lt;conio.h&gt; void main() { int i, n=10, a, min,max; for...

помогите с оператором условия
вычислить номер дня в невисокосном году по заданным числу и месяцу на данный момент имею вот это: void main() { double...

Помогите с оператором условия
столкнулся с проблемой когда начал изучать оператор условия в С++. Никак не могу разобраться как правильно написать программу. для системы...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru