




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模拟时钟行走 课程设计总体要求 采用模块儿化程序设计; 鼓励可视化编程; 源程序中有足够的注释; 学生可自行增加新功能模块儿; 必须上机调试通过; 注重算法运用,优化存储效率与运算效率; 需提交源程序及相关文件;目录1 课程任务书2 系统设计3 模块设计3.1 总体结构 3.2 流程图3.3 使用的主要函数4 调试及测试 1、调试过程中的问题 2、调试结果5 设计总结6 心得体会及致谢7 答辩记录8 教师意见一、课程设计任务书在屏幕上显示一个活动时钟;能模拟机械钟表行走;准确地利用数字显示日期和时间;按任意键时程序退出。二、 系统设计总体结构:在绘图窗口中先画出表盘后获取系统的时间,利用得到的系统时间计算表针的位置,并将时间在屏幕上输出。每隔一秒读取一次时间,直到键盘有输入为止。流程图开始初始化绘画窗口画表盘 否检测是否有键盘输入 是获取系统时间将时间转化为字符并输出计算表针位置画表针结束使用的主要函数:setlinestyle 设置画线setcolor 设置颜色line(int x1,int y1,int x2,int y2) 画直线circle(int x,int y,int r) 画圆outtextxy(int x,int y,char *textstring) 在指定位置输出字符initgraph(int x, int y); 初始化绘图窗口setwritemode( ); 设置绘图模式kbhit() 检查是否有键盘输入GetLocalTime(&ti); 获取当前时间sleep() 程序暂停若干时间三、模块设计主要模块功能、源代码及注释:1.计算表针的位置并画出表针void Drawzhizhen(int hour, int minute, int second) double a_hour, a_min, a_sec; / 时、分、秒针的弧度值 int x_hour, y_hour, x_min, y_min, x_sec, y_sec; / 时、分、秒针的位置 a_sec = second * 2 * PI / 60; / 计算时、分、秒针的弧度值 a_min = minute * 2 * PI / 60 + a_sec / 60; a_hour= hour * 2 * PI / 12 + a_min / 12; x_sec = int(120 * sin(a_sec); y_sec = int(120 * cos(a_sec); /计算 时、分、秒针的位置 x_min = int(100 * sin(a_min); y_min = int(100 * cos(a_min); x_hour= int(70 * sin(a_hour); y_hour= int(70 * cos(a_hour); setlinestyle(PS_SOLID, NULL, 10); / 画时针 setcolor(BLUE); line(300 + x_hour, 240 - y_hour, 300, 240 ); setlinestyle(PS_SOLID, NULL, 5);/ 画分针 setcolor(GREEN); line(300 + x_min, 240 - y_min, 300, 240 ); setlinestyle(PS_SOLID, NULL, 2); / 画秒针 setcolor(WHITE); line(300 + x_sec, 240 - y_sec, 300, 240 );2.画表盘void Drawbiaopan() int i,l,x1,x2,y1,y2; setbkcolor(1); circle(300,240,180); circle(300,240,185); for(i=0;i60;i+) /*划钟点上的短线*/ if(i%5=0) l=15; else l=5; x1=180*sin(i*6*PI/180)+300; y1=180*cos(i*6*PI/180)+240; x2=(180-l)*sin(i*6*PI/180)+300; y2=(180-l)*cos(i*6*PI/180)+240; line(x1,y1,x2,y2); outtextxy(300,80,12) ; outtextxy(300,390,6); outtextxy(140,230,9); outtextxy(460,230,3); outtextxy(380,100,1); outtextxy(220,100,11); outtextxy(430,160,2); outtextxy(430,310,4); outtextxy(380,370,5); outtextxy(220,370,7); outtextxy(160,160,10); outtextxy(160,310,8);3.将获取的整数型时间变量转换成字符型void ch1(int a,int x) /将年转换成字符型并输出char b,c,d,e;b=(char)(a/1000+48);c=(char)(a%1000)/100+48);d=(char)(a%100)/10+48);e=(char)(a%10+48);outtextxy(x,10,b);outtextxy(x+10,10,c);outtextxy(x+20,10,d);outtextxy(x+30,10,e);void ch2(int a,int x) /其他时间转换成字符型并输出char b,c;b=(char)(a/10+48);c=(char)(a%10+48);outtextxy(x,10,b);outtextxy(x+10,10,c);主函数:void main() initgraph(640, 480); / 初始化绘图窗口 Drawbiaopan(); / 绘制表盘 setwritemode(R2_XORPEN); / 设置绘图模式 SYSTEMTIME ti; / 定义ti保存当前时间 while(!kbhit() / 按任意键退出钟表程序 GetLocalTime(&ti); / 获取当前时间 ch1(ti.wYear,10); outtextxy(50,10,年); /输出时间 ch2(ti.wMonth,65); outtextxy(85,10,月); ch2(ti.wDay,100); outtextxy(120,10,日); ch2(ti.wHour,135); outtextxy(155,10,:); ch2(ti.wMinute,165); outtextxy(185,10,:); ch2(ti.wSecond,195); Drawzhizhen(ti.wHour, ti.wMinute, ti.wSecond); / 画表针 Sleep(1000); / 延时 1 秒 Drawzhizhen(ti.wHour, ti.wMinute, ti.wSecond); / 画表针 closegraph(); / 关闭绘图窗口四 调试及测试使用vc企业版进行反复调试五 设计总结调试过程出现的问题:1.Vc+6.0中没有“graphics.h”,安装turboc.2.0中的函数库EasyX后出现权限问题。解决办法:安装vc企业版解决权限问题,然后导入graphics.h。 2.无法获取系统时间 解决办法:使用函数GetLocalTime( );并使用#include 声明3Outtextxy()函数无法显示整数型时间解决办法:将整数型时间变量转换为字符型再输出六、心得体会及致谢 由于C语言没有学过图形方面的知识,很多东西都要去查资料。在设计的过程中遇到很多问题,都需要花很多时间去尝试,去解决。这个程序总体来说不复杂,思路也简单,编写的过程中询问了相关知识的专业人士,上网搜集很多前人所作的资料,查询借阅图书馆的相关书籍,对自己在思维方面的帮助很大。参考文献1.谭浩强著,C程序设计(第三版),北京:清华大学出版社。2. Gary J.Bronson著,刘勇译,C+程序开发与设计(第二版)北京:人民邮电出版社3.朱站立编著,数据结构使用C语言(第4版)北京:电子工业出版社4.谭浩强,张基温,唐永炎编著,C语言程序设计教程,北京:高等教育出版社19925.谭浩强编著,C程序设计题解与上机指导(第二版),北京:清华大学出版社,19926.谭浩强编著,QBASIC语言教程,北京:电子工业出版社,19977.谭浩强编著,田数清编著,PASCAL语言程序设计(第二版),北京:高等教育出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年南京租房合同10篇
- 2025年股权质押典当借款合同6篇
- 耐火研磨陶瓷买卖合同8篇
- 锅炉水质监测合同10篇
- 2025年借调合同范本10篇
- 2025年第三方健康机构合作协议书
- 2025年安阳危运从业资格试题
- 2025年传统银饰项目建议书
- 房地产销售及回购合同条款约定书
- 信息技术助力农业现代化合同文本
- 矿山委托经营协议书
- GB/T 45656-2025二手电子产品可用程度分级规范
- 备战2025年高考英语抢分秘籍(新高考专用)猜押语法填空(话题+体裁)(学生版+解析)
- 船舶与海洋工程2025年相关知识考试试卷及答案
- 吉林银行笔试题库及答案
- 《危险化学品企业安全生产标准化规范》专业深度解读与应用培训指导材料之8:5管理要求-5.8作业安全(雷泽佳编制-2025A0)
- 医院收费室笔试题及答案
- 江苏省南京市、盐城市2025届高三年级5月第二次模拟考试英语(南京盐城二模)
- Unit6Integration(A-C)课件译林版(2024)英语七年级下册
- 基于深度学习的人脸老化算法研究
- 期货从业人员资格2024年笔试考试题库含答案
评论
0/150
提交评论