用c++编写计时器的步骤及其函数代码
来源:互联网 发布:淘宝怎么搜福利 编辑:程序博客网 时间:2024/06/07 23:00
用c++语言编写计时器
编写过程中用到的函数:
一、void gotoxy(int x,int y)和void hoidden()函数:
1:所需的头文件include<windows.h> include<conio.h>
2:功能:<1>将控制台光标定位在(x.y)处。
<2>隐藏控制台光标.
3:具体实现:
<1>void gotoxy(int x, int y)//定位光标,x为行坐标,y为列坐标
{
COORD pos = {x,y};//(坐标 位置);
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); //得到标准处理(标准输出处理);
SetConsoleCursorPosition(hOut, pos);//设置控制台光标位置;
}(直接用就行!)
<2>Void hidden()//隐藏光标
{
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(hOut,&cci);
cci.bVisible=0;//赋1为显示,赋0为隐藏
SetConsoleCursorInfo(hOut,&cci);
}(直接用就行)
二、关于kbhit()
编写过程中用到的函数:
一、void gotoxy(int x,int y)和void hoidden()函数:
1:所需的头文件include<windows.h> include<conio.h>
2:功能:<1>将控制台光标定位在(x.y)处。
<2>隐藏控制台光标.
3:具体实现:
<1>void gotoxy(int x, int y)//定位光标,x为行坐标,y为列坐标
{
COORD pos = {x,y};//(坐标 位置);
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); //得到标准处理(标准输出处理);
SetConsoleCursorPosition(hOut, pos);//设置控制台光标位置;
}(直接用就行!)
<2>Void hidden()//隐藏光标
{
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(hOut,&cci);
cci.bVisible=0;//赋1为显示,赋0为隐藏
SetConsoleCursorInfo(hOut,&cci);
}(直接用就行)
二、关于kbhit()
kbhit是一个函数,可以用来检查当前是否有键盘输入。
函数名
kbhit()(VC++6.0下为_kbhit())
用????法
int kbhit(void);
包含头文件
include <conio.h>
功????能
检查当前是否有键盘输入
三、kbhit函数简介
函数名:kbhit()
功能及返回值: 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0
用 法:int kbhit(void);
包含头文件: include <conio.h>
在VC++6.0下为_kbhit()
功能及返回值同上;
四、时间函数的实现
void Time::settime()
{
second++;
if(60==second)
{
second=0;
minute+=1;
}
else if(60==minute)
{
minute=0;
hour+=1;
}
Sleep(1000);
函数名
kbhit()(VC++6.0下为_kbhit())
用????法
int kbhit(void);
包含头文件
include <conio.h>
功????能
检查当前是否有键盘输入
三、kbhit函数简介
函数名:kbhit()
功能及返回值: 检查当前是否有键盘输入,若有则返回一个非0值,否则返回0
用 法:int kbhit(void);
包含头文件: include <conio.h>
在VC++6.0下为_kbhit()
功能及返回值同上;
四、时间函数的实现
void Time::settime()
{
second++;
if(60==second)
{
second=0;
minute+=1;
}
else if(60==minute)
{
minute=0;
hour+=1;
}
Sleep(1000);
}
五、实现计时暂停,计时开始,计时复位等功能的函数
功能实现:
输入字符并用getch()吸收字符,1:输入a开始计时,在计时过程中输入S置零,输出,返回菜单函数;
具体函数参照下面程序的具体实现过程:
计时器实现的全部函数过程:
#include<iostream>
#include<windows.h>
#include<iomanip>
#include<conio.h>
using namespace std;
#include <time.h>
class Time
{
public:
Time(){
second=0,minute=0,hour=0;
display();
}
void display();
void settime();
void retur()
{
second=0,minute=0,hour=0;
}
void minu();
private:
int second;
int minute;
int hour;
} ;
void gotoxy(int x,int y)
{
COORD pos={x,y};
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut, pos);
}
void hidden()
{
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(hOut,&cci);
cci.bVisible=0;
SetConsoleCursorInfo(hOut,&cci);
}
void Time::settime()
{
second++;
if(60==second)
{
second=0;
minute+=1;
}
else if(60==minute)
{
minute=0;
hour+=1;
}
Sleep(1000);
}
void Time::display()
{
gotoxy(11,11);
cout<<"\t"<<right<<setfill('0')<<setw(2)<<hour
<<':'<<right<<setfill('0')<<setw(2)<<minute
<<':'
<<right<<setw(2)<<second<<setfill('0')<<"\n";
cout<<"\n";
cout<<"\t"<<"按a开始计时,按空格暂停,按回车继续 ,按s复位";
}
void Time::minu()
{
char ch;
hidden();
ch=getch();
if(ch=='a'||ch=='A')
{
while(1)
{
if(kbhit())
{
hidden();
ch=getch();
if(ch=='s'||ch=='S')
{
retur();
display();
minu();
}
else if(ch==' ')
{
minu();
}
}
settime();
display();
}
}
if(ch=='s'||ch=='S')
{
retur();
display();
minu();
}
if(ch=='\n')
{
settime();
display();
minu();
}
}
int main()
{
Time a;
gotoxy(20,15);
a.minu();
return 0;
}
{
Time a;
gotoxy(20,15);
a.minu();
return 0;
}
0 1
- 用c++编写计时器的步骤及其函数代码
- 编写代码的步骤
- DLL注入代码(C函数)的编写
- 【c#】控制台程序编写计时器
- 用 C 语言编写 Windows 服务程序的五个步骤
- 用 C 语言编写 Windows 服务程序的五个步骤
- 用C语言编写Windows服务程序的五个步骤
- 用 C 语言编写 Windows 服务程序的五个步骤
- 用C编写Windows服务程序的五个步骤
- 用C编写Windows服务程序的五个步骤
- 用C 语言编写 Windows 服务程序的五个步骤
- 用C语言编写Windows服务程序的五个步骤
- 用C语言编写Windows服务程序的五个步骤
- 用C语言编写Windows服务程序的五个步骤
- 用C语言编写Windows服务程序的五个步骤
- 用C编写Windows服务程序的五个步骤
- 用C编写Windows服务程序的五个步骤
- 用C语言编写Windows服务程序的五个步骤
- 行内元素与块级元素
- c语言二分法切割法牛顿法求根算法
- CodeForces - 560D Equivalent Strings (DFS)
- 手把手教你编写游戏模拟器 - Chip8篇(3)
- [c++]关于内存。
- 用c++编写计时器的步骤及其函数代码
- hdu--Let's go to play
- java并发编程——ConcurrentHashMap
- 老罗专访:Android 源码之旅
- java小程序之从方法中返回数组
- 第五课-系统调用跟踪
- Mybatis第五弹
- C++ 宏定义
- Arch的VBox安装笔记