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

Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Конвертер текстового файла http://www.cyberforum.ru/cpp-beginners/thread439174.html
Добрый день!!! Простите за наглость... Помогите пожалуйста написать программу-конвертер текстовых файлов из dos в windows и обратно. С командной строки должно вводится направление /d или /w. Я очень мало в этом понимаю. Заранее спасибо!!!
C++ Проблема с libmms - ошибка при компиляции. Здравствуйте. Уже который день не могу разобраться с упомянутой в заголовке библиотекой, а именно: пишу примерно такой тестовый код #include <iostream> #include <libmms/mms.h> int main() { mms_t *stream; char mms_link="mms://audio.rfn.ru/radiorus/audio/710/90.asf"; stream=mms_connect(0, 0, mms_link, 128); http://www.cyberforum.ru/cpp-beginners/thread439169.html
C++ Привет. Как можна найти с даного примера умножение элементов массива с четными номерами?
#include "stdafx.h" #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <iostream> using namespace std; int main(int argc, _TCHAR* argv)
C++ Начало DEV С++
Здравствуйте, подскажите где ошибка? Задание Даны действительные числа х, у . Если х, у отрицательные то каждое значение заменить его модулем; если отрицательное только одно из них, то оба значения увеличить на 0.5; если оба значения не отрицательные и ни одно из них не принадлежат отрезку , то оба значения уменьшить в 10 раз; в остальных случаях х, у оставить без изменения. Решение ...
C++ Запись текста в файл http://www.cyberforum.ru/cpp-beginners/thread439138.html
Нужно составить прогрумма которая создает файл и записывает в него текст. Программа не записывает в файл текст после пробела, помогите пожалуйста. char name; char text; cout<<"vvedite put' i im9 faila:\n"; cin>>name; ofstream out(name); cout<<"vvedite text:\n"; cin>>text; out<<text; out.close();
C++ allocator std::map Подскажите вопрос, есть тестовое задание: Написать allocator для std::map, располагающий элементы контейнера последовательно в памяти. Подскажите где про это почитать и разъясните по-возможности, что это вообще такое (std::map я вкурсе что это контейнер и как с ним работать) в ступор вводит allocator подробнее

Показать сообщение отдельно
Purcell
0 / 0 / 0
Регистрация: 14.08.2013
Сообщений: 20
19.08.2013, 02:04     Решение всех упражнений из книги Р. Лафоре "Объектно-ориентированное программирование в С++"
Цитата Сообщение от Kins Посмотреть сообщение
Глава 4 Упражнение №5
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    int dd, mm, yy;
char ch;
////////////////////////////////////
struct date
{
    int day;
    int mon;
    int year;
};
///////////////////////////////////
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "");
    cout <<"Введите дату потипу: dd/mm/yyyy ";
    cin >>dd >>ch >>mm >>ch >>yy;
    date a1 ={dd, mm, yy};
    cout <<a1.day <<ch <<a1.mon <<ch <<a1.year <<endl;
    system ("pause");


Добавлено через 1 минуту
[/CPP][/SPOILER]
Не сочтите моё замечание за занудство=) Но что выдаст данное решение, если пользователь введёт "89/701/-2013"? Вот мой вариант, учитывающий реальное количество дней в месяце и так далее вплоть до количества дней в феврале в високосных годах.

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
// 05.cpp
// ввод даты и её вывод с использованием структур
 
# include <iostream>
 
using namespace std;
///////////////////////////////////////////////
struct date
{
    int day;
    int month;
    int year;
};
///////////////////////////////////////////////
int main()
{
    date userdate; // дата, введённая пользователем
 
    do             // пока пользователь не введёт корректный год
    {
        do         // пока пользователь не введёт корректный месяц
        {
            do     // пока пользователь не введёт корректный день месяца
            {
                cout << "Введите день месяца: ";
                cin >> userdate.day;
                if (userdate.day > 31)
                {
                    cout << "Ошибка! Дней в месяце не может быть больше 31." << endl;
                }
                if (userdate.day < 1)
                {
                    cout << "Ошибка! День не может быть нулём и ";
                    cout << "быть отрицательным числом." << endl;
                }
            }
            while (userdate.day < 1 || userdate.day > 31);
            cout << "Введите номер месяца: ";
            cin >> userdate.month;
            if (userdate.month > 12)
            {
                cout << "Ошибка! В году не может больше 12 месяцев." << endl;
            }
            if (userdate.month < 1)
            {
                cout << "Ошибка! Месяц не может быть нулём или ";
                cout << "отрицательным числом." << endl;
            }
            if ((userdate.month == 4 && userdate.day == 31) ||
                (userdate.month == 6 && userdate.day == 31) ||
                (userdate.month == 9 && userdate.day == 31) ||
                (userdate.month == 11 && userdate.day == 31))
            {
                cout << "Ошибка! В выбранном вами месяце не может быть";
                cout << " 31 день" << endl;
            }
            if (userdate.month == 2 && userdate.day > 29)
            {
                cout << "Ошибка! В феврале не может быть больше 29 дней" << endl;
            }
        }
        while (userdate.month < 1 || userdate.month > 12 ||
              (userdate.month == 4 && userdate.day == 31) ||
              (userdate.month == 6 && userdate.day == 31) ||
              (userdate.month == 9 && userdate.day == 31) ||
              (userdate.month == 11 && userdate.day == 31) ||
              (userdate.month == 2 && userdate.day > 29));
        cout << "Введите год: ";
        cin >> userdate.year;
        if (userdate.year < 0)
        {
            cout << "Ошибка! Год не может быть меньше нуля: слишком давно";
            cout << " это было=)" << endl;
        }
        if (((userdate.year % 4 != 0 && userdate.year % 100 != 0) ||
            (userdate.year % 400 != 0)) && userdate.month == 2 &&
            userdate.day == 29)
        {
            cout << "Ошибка! Вы ввели не високосный год, а у вас ";
            cout << "выбран февраль и 29-е число" << endl;
        }
    }
    while (userdate.year < 0 || (((userdate.year % 4 != 0 &&
           userdate.year % 400 != 0) || userdate.year % 400 != 0) &&
           userdate.month == 2 && userdate.day == 29));
 
    cout << "Ваша дата: " << userdate.day << "." << userdate.month << "."
    << userdate.year << endl;
    return 0;
}
Мой 2-й вариант: всё то же самое с теми же циклами, но они не вложены друг в друга, а идут друг за другом.
 
Текущее время: 11:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru