C语言专业课程设计图形时钟.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 专业 课程设计 图形 时钟
- 资源描述:
-
《C语言程序设计》课程设计 试验汇报 题目: 图形时钟 班级:电气工程及其自动化1401 学号: 姓名: 指导老师: —— .1 . 8 目 录 §1. 系统功效要求 ﹣﹣﹣﹣P3 §2. 程序结构(画步骤图) ﹣﹣﹣ P3-4 §3. 概要设计 ﹣﹣﹣ P4 §4. 试验结果 ﹣﹣﹣P6 §5.体会 ﹣﹣﹣ P6 §6.参考文件 ﹣﹣﹣P6 §7.附录:源程序 ﹣﹣﹣ P7-8 §1. 系统功效要求 在屏幕上显示一个图形时钟(用程序绘制一个和时钟样式相同即可),时间和系统时间一致,且要伴随时间走动正确走动。 §2.程序设计 §3. 概要设计 (1)void init() /*划时钟边框函数*/ int i,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;i<60;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) void DrawHand 函数 /*画指针*/ void DrawHand(int x,int y,float th,int l,int color) { int x1,y1; x1=x+l*sin(th); y1=y-l*cos(th); setcolor(color); line(x,y,x1,y1); } x:直线起点横坐标 y:直线起点纵坐标 x1:直线终点横坐标 y1:直线终点纵坐标 (3) void main() 函数 Part ①: int gdriver=DETECT,gmode; struct time curtime; ..............类型和最高分辨率 float th_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_hour<10) printf("0");.... 十点之前在小时数前加零 printf("%.0f:",(float)curtime.ti_hour);...........输出小时 } else ............下午时间处理 {printf("PM "); if((float)curtime.ti_hour-12<10) printf("0");.........假如时间减去12小时小于10 printf("%.0f:",(float)curtime.ti_hour-12);.......... 输出小时 } Part ⑤: if((float)curtime.ti_min<10) printf("0");......... 相当于小时计算方法 printf("%.0f:",(float)curtime.ti_min); ....... 输出分钟(同part ④) if((float)curtime.ti_sec<10) printf("0"); printf("%.0f",(float)curtime.ti_sec); Part ⑥: 以下三行计算表针转动角度,以竖直向上为起点,顺时针为正 th_sec=(float)curtime.ti_sec*0.; -- - - - - - -(2π/60=0.) th_min=(float)curtime.ti_min*0.+th_sec/60.0; th_hour=(float)curtime.ti_hour*0.+th_min/12.0; - - - - *(2π/12=0.) 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语言程序设计(第四版).清华大学出版社, 2李丽娟,马淑萍.C语言程序设计(第二版).中国铁道出版社, 3李丽娟,张奋.C语言程序设计试验教程(第二版).中国铁道出版社, 4张基温.C 语言程序设计案例教程.清华大学出版社, 5网络,baidu知道,贴吧等, 7.附录:源程序 #include<graphics.h> #include<math.h> #include<dos.h> #define PI 3.1415926 #define x0 320 #define y0 240 void 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;i<60;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); } } 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_hour<10) printf("0"); printf("%.0f:",(float)curtime.ti_hour); } else { printf("PM "); if((float)curtime.ti_hour-12<10) printf("0"); printf("%.0f:",(float)curtime.ti_hour-12); } if((float)curtime.ti_min<10) printf("0"); printf("%.0f:",(float)curtime.ti_min); if((float)curtime.ti_sec<10) printf("0"); printf("%.0f",(float)curtime.ti_sec); th_sec=(float)curtime.ti_sec*0.; th_min=(float)curtime.ti_min*0.+th_sec/60.0; th_hour=(float)curtime.ti_hour*0.+th_min/12.0; DrawHand(x0,y0,th_hour,70,2); DrawHand(x0,y0,th_min,110,3); DrawHand(x0,y0,th_sec,140,12); setcolor(13); settextstyle(2,0,12); outtextxy(300,80,"12"); outtextxy(460,220,"3"); outtextxy(315,370,"6"); outtextxy(160,220,"9"); sleep(1); cleardevice(); } closegraph(); }展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




C语言专业课程设计图形时钟.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/2864503.html