Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 153
1

Сравнение дат, не работает функция

03.06.2014, 23:38. Показов 2616. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребят, помогите пожалуйста исправить функцию.
Я должна сделать программу с таким заданием: Создать класс Triad (тройка чисел); определить метод сравнения триад.
Определить производный класс Date с полями: год, месяц и день. Определить полный набор
методов сравнения дат.

Моя программа правильно работает, что касается с числами.
Но последнюю функцию(сравнение дат) она не выполняет.
Помогите пожалуйста исправить это.

Вот моя программа.

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
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
class Triad
{
protected:
 
    int a;
    int b;
    int c;
 
public:
 
    void Init();
    void Sr1();
    void Print();
}TD;
 
class Date : public Triad
{
protected:
    int year1;
    int month1;
    int day1;
    int year2;
    int month2;
    int day2;
 
public:
 
    void Init1();
    void Init2();
    void Sr2();
}DT1;
 
void Triad::Init()
{
    cout << "Введите первое(a) число : ";
    cin >> a;
    cout << endl;
 
    cout << "Введите второе(b) число : ";
    cin >> b;
    cout << endl;
 
    cout << "Введите третье(c) число : ";
    cin >> c;
    cout << endl;
}
 
void Triad::Sr1()
{
    if (a<b) cout << "a<b"<< endl;
    if (a>b) cout << "a>b" << endl;
    if (a == b) cout << "a=b" << endl;
    if (a < c) cout << "a<c" << endl;
    if (a>c) cout << "a>c" << endl;
    if (a == c) cout << "a=c" << endl;
    if (c < b) cout << "c<b" << endl;
    if (c>b) cout << "c>b" << endl;
    if (c == b) cout << "c=b" << endl;
}
 
 
void Date::Init1()
{
    cout << endl;
    cout << "Введите количество лет : ";
    cin >> year1;
 
    cout << "Введите количество месяцев :";
    cin >> month1;
 
    cout << "Введите количество дней : ";
    cin >> day1;
 
    cout << endl << endl;
 
    cout << "Ваша дата : " << year1 << " год " << month1 << " мес. " << day1 << " дн. "<< endl;
}
 
void Date::Init2()
{
    cout << endl;
    cout << "Введите количество лет : ";
    cin >> year2;
 
    cout << "Введите количество месяцев :";
    cin >> month2;
 
    cout << "Введите количество дней : ";
    cin >> day2;
 
    cout << endl << endl;
 
    cout << "Ваша дата : " << year2 << " год " << month2 << " мес. " << day2 << " дн. " << endl;
}
 
void Date::Sr2()
{
    if (DT1.year1 > DT1.year2) cout << "Первая дата больше.";
    if (DT1.year1 == DT1.year2, DT1.month1 > DT1.month2) cout << "Первая дата больше.";
    if (DT1.year1 == DT1.year2, DT1.month1 == DT1.month2, DT1.day1 > DT1.day2) cout << "Первая дата больше";
 
    if (DT1.year2 > DT1.year1) cout << "Вторая дата больше.";
    if (DT1.year2 == DT1.year1, DT1.month2 > DT1.month1) cout << "Вторая дата больше.";
    if (DT1.year2 == DT1.year1, DT1.month2 == DT1.month2, DT1.day2 > DT1.day1) cout << "Вторая дата больше";
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "RUS");
    Triad TD;
 
    TD.Init();
    TD.Sr1();
    cout << endl;
 
    Date DT1,DT2,DT3;
 
    cout << "Введите первую дату: ";
    DT1.Init1();
    cout << "Введите вторую тату: ";
    DT1.Init2();
    cout << endl;
    DT1.Sr2();
    
 
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2014, 23:38
Ответы с готовыми решениями:

Условие макроса сравнение дат и времени работает не корректно.Как это исправить?
Sub Макрос_1() For i = 5 To Sheets(&quot;Ввод Данных&quot;).Range(&quot;A&quot; &amp; Rows.Count).End(xlUp).Row If...

Сравнение двух дат и вывод дат находящихся между ними
Здравствуйте! Тут такое дело, вводятся две определенные ДАТЫ в Edit1 и Edit2 в формате...

Почему функция Replace не работает при замене дат?
Добрый день! у меня возник вопрос: почему функция replace может неработать? суть в том, что...

Есть ли в VBA функция, позволяющая определить пересечение одного диапазона дат с другим диапазоном дат?
Привет Все! Задача такова: имеем 1 диапазон даты, например, 01.10.10-30.10.10 имеем 2 диапазон...

2
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
04.06.2014, 00:34 2
Условия типа такого работать не будут:
C++
1
if (DT1.year1 == DT1.year2, DT1.month1 > DT1.month2) cout << "Первая дата больше.";
Стоит прочитать про оператор запятая, а если требуется проверять одновременное выполнение двух и более условий, то объединять их надо с помощью оператора && (логическое И)
C++
1
if (DT1.year1 == DT1.year2 && DT1.month1 > DT1.month2) cout << "Первая дата больше.";
0
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 38
08.03.2017, 16:46 3
Уважаемый rura!
Если Вы ещё следите за этой статьёй и прочитаете моё сообщение, то у Вас ошибка в объявлении if else
алгоритма. Вы забыли выделить в {/} тело цикла.
P.S.
У меня была похожая задача, и я воспользовался Вашим кодом как основой.
Большое спасибо!
0
08.03.2017, 16:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2017, 16:46
Помогаю со студенческими работами здесь

Сравнение дат
Здравствуйте. Мне нужно получить разницу между датами, получаю я ее таким методом: public...

Сравнение дат
Как можно сравнить две даты? Есть два поля для ввода JTextField, в котором маска dd-mm-yyyy (день,...

Сравнение дат
Подскажите, пожалуйста, как можно сравнивать даты. У меня в таблице с пациентами есть колонка Дата...

Сравнение дат
Здравствуйте! Подскажите пожалуйста как сравнить 2 даты. Одну мы имеем, а вот вторую надо вводить...

Сравнение дат
у меня есть класс Дата, и 5 полей: год,месяц,день,час,минута. Я реализовал функции для сравнения...

Сравнение дат
Form1-&gt;ADOQuery1-&gt;Close(); Form1-&gt;ADOQuery1-&gt;SQL-&gt;Clear(); AnsiString zap3; zap3=&quot;Delete *...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru