《C++计时器》
来源:互联网 发布:java循环读取txt文件 编辑:程序博客网 时间:2024/06/07 15:05
#include<iostream>
#include<conio.h> //包含隐藏坐标的 函数hidden()#include<time.h>
#include<stdlib.h>
#include<windows.h> //包含一些控制窗口的函数
#include<iomanip> //控制输出格式的头文件
using namespace std;
time_t begin,end;
int t;
class Timer
{
public:
Timer() //构造函数,初始化数据成员
{
hour=0;
minute=0;
second=0;
}
void start_time(); //开始计时
void pause_time(char); //暂停计时
void stop_time(char); //停止计时
void show_time(); //显示计时器
private:
int hour;
int minute;
int second;
};
void hidden() //隐藏光标 这个隐藏光标函数可以直接使用
{
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(hOut,&cci);
cci.bVisible=0;//赋1为显示,赋0为隐藏
SetConsoleCursorInfo(hOut,&cci);
}
void gotoxy(int x,int y) //这个函数也是可以直接使用
{
COORD pos = {x,y};//(坐标位置);
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); //得到标准处理(标准输出处理);
SetConsoleCursorPosition(hOut, pos);//设置控制台光标位置;
}
void Timer::show_time() //显示计时的函数
{
gotoxy(35,10);
cout.fill('0'); //不足两位的用0补充,该函数包含在iomanip函数中
cout << setw(2)<< hour << ":" <<setw(2) <<minute << ":" <<setw(2)<< second << endl ;
Sleep(1000); //意思就是要延迟1秒
}
void Timer::start_time() //开始函数
{
char ch;
hidden(); //隐藏光标
ch=getch();
if(ch=='b') //判断是否开始计时
{
begin=clock(); //获得此时系统时间
}
while(1)
{
while(!kbhit()) //如果没有输入按键
{
end=clock(); //得到此时系统时间
t=(end-begin)/CLOCKS_PER_SEC; //从按下b键到按下下一个键的时间
if(++second>59) //如果小于60,就执行show_time();
{
minute++;
second=0;
}
if(minute>59)
{
hour++;
minute=0;
}
show_time();
}
char ch1;
hidden();
ch1=getch();
pause_time(ch1);
stop_time(ch1);
}
}
void Timer::pause_time(char ch1)
{
//char ch1;
//hidden();
//ch1=getch();
if(ch1==' ') //如何让它时间停止接着原来的时间
{
char ch3;
hidden();
ch3=getch();
if(ch3=='b'||ch3=='B')
{
while(!kbhit())
{
end=clock();
t=(end-begin)/CLOCKS_PER_SEC;
if(++second>59) //如果小于60,就执行show_time();
{
minute++;
second=0;
}
if(minute>59)
{
hour++;
minute=0;
}
show_time();
}
char ch4;
ch4=getch();
pause_time(ch3);
stop_time(ch3);
}
pause_time(ch3);
stop_time(ch3);
}
}
void Timer::stop_time(char ch2)
{
//char ch2;
//hidden();
//ch2=getch();
if(ch2=='s'||ch2=='S') //如果输入暂停键,时间从0开始
{
hour=0;
minute=0;
second=0;
start_time();
}
}
int main()
{
Timer time;
gotoxy(34,0); //将文字放到指定的坐标
cout<<"* 欢 迎 使 用 秒 表 程 序 *"<<endl;
gotoxy(34,9);
cout << "开始计时:";
gotoxy(0,15);
cout << "说明:";
gotoxy(5,16);
cout << "按b开始计时" << " " << "按空格键暂停计时" << " " << "按s停止计时" ;
time.show_time(); //显示时间
time.start_time(); //开始计时开始
return 0;
}
这个写的不是很精练,等有时间再写一个更好的宇大家分享
0 0
- C ++ 计时器
- c、c#---计时器
- [C#] Timer计时器
- linux c 语言 计时器
- [C#] Timer计时器
- C语音简单计时器
- C++-1、计时器
- 3.5 watchdog.c:计时器
- C 计时器大全
- Windows/Linux高精度计时器(C++)
- C/C++高精度计时器类
- C语言计时器的使用
- Windows/Linux高精度计时器(C++)
- 【c#】控制台程序编写计时器
- C#计时器精度的探究
- 计时器
- 计时器
- 计时器
- 大数乘法
- STC89C52单片机串口调试(http://blog.sina.com.cn/s/blog_7cae472801015idp.html)
- [C#]第30位数字是多少
- 16年腾讯笔试模拟题
- 互动投影系统
- 《C++计时器》
- PAT (Advanced Level) Practise 1101 Quick Sort (25)
- 教育技术菅若琳
- HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
- Fragment实现底部栏
- objective-c C类型数组
- Xilinx SRIO ID
- Java设计模式之“抽象工厂模式“
- Info.plist和pch文件的作用,UIApplication,iOS程序的启动过程,AppDelegate 方法解释,UIWindow,生命周期方法