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

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

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

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

04.07.2014, 01:57. Просмотров 584. Ответов 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 (C++):

Создать класс Date - C++
Задача заключается в том что нужно создать класс Date. Поля класса год, месяц, день. Реализовать метод вычисления даты через заданное...

Создать класс Date - C++
Товарищи программисты! Смиренно прошу о помощи, ибо не понимаю я си++ , а осталось пару дней до сдачи практических заданий. Кому не сложно...

Класс: Создать класс с именем MARSH - C++
Всем привет! Есть условие задачи: 1. Создать класс с именем MARSH, содержащий следующие поля: • название начального пункта...

Создать класс Date, который может выводить даты в формате DD YYYY и MM/DD/YY - C++
помогите создать класс Date, который может выводить даты в формате DD YYYY и MM/DD/YY. Создайте конструктор Date, который читает...

Создать класс Date – дата, содержащая поля: день, месяц, год. - C++
Создать класс Date – дата, содержащая поля: день, месяц, год. Определить операторы &quot;+&quot; и &quot;-&quot;, как методы класса, а &quot;++&quot; и &quot;--&quot; в обеих...

Создать класс с именем BIBL - C++
Создать класс с именем BIBL, содержащий следующие поля: • фамилию и инициалы автора; • название книги; • год издания; • количество...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Людвиг Бодмер
343 / 340 / 131
Регистрация: 29.03.2013
Сообщений: 846
Завершенные тесты: 4
04.07.2014, 08:52 #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() нет.
РустамКР
5 / 5 / 2
Регистрация: 02.02.2014
Сообщений: 77
04.07.2014, 10:52 #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
Модератор
Эксперт С++
6368 / 5932 / 1923
Регистрация: 18.12.2011
Сообщений: 15,240
Завершенные тесты: 1
04.07.2014, 11:20 #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 #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
Сообщений: 93
04.07.2014, 11:57  [ТС] #6
Всем спасибо, все получилось)
да хотелось побыстрее решить и лечь спать, вот и перепутал колонку день с месяцем а про дисплей вообще забыл
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2014, 11:57
Привет! Вот еще темы с ответами:

Создать класс с именем ZARPLATA - C++
№1. 1. Создать класс с именем ZARPLATA, содержащий следующие поля: • табельный номер; • фамилия И.О. работника; • оплата за один...

Создать класс с именем time - C++
Я в программировинии (более-менее знаю только Turbo Pascal) ещё совсем профан, в универе задание дали написать программу на ООП, т.е. С++,...

Создать класс Date для работы с датами в формате «год.месяц.день» - C++
Создать класс Date для работы с датами в формате «год.месяц.день». Дата представляется структурой с тремя полями типа unsigned int: для...

Создать класс Triad (тройка чисел) - определить методы; определить производный класс Date - переопределить методы - C++
Создать класс Triad (тройка чисел); определить методы увеличения полей на 1. Определить производный класс Date с полями: год, месяц и день....


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.07.2014, 11:57
Ответ Создать тему
Опции темы

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