Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
botasa
3 / 3 / 0
Регистрация: 18.01.2011
Сообщений: 131
#1

Как изменить условие - C++

28.06.2011, 21:48. Просмотров 357. Ответов 6
Метки нет (Все метки)

Сделал задачу, но когда тестировал нашел ошибку и не могу исправить ( описание ошибки после кода )
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
// xz.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <conio.h>
#include <iostream>
using namespace std;
 
class Account
{
private:
    int balance;
public:
    Account( int money );
    void credit( int cr );
    void debit( int de );
    int getBalance();
};
 
Account::Account( int money )
{
    if ( money >= 0 )
    {
    balance = money;
    }
    if ( money < 0 )
    {
        balance = 0;
        cout << "Начальный баланс был не действителен" << endl;
    }
}
void Account::credit( int cr )
{
    balance += cr;
    cout << "Спасибо, за ваш вклад в размере " << cr << endl;
}
void Account::debit( int de )
{
    if ( de > balance )
    {
        de = 0;
        cout << "Запрошеная сумма превышает баланс" << endl;
    }
    if ( de <= balance )
        balance -= de;
    if ( de < 0 )
    {
        de = 0;
        cout << "За такое вас могут посадить !" << endl;
    }
}
int Account::getBalance()
{
    return balance;
}
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    Account test1(100);
    Account test2(100);
    cout << "Привет !!!\n";
    int i=0, t1, t2;
    int input;
 
    cout <<"Выберите один пункт из меню : " << endl;
    cout << "1) Внести сумму на счет\n"
         << "2) Снять сумму со сщета\n"
         << "3) Посмотреть баланс\n";
    cin >> input;
 
    while ( input != EOF )
    {
        switch( input )
        {
        case 1 : 
            cout << "Введите суму на счет № 1 : ";
            cin >> t1;
            test1.credit( t1 );
            cout << "Введите суму на счет № 2 : ";
            cin >> t2;
            test2.credit( t2 );
            break;
        case 2 : 
            cout << "Введите суму которую хотите снять со счета № 1 : ";
            cin >> t1;
            test1.debit( t1 );
            cout << "Введите суму которую хотите снять со счета № 2 : ";
            cin >> t2;
            test2.debit( t2 );
            break;
        case 3 : 
            cout << "Сумма на счету № 1 ";
            cout << test1.getBalance();
            cout << endl;
            cout << "Сумма на счету № 2 ";
            cout << test2.getBalance(); 
            break;
        default :
            cout << "\nНеверний ввод, введите числа от 1 до 3 или -1 чтоб закончить ввод " << endl;
            break;
        }
        i++;
        cout <<"\nВыберите один пункт из меню : " << endl;
        cout << "1) Внести сумму на счет\n"
             << "2) Снять сумму со сщета\n"
             << "3) Посмотреть баланс\n";
        cin >> input;
    }
    cout << "Конец";
    _getch();
    return 0;
}
Припустим на счету 100 баксов. Я снял 100. Потом я хочу снять еще денег, но на счету 0, я ввожу например -100, потом просматриваю счет и у меня уже не 0 а 100 баксов на счету, проблема вроде не большая, но хотел бы узнать как исправить ее. Я думаю что проблема в коде в строке 45-49, пробовал я в такой способ исправить как там сейчас есть но не помогло, думаю надо сформулировать выражение по другому, но как ?
Пример консоли http://i028.***********/1106/cc/c5e0c2411853.bmp
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2011, 21:48     Как изменить условие
Посмотрите здесь:

Есть код программы на вычисление количества слов, как изменить условие? - C++
Есть код программы, как изменить условие, чтобы вычисляло только количество слов, которые заканчиваются на букву а? #include &lt;iostream&gt; ...

Изменить программу под условие - C++
&quot;Работа со структурами&quot; Сама задача: Описать тип TDate — запись с полями целого типа Day (день), Month (месяц) и Year (год) и...

Как называется условие if (!x) {} и как оно работает? - C++
Добрый день, как называется условие if (!x) {} и как работает? Если x вернет true, то x &quot;выполнится&quot; иначе сработает условие в скобках? ...

Как поставить условие - C++
Есть переменные: x1, x2, y1, y2. И нужно сделать следующее: Прибавить к x1 единицу (++x1) в том случае если выполняется одно из условий: ...

Как понимать условие if (!a)? - C++
int a = 0; if (!a) т.е. если не ноль? Что не ноль?

Как записать условие?? - C++
необходимо что бы проверялось условие на возрастание последовательности и на то что если n&gt;а15 то завершение программы!!!! Вот что я...

как задать условие? - C++
мне надо чтобы только при сложении на экран выводилось +, при вычитании -, при умножении *, при делении / помогите. #include &quot;komplex.h&quot;...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
28.06.2011, 21:56     Как изменить условие #2
Так в debit сначала изменяется баланс, а уж потом проверяется, не введено ли отрицательное значение. Очевидно, проверять нужно до того, как менять денежки.
botasa
3 / 3 / 0
Регистрация: 18.01.2011
Сообщений: 131
28.06.2011, 22:02  [ТС]     Как изменить условие #3
Цитата Сообщение от Nick Alte Посмотреть сообщение
Так в debit сначала изменяется баланс, а уж потом проверяется, не введено ли отрицательное значение. Очевидно, проверять нужно до того, как менять денежки.
можно пример переделанный из моего ? ато я чет не вкурю (
Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,927
Завершенные тесты: 1
28.06.2011, 22:03     Как изменить условие #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void Account::debit( int de )
{
        if ( de > balance )
        {
                de = 0;
                cout << "Запрошеная сумма превышает баланс" << endl;
        }
        if ( de < 0 )
        {
                de = 0;
                cout << "За такое вас могут посадить !" << endl;
        }
        balance -= de;
}
botasa
3 / 3 / 0
Регистрация: 18.01.2011
Сообщений: 131
28.06.2011, 22:07  [ТС]     Как изменить условие #5
я так понял проблема в строке 43-44, но как правильно сделать ??? если у меня баланс 0 я ввожу -100 а -100 меньше чем 0 с точки зрения математики и оно так делает ...

Добавлено через 3 минуты
все спасибо ) уже понял, невнимательность губит человека )
-=ЮрА=-
Заблокирован
Автор FAQ
28.06.2011, 22:11     Как изменить условие #6
Вот моя реализация, у меня 6-ая студя поєтому вначале идёт код для руссификации - можешь его вітереть и через setlocale работать, дело не в этом - у тебя были огрехи в условиях, вот поправил
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
// xz.cpp : Defines the entry point for the console application.
//
#include <conio.h>
 
#include <iostream.h>
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='ё')
            stream<<char(241);
        else if(*ps=='Ё')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
 
class Account
{
private:
    int balance;
public:
    Account( int money );
    void credit( int cr );
    void debit( int &de );
    int getBalance();
};
 
Account::Account( int money )
{
    if ( money >= 0 )
        balance = money;
    else
    {
        balance = 0;
        cout << "Начальный баланс был не действителен" << endl;
    }
}
void Account::credit( int cr )
{
    balance += cr;
    cout << "Спасибо, за ваш вклад в размере " << cr << endl;
}
 
void Account::debit( int &de )
{
    if ( de < 0 )
    {
        de = 0;
        cout << "За такое вас могут посадить !" << endl;
    }
    else
    if ( de > balance )
    {
        de = 0;
        cout << "Запрошеная сумма превышает баланс" << endl;
    }
    else
        balance -= de;
}
 
int Account::getBalance()
{
    return balance;
}
 
void main()
{
    Account test1(0);
    Account test2(0);
    cout << "Привет !!!\n";
    int i=0, t1, t2;
    int input;
    
    while ( true )
    {
        cout <<"Выберите один пункт из меню : " << endl;
        cout << "1) Внести сумму на счет\r\n";
        cout << "2) Снять сумму со сщета\r\n";
        cout << "3) Посмотреть баланс\r\n";
        cout << "Выход - любой символ\r\n";
        cin >> input;
        switch( input )
        {
        case 1 : 
            cout << "Введите суму на счет № 1 : ";
            cin >> t1;
            test1.credit( t1 );
            cout << "Введите суму на счет № 2 : ";
            cin >> t2;
            test2.credit( t2 );
            break;
        case 2 : 
            cout << "Введите суму которую хотите снять со счета № 1 : ";
            cin >> t1;
            test1.debit( t1 );
            cout << "Введите суму которую хотите снять со счета № 2 : ";
            cin >> t2;
            test2.debit( t2 );
            break;
        case 3 : 
            cout << "Сумма на счету № 1 ";
            cout << test1.getBalance();
            cout << endl;
            cout << "Сумма на счету № 2 ";
            cout << test2.getBalance();  
            cout << endl;
            break;
        default :
            cout << "\nНеверний ввод, введите числа от 1 до 3 или -1 чтоб закончить ввод " << endl;
            break;
        }
    }
    cout << "Конец";
    getch();
}
Миниатюры
Как изменить условие  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2011, 22:20     Как изменить условие
Еще ссылки по теме:

