程序代码如下:
#include<iostream>
#include<windows.h>
using namespace std
class Clock{
public:
Clock(short h=0,short m=0,short s=0):h(h),m(m),s(s){
}
void displayTime()
private:
short h
short m
short s
}void Clock::displayTime(){
while(true){
cout<<h<<':'<<m<<':'<<s<<" "
Sleep(1000)
cout<<'\r'
if(!(s=++s%60))
if(!(m=++m%60))
h=++h%24
}
} int main()
{
Clock A(23,59,55)
A.displayTime()
return 0
}
扩展资料:
定义一个日期类,包括年、月、日三个成员变量,显示日期的方法如下数乱:裂毕余肆滚
publicclassDemo{
publicstaticvoidmain(String[]args){
Datedate1=newDate(1994,5,22)
date1.showInfo()
Datedate2=newDate()
date2.year=1995
date2.month=6
date2.day=29
date2.showInfo()
}
}
//日期类:
publicclassDate{
intyear
intmonth
intday
//构造方法
publicDate(intyear,intmonth,intday){
this.year=year
this.month=month
this.day=day
}
publicDate(){
}
publicvoidshowInfo(){
System.out.println(year+"年"+month+"月"+day+"日")
}
}
/*开发环境:turbo c 2.0模拟时钟转动程序代码*/ #include"graphics.h" #include"math.h" #include"dos.h" #define pi 3.1415926 #define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300 #define Y(a,b,c) y=a*sin(b*c*pi/180-pi/2)+240 #define d(a,b,c) X(a,b,c)Y(a,b,c)line(300,240,x,y) void init() /*划时钟边框函数*/ { int i,l,x1,x2,y1,y2 setbkcolor(1) circle(300,240,200) circle(300,240,205) circle(300,240,5) for(i=0i<60i++) /*划钟点上的短线*/ { if(i%5==0) l=15 else l=5 x1=200*sin(i*6*pi/180)+300 y1=200*cos(i*6*pi/180)+240 x2=(200-l)*sin(i*6*pi/180)+300 y2=(200-l)*cos(i*6*pi/180)+240 line(x1,y1,x2,y2) } } main() { int x,y,i,k=1 int gdriver=9,gmode=2 unsigned char h,m,s int o,p,q float n struct time t[1] struct date d[1] initgraph(&gdriver,&gmode,"c:\\tc") initgraph(&gdriver,&gmode,"c:\\tc") for(i=0i<=6i++) { settextstyle(TRIPLEX_FONT,HORIZ_DIR,i)/*控制输出字符的字体,方向,大小*/ cleardevice() settextjustify(1,1)/*在指游唤定坐标上输出字符串*/ outtextxy(300,80,"12") outtextxy(300,390,"6") outtextxy(140,230,"9") outtextxy(460,230,"3") outtextxy(380,100,"1") outtextxy(220,100,"11") outtextxy(430,160,"2") outtextxy(430,310,"4") outtextxy(380,370,"5") outtextxy(220,370,"7") outtextxy(160,160,"10") outtextxy(160,310,"8") } init() setwritemode(1)/*设置戚埋画线的输出模式*/ if(k!=0) { getdate(d)/*获得系统日期函数*/ o=d[0].da_year p=d[0].da_mon q=d[0].da_day gettime(t)/*获得系统时间函数*/ h=t[0].ti_hour m=t[0].ti_min s=t[0].ti_sec } setcolor(7)/*设置时针颜色*/ n=(float)h+(float)m/60 d(150,n,30)/*画出时针*/ setcolor(14)/*设置分针颜色*/ d(170,m,6)/*画出分针*/ setcolor(4)/*设置秒针颜色*/ d(190,s,6)/*画出秒针*/ while(!kbhit()) /*控制程序按下任意键退出*/ { while(t[0].ti_sec==s) gettime(t) gotoxy(44,18)/*使光标移动到指定坐标*/ printf("\高磨蚂b\b\b\b\b\b\b\b\b")/*退格,使表示时间的字符串不断变化*/ sound(400)/*按给定的频率打开PC扬声器*/ delay(70)/*中断程序的执行,时间为70毫秒*/ sound(200) delay(30) nosound()/*按给定的频率关闭PC扬声器*/ setcolor(4) d(190,s,6) s=t[0].ti_sec d(190,s,6) if(t[0].ti_min!=m) { setcolor(14) d(170,m,6) m=t[0].ti_min d(170,m,6) } if(t[0].ti_hour!=h) { setcolor(7) d(150,h,30) h=t[0].ti_hour d(150,h,30) sound(1000) delay(240) nosound() delay(140) sound(2000) delay(240) nosound() } if(s<10) /*用字符的形式输出时间*/ { if(m<10) printf("%u:0%u:0%u",h,m,s) else printf("%u:%u:0%u",h,m,s) } else { if(m<10) printf("%u:0%u:%u",h,m,s) else printf("%u:%u:%u",h,m,s) } gotoxy(34,19)/*在指定坐标上输出日期*/ printf("%d年%d月%d日",o,p,q) printf("\b\b\b\b\b\b\b\b\b") } getch() closegraph() }1、用sleep延时刷新并获取系统时间来显示。
2、例程:
#include<graphics.h>#include<math.h>
#include<dos.h>
#define PI 3.1415926
//屏幕中心的坐标(640X480模式下)
#define mid_x 320
#define mid_y 240
int main()
{ int graphdriver=DETECT,graphmode
int end_x,end_y
struct time curtime
float th_hour,th_min,th_sec
initgraph(&graphdriver,&graphmode,"C:\\TC2") //初始化VGA屏幕模式
setbkcolor(BLACK) //使用黑色的背景色
while(!kbhit(0)) //若和兆有键盘输入,则跳出,即是结束程序
{ setcolor(GREEN) //把画笔设为绿色
circle(mid_x,mid_y,180) //钟的外圆
circle(mid_x,mid_y,150) //钟的内圆
circle(mid_x,mid_y,1) //画出钟的圆心
gettime(&curtime) //取得系统当前时间
th_sec=(float)curtime.ti_sec*0.1047197551 //把秒针的角度化为弧度,为以后绘制时方便,下同
th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0 //分针的弧度
th_hour=(float)curtime.ti_hour*0.5235987755+th_min/12.0 唤盯租//时度的弧度,注意整时是12等分的,所时乘的是3.14/180*5
//计算出时针的尾的坐标(时针长70)
end_x=mid_x+70*sin(th_hour)
end_y=mid_y-70*cos(th_hour)
setcolor(RED)
line(mid_x,mid_y,end_x,end_y) //用红色线画出时针
//计算出分针坐标(分针长110)
end_x=mid_x+110*sin(th_min)
end_y=mid_y-110*cos(th_min)
setcolor(RED)
line(mid_x,mid_y,end_x,end_y) //用红色画出分针
end_x=mid_x+140*sin(th_sec)
end_y=mid_y-140*cos(th_sec)
setcolor(RED)
line(mid_x,mid_y,end_x,end_y) //同上,画出秒针,长为140
//画出钟盘上的刻度,刻度长20
line(140,240,160,240) //9点对应的大刻度
line(320,60,320,80) //12点对应的大刻度
line(500,240,480,240) //3点的刻度
line(320,420,320,400) //6点的刻度
line(410,395.7,400,378.4) //5点
line(475.7,330,458.4,320) //4点
line(475.7,150,458.4,160) //2点
line(410,84.3,400,101.6) //1点
line(230,84.3,240,101.6) //11点
line(164.3,150,181.6,160) //10点
line(164.3,330,181.6,320) //8点
line(230,395.7,240,378.4) //7点
sleep(BLUE) //这里应该是打错,停止一秒,应为则做sleep(1000)
cleardevice() //清除屏幕上的显示
}
closegraph() //关闭VGA屏幕,即返回文本方式
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)