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

Определение времени года по месяцу - C++

Восстановить пароль Регистрация
 
Alexisando
Сообщений: n/a
09.11.2012, 17:01     Определение времени года по месяцу #1
Народ помогите кто знает язык.
Нужно написать программу: "Определение времени года по месяцу".
Очень нужно, заранее благодарен.
П.с. в аудиториях работаем на Visual Studio 2006 (просто думаю что на разных версиях пишутся немного по разному..)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StanislavUA
 Аватар для StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
09.11.2012, 17:16     Определение времени года по месяцу #2
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
#include <iostream>
#include <string>
 
int main()
{
    system("chcp 1251");
 
    std::string season[4][3] =
    {
        {"Декабрь","Январь","Февраль"},
        {"Март","Апрель","Май"},
        {"Июнь","Июль","Август"},
        {"Сентябрь","Октябрь","Ноябрь"}
    };
 
    std::cout << "Введите месяц: ";
    std::string mounth;
    std::cin >> mounth;
 
    if(mounth == season[0][0] || mounth == season[0][1]
                              || mounth == season[0][2])
        std::cout << "Зимa\n";
    else if(mounth == season[1][0] || mounth == season[1][1]
                                   || mounth == season[1][2])
        std::cout << "Весна\n";
    else if(mounth == season[2][0] || mounth == season[2][1]
                              || mounth == season[2][2])
        std::cout << "Лето\n";
    else if(mounth == season[3][0] || mounth == season[3][1]
                                   || mounth == season[3][2])
        std::cout << "Осень\n";
    else std::cout << "Такого месяца нет.\n";
 
    system("pause");
}
Alexisando
Сообщений: n/a
09.11.2012, 17:23     Определение времени года по месяцу #3
StanislavUA, у меня возникло несколько вопросов:
1. когда я в аудитории проги писал, то писал вначале не #include<iostream>, а #include<iostream.h>, почему такая разница?
2.system("pause") - такой оператор мы не проходили, можно обойтись без него? Так же и с оператором string и system("chcp 1251").
Ryuk
 Аватар для Ryuk
179 / 177 / 33
Регистрация: 10.06.2011
Сообщений: 869
09.11.2012, 17:27     Определение времени года по месяцу #4
Alexisando, system("pause") нужен для того, что бы программа не закрывалась после выполнения

Почему неверно писать #include <iostream.h>?
ValeryS
Модератор
6375 / 4841 / 443
Регистрация: 14.02.2011
Сообщений: 16,044
09.11.2012, 17:30     Определение времени года по месяцу #5

Не по теме:

Цитата Сообщение от Alexisando Посмотреть сообщение
П.с. в аудиториях работаем на Visual Studio 2006
есть Visual Studio 6 Visual Studio 2003 Visual Studio 2005 Visual Studio 2008......


Цитата Сообщение от Alexisando Посмотреть сообщение
.system("pause") - такой оператор мы не проходили, можно обойтись без него?
не позволяет программе сразу закрыться, если без него программа отработает и сразу закроется
Цитата Сообщение от Alexisando Посмотреть сообщение
#include<iostream.h>,
старый стандарт
Цитата Сообщение от Alexisando Посмотреть сообщение
#include<iostream>,
новый стандарт шестерка по моему уже поддерживает
а
C++
1
#include<iostream.h>
начиная с Visual Studio 2008 даст ошибку
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
09.11.2012, 18:14     Определение времени года по месяцу #6
Цитата Сообщение от Alexisando Посмотреть сообщение
system("pause") - такой оператор мы не проходили, можно обойтись без него?
можно и нужно. По умолчанию программа консолька на божественной операционной системе windows выполняется с помощью т.н. DOS - режима ибо в этой замечательной операционной системе по умолчанию command line interface отсутствует. Он (интерфейс) либо загружается в "безопасном" режиме с поддержкой command line, либо эмулируется dos - эмулятором, он же cmd.exe. Дальше. Программа консолька, если ее запускать крысой, будет выполнена с помощью cmd.exe и после ее выполнения окошко с досом умрет. Для того чтобы увидеть результаты работы программы консольки для счастливый обладателей сногсшибательной операционной системы windows есть 2 варианта:
1. запускать программу из dos'а, т.е. сначала запустить cmd.exe, после с помощью команды "cd" переместить в нужный каталог и запустить программу консольку, либо же не перемещаться и задать абсолютный путь к исполняемой программе.
2. в конце своей программы предложить пользователю ввести символ. Это сгенерирует прерывание и заставит программу "уснуть" до тех пор пока пользователь не ткнёт носом в клаву.

Дальше. system("pause") заставит ОС вызвать её нативную программу имя которой pause.* (к сожалению не могу посмотреть формат, может это вообще скрипт), и находится она где-то в %SYSTEMROOT%. Таким образом код программы становится непереносимым на другие операционные системы (мелочь, но из деталей строятся космические станции...). Для того чтобы не стать "быдлом", "говнокодером", "быдлокодером" и т.п. надо понимать что вызов системных функций в коде программ должен быть обоснован и не вызывать их там где этого не требуется. Данный случай как раз и является тем случаем, где этого не требуется. Для генерации взятия символа из потока ввода есть стандартная функция языка Си - getchar() и метод объекта в языке С++ - std::sin.get(). Как-то так.
Yandex
Объявления
09.11.2012, 18:14     Определение времени года по месяцу
Ответ Создать тему
Опции темы

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