加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C语言实现的闹钟程序

(2009-12-08 16:09:05)
标签:

c语言

数组

编程

程序

软件

考试

闹钟程序

闹钟

赋值语句

字符常量

在C语言学习中,很多人对于数组,函数的定义,都觉得难,下面我就通过一个实例:编了一个闹钟程序,来讲解一下。

#include<stdio.h> 
#include <stdlib.h>
#include<time.h>
#include<conio.h>
#include<math.h>
void main() 

int gd=DETECT,gm; 
int x=320,y=240,r=200,i,h,m,s,thetamin,thetasec; 
struct  time t; 
char n[12][3]={"3","2","1","12","11","10","9","8","7","6","5","4"}; 
initgraph(&gd,&gm,"g:\\tc\\bgi");//
图形驱动器路径,根据自己的系统更换。 
circle(x,y,210); 
setcolor(4); 
settextstyle(4,0,5); 
for(i=0;i<12;i++) 

if(i!=3) 
outtextxy(x+(r-14)*cos(M_PI/6*i)-10,y-(r-14)*sin(M_PI/6*i)-26,n[i]); 
else 
outtextxy(x+(r-14)*cos(M_PI/6*i)-20,y-(r-14)*sin(M_PI/6*i)-26,n[i]); 

gettime(&t); 
printf("The current time is: %2d:%02d:%02d.%02d\n",t.ti_hour, t.ti_min, 
t.ti_sec, t.ti_hund); 
while(!kbhit()) 

setcolor(5); 
setfillstyle(1,5); 
circle(x,y,10); 
floodfill(x,y,5); 
gettime(&t); 
if(t.ti_min!=m) 

setcolor(0); 
line(x,y,x+(r-60)*cos(thetamin*(M_PI/180)),y-(r-60)*sin(thetamin*(M_PI/180 
))); 
circle(x+(r-80)*cos(thetamin*(M_PI/180)),y-(r-80)*sin(thetamin*(M_PI/180)) 
,10); 
line(x,y,x+(r-110)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-110)*sin(M_PI/6*h 
-((m/2)*(M_PI/180)))); 
circle(x+(r-130)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-130)*sin(M_PI/6*h-( 
(m/2)*(M_PI/180))),10); 

if(t.ti_hour>12) 
t.ti_hour=t.ti_hour-12; 
if(t.ti_hour<4) 
h=abs(t.ti_hour-3); 
else&n
bsp;
h=15-t.ti_hour; 
m=t.ti_min; 
if(t.ti_min<=15) 
thetamin=(15-t.ti_min)*6; 
else 
thetamin=450-t.ti_min*6; 
if(t.ti_sec<=15) 
thetasec=(15-t.ti_sec)*6; 
else 
thetasec=450-t.ti_sec*6; 
setcolor(4); 
line(x,y,x+(r-110)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-110)*sin(M_PI/6*h 
-((m/2)*(M_PI/180)))); 
circle(x+(r-130)*cos(M_PI/6*h-((m/2)*(M_PI/180))),y-(r-130)*sin(M_PI/6*h-( 
(m/2)*(M_PI/180))),10); 
line(x,y,x+(r-60)*cos(thetamin*(M_PI/180)),y-(r-60)*sin(thetamin*(M_PI/180 
))); 
circle(x+(r-80)*cos(thetamin*(M_PI/180)),y-(r-80)*sin(thetamin*(M_PI/180)) 
,10); 
setcolor(15); 
line(x,y,x+(r-70)*cos(thetasec*(M_PI/180)),y-(r-70)*sin(thetasec*(M_PI/180 
))); 
delay(1000); 
setcolor(0); 
line(x,y,x+(r-70)*cos(thetasec*(M_PI/180)),y-(r-70)*sin(thetasec*(M_PI/180 
))); 

 

在掌握一些基本概念,基本语法的基础上,不断地上机练习,不断地领悟才有所提高,有所进步!

单是理论是难以掌握好,学好C语言的!

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有