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

Создать класс с именем Date - C++

Восстановить пароль Регистрация
 
ZiroyAX
0 / 0 / 0
Регистрация: 04.07.2014
Сообщений: 49
04.07.2014, 01:57     Создать класс с именем Date #1
Создайте класс Date, включающий в качестве элементов данных три информационных пункта: месяц (тип int), день (тип int) и год (тип int). Ваш класс должен меть конструктор с тремя параметрами для инициализации этих элементов данных. Для целей этого упражнения предположите, что данные для года и дня правильные, но проверьте, что значение месяца находится в диапазоне 1-12; если нет, устанавливайте месяц равным 1. Предусмотрите set и get функции для каждого элемента данных. Предусмотрите элемент-функцию displayDate, котороя выводит месяц, день и год, разделенные дробной чертой (/).

1) Подскажите, что нужно исправить) а то при выводе на экран появляются непонятные числа с минусом, откуда эти числа берутся, ума не приложу.
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
//Date.h
#include <iostream>
#include <string>
 
using std:: cout;
using std:: endl;
using std:: string;
 
 
class Date
{
    
private:
    int m; 
    int d; 
    int g; 
    
    
public:
    Date(int, int, int); 
    void setMes(int Mes); 
    void setDay(int Day);
    void setGod(int God);
    int getMes();
    int getDay();
    int getGod();
    int displayDate ();
    };

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
//Date.cpp
#include <iostream>
#include <string>
#include "Date.h"
 
using std:: cout;
using std:: endl;
using std:: string;
 
Date::Date(int, int, int) 
{
    setMes(m); 
    setDay(d);
    setGod(g);
    
}
 
 
void Date::setMes(int Mes)
{
    m = Mes;
}
 
void Date::setDay( int Day)
{
    d = Day;
    if ((Day >=1) && (Day<=12));
    else Day = 1;
}
 
void Date::setGod( int God )
{
     g = God;
}
 
 
 
int Date::getMes()
{
    return m;
}
 
int Date::getDay()
{
    return d;
}
 
int Date::getGod()
{
    return g;
}
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
//main
#include <iostream>
#include <string>
#include <conio.h>
#include "Date.h"
 
using std::cout;
using std::endl;
using std:: string;
 
int main ()
{
    setlocale ( LC_ALL, "Russian" );
 
    Date myDate(6, 4, 2014);
    
    
   
    
    cout << myDate.getMes() << "/" << myDate.getDay() << "/" << myDate.getGod() << endl;
    
    
 
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2014, 01:57     Создать класс с именем Date
Посмотрите здесь:

Создать класс Date – дата, содержащая поля: день, месяц, год. C++
Создать класс с именем ZARPLATA C++
C++ Создать класс Date
C++ Создать класс с именем BIBL
Создать класс Date C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Людвиг Бодмер
 Аватар для Людвиг Бодмер
212 / 209 / 70
Регистрация: 29.03.2013
Сообщений: 555
Завершенные тесты: 2
04.07.2014, 08:52     Создать класс с именем Date #2
ZiroyAX, определение конструктора класса в вашем случае должно выглядеть так:
C++
1
2
3
4
5
6
7
Date::Date(int m, int d, int g) 
{
    setMes(m); 
    setDay(d);
    setGod(g);
    
}
И по заданию надо же было проверять месяц, в не день. И функции displayDate() нет.
РустамКР
4 / 4 / 2
Регистрация: 02.02.2014
Сообщений: 65
04.07.2014, 10:52     Создать класс с именем Date #3
Эти функции заменить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Date::setDay( int Day)
{
    d = Day;
    
}
 
void Date::setMes( int Mes )
{
     m = Mes;
if(!((Mes>=1) && (Mes<=12)))
m=1;
}
Функция DisplayDate():
void DisplayDate();
void Date::DisplayDate(){
std::cout << myDate.getMes() << "/" << myDate.getDay() << "/" << myDate.getGod() << endl;
}
И че то не понял что за функция getch();
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
04.07.2014, 11:20     Создать класс с именем Date #4
Цитата Сообщение от РустамКР Посмотреть сообщение
что за функция getch()
MS Help в помощь
Gets a character from the console without echo.
int getch( void );
Return Value
Returns the character read. There is no error return.
Requirements:
Routine Required header
getch <conio.h>
Пользуемся для того, чтобы консоль не закрывалась,
пока не нажмем какую-нибудь клавишу на клавиатуре.
Donnerwetter
40 / 40 / 12
Регистрация: 04.02.2014
Сообщений: 144
04.07.2014, 11:31     Создать класс с именем Date #5
ZiroyAX, по условию задания Вы должны проверять диапазон при установке месяца, а вы делаете проверку при установке дня. Да и то через голову: сразу инициализируете, а потом делаете проверку. Логичнее будет так:

C++
1
2
3
4
5
6
7
void Date::setMes(int Mes)
{
    if (Mes>=1&&Mes<=12)
         m = Mes;
    else
         m = 1;
}
Ну а день, соответственно, сделайте просто d = Day
ZiroyAX
0 / 0 / 0
Регистрация: 04.07.2014
Сообщений: 49
04.07.2014, 11:57  [ТС]     Создать класс с именем Date #6
Всем спасибо, все получилось)
да хотелось побыстрее решить и лечь спать, вот и перепутал колонку день с месяцем а про дисплей вообще забыл
Yandex
Объявления
04.07.2014, 11:57     Создать класс с именем Date
Ответ Создать тему
Опции темы

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