资源描述:
《用c++编写的仿windows窗体时钟程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、用C++编写的仿WINDOWS窗体时钟程序发表日期:2004年4月11日 出处:eastboy 作者:eastboy 已经有1235位读者读过此文这是我在大学里学习C++时的课程设计,具有以下特点:1)仿WINDOWS界面,但无鼠标操作2)具整点报时功能,几点报几声3)可设置时间和日期当然还有一些地方做得不行,比如输入时的光标闪烁,放在这里的目的就是与大家共同学习,欢迎批评指正。程序中注释的地方不是很多,但是我相信各位还是能看得明白的,呵呵!本人在此声明:此程序为本人原创,请还在上学的朋友勿抄袭!发表此程序完全为了交流经验,互相学习、探讨之用。非常希望大家给我能
2、提出宝贵意见。源代码:/*******************************//*时钟源程序 *//*仿WINDOWS界面设计 *//*Turboc3下调试通过 *//*包含两个源文件: *//* clock.cpp win.cpp *//*******************************/#include"stdio.h"#include"stdlib.h"#include"conio.h"#include"time.h"#include"st
3、ring.h"#include"math.h"#include"dos.h"#include"bios.h"#include"win.cpp" //调用窗体显示#defineTRUE 1#defineFALSE0#definePI3.1415926voidcursor(intx,inty) //光标{ intcount=0; while(count<=10){ delay(20); count++; if(count<=5) setcolor(9); else setcolor(7); line(x,y,x,y+12); line(x+
4、1,y,x+1,y+12); }}intkeyscancode() //检测按键{ intkey; while(bioskey(1)==0)return0; key=bioskey(0); key=key&0xff?key&0xff:key; return(key);}voidmessage(intx,inty,intn) //状态栏信息{ char*msg[6]={"PressESCtoquitclock.", "PressTorttosettime.", "PressDordtosetdate.", "PressESCtocancelset.
5、", "PressEntertoconfirmset.", "PressBackSpacetodeleteanumber."}; setfillstyle(SOLID_FILL,LIGHTGRAY); bar(x,y,x+50*8,y+12); setcolor(10); outtextxy(x,y+2,msg[n]);}classCLOCK:publicWIN //定义CLOCK为WIN的继承类{ inthour,min,sec; intyear,mon,day; intx,y,radio; floatak,aj,ai; intxs,
6、ys,xm,ym,xh,yh; public: CLOCK(char*,int,int,int,int); intisleapyear(int); intisweek(int,int); voidshowclock(); voidrunclock(); voidsetclock(); voidinittodaydate(); voidinitnowtime(); voidshowdate(); voidhidedate(); voidpip(); voidshowtime(); voidsetdates();};//
7、构造函数CLOCK::CLOCK(char*n,inta,intb,intc,intd):WIN(n,a,b,c,d){ x=a+130; y=b+155; radio=120; }int CLOCK::isleapyear(intyear) //判断是否闰年{ if(year%100!=0&&year%4==0) returnTRUE; if(year%400==0) returnTRUE; returnFALSE;}intCLOCK::isweek(intyear,intmon) //计算year年m