- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机械时钟程序报告 本科毕业设计(论文)
课 程 设 计 报 告
课程名称 C语言程序设计
课题名称 机械时钟的设计
专 业 电子信息
班 级
学 号
姓 名
指导教师
湖南工程学院
课 程 设 计 任 务 书
课程名称 C语言程序设计
课 题 机械时钟设计
专业班级
学生姓名
学 号
指导老师
审 批
一、设计内容与设计要求
设计内容:机械时钟系统
在屏幕上实现一个机械时钟,并且能够通过键盘上的按键完成时间的修改。
目 录
1.需求分析 1
2程序总体设计 1
3.程序详细设计 2
4.程序运行结果 11
5.参考资料 13
6.总结体会 13
7.程序源代码 13
机械时钟程序报告
需求分析
根据老师的要求,要在屏幕上显示一个机械时钟并且显示当前的数字时钟以及日历。根据老师的要求,本程序要显示机械时钟就必须通过画图函数将机械表画出来。另外,本程序还用到延时函数,实现秒针,分针,时针的转动。树立起总体思想就开始设计整个程序。
程序总体设计
本程序包含了一个主函数和六个子函数,主函数完成初始化时间(获取系统时间)以及时钟与日历的进制,同时还是调节六个子函数共同完成整个程序功能的实现。六个子函数分别完成显示机械表针和数字时钟、显示界面上的文字、显示日历、做表盘、做刻度以及重新设置程序的时间与日历。
流程图如下:
程序的详细设计
1、画表盘、做刻度、显示界面上一些无需改动的文字
void fun2()//做表盘
{
setcolor(WHITE);
circle(220,240,180);
circle(220,240,170);
circle(220,240,2);
circle(220,240,110);
}
void fun3()//做刻度
{int i,ix,iy,ix1,iy1;
double i1;
for(i=0;i60;i++)
{i1=i*PI/30;
ix=int(220+165*sin(i1));
iy=int(240-165*cos(i1));
ix1=int(220+105*sin(i1));
iy1=int(240-105*cos(i1));
setcolor(WHITE);
if(i%15==0)
{bar(ix-5,iy-5,ix+5,iy+5);}
else
circle(ix,iy,2);
if(i%5==0)
{circle(ix1,iy1,5);
circle(ix,iy,5);}
}
}
void fun4()//做界面上的文字
{
char s1[]={机械时钟},
s2[]={按r键重设时间},
s3[]={按其他键退出},
s4[]={制作人——杨自然};
setfont(50,40,黑体);
setcolor(RED);
outtextxy(80,0,s1);
setfont(22,16,宋体);
setcolor(BLUE);
outtextxy(420,250,s2);
outtextxy(420,300,s3);
setcolor(BLUE);
setfont(18,12,宋体);
outtextxy(400,455,s4);
}
设计简单的表盘,即四个半径分别为2,110,170,180的同心圆。做刻度,在半径为110的圆盘上标出1到12点的位置,用半径为5小圆圈表示。在半径为170的圆盘上用标出1到12点的位置,用半径分别为2和五的同心圆表示,在1到六十的刻度上用半径为2的小圆圈表示,在3、6、9、12点的位置用边长为10的填充正方形表示。另外,在画图界面上显示一些必要的文字。
2、画表针,显示数字时钟,显示日历
void fun1(int h,int m,int s) //画时钟、分钟、秒钟,显示数字时钟
{double h1,m1,s1;
int hx,hy,mx,my,sx,sy;
s=s%60;
m=m%60;
h=h%24;
s1=s*PI/30;
m1=m*PI/30;
h1=(h%12)*PI/6+m*PI/360;
hx=int(220+100*sin(h1));
hy=int(240-100*cos(h1));
mx=int(220+140*sin(m1));
my=in
文档评论(0)