|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.05.2009, 15:59 | #1 |
Пользователь
Регистрация: 12.05.2008
Сообщений: 13
|
Задача на классы, перегрузка операторов [C++]
1. Создать класс для хранения календарных дат. Обеспечить возможность работы с датами в раз-личных форматах, изменения даты на заданное количество дней. Перегрузить операцию «–» для нахождения разности дат и операции сравнения. Для класса определить оператор <<. Стан-дартные функции и типы С для работы с датами не использовать.
2. Переопределить операции << и >> для ввода-вывода объектов класса data. Вот, собственно, что у меня получилось: Код:
|
22.05.2009, 19:34 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Особо не вникал. И там, где я указал, еще нужно доработать для 3-го варианта:
Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
22.05.2009, 23:09 | #3 |
Пользователь
Регистрация: 12.05.2008
Сообщений: 13
|
Все бы хорошо было бы, если программа не зависала в момент ввода даты, исходя от выбранного формата. Вот после этого условного ветвления:
Код:
Код:
Код:
|
22.05.2009, 23:18 | #4 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Вот пример ввода: Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
23.05.2009, 09:35 | #5 |
Пользователь
Регистрация: 12.05.2008
Сообщений: 13
|
Первый вариант ввода даты, где дата разделяется пробелами - тестовый. В нем введные данные записываются в переменные, которые потом передаются в конструктор.
Код:
Код:
|
23.05.2009, 12:40 | #6 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
Сделайте такую главную функцию: Код:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
23.05.2009, 13:23 | #7 |
Пользователь
Регистрация: 12.05.2008
Сообщений: 13
|
Спасибо, разобрался Всего-то нужно было написать строчку getchar(); перед вводом данных в форматированном виде. А вообще, почему программа зависает, если не использовать функцию getchar()? По идее, это функцию используют перед нажатием клавиши ENTER чтоб консоль не закрывалась раньше времени.
|
23.05.2009, 13:25 | #8 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
getchar считывает один символ. Просто после ввода даты в буфере остается символ перевода строки ('\n'), который успешно считывается в следующем выражении. Поэтому от него нужно избавиться. Вместо getchar можно также просто очистить буфер - _flushall().
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
25.05.2009, 15:10 | #9 |
Пользователь
Регистрация: 12.05.2008
Сообщений: 13
|
В дополнении к этому классу я переопределил операцию " - " для нахождения разности дат. Вот сам код оператора (прототип приводить не буду):
Код:
Может уже есть готовые функции для работы с датами? Там в любом случае наверно есть вычисление разности дат. Вот код бы сравнить с моим. Последний раз редактировалось Roomper; 25.05.2009 в 15:16. |
25.05.2009, 16:36 | #10 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
У меня ругается на неизвестные идентификаторы (MAR, APR...)/.
Кстати, у вас опечатка: Код:
Цитата:
http://www.cplusplus.com/reference/clibrary/ctime/ А еще лучше в справочнике Шилдта посмотрите.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача в Делфи, классы. | Катерина_Ио | Фриланс | 3 | 18.05.2009 14:10 |
Перегрузка операторов <<, >>, +=, +. class data | Наташенька | Общие вопросы C/C++ | 2 | 02.05.2009 10:04 |
Перегрузка операторов (С++) | Перчитель | Помощь студентам | 1 | 03.12.2008 18:46 |
Перегрузка операторов, Организация перегрузки операторов | chagin_yav | Помощь студентам | 2 | 12.05.2008 09:15 |