Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
4 / 4 / 3
Регистрация: 23.10.2012
Сообщений: 233
1

Секундомер

05.12.2013, 22:50. Показов 2461. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пытаюсь написать секундомер, только вот не знаю как остановить его по нажатию клавиши и вернуть текущий результат:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>  
#include <windows.h>
#include <time.h>
using namespace std;
 
void Counter(int min, int max){
        for(k=min;k<max;k++){
            cout<<k<<" ";
            Sleep(10);
        system("cls");
    }
}
int main(){
    Counter(1,100);
}
Добавлено через 45 секунд
!kbhit вроде не то
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2013, 22:50
Ответы с готовыми решениями:

Секундомер на С++
Добрый день. Подскажите, как написать простейший консольный секундомер на с++ без использования...

Секундомер
Доброго времени суток. Проверьте пожалуйста программу, работающую аналогично секундомеру. Вот я...

Секундомер
Сделал такой небольшой код, что-то на подобии теста на сколько быстро вы печатаете. Никак до меня...

секундомер
Здраствуйте! Мне задали на практику составить программу «Секундомер», позволяющую записывать...

3
Mobile Software Engineer
Эксперт С++
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
06.12.2013, 00:32 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
#include <Windows.h>
#include <iostream>
#include <clocale>
 
int main()
{
    std::setlocale(0, "");
    std::cout << "Для запуска секундомера нажмите <Enter>!" << std::endl;
    std::getchar();
 
    size_t millisecondsCounter(0);
    size_t secondsCounter(0);
    size_t minutesCounter(0);
 
    char isStopCounter;
    while (true) {
        std::system("cls");
        std::cout << "Секундомер: " << std::endl;
        std::cout << minutesCounter << " минут(а) " << (secondsCounter) << " секунд(a/ы) " << (millisecondsCounter++) << " миллисекунд";
        if (millisecondsCounter == 10) {
            millisecondsCounter = 0;
            secondsCounter++;
        }
        if (secondsCounter == 60) {
            minutesCounter++;
            secondsCounter = 0;
        }
        if (!(minutesCounter % 1) && (minutesCounter >= 1) && !secondsCounter && !millisecondsCounter) {
            std::cout << std::endl << "Продолжить? (Y / N) --> ";
            std::cin >> isStopCounter;
            if (isStopCounter == 'N' || isStopCounter == 'n')
                break;
        }
    }
 
    std::system("pause");
    return 0;
}
1
4 / 4 / 3
Регистрация: 23.10.2012
Сообщений: 233
06.12.2013, 00:51  [ТС] 3
Умгу

Добавлено через 7 минут
И еще один вопрос:
неужели using namespace std; - настолько тяжелая библиотека ,что std::->->-->-::std<<endl;
прикольно каждый раз писать?

Я конечно не того еще уровня, что экономить каждый байт
0
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
06.12.2013, 01:37 4
Когда то писал такое, вот (на С++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
#include <iostream>
#include <iomanip>
#include <thread>
#include <chrono>
#include <conio.h>
 
int main()
{
   auto start = std::chrono::high_resolution_clock::now();
   unsigned minutes, seconds, milliseconds;
   while (true)
   {
       milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::high_resolution_clock::now()-start).count();
       seconds = milliseconds/1000;
       milliseconds %= 100;
       minutes = seconds/60;
       seconds %= 60;
       std::cout<<std::setw(2)<<minutes<<"."<<std::setw(2)<<seconds<<"."<<std::setw(2)<<milliseconds;
       std::this_thread::sleep_for(std::chrono::milliseconds(10));
       std::system("cls");
       if (kbhit())
       {
           std::cout<<"STOP\n";
           std::cin.get();
           break;
       }
   }
   std::cout<<"\nTime: "<<std::setw(2)<<minutes<<"."<<std::setw(2)<<seconds<<"."<<std::setw(2)<<milliseconds<<"\n";
 
   return 0;
}
1
06.12.2013, 01:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2013, 01:37
Помогаю со студенческими работами здесь

Секундомер на c++
Создайте класс stopwatch для имитации секундомера. Используйте конструктор для начальной установки...

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

Секундомер.
Знаю подобные темы уже рассматривались на форуме, но ни в одной из них я не нашел ответа мой...

Секундомер
Народ нужна помощь Задачка такая: нужно сделать Секундомер как в электронных часах ввиде: 00:00...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru