C语言编辑一个程序。要求在屏幕上显示一个图形时钟(用程序绘制一个与时钟样式相似即可),时间与系统时间

跪求。。。。。。。。。

第1个回答  2011-04-06
/* Note:Your choice is C IDE */
#include "stdio.h"
#include "graphics.h"
#include "math.h"
#include "time.h"
#include "dos.h"
#include "stdlib.h"
#include "conio.h"
#define R 200
#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(void);
void draw_bp(void);
void close(void);
void draw_kt(void);
int main(void)
{
int x,y,hc=0;
int bx,by,ax,ay;
int h,m,s;
struct time t[1];
init();
draw_bp();
draw_kt();
setwritemode(1);
gettime(t);
h=t[0].ti_hour;
m=t[0].ti_min;
s=t[0].ti_sec;
setcolor(7);
d(150,h,30);
setcolor(14);
d(170,h,6);
setcolor(4);
d(190,s,6);
while(!kbhit())
{
while(t[0].ti_sec==s)
gettime(t);
sound(400);
delay(70);
sound(200);
delay(30);
nosound();
setcolor(4);
d(190,s,6);
s=t[0].ti_sec;
setfillstyle(SOLID_FILL,13);
floodfill(1,380,14);
setcolor(4);
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();
}
setcolor(hc++);
if(hc==12) hc=0;
ellipse(300,300,160,340,23,23);
ellipse(220,170,0,360,23,65);
ellipse(380,170,0,360,23,65);
ellipse(300,180,0,180,23,23);
ellipse(380,180,0,180,23,23);
arc(150,80,20,250,59);
}
close();
return 0;
}
void init(void)
{
int driver,mode;
driver=DETECT;
initgraph(&driver,&mode,"c:\\tc");
cleardevice();
}
void draw_bp(void)
{
int x=300,y=240,i,n,l,ax,ay,bx,by;
for(n=0;n<27;n++)
printf("\n");
for(n=0;n<29;n++)
printf(" ");
setbkcolor(0);
setcolor(14);
circle(x,y,R);
setcolor(12);
circle(x,y,190);
setfillstyle(SOLID_FILL,14);
floodfill(x,y,12);
setfillstyle(SOLID_FILL,13);
floodfill(1,1,14);
setcolor(2);
circle(x,y,2);
circle(x,y,5);
for(i=0;i<60;i++)
{
if(i%5==0)
l=15;
else
l=5;
ax=200*cos(i*6*PI/180)+300;
ay=200*sin(i*6*PI/180)+240;
bx=(200-l)*cos(i*6*PI/180)+300;
by=(200-l)*sin(i*6*PI/180)+240;
line(ax,ay,bx,by);
}
settextstyle(3,0,5);
outtextxy(260,380,"MADEIN CHINA");
}

void draw_kt(void)
{
int x=300,y=240;
ellipse(x-80,y-70,0,360,23,65);
ellipse(x+80,y-70,0,360,23,65);
ellipse(x-80,y-60,0,180,23,23);
setfillstyle(SOLID_FILL,0);
floodfill(x-80,y-60,2);
ellipse(x+80,y-60,0,180,23,23);
setfillstyle(SOLID_FILL,0);
floodfill(x+80,y-70,2);
setcolor(5);
circle(150,80,60);
setfillstyle(SOLID_FILL,14);
floodfill(150,80,5);
circle(450,80,60);
setfillstyle(SOLID_FILL,14);
floodfill(450,80,5);
setcolor(14);
arc(150,80,0,360,60);
arc(450,80,0,360,60);
setcolor(0);
ellipse(x,y+60,160,340,23,23);
circle(x+120,y+10,23);
setfillstyle(SOLID_FILL,12);
floodfill(x+120,y+10,0);
setcolor(14);
circle(x+120,y+10,23);
setcolor(0);
circle(x-120,y+10,23);
setfillstyle(SOLID_FILL,12);
floodfill(x-120,y+10,0);
setcolor(14);
circle(x-120,y+10,23);
ellipse(x,y+60,0,180,23,23);
}
void close(void)
{
getch();
closegraph();
}来自:求助得到的回答
第1个回答  2011-04-06
#include<stdio.h>
#include<dos.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>
#define PI 3.1415926

