#pragma hdrstop
#include <conio.h>
#include <dos.h>
static const float Tick = 10; // 每秒节拍数
static unsigned int Cnt = 0; // 计数器
//
// 输入:从外部获取信息
//
static int
Input(void)
// 返回值:0/1 = 退出/继续
{
if (kbhit() && getch() == 0x1B) // 键入ESC
return 0;
return 1;
}
//
// 输出:向外部发送信息
//
static void
Output(void)
{
gotoxy(1, 1); // 在屏幕左上角显示时间和节拍数
cprintf("Time: %05.1f sec. Counter: %05d", Cnt / Tick, Cnt);
}
//
// 处理:做某些事
//
static void
Proc(void)
{
Cnt++; // 计数节拍
}
//
// 初始化
//
static void
Init(void)
{
clrscr(); // 清空屏幕
}
//
// 处理善后
//
static void
Done(void)
{
}
main()
{
Init(); // 初始化
while (Input()) // 输入并检查是否要退出
{
Proc(); // 进行某些处理
Output(); // 输出
delay((Tick / 2 + 1000) / Tick); // 延时若干毫秒,以实现每秒Tick拍
}
Done(); // 处理善后
return 0;
} |