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

Класс «Время». - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Юрій
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 7
01.12.2011, 23:09     Класс «Время». #1
Помогите решить: Создать класс «Время». Данные класса - часы, минуты и обозначения до или после обеда (например am и pm). Создать конструктор произвольного времени, конструктор по умолчанию и копирования, установите ограничения на значения полей (часы от 0 до 12, минуты от 0 до 60).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ZaVyLoN
 Аватар для ZaVyLoN
83 / 83 / 6
Регистрация: 26.10.2009
Сообщений: 269
01.12.2011, 23:15     Класс «Время». #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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <windows.h>
#include <iostream>
#include <ctime>
 
using namespace std;
 
void resetCursorPosition()
{
   COORD coordScreen = {0,0};
   HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
 
   SetConsoleCursorPosition( hConsole, coordScreen );
}
 
const int c_fontHeight  = 5;
const int c_charCounr  = 11;
 
const char* font[c_charCounr][c_fontHeight] = 
{
    {" *** ", " * * ", " * * ", " * * ", " *** "},
    {"  *  ", " **  ", "  *  ", "  *  ", " *** "},
    {" *** ", "   * ", "  *  ", " *   ", " *** "},
    {" *** ", "   * ", "  ** ", "   * ", " *** "},
    {" * * ", " * * ", " *** ", "   * ", "   * "},
    {" *** ", " *   ", " *** ", "   * ", " *** "},
    {" *** ", " *   ", " *** ", " * * ", " *** "},
    {" *** ", "   * ", "  *  ", " *   ", " *   "},
    {" *** ", " * * ", " *** ", " * * ", " *** "},
    {" *** ", " * * ", " *** ", "   * ", " *** "},
    {" ", "*", " ", "*", " ",},
};
 
 
void drawLine(int line, const char* buffer)
{
    for(int i = 0; buffer[i]; i++)
    {
        int index = buffer[i] - '0';
        cout << font[index][line];
    }
    cout<<endl;
}
 
int main()
{
    time_t rawtime;
    tm* timeinfo;
    char buffer[32];
 
    while(1)
    {
        rawtime = time(0);
        timeinfo = localtime(&rawtime);
        strftime(buffer, sizeof(buffer), "%H:%M:%S", timeinfo);
        for(int line = 0; line < c_fontHeight; line++)
        {   
            drawLine(line, buffer);
        }
 
        resetCursorPosition();
    }
    
    return 0;
}
Юрій
1 / 1 / 0
Регистрация: 08.10.2010
Сообщений: 7
01.12.2011, 23:19  [ТС]     Класс «Время». #3
огромное спасибо =) но это немного не то..
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
02.12.2011, 11:18     Класс «Время». #4
Что-то вроде этого
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//time.h
#ifndef TIME_H
#define TIME_H
 
class Time
{
public:
    Time(int _hour = 0, int _minute = 0, bool _m = false);
    Time(const Time&);
 
private:
    int hour;
    int minute;
    bool m;
};
 
#endif // TIME_H
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//time.cpp
#include "time.h"
 
Time::Time(int _hour, int _minute, bool _m)
{
    hour = ((_hour >= 0) && (_hour < 12)) ? _hour : 0;
    minute = ((_minute >= 0) && (_minute < 60)) ? _minute : 0;
    m = _m;
}
 
Time::Time(const Time &tm){
    this->hour = tm.hour;
    this->minute = tm.minute;
    this->m = tm.m;
}
C++
1
2
3
4
5
6
7
8
9
10
#include "time.h"
 
int main()
{
    Time tm1;
    Time tm2 (59,12, 0);
    Time tm3(tm2);
 
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
02.12.2011, 13:13     Класс «Время». #5
Юрій, посмотри сюда
Класс "Историческое событие"
Yandex
Объявления
02.12.2011, 13:13     Класс «Время».
Ответ Создать тему
Опции темы

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