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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ZiroyAX
0 / 0 / 2
Регистрация: 04.07.2014
Сообщений: 76
#1

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

04.07.2014, 01:57. Просмотров 521. Ответов 5
Метки нет (Все метки)

Создайте класс 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
Посмотрите здесь:

Создать класс с именем time C++
Создать класс Date – дата, содержащая поля: день, месяц, год. C++
Создать класс с именем ZARPLATA C++
Помогите создать класс с именем ZARPLATA C++
C++ Создать класс Date
Создать класс, допустим, с именем Number C++
C++ конструкторы, деструкторы(Создать класс с именем ZNAK)
C++ Создать класс с именем BIBL
Создать класс Date C++
C++ Создать класс Date для работы с датами в формате «год.месяц.день»
Создать класс Date, который может выводить даты в формате DD YYYY и MM/DD/YY C++
Класс: Создать класс с именем MARSH C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Людвиг Бодмер
 Аватар для Людвиг Бодмер
265 / 262 / 94
Регистрация: 29.03.2013
Сообщений: 685
Завершенные тесты: 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
Сообщений: 72
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
6110 / 5713 / 1849
Регистрация: 18.12.2011
Сообщений: 14,590
Завершенные тесты: 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 / 2
Регистрация: 04.07.2014
Сообщений: 76
04.07.2014, 11:57  [ТС]     Создать класс с именем Date #6
Всем спасибо, все получилось)
да хотелось побыстрее решить и лечь спать, вот и перепутал колонку день с месяцем а про дисплей вообще забыл
Yandex
Объявления
04.07.2014, 11:57     Создать класс с именем Date
Ответ Создать тему
Опции темы

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