分享
 
 
 

修正后的“模拟windows 日期/时间 的C程序

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

上次传的那个我传完之后才发现是我先前没做好的版本,漏洞百出。

这次上传的的是我修正后的版本。

主要修正了万年历的诸多错误!

还有连按按键屏幕出错的问题。

还有时针的错误。

反正是错误百出!!嘻嘻嘻,不好意思:)

本人在此声明:此程序为本人原创,由于是本人的课设作业,如有北工大的同学,请勿抄袭,发表此程序完全为了交流经验,互相学习、探讨之用。如有问题可以给我发邮件,谢谢。

非常希望大家给我能提出宝贵意见。

#include<graphics.h>

#include<stdio.h>

#include<math.h>

#include<dos.h>

#define PI 3.1415926

#define UP 0x4800

#define DOWN 0x5000

#define ESC 0x11b

#define TAB 0xf09

clock();

date(int,int);

int digitsec(double s)/*digital clock second*/

{int i;

for(i=0;i<=59;i++) if(s==i) return i;

}

int digithour(double h)/*digital clock hour*/

{int i;

for(i=0;i<=23;i++) if(h==i) return i;

}

int digitmin(double m)/*digital clock minute*/

{int i;

for(i=0;i<=59;i++) if(m==i) return i;

}

digitclock(int x,int y,int clock)/*整个digital clock*/

{char buffer1[10];

setfillstyle(0,2);

bar(x,y,x+15,328);

if(clock==60) clock=0;

sprintf(buffer1,"%d",clock);

outtextxy(x,y,buffer1);

}

cursor(int count) /*画一个光标函数*/

{switch(count)

{case 1:line(156,108,156,118);break;

case 2:line(280,108,280,118);break;

case 3:line(424,315,424,325);break;

case 4:line(465,315,465,325);break;

case 5:line(505,315,505,325);break;

}

}

clear(int count) /*清除光标函数*/

{switch(count)

{case 2:line(156,108,156,118);break;

case 3:line(280,108,280,118);break;

case 4:line(424,315,424,325);break;

case 5:line(465,315,465,325);break;

case 1:line(505,315,505,325);break;

}

}

int key(int,int);

int dateupchange(int);

int datedownchange(int);

int timeupchange(int);

int timedownchange(int);

double h,m,s;

double x,x1,x2,y,y1,y2;

char buffer[80];

strUCt time t[1];

struct date da[1];

main()

{int driver, mode=0,i,j;

int year,mon;

char *month[]={"SUN","MON","TUE","WEN","THU","FRI","SAT"};

driver=DETECT;

initgraph(&driver, &mode, "");

setlinestyle(0,0,3);

setbkcolor(0);

setcolor(7);

line(82,430,558,430);

line(70,62,70,418);

line(82,50,558,50);

line(570,62,570,418);

line(70,62,570,62);

line(76,56,297,56);

line(340,56,564,56); /*画主体框架*/

setlinestyle(0,0,3);

arc(82,62,90,180,12);

setlinestyle(0,0,3);

arc(558,62,0,90,12);

setlinestyle(0,0,3);

arc(82,418,180,279,12);

setlinestyle(0,0,3);

arc(558,418,270,360,12); /*画边角*/

setcolor(15);

outtextxy(300,53,"CLOCK"); /*总标题*/

setcolor(7);

rectangle(80,72,332,360); /*月历的框架*/

rectangle(342,72,560,360); /*时钟的框架*/

for(j=78;j<=84;j+=6)

line(80,j,332,j);

setwritemode(1);

line(190,78,225,78);

setwritemode(0);

setcolor(15);

outtextxy(193,75,"DATE");

setcolor(7);

rectangle(90,106,160,120);

outtextxy(163,110,"(M)"); /*打印月份标题*/

rectangle(190,106,290,120);

outtextxy(293,110,"(Y)"); /*打印年标题*/

for(i=0,j=90;i<7;i++,j+=35)

outtextxy(j,145,month[i]);/*打印周一至周日*/

rectangle(88,140,323,330);

line(88,158,323,158);/*月份的框架*/

for(j=78;j<=84;j+=6)

line(342,j,560,j);

setwritemode(1);

line(431,78,465,78);

setwritemode(0);

setcolor(15);

outtextxy(433,75,"TIME");/*时钟的标题*/

setcolor(7);

line(392,310,510,310);

line(392,330,510,330);

arc(392,320,90,270,10);

arc(510,320,270,90,10);

for(i=431;i<=470;i+=39)

for(j=317;j<=324;j+=7){

setlinestyle(0,0,3);

circle(i,j,1);

} /*DIG99vAL CLOCK*/

setcolor(15);

line(156,108,156,118); /*在运行起始先画一个光标*/

for(i=0,m=0,h=0;i<=11;i++,h++){ /*hour points*/

x=100*sin((h*60+m)/360*PI)+451;

y=200-100*cos((h*60+m)/360*PI);

setlinestyle(0,0,3);

circle(x,y,1);

}

for(i=0,m=0;i<=59;m++,i++){ /*minute points*/

x=100*sin(m/30*PI)+451;

y=200-100*cos(m/30*PI);

setlinestyle(0,0,1);

circle(x,y,1);

}

setcolor(9);

outtextxy(83,380,"COLLEGE OF COMPUTER SCIENCE BEIJING UNIVERS99vY OF TECHNOLOGY");

outtextxy(400,400,"DESIGNED BY flowers");

outtextxy(500,410,"2003.6");

setcolor(15);

outtextxy(81,380,"COLLEGE OF COMPUTER SCIENCE BEIJING UNIVERS99vY OF TECHNOLOGY");

outtextxy(398,400,"DESIGNED BY flowers");

outtextxy(498,410,"2003.6");

outtextxy(81,410,"Control:TAB,UP,DOWN,ESC");

getdate(da);

mon=da[0].da_mon;

year=da[0].da_year;

date(year,mon);

clock();

closegraph();

return 0;

}

clock(){

int k=0,count;

setcolor(15);

gettime(t);

h=t[0].ti_hour;

m=t[0].ti_min;

x=50*sin((h*60+m)/360*PI)+451;

y=200-50*cos((h*60+m)/360*PI);

line(451,200,x,y);

x1=80*sin(m/30*PI)+451;

y1=200-80*cos(m/30*PI);

line(451,200,x1,y1);

digitclock(408,318,digithour(h));

digitclock(446,318,digitmin(m));

setwritemode(1);

for(count=2;k!=ESC;){ /*second hand*/

setcolor(12);

soun

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有