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

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

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

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

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

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

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

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

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

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

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

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

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

Вычислить время. Функция time - C++
Всем привет. С помощью функции time требуется вычислить текущее время. Код я написал ниже. Мой код работает почти правильно, но количество...

Разработка класса Time - C++
Разработать класс с именем Time содержащий три поля int для хранения часов,минут и секунд. Один из конструкторов класса должен...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:11  [ТС]     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #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;
}
Но он не выводит время. Надо, чтобы выводилось текущее время. Как сделать? Помогите пожалуйста.
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:13     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #3
C++
1
Time(int time_hour, int time_minute, int time_second )
У тебя конструктор класса выглядит так. А в функции мейн ты не передаешь ему никаких значений. Разумеется он не будет ничего выводить на экран.
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
05.12.2013, 13:13     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #4
C++
1
Time t(); // объявление объекта и инициализация элементов данных
это вызов дефолтного конструктора который у Вас не определен, и вызывается версия которую сгенерил компилятор
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:16  [ТС]     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #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
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:18     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #6
Нужно написать
Time t(текущий_час, текущая_минута, текущая_текунда);

А текущее время можно взять из <ctime>
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:25  [ТС]     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #7
Так ошибка то у меня пишет в строчке
C++
1
 t.getTime();
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
05.12.2013, 13:29     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #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;
}
Вот такой конструктор попробуйте
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:36  [ТС]     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #9
Все равно в этой строчке ошибка((( Если написать так:
C++
1
2
Time t(13,45,47); // объявление объекта и инициализация элементов данных
    t.getTime(); // отобразить время
Тогда выводит те числа, которые указаны в скобках. А нужно текущее время
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
05.12.2013, 13:39     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #10
Цитата Сообщение от Monika23 Посмотреть сообщение
Time t();
да кстати я ошибся, тут вообще объявление ф-ции с именем t и типом возвращаемого значения Time
следует писать так
C++
1
2
3
4
5
6
7
int main()
{
    Time t; // объявление объекта и инициализация элементов данных
    t.getTime(); // отобразить время
    
    return 0;
}
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:39     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #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> и возникает конфликт.
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
05.12.2013, 13:40     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #12
Rivory, смею поспорить с решением, в задании написано что расчет времени должен проводить конструктор
Цитата Сообщение от Monika23 Посмотреть сообщение
Напишите конструктор, который может использовать текущее время, возвращаемое функцией time () — объявленной в заголовочном файле time.h стандартной библиотеки языка С, — для инициализации объекта класса Time.
Monika23
0 / 0 / 0
Регистрация: 13.05.2013
Сообщений: 20
05.12.2013, 13:42  [ТС]     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #13
Тогда пишет ошибку в строке
C++
1
Time t;
'Time' : no appropriate default constructor available
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
05.12.2013, 13:43     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #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;
}
собирается
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2013, 13:43     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time ().
Еще ссылки по теме:

Конструкторы класса Time - C++
Есть вот такая вот прога (см. ниже). По заданию нужно было определить функции, которые читают время из потока ввода, выводят время....

Что за ошибка: "E2015 Ambiguity between 'time' and 'std::time"? - C++
Коды ошибок: v8.cpp(132): E2015 Ambiguity between 'time' and 'std::time(long *)' v8.cpp(133): E2015 Ambiguity between 'time' and...

Что за ошибка: "E2015 Ambiguity between 'time' and 'std::time"? - C++
Коды ошибок: v8.cpp(132): E2015 Ambiguity between 'time' and 'std::time(long *)' v8.cpp(133): E2015 Ambiguity between 'time' and...

Сложение объектов класса Time - C++
Здраствуйте, такая вот задача. надо в классе сложить два переменных. я по пробывал вот так но это ошибка. по смотрите и...

Копирующий конструктор в списке инициализации членов класса - C++
Добрый день. Сегодня обнаружил кое-что для себя странное и непонятное. В общем-то смотрим код: #include &lt;iostream&gt; ...


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

Или воспользуйтесь поиском по форуму:
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
05.12.2013, 13:43     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time (). #15
aLarman, Да я на само задание не особо смотрел. Посмотрел на код, показалось довольно логичным именно так. Ну переделать не сложно, пусть сам этим и займется в качестве тренировки.
Yandex
Объявления
05.12.2013, 13:43     Напишите конструктор для инициализации объекта класса Time, который может использовать текущее время, возвращаемое функцией time ().
Ответ Создать тему
Опции темы

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