Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
15 / 15 / 8
Регистрация: 15.08.2013
Сообщений: 190
1

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

31.05.2016, 13:15. Показов 1422. Ответов 3
Метки нет (Все метки)

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;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2016, 13:15
Ответы с готовыми решениями:

Я написал расширение VS10, позволяющее скомпилировать проект так, чтобы его можно было запустить без NetFramework
Принцип действия, если кратко: импортирует в .exe те классы, которые используются. Компиляция...

Написал код, нужна критика и советы как можно было бы сделать лучше
Задание №2: Написать программу, копирующую элементы 2-х массивов размером 5 элементов каждый в один...

Правильно ли все решено и как можно было упростить программу?
Напишите программу, которая в последовательности натуральных чисел находит среднее арифметическое...

Как упростить эту программу, можно даже модуль убрать, чтоб 20 строк было?
uses graphABC; //Подключаем графический модуль const W = 800; H = 500;//Размеры...

3
Хитрая блондиночка $)
1464 / 979 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
31.05.2016, 13:18 2
Использовать массивы вместо switch()-ей.
1
15 / 15 / 8
Регистрация: 15.08.2013
Сообщений: 190
31.05.2016, 13:24  [ТС] 3
Hikari, о точно) благодарю)
0
21 / 7 / 3
Регистрация: 29.08.2014
Сообщений: 78
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;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2016, 14:46

Кажется написал ужасный код. Можно его как-то оптимизировать?
Решал одну задачку: Даны натуральное число n, целые числа x 1 , ..., x n (все числа попарно...

Подскажите как можно упростить этот код
Const isDebugMode = True Const newNameSh = &quot;CRMds&quot; Const ourBook = &quot;___CRnnnn_QA Estimation...

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

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


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

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

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