Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Timurcpp
0 / 0 / 0
Регистрация: 01.03.2014
Сообщений: 36
1

Подскажите, как можно упростить/укоротить код - мини-калькулятора?

24.03.2014, 19:47. Просмотров 817. Ответов 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
#include <iostream>
using namespace std;
void main()
{
    char a, b, c, e, num;
    double first, second;
    int sum;
    cout<<"Please input the function: a[+], b[-], c[*] and e[/]"<<endl;
    cin>>num;
    if(num=='a'||num=='b'||num=='c'||num=='e'){switch(num)
    {case'a':
    cout<<"Please input the first and second digits and press ENTER:"<<endl;
    cin>>first>>second;
    cout<<"The ADD function sum is:"<<first+second<<endl;
    break;
    case'b':
    cout<<"Please input the first and second digits and press ENTER:"<<endl;
    cin>>first>>second;
    cout<<"The MINUS function sum is:"<<first-second<<endl;
    break;
    case'c':
    cout<<"Please input the first and second digits and press ENTER:"<<endl;
    cin>>first>>second;
    cout<<"The MULTIPLY function sum is:"<<first*second<<endl;
    break;
    case'e':
    cout<<"Please input the first and second digits and press ENTER:"<<endl;
    cin>>first>>second;
    cout<<"The DIVIDE function sum is:"<<first/second<<endl;
    break;
    }
    }
    system("pause");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2014, 19:47
Ответы с готовыми решениями:

Подскажите как можно упростить присвоение числе переменным?!
// 400.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include...

Написал Гороскоп . Подскажите как можно было его упростить?
#include &lt;cmath&gt; #include &lt;iostream&gt; using namespace std; int main() { int x , year; cout...

Как можно укоротить....
Как можно укоротить код? Дан массив из 5 ячеек, потом надо ввести 5 чисел которые поместятся...

Как укоротить код?
У меня есть отдельный класс для логирования, он используется в других классах, выглядит это так: ...

Можно ли упростить код?
Есть последовательность тестов, можно ли сделать так, что бы каждый раз не писать if(бла бла бла)...

6
mustimur
268 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
24.03.2014, 19:58 2
Лучший ответ Сообщение было отмечено Timurcpp как решение

Решение

Код проще некуда у Вас, но куча повторений одного и того же. Можно так:
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
#include <iostream>
using namespace std;
int main()
{
    char a, b, c, e, num;
    double first, second;
    int sum;
    cout<<"Please input the function: a[+], b[-], c[*] and e[/]"<<endl;
    cin>>num;
    if(num=='a'||num=='b'||num=='c'||num=='e')
    {   
        cout<<"Please input the first and second digits and press ENTER:"<<endl;
        cin>>first>>second;
        switch(num)
        {
        case'a':
            cout<<"The ADD function sum is:"<<first+second<<endl; break;
        case'b':
            cout<<"The MINUS function sum is:"<<first-second<<endl; break;
        case'c':
            cout<<"The MULTIPLY function sum is:"<<first*second<<endl;  break;
        case'e':
            cout<<"The DIVIDE function sum is:"<<first/second<<endl; break;
        }
    }
    system("pause");
    return 0;
}
1
Arigato
Программист
281 / 178 / 176
Регистрация: 05.12.2013
Сообщений: 683
Записей в блоге: 5
24.03.2014, 19:59 3
Выше ответили...
0
Man2201
75 / 75 / 4
Регистрация: 25.04.2010
Сообщений: 296
24.03.2014, 20:01 4
Лучший ответ Сообщение было отмечено Timurcpp как решение

Решение

Поскольку все операции бинарные, то можно повторяющийся код считывания значений вынести из switch
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
#include <iostream>
using namespace std;
void main()
{
    char a, b, c, e, num;
    double first, second;
    int sum;
    cout<<"Please input the function: a[+], b[-], c[*] and e[/]"<<endl;
    cin>>num;
    if(num=='a'||num=='b'||num=='c'||num=='e')
    {
    cout<<"Please input the first and second digits and press ENTER:"<<endl;
    cin>>first>>second;
    switch(num)
    {case'a':
    cout<<"The ADD function sum is:"<<first+second<<endl;
    break;
    case'b':
    cout<<"The MINUS function sum is:"<<first-second<<endl;
    break;
    case'c':
    cout<<"The MULTIPLY function sum is:"<<first*second<<endl;
    break;
    case'e':
    cout<<"The DIVIDE function sum is:"<<first/second<<endl;
    break;
    }
    }
    system("pause");
}
... не успел))
0
mustimur
268 / 222 / 72
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
24.03.2014, 20:05 5
Man2201,

Не по теме:

Я тоже на это нарывался мне тут про песню Modern Tallking You Can win the race :) напоминали

0
Man2201
75 / 75 / 4
Регистрация: 25.04.2010
Сообщений: 296
25.03.2014, 01:20 6
mustimur,

Не по теме:

Та да, песня в тему)) Только на самом деле то гонки никакой и нет, просто желание помочь новичку

0
mustimur
25.03.2014, 06:27     Подскажите, как можно упростить/укоротить код - мини-калькулятора?
  #7

Не по теме:

Man2201,согласен :friends: на 200%

0
25.03.2014, 06:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 06:27
Привет! Вот еще темы с ответами:

Записать целое число буквами (можно ли упростить код?)
Здравствуйте помогите упростить код. Условие: Напишите программу которая вводит целое число, не...

Как упростить код
Все работает, все компилируется... Можно как нибудь упростить код, сделать его более грамотным с...

Как можно упростить условие?
if ((student.exam == 3 &amp;&amp; sum == 14) || (student.exam == 4 &amp;&amp; sum / 4 == 19) || (student.exam == 5...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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