int main()
{
int X=300,Y=250,R=100,RR=130;
int X_HOUR,X_MINUTE,X_SECOND;
int Y_HOUR,Y_MINUTE,Y_SECOND;
int X_DRAW=0,Y_DRAW=0,R_DRAW=120;
int NUM=0;
struct time T;
int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"D:\\Program Files\\TC\\BGI");
setlinestyle(0,1,3);
setcolor(LIGHTGRAY);
circle(X,Y,RR);
setlinestyle(0,1,1);
for(NUM=0;NUM<12;NUM++)
{
setcolor(11);
X_DRAW=X+R_DRAW*cos(NUM*2*PI/12);
Y_DRAW=Y+R_DRAW*sin(NUM*2*PI/12);
circle(X_DRAW,Y_DRAW,5);
setfillstyle(1,11);
if((NUM%3)==0)floodfill(X_DRAW,Y_DRAW,11);

}
while(!kbhit())
{
gettime(&T);
X_HOUR=X+(R/2)*cos(T.ti_hour*2*PI/12+T.ti_min*2*PI/(60*12)-PI/2);
X_MINUTE=X+R*cos(T.ti_min*2*PI/60-PI/2)*3/4;
X_SECOND=X+R*cos(T.ti_sec*2*PI/60-PI/2);
Y_HOUR=X+(R/2)*sin(T.ti_hour*2*PI/12+T.ti_min*2*PI/(60*12)-PI/2);
Y_MINUTE=Y+R*sin(T.ti_min*2*PI/60-PI/2)*3/4;
Y_SECOND=Y+R*sin(T.ti_sec*2*PI/60-PI/2);
setcolor(YELLOW);
line(X,Y,X_HOUR,Y_HOUR);
setcolor(RED);
line(X,Y,X_MINUTE,Y_MINUTE);
setcolor(BLUE);
line(X,Y,X_SECOND,Y_SECOND);
delay(10000);
setcolor(BLACK);
line(X,Y,X_HOUR,Y_HOUR);
line(X,Y,X_MINUTE,Y_MINUTE);
line(X,Y,X_SECOND,Y_SECOND);
}
getch();
closegraph();
return 0;
}

在使用时请把initgraph中的第三个参数改成你的tc下BGI文件夹所在的目录,注意:目录中不要有空格,\要用\\代替。追问

运行有18个错误啊!!!!!!!

本回答被提问者采纳

c语言怎么样编写一个时钟程序
pt[2].x=pt[2].y=iAngle%5?33:100;pt[0].x-=pt[2].x\/2;pt[0].y-=pt[2].y\/2;pt[1].x=pt[0].x+pt[2].x;pt[1].y=pt[0].y+pt[2].y;SelectObject(hdc,GetStockObject(BLACK_BRUSH));Ellipse(hdc,pt[0].x,pt[0].y,pt[1].x,pt[1].y );} } void DrawHan...

怎么用C语言编程数字时钟
1、以下例程实现时钟的实时显示基本要求: 1) 自行设计界面,模拟表盘式时钟。要求界面美观,清晰。2)数字同步显示时间信息。2、例程:include<graphics.h> #include<math.h> #include<dos.h> #define PI 3.1415926 \/\/屏幕中心的坐标(640X480模式下)#define mid_x 320 #define mid_y 240 int...

编写一个简单的C语言程序,在屏幕上显示一行时间(包含小时、分钟和秒钟...
} 每编译一次就会显示这一刻的系统时间;这个程序我也不太懂,我学长讲了半天,数据结构都整出来了,也没把我整明白,我再研究研究;希望能帮到你吧;

c语言 时钟模拟
int gd=DETECT,gm;initgraph(&gd,&gm,""); \/\/初始化屏幕模式 setbkcolor(8);while(!kbhit()) \/\/若有键盘输入则跳出(结束程序){ draw(); \/\/绘制钟 settextstyle(3,0,5);setcolor(9);outtextxy(60,170,"my clock");gotoxy(35,17);\/\/打印出数字形式的时间(hh:mm:ss)if(h<10) p...

求一个关于用C语言编写的电子时钟的程序,内容要有闹钟,可以调整时间...
define unit unsigned int define uchar unsigned char \/\/#define HZ 12 sbit key0=P0^0; \/\/ 分钟调整 sbit key1=P0^1; \/\/ 小时调整 sbit P2_0=P2^7; \/\/秒 指示灯 sbit MN_RXD=P3^6;sbit MN_TXD=P3^7;uchar data CLOCK[4]={0,0,0,12};\/\/存放时钟时间(百分秒,秒...

C语言编图形时钟
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=0;i<60;i++){if(i%5==0) l...

用c语言编写一个程序,在显示器上自动显示年、月、日
给你一个屏幕上显示的表 全屏幕模拟时钟的C源程序 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)...

怎么使用C语言制作一个时钟?
首先X(a,b,c) 也就是X(200,12,6) 这时计算x=200*cos(12*6*pi\/180-pi\/2)+300 也就是计算出了 以半径为200,度数为12 步长为6 (实际上就是72度 但是这里又减去了pi\/2 也就是72-45=27度)的那点的横坐标 也就是x的数值 然后执行Y(a,b,c)也就是Y(200,12,6)这时计算y=200*...

C语言编程 编写程序,在屏幕上输出下面的图案(要求用for 循环实现...
1、先双击打开桌面上的C-Free5软件。2、打开编程软件以后,创建一个新页面来编写程序;可以直接点击空白页面,也可以先点击【文件】,再点击【新建】。3、代码:#include<stdio.h>\/\/头文件,int main(void)\/\/主函数{ printf("打印一个C图案:"); printf("\\n"); printf(" ***"); ...

用C语言编一个数字电子时钟的程序
1.首先要有清屏;2.要有定点显示,在屏幕中央输入小时、分钟、秒钟,格式如下: : : 分别在时、分、秒三个空位置上输入数据。3.数据输入完成后开始运行,并在同一位置上不断刷新时间;4.个位数前面应自动补0,如: 10:07:095.允许外循环为死循环,由Ctrl+Break控制结束;6.屏幕按每行40列模式显示。要求是用C...

相似回答
大家正在搜