C语言课程设计-图形时钟.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 图形 时钟
- 资源描述:
-
《C 语言程序设计课程设计报告》 《C语言程序设计》课程设计 实验报告 题目: 图形时钟 班级: 学号: 姓名: 成绩: 指导教师: 完成日期: 2011 年 1 月 25 日 目 录 §1.系统功能模块结构图﹣﹣﹣﹣﹣ P2-4 §2. 程序结构(画流程图)﹣﹣﹣﹣﹣﹣ P4 §3. 数据结构设计及用法说明﹣﹣﹣ P5 §4. 试验结果(包括输入数据和输出结果)﹣﹣P5 §5.体会 ﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣ P6 §6.参考文献 ﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣﹣P7 §7.附录:程序清单及源程序﹣﹣﹣﹣ P7-8 §1.系统功能模块结构图 ---各模块的功能及程序分析 (1) void Drawclock函数 void DrawClock(int x,int y,int color) { int r=150; float th; setcolor(color); circle(x,y,r); circle(x,y,2); } 作用:画表盘 r为表盘的半径 x.y为圆心的坐标 (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()) { DrawClock(x0,y0,14); - - - - - - - - - - -函数(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.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); - - - - - - - - - - 画分针 DrawHand(x0,y0,th_sec,140,12); - - - - - - - - - - 画秒针 Part ⑧ : settextstyle(2,0,3); - - - - - - - - - -设置字体 2-----文字的字体 0-----文字的方向 3-----文字的大小 outtextxy(270,160,"MADE BY:SDW"); - - - - - - - - - -输出字体 MADE BY:SDW (270,160)为字体的坐标 Part ⑨ : sleep(1); - - - - - - - - - - 延时一秒后刷新 cleardevice(); - - - - - - - - - - 清除图形屏幕 } closegraph(); - - - - - - - - - -关闭图形系统,退出图形方式 §2.程序结构 §3.数据结构设计 用法说明 试验结果 本程序设计分三步: 1、是对时钟程序做全面的分析,即对程序要使用的编写方法 功能,运行方式进行分析,并做出正确的解决方案。 2、是程序的编写。由于该程序所涉 及的信息内容比较广泛 ,所以程序的编写也有 些复杂。程序的编写是一 项困难的任务 ,完成此程序必须运用书 中的大部分知识,而且要 有清晰的思路和较强的 语言组织能力 。 3、是程序的检查和系统的调用。当程序运行后,显示出 一个时钟, 用法说明:第一步,用编辑程序把编制的源程序按照一定的书写格式送到计算机中。 第二步,把送入的源程序 翻译成机器语言,即 用编译程序对源程序进行语 法检查并将符合语法规则的源程 序语句翻译成计算机能 识别的“语言”。 第三步,使用计算机中的 连接程序,把翻译好 的计算机语言程序连接起 来,并扶植成一个计算机能真正运 行的程序。 第四步,将修改后的程序运行。(保存) 第五步,以后使用时双击clock.exe文件即可 试验结果:在屏幕上显示一个时钟,(包括:时针,分针,秒针) 时针所显示的时间为系统时间,用户可以通过修改系统的时间来修改时钟的时间。 §5.体会 图 - 6 - 形钟这个程序的设计,需要 我们理解并掌握了 C 语言基本编程方 法并, 掌握一些函数的使用方法。这次 的课程设计是珍贵的一次实践机会,是 我们大学开学以来第一次完全依靠自己 一步一步地上网搜索,从一开始的毫无 头绪到后来一个模块又一个模块慢慢地 研究,理解并为我所用,直到最后完成 设计任务。这次的课程设计不仅使我们 的理论知识在实践中得到了巩固,个人 能力得到了提升,也使自己从摸索中学 到了许多课本上所没有的内容与知识。 如果 没有这次机会,我想 我也许会一 直停留在对 C 语言略知皮毛的阶段 上,而现在我可以把 知识应用起来,设 计一个小 程序。从闻所未闻的画图函 数,文字处理函数,各个图形所对应的 函数名称,大体的理解,到每一条程序 所包含的意义及功能的研究。从画表盘, 画指 针开始,到从系统调用时间进而准确地表现到指针上。从程序的大体布局到每一条 程序中各条数学函数的转化运算,一个小小的程序看起来简单,但真正到了自己做 才会觉得是那么的复杂。程序虽然简单,但通过自己完成的喜悦是其他人所永远感 受不到的。经过一段时间的上机的不断调试,也才终于顺利的完成 了设计任务。 在研究设计过 程中,我不仅增强了自学的能力。对一些软件开发模式有了更加深 刻的认识,对C语言应用软件的熟练程度有所提高,也学会了如何进行设计一个 综合完整的软件。使自己的知识不再停留在书本的层面上。本次的实践中认识自己 的不足,包括在声音,背景及表盘创新方面的工作,还有很大的提升空间和余地。 希望在今后的学习过 程中能明确自己的奋斗目标并为此努力学习,踏踏实实学好 专业知识,也是为将来的就业做好充分的准备工作。 §6.参考文献 1.张基温.C 语言程序设计案例教程.清华大学出版社,2005 2.王德银实用 C 语言程序设计.人民邮电出版社,2005 3.谭浩强.C 语言程序设计教程.高等教育出版社,2006 4. 段兴.C言实用程序设计 100 例.人民邮电出版社,2002 5.杨旭.C 语言程序设计案例教程.中国铁道工业出版社,2004 6.网上,论坛,百度知道等等,2011。 §7.附:源程序 #include<graphics.h> #include<math.h> #include<dos.h> #define PI 3.1415926 #define x0 320 #define y0 240 void DrawClock(int x,int y,int color) { float th; setcolor(color); circle(x,y,171); circle(x,y,172); circle(x,y,170); circle(x,y,173); circle(x,y,174); circle(x,y,2); circle(x,y,175); circle(x,y,3); circle(x,y,1); circle(x,y,4); } void Drawxy() { setcolor(6); circle(393,93,3);circle(383,113,3); circle(447,177,3);circle(467,167,3); circle(447,293,3);circle(467,303,3); circle(383,367,3);circle(393,387,3); circle(237,387,3);circle(247,367,3); circle(173,313,3);circle(193,303,3); circle(173,157,3);circle(193,167,3); circle(237,93,3);circle(247,113,3); } 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); } void main() {int gdriver=DETECT,gmode; struct time curtime; float th_hour,th_min,th_sec; initgraph(&gdriver,&gmode,""); setbkcolor(9); while(! kbhit()) { DrawClock(x0,y0,14); Drawxy(); 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.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 */ DrawHand(x0,y0,th_hour,70,2); DrawHand(x0,y0,th_min,110,3); DrawHand(x0,y0,th_sec,140,12); setcolor(2); settextstyle(2,0,3); outtextxy(270,160,"MADE BY:SDW"); settextstyle(2,0,12); outtextxy(320,80,"12"); outtextxy(480,240,"3"); outtextxy(320,400,"6"); outtextxy(160,240,"9"); sleep(1); cleardevice(); } closegraph(); } - 9 -展开阅读全文
咨信网温馨提示: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/11230226.html