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

Написал Гороскоп . Подскажите как можно было его упростить? - C++

Восстановить пароль Регистрация
 
MRG_Serejka
10 / 10 / 3
Регистрация: 15.08.2013
Сообщений: 146
Завершенные тесты: 2
31.05.2016, 13:15     Написал Гороскоп . Подскажите как можно было его упростить? #1
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
137
138
139
140
141
142
143
#include <cmath>
#include <iostream>
using namespace std;
 
int main()
{
int x , year;
    cout << "Справка по месяцам: \n"; 
    cout << "1. Январь \n";
    cout << "2. Февраль \n";
    cout << "3. Март. \n";
    cout << "4. Апрель \n";
    cout << "5. Май \n";
    cout << "6. Июнь \n";
    cout << "7. Июль \n";
    cout << "8. Август \n";
    cout << "9. Сентябрь \n";
    cout << "10.Октябрь \n";
    cout << "11.Ноябрь \n";
    cout << "12.Декабрь \n";
 
    cout << "Введите число от (1 до 12): " ;
 
    cin >> x;
 
switch(x)
    {
    case 1:
    cout<< "Козерог \n";
    break;
    case 2:
        cout<< "Водолей  \n";
        break;
    case 3:
        cout<< "Рыба \n";
        break;
    case 4:
        cout<< "Овен  \n";
        break;
    case 5:
        cout<< "Телец \n";
        break;
    case 6:
        cout<< "Близнецы \n";
        break;
    case 7:
        cout<< "Рак \n";
        break;
    case 8:
        cout<< "Лев \n";
        break;
    case 9:
        cout<< "Дева \n";
        break;
    case 10:
        cout<< "Весы \n";
        break;
    case 11:
        cout<< "Cкорпион \n";
        break;
    case 12:
        cout<< "Стрелец \n";
        break;
    }
    
 
char s = (x>=1 && x<=12);
switch(s)
{
         case true:
        {
           break;
        }
        case false:
        {
        cout<<"Ошибка";
        break;
        return 0;
        }
}
 
cout << "\n";
cout << "Введите год:(от 1900 до 2050) ";
 
cin >> year;
 
char c = (year>=1900 && year<=2050);
switch(c)
{
     case true:
    {
           break;
    }
    case false:
        {
        cout<<"Ошибка";
        return 0;
        }
}
 
 
switch(year %12)
    {
        case 0:
            cout << "Обезъяна \n" ;
            break;
        case 1:
            cout << "Петух " ;
            break;
    case 2:
            cout << "Собака \n" ;
            break;
        case 3:
            cout << "Cвинья (Кабан) " ;
            break;
 
    case 4:
            cout << "Крыса \n" ;
            break;
        case 6:
            cout << "Бык " ;
            break;
    case 5:
            cout << "Тигр \n" ;
            break;
        case 7:
            cout << "Кот (Кролик) " ;
            break;
    case 8:
            cout << "Дракон \n" ;
            break;
        case 9:
            cout << "Змея " ;
            break;
    case 11:
            cout << "Лошадь \n" ;
            break;
    case 12:
            cout << "Коза (Овца) \n" ;
            break;
    }
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2016, 13:15     Написал Гороскоп . Подскажите как можно было его упростить?
Посмотрите здесь:

Как можно упростить программу?(или подкорректировать) C++
Создать массив с нулями и единицами в шахматном порядке, что бы его размер можно было вводить с клавиатуры C++
создать массив с нулями и единицами в шахматном порядке, что бы его размер можно было вводить с клавиатуры C++
C++ Подскажите, как можно упростить/укоротить код - мини-калькулятора?
C++ Что объявить в классе-контейнере, чтобы его можно было перебирать поэлементно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hikari
Хитрая блондиночка $)
 Аватар для Hikari
1336 / 899 / 272
Регистрация: 21.12.2015
Сообщений: 3,608
31.05.2016, 13:18     Написал Гороскоп . Подскажите как можно было его упростить? #2
Использовать массивы вместо switch()-ей.
MRG_Serejka
10 / 10 / 3
Регистрация: 15.08.2013
Сообщений: 146
Завершенные тесты: 2
31.05.2016, 13:24  [ТС]     Написал Гороскоп . Подскажите как можно было его упростить? #3
Hikari, о точно) благодарю)
Whoops
 Аватар для Whoops
4 / 4 / 0
Регистрация: 29.08.2014
Сообщений: 59
Завершенные тесты: 1
31.05.2016, 14:46     Написал Гороскоп . Подскажите как можно было его упростить? #4
И на будущее,если без switch не обойтись,то не стоит отдельно делать проверку на введённый символ.Если введена не предусмотренная команда,то это можно просто описать в default'e.
Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char ch; cin >> ch;
switch (ch){
    case '1':{
                 std::cout << "1" <<  std::endl;
                 break;
    }
    case '2':{
                 std::cout << "2" << std::endl;
                 break;
    }   
    default:{
                std::cout << "Ошибка" << std::endl;
        }
    }
 
    return 0;
}
Yandex
Объявления
31.05.2016, 14:46     Написал Гороскоп . Подскажите как можно было его упростить?
Ответ Создать тему
Опции темы

Текущее время: 00:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru