Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
#1

Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). - C++

28.11.2013, 22:22. Просмотров 2357. Ответов 22
Метки нет (Все метки)

Помогите пожалуйста написать программу на С++. Просто скоро курсовую сдавать, а классы мы еще не разобрали и не успеваем. Поэтому не знаю как писать(((. Вот:

Напишите конструктор, который может использовать текущее время, возвращаемое функцией time () — объявленной в заголовочном файле time.h стандартной библиотеки языка С, — для инициализации объекта класса Time.

Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 22:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). (C++):

Класс "Время". Двусмысленность между time и std:time(long*) - C++
Здравствуйте. Дали код, сказали есть проблема(скриншот): http://joxi.ru/12MxOENhw14QmJ Код: # include <iostream.h> # include...

Не могу разобраться с заданием "Создайте класс Time с конструкторами Time(), Time( int hour)......" - C++
/* Создайте класс Time с конструкторами Time(), Time( int hour), Time(int hour, int min), Time( int h, int m, int s) и ...

Неправильное возвращаемое значение функции time - C++
что за бардак мне time возвращает??? что типа щас 10 месяц, а год вообще 114 :D пишу так: time_t t; time(&t); tm tt; ...

Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно? - C++
Можно ли использовать конструктор по умолчанию и конструктор инициализации одновременно?

Как реализовать конструктор с параметрами для инициализации полей класса? - C++
Подскажите как реализовать конструктор с параметрами для инициализации полей класса.

Для объявления класса Time, описать реализацию функции - C++
Для объявления класса Time, описать реализацию функции. #ifndef TIME_H #define TIME_H using namespace std; class Time { ...

22
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:11  [ТС] #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
29
30
31
32
33
34
#include <iostream>
using namespace std;
class Time // имя класса
{
private:
    int hour, //часы
        minute, // минуты
        second; // секунды
public: 
    Time(int time_hour, int time_minute, int time_second ) // конструктор класса
    {
        setTime(time_hour, time_minute, time_second); // вызов функции установки времени
    }
    
    void setTime(int time_hour, int time_minute, int time_second) // установка времени
        // в формате чч.мм.сс
    {
        hour   = time_hour; // инициализация часы
        minute = time_minute; // инициализация минуты
        second  = time_second; // инициализация секунды
    }
    void getTime() // отобразить текущее время
    {
        cout << "time: " << hour << ":" << minute << ":" << second << endl;
    }
}; // конец объявления класса Time
 
int main()
{
    Time t(); // объявление объекта и инициализация элементов данных
    t.getTime(); // отобразить время
    
    return 0;
}
Но он не выводит время. Надо, чтобы выводилось текущее время. Как сделать? Помогите пожалуйста.
0
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:13 #3
C++
1
Time(int time_hour, int time_minute, int time_second )
У тебя конструктор класса выглядит так. А в функции мейн ты не передаешь ему никаких значений. Разумеется он не будет ничего выводить на экран.
0
aLarman
644 / 565 / 89
Регистрация: 13.12.2012
Сообщений: 2,111
Завершенные тесты: 1
05.12.2013, 13:13 #4
C++
1
Time t(); // объявление объекта и инициализация элементов данных
это вызов дефолтного конструктора который у Вас не определен, и вызывается версия которую сгенерил компилятор
0
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:16  [ТС] #5
то есть нужно написать так?
C++
1
 Time t(int time_hour, int time_minute, int time_second);
Но он пишет ошибку в строчке:
C++
1
t.getTime();
left of '.getTime' must have class/struct/union type
0
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:18 #6
Нужно написать
Time t(текущий_час, текущая_минута, текущая_текунда);

А текущее время можно взять из <ctime>
0
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:25  [ТС] #7
Так ошибка то у меня пишет в строчке
C++
1
 t.getTime();
0
aLarman
644 / 565 / 89
Регистрация: 13.12.2012
Сообщений: 2,111
Завершенные тесты: 1
05.12.2013, 13:29 #8
C++
1
2
3
4
5
6
7
8
9
Time()
{
time_t CurrentTime = time(NULL);
struct tm *timeinfo;
timeinfo=localtime(&CurrentTime);
hour = timeinfo->tm_hour;
minute = timeinfo->tm_min;
second = timeinfo->tm_sec;
}
Вот такой конструктор попробуйте
0
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:36  [ТС] #9
Все равно в этой строчке ошибка((( Если написать так:
C++
1
2
Time t(13,45,47); // объявление объекта и инициализация элементов данных
    t.getTime(); // отобразить время
Тогда выводит те числа, которые указаны в скобках. А нужно текущее время
0
aLarman
644 / 565 / 89
Регистрация: 13.12.2012
Сообщений: 2,111
Завершенные тесты: 1
05.12.2013, 13:39 #10
Цитата Сообщение от Monika23 Посмотреть сообщение
Time t();
да кстати я ошибся, тут вообще объявление ф-ции с именем t и типом возвращаемого значения Time
следует писать так
C++
1
2
3
4
5
6
7
int main()
{
    Time t; // объявление объекта и инициализация элементов данных
    t.getTime(); // отобразить время
    
    return 0;
}
0
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:39 #11
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
#include <iostream>
#include <ctime>
 
using namespace std;
 
class myTime // имя класса
{
private:
    int hour, //часы
        minute, // минуты
        second; // секунды
public:
    myTime(int time_hour, int time_minute, int time_second ) // конструктор класса
    {
        setTime(time_hour, time_minute, time_second); // вызов функции установки времени
    }
 
    void setTime(int time_hour, int time_minute, int time_second) // установка времени
        // в формате чч.мм.сс
    {
        hour   = time_hour; // инициализация часы
        minute = time_minute; // инициализация минуты
        second  = time_second; // инициализация секунды
    }
    void getTime() // отобразить текущее время
    {
        cout << "time: " << hour << ":" << minute << ":" << second << endl;
    }
}; // конец объявления класса Time
 
int main(int argc, char** argv)
{
    //Русский язык в консоли
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    time_t rawtime;
    struct tm * currtime;
 
    time (&rawtime);
    currtime = localtime (&rawtime);
    std::cout <<"Curr time is " << currtime->tm_hour << ":" << currtime->tm_min << ":" << currtime->tm_sec << std::endl;
 
    myTime t(currtime->tm_hour, currtime->tm_min, currtime->tm_sec);
    t.getTime();
 
    system("pause");
    return 0;
}
Time нельзя использовать как название класса, т.к. это уже определено где-то в <ctime> и возникает конфликт.
0
aLarman
644 / 565 / 89
Регистрация: 13.12.2012
Сообщений: 2,111
Завершенные тесты: 1
05.12.2013, 13:40 #12
Rivory, смею поспорить с решением, в задании написано что расчет времени должен проводить конструктор
Цитата Сообщение от Monika23 Посмотреть сообщение
Напишите конструктор, который может использовать текущее время, возвращаемое функцией time () — объявленной в заголовочном файле time.h стандартной библиотеки языка С, — для инициализации объекта класса Time.
0
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:42  [ТС] #13
Тогда пишет ошибку в строке
C++
1
Time t;
'Time' : no appropriate default constructor available
0
aLarman
644 / 565 / 89
Регистрация: 13.12.2012
Сообщений: 2,111
Завершенные тесты: 1
05.12.2013, 13:43 #14
Цитата Сообщение от Rivory Посмотреть сообщение
Time нельзя использовать как название класса, т.к. это уже определено где-то в <ctime> и возникает конфликт.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <time.h>
class Time
{
 
};
int main()
{
    Time t;
    system("pause");
    return 0;
}
собирается
0
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:43 #15
aLarman, Да я на само задание не особо смотрел. Посмотрел на код, показалось довольно логичным именно так. Ну переделать не сложно, пусть сам этим и займется в качестве тренировки.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 13:43
Привет! Вот еще темы с ответами:

Compile-time и run-time методы и функции - C++
Добрый день. Есть две функции, которые делают идентичную работу: template&lt;bool leftShift, typename T&gt; T byteShift(T data) { ...

Класс Time через time(0) - C++
Всем привет. На форуме искал ничего похожего не нашол. Не могу до конца разобраться. В класе 1 член, который держит секунды, которые...

Конструктор копирования для динамического объекта класса приемника - C++
class first_class { public: first_class(int q) { m_q=q; cout&lt;&lt;&quot;First class say HI&quot;&lt;&lt;endl; } ...

Не может найти конструктор для иниц поля класса - C++
Здравствуйте. Помогите с проблемой. Есть класс TCell, определен тип CellArray как массив 30 Х 30 из TCell. Также определен класс...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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