Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.63/41: Рейтинг темы: голосов - 41, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20

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

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

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

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

Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.11.2013, 22:22
Ответы с готовыми решениями:

Допишите конструктор в класс Time, который принимает время в секундах
Допишите конструктор в класс Time, который принимает время в секундах. public class Time { int hour, min, sec; // YOUR...

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

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

22
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13: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
#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
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:13
C++
1
Time(int time_hour, int time_minute, int time_second )
У тебя конструктор класса выглядит так. А в функции мейн ты не передаешь ему никаких значений. Разумеется он не будет ничего выводить на экран.
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
05.12.2013, 13:13
C++
1
Time t(); // объявление объекта и инициализация элементов данных
это вызов дефолтного конструктора который у Вас не определен, и вызывается версия которую сгенерил компилятор
0
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:16  [ТС]
то есть нужно написать так?
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
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:18
Нужно написать
Time t(текущий_час, текущая_минута, текущая_текунда);

А текущее время можно взять из <ctime>
0
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:25  [ТС]
Так ошибка то у меня пишет в строчке
C++
1
 t.getTime();
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
05.12.2013, 13:29
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;
}
Вот такой конструктор попробуйте
1
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:36  [ТС]
Все равно в этой строчке ошибка((( Если написать так:
C++
1
2
Time t(13,45,47); // объявление объекта и инициализация элементов данных
    t.getTime(); // отобразить время
Тогда выводит те числа, которые указаны в скобках. А нужно текущее время
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
05.12.2013, 13:39
Цитата Сообщение от Monika23 Посмотреть сообщение
Time t();
да кстати я ошибся, тут вообще объявление ф-ции с именем t и типом возвращаемого значения Time
следует писать так
C++
1
2
3
4
5
6
7
int main()
{
    Time t; // объявление объекта и инициализация элементов данных
    t.getTime(); // отобразить время
    
    return 0;
}
0
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:39
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
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
05.12.2013, 13:40
Rivory, смею поспорить с решением, в задании написано что расчет времени должен проводить конструктор
Цитата Сообщение от Monika23 Посмотреть сообщение
Напишите конструктор, который может использовать текущее время, возвращаемое функцией time () — объявленной в заголовочном файле time.h стандартной библиотеки языка С, — для инициализации объекта класса Time.
0
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:42  [ТС]
Тогда пишет ошибку в строке
C++
1
Time t;
'Time' : no appropriate default constructor available
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
05.12.2013, 13:43
Цитата Сообщение от 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
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:43
aLarman, Да я на само задание не особо смотрел. Посмотрел на код, показалось довольно логичным именно так. Ну переделать не сложно, пусть сам этим и займется в качестве тренировки.
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
05.12.2013, 13:45
Цитата Сообщение от Monika23 Посмотреть сообщение
Тогда пишет ошибку в строке
а добавили?
C++
1
2
3
4
5
6
7
8
9
10
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
148 / 114 / 21
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:47
Цитата Сообщение от aLarman Посмотреть сообщение
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;
}
собирается
У меня не собирается.
Миниатюры
Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time ().  
0
654 / 575 / 164
Регистрация: 13.12.2012
Сообщений: 2,124
05.12.2013, 13:49
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
#include <ctime>
#include <iostream>
class Time
{
    time_t hour;
    time_t minute;
    time_t second;
public:
    Time()
    {
        time_t CurrentTime = time(NULL);
        struct tm *timeinfo;
        timeinfo=localtime(&CurrentTime);
        hour = timeinfo->tm_hour;
        minute = timeinfo->tm_min;
        second = timeinfo->tm_sec;
 
    }
    void getTime()
    {
        std::cout<<"Hour:"<<hour<<" Min:"<<minute<<" Sec:" <<second<<std::endl;
    }
};
int main()
{
    
    Time t;
    t.getTime();
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:50  [ТС]
Все работает, спасибо огромное)))))))) А вы бы не могли написать комментарии к
C++
1
2
3
4
5
6
time_t CurrentTime = time(NULL);
struct tm *timeinfo;
timeinfo=localtime(&CurrentTime);
hour = timeinfo->tm_hour;
minute = timeinfo->tm_min;
second = timeinfo->tm_sec;
А то я совсем не понимаю что тут делается
0
05.12.2013, 13:50

Не по теме:

Цитата Сообщение от Rivory Посмотреть сообщение
У меня не собирается.
перезагрузите компьютер:D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2013, 13:50
Помогаю со студенческими работами здесь

Time, it needs time. Или: "Как установить системное время?"
Привет всем! Собственно %субж%. Долблюсь уже целый день и не могу найти решение. Как Изменить системное время из программы на Java?...

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru