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

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

Войти
Регистрация
Восстановить пароль
 
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
#1

Программа с часами - C++

29.06.2012, 08:32. Просмотров 592. Ответов 10
Метки нет (Все метки)

Доброго времени суток! Вот программа с часами, подскажите пожалуйста почему при запуске выскакивает 9?


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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <iostream>
using namespace std;
class State {
public:
virtual void handle() = 0;
protected:
static int h_, m_, s_;
};
int State::h_ = 0;
int State::m_ = 0;
int State::s_ = 0;
class Reset : public State {
public:
virtual void handle(){ h_ = 0; m_ = 0; s_ = 0;}
};
class Tick : public State {
public:
virtual void handle() {
if(++s_ == 60) {
s_ = 0;
if(++m_ == 60) {
m_ = 0;
h_ = (h_ + 1) % 24;
}
}
}
};
class IncHour : public State {
public:
virtual void handle() {
h_ = (h_ + 1) % 2;
}
};
class IncMinute : public State {
public:
virtual void handle() {
m_ = (m_ + 1) % 60;
}
};
class ShowTime : public State {
public:
virtual void handle() {
std::cout « h_;
std::cout « " ";
std::cout « m_;
std::cout « " ";
std::cout « s_;
std::cout « '\r';
}
};
class myclock {
private:
State *state;
public:
myclock(): state(0) {}
void request() {
if( state ) {
state -> handle();
}
}
State* getState() {
return state;
}
void setState( State* state ) {
this -> state = state;
}
};
int main() {
State *reset = new Reset;
State *showtime = new ShowTime;
State *tick = new Tick;
State *inchour = new IncHour;
State *incminute = new IncMinute;
myclock watch;
watch.setState( reset );
watch.request();
watch.setState( inchour );
for(int i=1; i <= 0; i++) 
watch.request(); // гбв ®ўЁвм з бл
watch.setState( incminute );
for(int i=1; i <= 0; i++) 
watch.request(); // гбв ®ўЁвм ¬Ё гвл
while(1) {
watch.setState(tick);
watch.request();
watch.setState(showtime);
watch.request();
}
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.06.2012, 08:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа с часами (C++):

Заполнить матрицу "песочными часами" - C++
Как заполнить матрицу 5*5 &quot;песочными часами&quot; как на картинке?

Программа , которая выводит время, за которое программа работает - C++
Вообщем, нужно что бы считалось время от начала работы программы, и выводилось на экран.

Первая программа. Код не компилируется и не запускается программа. - C++
Первая программа, первая ошибка Здравствуйте! Решил учить С++. Скачал книгу Programming: Principles and Practice Using C++, Бьерн...

Работа часами - SQL Server
select idpunkta, idmarsh,(vremyadata+vremyaprib) as data1, (vremyadata+vremyaotp) as data2 from Расписание, Выезд where id=idpunkta ...

Задачка с часами - JavaScript
Помогите,очень прошу Наши часы не корректны, они неверно отображают число минут и секунд, когда те меньше 10. Например, наши часы покажут...

Виджет с часами - Программирование Android
Пишу виджет, который показывает время. Запускаю часы на эмуляторе (Android 4.0.3) работает без отказно, запускаю на телефоне (Android...

10
Peperovich
43 / 43 / 4
Регистрация: 17.05.2011
Сообщений: 162
29.06.2012, 09:18 #2
9 - это что, ошибка или что то еще? У меня при запуске все работает.
0
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
29.06.2012, 09:24  [ТС] #3
нет, когда время идет, то там выскакивает 9
0
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
29.06.2012, 09:50 #4
Цитата Сообщение от Ане4кA Посмотреть сообщение
myclock(): state(0) {}
вы не создали конструктора класса State,а инициализируете нулём
0
KATbIK
86 / 81 / 10
Регистрация: 02.08.2011
Сообщений: 335
29.06.2012, 09:51 #5
Нормально все это "оптический эффект"
Компильни и посмотри log.txt файл
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include <fstream>
using namespace std;
class State {
public:
virtual void handle() = 0;
protected:
static int h_, m_, s_;
};
int State::h_ = 0;
int State::m_ = 0;
int State::s_ = 0;
class Reset : public State {
public:
virtual void handle(){ h_ = 0; m_ = 0; s_ = 0;}
};
class Tick : public State {
public:
virtual void handle() {
if(++s_ == 60) {
s_ = 0;
if(++m_ == 60) {
m_ = 0;
h_ = (h_ + 1) % 24;
}
}
}
};
class IncHour : public State {
public:
virtual void handle() {
h_ = (h_ + 1) % 2;
}
};
class IncMinute : public State {
public:
virtual void handle() {
m_ = (m_ + 1) % 60;
}
};
class ShowTime : public State {
   std::ofstream txt;
public:
ShowTime () : txt("log.txt") {}
~ShowTime() { txt.close(); }
virtual void handle() {
std::cout << h_;
std::cout << " ";
std::cout << m_;
std::cout << " ";
std::cout << s_;
std::cout << '\r';
txt << h_ << " " << m_ << " " << s_ << std::endl;
}
};
class myclock {
private:
State *state;
public:
myclock(): state(0) {}
void request() {
if( state ) {
state -> handle();
}
}
State* getState() {
return state;
}
void setState( State* state ) {
this -> state = state;
}
};
int main() {
State *reset = new Reset;
State *showtime = new ShowTime;
State *tick = new Tick;
State *inchour = new IncHour;
State *incminute = new IncMinute;
myclock watch;
watch.setState( reset );
watch.request();
watch.setState( inchour );
for(int i=1; i <= 0; i++)
watch.request(); // гбв ®ўЁвм з бл
watch.setState( incminute );
for(int i=1; i <= 0; i++)
watch.request(); // гбв ®ўЁвм ¬Ё гвл
while(1) {
watch.setState(tick);
watch.request();
watch.setState(showtime);
watch.request();
}
}
0
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
29.06.2012, 09:53 #6
Цитата Сообщение от KATbIK Посмотреть сообщение
Нормально все это "оптический эффект"
это как?О_о
0
KATbIK
86 / 81 / 10
Регистрация: 02.08.2011
Сообщений: 335
29.06.2012, 09:59 #7
alexey31415, Ну 9 выскакивает )) Я все в log.txt писал там нет 9, код я её не изучал.
А вот ты про это говоришь
C++
1
2
3
State *state;
public:
myclock(): state(0)
указателю ведь ноль она присваевает. Зачем конструктор
0
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
29.06.2012, 10:08 #8
Цитата Сообщение от KATbIK Посмотреть сообщение
указателю ведь ноль она присваевает.
забыл,что указатель,думал переменная
0
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
29.06.2012, 13:41  [ТС] #9
KATbIK расскажите подробнее про свою программу пожалуйста)
0
KATbIK
86 / 81 / 10
Регистрация: 02.08.2011
Сообщений: 335
29.06.2012, 13:48 #10
Ане4кA, это твоя программа просто добавил вывод времени в текстовый файл 3 строчки )) Заинтриговала магическая 9 ка вот и захотелось посмотреть.
C++
1
2
3
4
5
6
7
8
9
10
11
12
   std::ofstream txt;
public:
ShowTime () : txt("log.txt") {}
~ShowTime() { txt.close(); }
virtual void handle() {
std::cout << h_;
std::cout << " ";
std::cout << m_;
std::cout << " ";
std::cout << s_;
std::cout << '\r';
txt << h_ << " " << m_ << " " << s_ << std::endl;
0
Ане4кA
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 66
29.06.2012, 13:49  [ТС] #11
я поняла, что она моя, но интересна была доработка)
мастерки так)
0
29.06.2012, 13:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.06.2012, 13:49
Привет! Вот еще темы с ответами:

Не стилизуется блок с часами - HTML, CSS
здравствуйте! у меня такая проблема , на страничку поставил часы, написанные на js window.onload = function(){ ...

[Фортран 77] Общение с системными часами - Fortran
Как получить из оных значение времени и запомнить его в некой переменной. С примером было бы чудесно.

Как ограничить сессию 4 часами? - PHP
Не понимаю как ограничить сессию 4 часами? Пароль должен работать 4 часа и затем стать уже недействителен. &lt;? function...

Голубое окно с часами и иероглифами - Удаление вирусов
Здравствуйте! В меню Программы появилась строчка из китайских иероглифов. В списке Программ в Панели управления появилась...


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

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

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