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

Написать функцию, которая получает дату и выводит название праздника - C++

Восстановить пароль Регистрация
 
itel
0 / 0 / 0
Регистрация: 07.07.2014
Сообщений: 27
17.07.2014, 00:23     Написать функцию, которая получает дату и выводит название праздника #1
Написать функцию, которая получает дату (день, месяц) и выводит название праздника, выпадающего на этот день (например, 7.01 - Рождество, 9.05 - День Победы). Запрограммировать реакцию программы на 4 - 5 праздников.

Не успеваю совсем, помогите плз
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.07.2014, 00:23     Написать функцию, которая получает дату и выводит название праздника
Посмотрите здесь:

Написать функцию, которая получает значение типа float и возвращает две строки: одна представляет вещественное число в обычном виде ,а другая C++
C++ Задача через функцию (составить программу, которая по данному числу (1-12) выводит название соответствующего ему месяца)
C++ Написать программу, которая получает десять чисел и выводит их в консоль в виде шестиугольника, в середине которого отображается сумма всех этих чисел
C++ Написать программу, которая получает трехзначное число, “переворачивает” его и выводит результат в консоль
C++ Написать программу, которая получает два трехзначных числа, меняет у них местами средние цифры и выводит результат в консоль
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kukurudza
104 / 85 / 6
Регистрация: 29.08.2012
Сообщений: 539
17.07.2014, 07:05     Написать функцию, которая получает дату и выводит название праздника #2
мапу заведи, где ключ это порядковый номер дня в году, а значение это название праздника. напиши функцию, которая переводит месяц и день в порядковый день года, не забудь что в феврале 29 дней.
rep plz
Заблокирован
05.07.2015, 11:57     Написать функцию, которая получает дату и выводит название праздника #3
У меня почти такой же вопрос. Только все даты находятся в значениях case. Что такое мапа не знаю. Алгоритм придумал, но не знаю как от системной даты в формате день недели_месяц_число_время_год оставить только число
bogdan_017
 Аватар для bogdan_017
21 / 21 / 11
Регистрация: 18.03.2014
Сообщений: 147
06.07.2015, 00:37     Написать функцию, которая получает дату и выводит название праздника #4
как вариант, если не использовать контейнеры STL (тот же "мапа"), можно самому организовать что-то типо массива структур (надеюсь структуры вы уже знаете), где первый элемент структуры - число, а второй - месяц. Далее имеем что-то типо:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct Date {
int date;
int month;
} year; //условно
 
//далее инициализируем структуру/несколько структур начальными значениями
 
//проверка выглядит примерно так:
if (year->day==9)
    if (year->month==5) cout<<" День Победы";
 
if (year->day==1) 
    if (year->month==1) cout<<"Happy New Year";
Вот. Что-то типо такого. Вариант решения конечно не идеальный, но для начинающего может иметь место.

П.С. преимущества STL неоспоримы
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
06.07.2015, 04:25     Написать функцию, которая получает дату и выводит название праздника #5
C++
1
2
3
4
5
6
7
8
9
10
11
int holidays[7][2]={{1,1},{23,2},{8,3},{1,5},{9,5},{12,6},{4,7}};
char names[7][32]={"Новый год","День Защитника","Женский День","Первомай","День Победы","День Росии",
"День Единства"};
int d,m;
cin>>d>>m;
for(int i=0;i<7;i++)
   if(d==holidays[i][0] && m=holidays[i][1])
   {
        cout<<names[i]<<endl;
        break;
   }
