浙二眼科哪个专家号:大侠帮忙解决一下 C 语言设计的问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 19:20:57
1 课程设计题目
电子时钟系统的设计与实现
2 课程设计内容
时钟是人们所熟知的一个工具,有机械表和电子表之分。电子表又可分为指针式电子表和数码式电子表。设计一个电子时钟系统,模拟机械表的运转模式。时钟系统的具体模块包括:
1. 主控模块
调用初始化模块对系统进行初始化,调用和协调各模块之间的关系,完成系统功能。
2. 系统初始化
完成系统的初始化。
3. 坐标4. 点计算模块
完成时、分、秒指针旋转一周的60个坐标点的计算等任务。
5. 时钟面板绘制模块
完成时钟面板的绘制和表的外框绘制,包括60个标志点(其中含有12个整点位置的标志点)。
6. 读系统时间模块
完成系统时间的读取。
7. 时钟运行模块
完成时钟指针的移动。
8. 读取按键模块
完成按键的读取,以使系统在运行时,按任意键均可退出系统。
三.课程设计要求
绘制一个简洁、精美的时钟面板,并在时钟表的外框左上面写入设计者的姓名;
显示12个整点时间刻度,绘制形状不同的时、分、秒三根指针,并便于读出时间;
启动系统时,读取系统时间,开始机械表的运转;
秒针转一圈后,分钟转1/60圈;秒针转一圈后,时针转1/(60*12)圈,即分针转12圈,时针转一圈;
按任意键均可退出时钟系统;
尽可能根据当前显示的时间,在时钟表的外框右上角显示出当前是上午(A.M.)还是下午(P.M.)。
就这些了 我是菜鸟一个 请大侠帮忙!!~~

#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=0;i<60;i )
{if(i%5==0) l=15;
else l=5;
x1=200*cos(i*6*pi/180) 300;
y1=200*sin(i*6*pi/180) 240;
x2=(200-l)*cos(i*6*pi/180) 300;
y2=(200-l)*sin(i*6*pi/180) 240;
line(x1,y1,x2,y2);
}
}
main()
{
int x,y;
int gd=VGA,gm=2;
unsigned char h,m,s;
suct time t[1];
initgraph(&gd,&gm,"d:\\tc");
init();
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,m,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;
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();
}
}
getch();
closegraph();
}