




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8 C语言程序设计课程设计 实验报告 C语言程序设计课程设计 实验报告题目: 图形时钟 班级:电气工程及其自动化1401学号: 姓名: 指导教师: 2015 .1 . 8 目录1.系统功能要求 P32.程序结构(画流程图) P3-43.概要设计 P44.试验结果 P65.体会 P66.参考文献 P67.附录:源程序 P7-81.系统功能要求 在屏幕上显示一个图形时钟(用程序绘制一个与时钟样式相似即可),时间与系统时间一致,且要随着时间的走动准确的走动。2.程序设计3.概要设计(1)voidinit()/*划时钟边框函数*/ inti,l,x1,x2,y1,y2;circle(320,240,200);/*以(320,240)为圆心,200为半径画圆*/ circle(320,240,199);/*以(320,240)为圆心,199为半径画圆*/ circle(320,240,201);/*以(320,240)为圆心,201为半径画圆*/ circle(320,240,1,);/*以(320,240)为圆心,1为半径画圆*/ circle(320,240,2,)/*以(320,240)为圆心,2为半径画圆*/ circle(320,2403,);/*以(320,240)为圆心,3为半径画圆*/for(i=0;i60;i+)/*划钟点上的短线*/ if(i%5=0) l=15; else l=5; x1=200*sin(i*6*pi/180)+320/*画线函数*/ y1=200*cos(i*6*pi/180)+240; x2=(200-l)*sin(i*6*pi/180)+320; y2=(200-l)*cos(i*6*pi/180)+240; line(x1,y1,x2,y2); (2)voidDrawHand函数/*画指针*/ voidDrawHand(intx,inty,floatth,intl,intcolor) intx1,y1; x1=x+l*sin(th); y1=y-l*cos(th); setcolor(color); line(x,y,x1,y1); x:直线起点的横坐标 y:直线起点的纵坐标x1:直线终点的横坐标y1:直线终点的纵坐标(3)voidmain()函数Part:intgdriver=DETECT,gmode; structtimecurtime;.类型和最高分辨率 floatth_hour,th_min,th_sec; initgraph(&gdriver,&gmode,); Graphdriver-配适器graphmode-显示模式Part: setbkcolor(0);.背景色Part: while(!kbhit() Init().函数(1)setwritemode(1); gettime(&curtime);.得到当前系统时间 gotoxy(35,20);.定位输出位置Part: if(float)curtime.ti_hour=12).上午的时间处理printf(AM); if(float)curtime.ti_hour10)printf(0);.十点之前在小时数前加零 printf(%.0f:,(float)curtime.ti_hour);.输出小时 else.下午的时间处理printf(PM); if(float)curtime.ti_hour-1210)printf(0);.如果时间减去12小时小于10 printf(%.0f:,(float)curtime.ti_hour-12);.输出小时 Part: if(float)curtime.ti_min10)printf(0);.相当于小时的计算方法 printf(%.0f:,(float)curtime.ti_min);.输出分钟(同part) if(float)curtime.ti_sec10)printf(0); printf(%.0f,(float)curtime.ti_sec);Part:以下三行计算表针转动角度,以竖直向上为起点,顺时针为正 th_sec=(float)curtime.ti_sec*0.1047197551;- - -(2/60=0.1047197551) th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0; th_hour=(float)curtime.ti_hour*0.523598775+th_min/12.0;-*(2/12=0.5235987755)Part:画指针 DrawHand(x0,y0,th_hour,70,2);.画时针 DrawHand(x0,y0,th_min,110,3);.画秒针Part:settextstyle(2,0,3);.设置字体 2:文字的字体;0:文字的方向;3:文字的大小 outtextxy(300,80,12); outtextxy(460,220,3); outtextxy(315,370,6); outtextxy(160,220,9);Part:sleep(1);.延时一秒后刷新 cleardevice();.清除图形屏幕 closegraph().关闭图形系统,退出图形方式4.试验结果5.体会 刚开始做时基本上什么都不懂,参考了很多资料,到网上查,差不多能写出基本程序,虽然很多是借鉴别人的,不过能写成这样,我心里还是挺高兴的。程序设计主要靠理解与运用,有些没有学过的知识不一定要懂得彻底,只要会运用就行。尤其是设计显示上、下午的数字时间和让时针正常运转而不是从3不动,然后直接跳到4上,我下了很大功夫,找了好多资料,最终一知半解,好在成功运行了。 不足之处也很多,程序思路不太清晰可能有些混乱。有很多程序设计使用并不熟练,甚至有些方法掌握不了,更容易忘记。算法结构了解并不深入,独立自主的想法占据总体达不到要求。需要加强练习和对知识的理解与掌握。通过这次设计,让我学习程序的热情大涨,相信以后会做的更好!6. 参考文献1谭浩强.C语言程序设计(第四版).清华大学出版社,20102李丽娟,马淑萍.C语言程序设计(第二版).中国铁道出版社,20093李丽娟,张奋.C语言程序设计实验教程(第二版).中国铁道出版社,20094张基温.C语言程序设计案例教程.清华大学出版社,20055网络,百度知道,贴吧等,20147.附录:源程序#include#include#include#define PI 3.1415926#define x0 320#define y0 240void init() int i,l,x1,x2,y1,y2; circle(320,240,200); circle(320,240,201); circle(320,240,199); circle(320,240,1); circle(320,240,2); circle(320,240,3); for(i=0;i60;i+) if(i%5=0)l=15; elsel=5; x1=200*sin(i*6*PI/180)+320; y1=200*cos(i*6*PI/180)+240; x2=(200-l)*sin(i*6*PI/180)+320; y2=(200-l)*cos(i*6*PI/180)+240; line(x1,y1,x2,y2); void DrawHand(int x,int y,float th,int l,int color) int xp,yp; xp=x+l*sin(th); yp=y-l*cos(th); setcolor(color); line(x,y,xp,yp);void main() int gdriver=DETECT,gmode; struct time curtime; float th_hour,th_min,th_sec; initgraph(&gdriver,&gmode,); setbkcolor(0); while(! kbhit() init(); setwritemode(1); gettime(&curtime); gotoxy(35,20); if(float)curtime.ti_hour=12) printf(AM ); if(float)curtime.ti_hour10) printf(0); printf(%.0f:,(float)curtime.ti_hour); else printf(PM ); if(float)curtime.ti_hour-1210) printf(0); printf(%.0f:,(float)curtime.ti_hour-12); if(float)curtime.ti_min10) printf(0); printf(%.0f:,(float)curtime.ti_min); if(float)curtime.ti_sec10) printf(0); printf(%.0f,(float)curtime.ti_sec); th_sec=(float)curtime.ti_sec*0.1047197551; th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0; th_hour=(float)curtime.ti_hour*0.523598775+th_min/12.0; DrawHand(x0,y0,th_hour,70,2); DrawHand(x0,y0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 微镜基础知识培训内容课件
- 鲁迅美术附中数学试卷
- 南昌县模拟中考数学试卷
- 2025省计算机考试题目及答案
- 南通对口单招数学试卷
- 2025山西省语文中考试题及答案详解
- 2025山东省驾考试题及答案
- 铁路线路养护及安全知识考试试卷含答案及题目
- 电气设备运维知识考核试卷含事故抢修等考点
- 微生物实验安全知识培训课件
- 中医艾灸养生护理
- 2025届湖南省长沙市一中物理高一上期中达标检测模拟试题含解析
- 工程施工重点、难点分析及保证措施
- 2024城市电缆线路岩土工程勘察规范
- 变电站巡检维护服务方案
- 华为质量回溯(根因分析与纠正预防措施)模板
- 2023版评审准则和CNAS对照表
- CATIA CAA 二次开发详细教程(11) 程序的发布
- 分布式光伏发电项目可行性分析报告(方案)讲解演示模板ppt课件-图文
- 高空作业安全刷漆施工方案
- 医疗康养项目运营方案
评论
0/150
提交评论