现在的位置: 首页 > 综合 > 正文

控制台模拟电子时钟

2014年02月25日 ⁄ 综合 ⁄ 共 1218字 ⁄ 字号 评论关闭

用C和C++语言分别写了一个控制台下的电子时钟模拟程序,代码如下:

C++代码写法:

#include <iostream>
#include <iomanip>
#include <windows.h>
using namespace std;


class myClock
{
public:
	myClock( int hour = 0, int minu = 0, int sec = 0 );
    void run( );
private:
	void show();
	void tick();

    int hour;
	int minu;
	int sec;	
};

myClock::myClock( int hour, int minu, int sec ):hour(hour),minu(minu),sec(sec)
{
	//Null
}

void myClock::show( )
{
	system("cls");
	cout.fill('0');
	//printf("%02d:%02d:%02d \r", hour, minu, sec );
	cout << setw(2) << hour << ":" << setw(2) << minu << ":" << setw(2) << sec << endl;
}

void myClock::tick( )
{
	if( ++sec > 59 )
	{
		sec = 0;
		++minu;
	}
	
	if( minu > 59 )
	{
        minu = 0;
		++hour;
	}
	
	if( hour > 23 )
        hour = 0;
}

void myClock::run( )
{
	while(1)
	{
		show();
		tick();
		Sleep(1000);
	}
}

int main(void)
{
	myClock C(23,59,56);
	C.run();

    return 0;
}

C代码实现如下:

#include <stdio.h>
#include <windows.h>

struct myClock
{
    int hour;
	int minu;
	int sec;	
};

void show( struct myClock *c )
{
	system("cls");
	printf("%02d:%02d:%02d \r", c->hour, c->minu, c->sec );
}

void tick( struct myClock *c )
{
	if( ++c->sec > 59 )
	{
		c->sec = 0;
	    ++c->minu;
	}

	if( c->minu > 59 )
	{
        c->minu = 0;
	    ++c->hour;
	}

	if( c->hour > 23 )
        c->hour = 0;
}

void run( struct myClock *c )
{
	while(1)
	{
	   show(c);
	   tick(c);
	   Sleep(1000);
	}
}

int main(void)
{
	struct myClock C = { 23, 59, 56 };
	run(&C);
    return 0;
}

小插曲:在C++语言实现中我将控制分钟的变量写成了“min”,编译的时候死活通不过,在c中使用“cin”这个标志服不是好好的吗?我最后才弄明白:C++中有“min()”这个函数,如果直接中“min”做分钟的标志符,编译器会把它当成min函数来处理。

效果图:

抱歉!评论已关闭.