rep plz
Заблокирован
06.07.2015, 07:39     Написать функцию, которая получает дату и выводит название праздника #6
bogdan_017, zss, спасибо. я уже сделал так:
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
#include <iostream>
#include <time.h>
#include <string.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian"); //подключаем русский язык
    time_t rawtime;
    struct tm * timeinfo;
 
    string stroka;
    stroka =
    cout << stroka;
 
    int timemonth; //вводим переменную "число месяца" для сравнения со значением case
    time (&rawtime); //запрашиваем системные дату и время
    timeinfo = localtime (&rawtime); //запрашиваем системные дату и время
    cout << "Текущая дата: " << asctime(timeinfo); //выводим системные дату и время
    timemonth = timeinfo->tm_mday; //переводим дату и время в "число месяца"
    //cout << value1 << endl; // проверяем значение в памяти
 
    switch (timemonth)
    {
        case 0:
            cout << "Ничего не найдено по запросу" << endl;
            break;
 
        case 1:
            cout << "__.__.____ year - den rozhdeniya ________________" << endl;
            break;
 
        case 2:
            cout << "2.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 3:
            cout << "3.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 4:
            cout << "4.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 5:
            cout << "5.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 6:
            cout << "6.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 7:
            cout << "7.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 8:
            cout << "8.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 9:
            cout << "9.05.1945 year - Victory days!" << endl;
            break;
 
        case 10:
            cout << "10.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 11:
            cout << "11.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 12:
            cout << "12.07.1952 year - den rozhdeniya _________________" << endl;
            break;
 
        case 13:
            cout << "13.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 14:
            cout << "14.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 15:
            cout << "15.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 16:
            cout << "16.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 17:
            cout << "17.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 18:
            cout << "18.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 19:
            cout << "19.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 20:
            cout << "20.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 21:
            cout << "21.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 22:
            cout << "22.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 23:
            cout << "23.03.____ year - den rozhdeniya ______________" << endl;
            cout << "23.09.____ year - den rozhdeniya ______________" << endl;
            break;
 
        case 24:
            cout << "24.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 25:
            cout << "25.06._____ year - den rozhdeniya ___________" << endl;
            break;
 
        case 26:
            cout << "26.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 27:
            cout << "27.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 28:
            cout << "28.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 29:
            cout << "29.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 30:
            cout << "30.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 31:
            cout << "31.12.1950 year - den rozhdeniya _________________" << endl;
            break;
 
        default:
            cout << "Not found number!" << endl;
            break;
 
 
    }
 
    int value; //вводим переменную дату вводимую пользователем
 
    cout << "Здравствуйте, Владимир Анатольевич" << endl;
    cout << "Введите дату (1-31) :" << endl;
    cin >> value;
 
    switch (value)
    {
        case 0:
            cout << "Ничего не найдено по запросу" << endl;
            break;
 
        case 1:
            cout << "1.04.1927 year - den rozhdeniya Dmitrieva Zinaida" << endl;
            break;
 
        case 2:
            cout << "2.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 3:
            cout << "3.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 4:
            cout << "4.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 5:
            cout << "5.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 6:
            cout << "6.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 7:
            cout << "7.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 8:
            cout << "8.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 9:
            cout << "9.05.1945 year - Victory days!" << endl;
            break;
 
        case 10:
            cout << "10.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 11:
            cout << "11.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 12:
            cout << "__.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 13:
            cout << "13.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 14:
            cout << "14.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 15:
            cout << "15.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 16:
            cout << "16.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 17:
            cout << "17.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 18:
            cout << "18.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 19:
            cout << "19.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 20:
            cout << "20.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 21:
            cout << "21.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 22:
            cout << "22.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 23:
            cout << "23.__.____ year - den rozhdeniya ______________" << endl;
            cout << "23.__.____ year - den rozhdeniya ______________" << endl;
            break;
 
        case 24:
            cout << "24.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 25:
            cout << "__.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 26:
            cout << "26.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 27:
            cout << "27.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 28:
            cout << "28.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 29:
            cout << "29.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 30:
            cout << "30.__.____ year - den rozhdeniya _________________" << endl;
            break;
 
        case 31:
            cout << "31.12.1950 year - den rozhdeniya _________________" << endl;
            break;
 
        default:
            cout << "Not found number!" << endl;
            break;
 
 
    }
    return 0;
}
bogdan_017
 Аватар для bogdan_017
21 / 21 / 11
Регистрация: 18.03.2014
Сообщений: 147
06.07.2015, 08:41     Написать функцию, которая получает дату и выводит название праздника #7
rep plz, психанул
rep plz
Заблокирован
06.07.2015, 09:57     Написать функцию, которая получает дату и выводит название праздника #8
bogdan_017,
типа того)) на самом деле у меня было всего 2 вариант. копи пасте структуру switch, ибо она была уже написана. второй вариант с циклом for, но я не смог пока разобраться как сверить значение timemonth со значением case. а идея была цикл for с условием входа counter <=31 и сверять с case, когда будет ровно то break
а и еще не смог разобраться как с помощью string скопировать строку целиком. почему-то не работает это место, сейчас как раз бьюсь с ним
C++
1
2
3
string stroka;
    stroka =
    cout << stroka;
какое бы значение не присваивал stroka ничего не выводит. не знаете почему?
bogdan_017
 Аватар для bogdan_017