Как записать условие - C++
Сижу и туплю. Как мне записать условие в 80 строке, чтобы если к примеру в фале записано: 3 2 4 1 2 7 то условие не...

Как задать условие - C++
Условие : НЕ(А ИЛИ В) И HE(A ИЛИ С) (!((int)a || (int)b) &amp;&amp;! ((int)a || (int)c)) Вот что у меня ... Буду благодарен за...

Подскажите как записать условие - C++
В матрице А(n*n) найти Сред.Арифметическое элементов последнего столбца и возвести полученное значение в квадрат. Нужно только условие с...

Как задать дополнительное условие? - C++
Задание само: Дан файл, содержащий текст. Переписать в другой файл только слова, начинающиеся с согласной, а заканчивающиеся гласной ...

Как понимать условие цыкла while(1) ? - C++
while(1) он выполняется один раз или он вечный ? Просто обычно в круглых скобках указывают какое-то сравнение, а тут просто 1.


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

Или воспользуйтесь поиском по форуму:
botasa
3 / 3 / 0
Регистрация: 18.01.2011
Сообщений: 131
28.06.2011, 22:20  [ТС]     Как изменить условие #7
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Вот моя реализация, у меня 6-ая студя поєтому вначале идёт код для руссификации - можешь его вітереть и через setlocale работать, дело не в этом - у тебя были огрехи в условиях, вот поправил
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
// xz.cpp : Defines the entry point for the console application.
//
#include <conio.h>
 
#include <iostream.h>
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='ё')
            stream<<char(241);
        else if(*ps=='Ё')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
 
class Account
{
private:
    int balance;
public:
    Account( int money );
    void credit( int cr );
    void debit( int &de );
    int getBalance();
};
 
Account::Account( int money )
{
    if ( money >= 0 )
        balance = money;
    else
    {
        balance = 0;
        cout << "Начальный баланс был не действителен" << endl;
    }
}
void Account::credit( int cr )
{
    balance += cr;
    cout << "Спасибо, за ваш вклад в размере " << cr << endl;
}
 
void Account::debit( int &de )
{
    if ( de < 0 )
    {
        de = 0;
        cout << "За такое вас могут посадить !" << endl;
    }
    else
    if ( de > balance )
    {
        de = 0;
        cout << "Запрошеная сумма превышает баланс" << endl;
    }
    else
        balance -= de;
}
 
int Account::getBalance()
{
    return balance;
}
 
void main()
{
    Account test1(0);
    Account test2(0);
    cout << "Привет !!!\n";
    int i=0, t1, t2;
    int input;
    
    while ( true )
    {
        cout <<"Выберите один пункт из меню : " << endl;
        cout << "1) Внести сумму на счет\r\n";
        cout << "2) Снять сумму со сщета\r\n";
        cout << "3) Посмотреть баланс\r\n";
        cout << "Выход - любой символ\r\n";
        cin >> input;
        switch( input )
        {
        case 1 : 
            cout << "Введите суму на счет № 1 : ";
            cin >> t1;
            test1.credit( t1 );
            cout << "Введите суму на счет № 2 : ";
            cin >> t2;
            test2.credit( t2 );
            break;
        case 2 : 
            cout << "Введите суму которую хотите снять со счета № 1 : ";
            cin >> t1;
            test1.debit( t1 );
            cout << "Введите суму которую хотите снять со счета № 2 : ";
            cin >> t2;
            test2.debit( t2 );
            break;
        case 3 : 
            cout << "Сумма на счету № 1 ";
            cout << test1.getBalance();
            cout << endl;
            cout << "Сумма на счету № 2 ";
            cout << test2.getBalance();  
            cout << endl;
            break;
        default :
            cout << "\nНеверний ввод, введите числа от 1 до 3 или -1 чтоб закончить ввод " << endl;
            break;
        }
    }
    cout << "Конец";
    getch();
}
спасибо и тебе, сейчас буду разбирать что нового или что поправил ) но с перегрузкой оператора выводу или что у тебя там я не дружу пока ) понимаю но ... )
Yandex
Объявления
28.06.2011, 22:20     Как изменить условие
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru