版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 模拟时钟行走 课程设计总体要求 采用模块儿化程序设计; 鼓励可视化编程; 源程序中有足够的注释; 学生可自行增加新功能模块儿; 必须上机调试通过; 注重算法运用,优化存储效率与运算效率; 需提交源程序及相关文件;目录1 课程任务书2 系统设计3 模块设计3.1 总体结构 3.2 流程图3.3 使用的主要函数4 调试及测试 1、调试过程中的问题 2、调试结果5 设计总结6 心得体会及致谢7 答辩记录8 教师意见一、课程设计任务书在屏幕上显示一个活动时钟;能模拟机械钟表行走;准确地利用数字显示日期和时间;按任意键时程序退出。二、 系统设计总体结构:在绘图窗口中先画出表盘后获取系统的时间,利用得到
2、的系统时间计算表针的位置,并将时间在屏幕上输出。每隔一秒读取一次时间,直到键盘有输入为止。流程图开始初始化绘画窗口画表盘 否检测是否有键盘输入 是获取系统时间将时间转化为字符并输出计算表针位置画表针结束使用的主要函数: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( )
3、; 设置绘图模式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; / 计算时、分、秒针的弧度
4、值 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_SOLI
5、D, 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()
6、 int i,l,x1,x2,y1,y2; setbkcolor(1); circle(300,240,180); circle(300,240,185); for(i=0;i<60;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,"1
7、2") ; 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,37
8、0,"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);ou
9、ttextxy(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() / 按任意键退出钟表程序 Ge
10、tLocalTime(&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
11、.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.无法获取系统时间
12、 解决办法:使用函数GetLocalTime( );并使用#include <time.h>声明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至2030年中国塑料成型模具数据监测研究报告
- 2025至2030年中国香丹葡萄糖注射液数据监测研究报告
- 2025年度高新技术研发厂房租赁合同3篇
- 2024版汽车租赁合同样本6篇
- 二零二五年度驾校学员驾驶技能竞赛组织与管理合同3篇
- 二零二四企业销售合同合规性审核与风险防范协议3篇
- 2025年度西餐厅桌椅设计采购及装修合同模板3篇
- 2025年度科技企业战略合作伙伴股权调整协议书3篇
- 二零二五年度航空航天器打胶工艺优化合同2篇
- 2025版汽车金融临时借款合同范例4篇
- 二零二五年度无人驾驶车辆测试合同免责协议书
- 北京市海淀区2024-2025学年高一上学期期末考试历史试题(含答案)
- 常用口服药品的正确使用方法
- 2025年湖北华中科技大学招聘实验技术人员52名历年高频重点提升(共500题)附带答案详解
- 2024年钻探工程劳务协作协议样式版B版
- 《心肺复苏机救治院内心搏骤停患者护理专家共识》解读
- 计算机二级WPS考试试题
- 智联招聘行测题库及答案
- 2023中华护理学会团体标准-注射相关感染预防与控制
- GB∕T 2099.1-2021 家用和类似用途插头插座 第1部分:通用要求
- 超洁净管道(CL-PVC)施工技术
评论
0/150
提交评论