21 / 21 / 11
Регистрация: 18.03.2014
Сообщений: 147
06.07.2015, 14:13     Написать функцию, которая получает дату и выводит название праздника #9
rep plz,
У меня все выводит (проверял в C++Builder 6):
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream.h>
int main()
{
        string a="Hello world\n";
 
        cout<<a;
 
        system("pause");
        return 0;
}
Можно сделать и так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream.h>
int main()
{
        string a;
 
        a="Hello world\n";
 
        cout<<a;
 
        system("pause");
        return 0;
}
Но первый случай по производительности лучше.
AlexVRud
413 / 142 / 36
Регистрация: 04.07.2014
Сообщений: 413
06.07.2015, 15:46     Написать функцию, которая получает дату и выводит название праздника #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <utility>
#include <map>
#include <string>
#include <iostream>
 
typedef std::pair<int,int> MD;
 
static std::map<MD, std::string> holidays = {
  {std::make_pair(1, 1), std::string("New Year")},
  {std::make_pair(1, 2), std::string("New Year")},
};
 
std::string getHoliday(int m, int d) {
  MD key = std::make_pair(m,d);
  return (holidays.count(key) > 0) ? holidays[key] : std::string("Not");
}
 
int main() {
  std::cout << "1,1: " << getHoliday(1,1) << std::endl;
  std::cout << "1,2: " << getHoliday(1,2) << std::endl;
  std::cout << "1,3: " << getHoliday(1,3) << std::endl;
  return 0;
}
rep plz
Заблокирован
06.07.2015, 20:40     Написать функцию, которая получает дату и выводит название праздника #11
bogdan_017, у меня code::block в чем проблема не знаю :/ вы им не пробовали пользоваться? а то у меня по нему еще пара вопросов есть...
AlexVRud, у вас слишком сложно. я кроме int, return и скобочек в вашем коде больше ничего не понимаю. словно на китайском пытаюсь прочесть

Добавлено через 1 минуту
bogdan_017, а чем лучше, если строчек больше?? а есть вообще спец проги которые определяют какой код более производителен?
bogdan_017
 Аватар для bogdan_017
21 / 21 / 11
Регистрация: 18.03.2014
Сообщений: 147
06.07.2015, 22:42     Написать функцию, которая получает дату и выводит название праздника #12
rep plz, code::block никогда не использовал, начинал в Borland C++, затем перешел на C++Builder 6, сейчас Qt осваиваю.
Цитата Сообщение от rep plz Посмотреть сообщение
а чем лучше, если строчек больше??
чем меньше строчек кода, тем лучше проще для понимания и вам, и преподу/учителю/другу/будущему поколению.
Цитата Сообщение от rep plz Посмотреть сообщение
а есть вообще спец проги которые определяют какой код более производителен?
Ну обычно тестировщики тесты пишут в больших программах. В маленьких ты сам себе определяешь и тестируешь. Можно, например, таймер поставить. "Старт" в момент старта основного алгоритма, "Финиш" - соответственно в момент окончания. Затем смотришь время работы, сравниваешь, делаешь выводы. Но встречный вопрос, смысл над этим заморачиваться в маленьких программах? Ведь на современных ПК разница в пару килобайт или даже мегабайт ОЗУ не особо критична.
Nkey
308 / 61 / 10
Регистрация: 21.12.2011
Сообщений: 267
07.07.2015, 04:25     Написать функцию, которая получает дату и выводит название праздника #13
rep plz, AQtime, TrueTime

И с case определение праздника - не красиво, в том плане, как вы написали.
Проще было использовать, как написал zss
rep plz
Заблокирован
07.07.2015, 20:44     Написать функцию, которая получает дату и выводит название праздника #14
Nkey,
как написал zss мне вообще непонятно. есть подозрение что в скобках используются массивы, но я их еще не изучал
Nkey
308 / 61 / 10
Регистрация: 21.12.2011
Сообщений: 267
08.07.2015, 00:46     Написать функцию, которая получает дату и выводит название праздника #15
rep plz, да, там массивы. Неплохо было бы изучить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2015, 08:08     Написать функцию, которая получает дату и выводит название праздника
Еще ссылки по теме:

Написать программу, которая предлагает пользователю ввести дату в формате YYYY MM DD и выводит в консоль, следующую за ней дату C++
C++ Написать программу, которая предлагает пользователю ввести дату в формате YYYY MM DD и выводит в консоль, следующую за ней дату
Написать программу, которая запрашивает натуральной число (от 0 до 99) в десятичном представлении и выводит его название C++

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

Или воспользуйтесь поиском по форуму:
rep plz
Заблокирован
08.07.2015, 08:08     Написать функцию, которая получает дату и выводит название праздника #16
Nkey, займусь этим, страниц через 79
Yandex
Объявления
08.07.2015, 08:08     Написать функцию, которая получает дату и выводит название праздника
Ответ Создать тему
Опции темы

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