C语言图形时钟课程设计实验报告.
c模拟时钟课程设计
c 模拟时钟课程设计一、教学目标本课程的学习目标主要包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握C语言的基本语法、数据类型、运算符、控制结构等,了解模拟时钟的基本原理和设计方法。
技能目标要求学生能够运用C语言编写简单的模拟时钟程序,培养学生的编程能力和问题解决能力。
情感态度价值观目标培养学生的团队合作意识、创新精神和对计算机科学的兴趣。
二、教学内容教学内容主要包括C语言基础知识、模拟时钟的设计与实现。
详细的教学大纲如下:1.C语言基础知识:介绍C语言的基本语法、数据类型、运算符、控制结构等,为学生编写模拟时钟程序打下基础。
2.模拟时钟的设计与实现:讲解模拟时钟的基本原理,引导学生运用C语言编写模拟时钟程序,培养学生的编程能力和问题解决能力。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言基础知识和模拟时钟的设计原理,使学生掌握相关知识。
2.讨论法:学生进行小组讨论,分享学习心得和编程经验,提高学生的团队合作能力。
3.案例分析法:分析典型的模拟时钟程序案例,引导学生学会分析问题、解决问题。
4.实验法:让学生动手编写模拟时钟程序,培养学生的实际编程能力和操作技能。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。
2.参考书:提供相关的C语言编程参考书籍,丰富学生的知识储备。
3.多媒体资料:制作精美的PPT、教学视频等,增强课堂教学的趣味性和生动性。
4.实验设备:为学生提供充足的计算机设备,确保每位学生都能动手实践。
五、教学评估为了全面、客观地评估学生的学习成果,本课程采用多元化的评估方式。
评估内容包括平时表现、作业、考试等。
1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,了解学生的学习态度和知识掌握程度。
C语言模拟时钟转动课程设计报告
《C语言程序设计》课程设计报告题目:模拟时钟转动程序班级:组别:组员:指导教师:目录第一章课程设计的题目 (2)1.1 C语言课程设计的题目 (2)第二章课程设计的要求 (2)2.1 C语言课程设计的要求 (2)第三章课程设计的目的 (2)3.1 C语言课程设计的目的 (2)第四章课程设计的内容 (3)4.1 C语言课程设计的程序清单和注释 (3)第五章课程设计的运行结果 (7)5.1 C语言课程设计的运行结果 (7)第六章课程设计的结果分析 (8)6.1 C语言课程设计的结果分析 (8)第七章课程设计的心得体会 (9)7.1 C语言课程设计的心得体会 (9)模拟时钟转动程序第一章课程设计的题目1.1 C语言课程设计的题目本次为期两周的课程设计的题目为设计一个模拟时钟转动的程序。
第二章课程设计的要求2.1 C语言课程设计的要求能模拟机械钟表行走;要准确地利用数字显示日期和时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与指针式时钟显示一致;按任意键时程序退出。
第三章课程设计的目的3.1 C语言课程设计的目的加深对讲授内容的理解,尤其是一些语法规定。
通过课程设计,自然地、熟练地掌握。
熟悉所用的计算机系统的操作方法,也就是熟悉语言程序开发的环境。
学会上机调试程序。
第四章课程设计的内容4.1 C语言课程设计的程序清单和注释模拟时钟转动程序清单+注释#include<windows.h> //包含窗口头文件#include<math.h> //头文件,包含了一些数学计算的函数#define TWOPI (2*3.14159)#define IDTIMER 1 //计时器ID#define ANGLE TWOPI/360 //2PILRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam ); //回调函数Int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow ) // 应用启动函数mian {TCHAR szClassName[] = TEXT("analogCloc");MSG msg; //定义消息HWND hwnd; //窗口句柄WNDCLASS wndclass; //系统支持结构,定义并初始化窗口结构 wndclass.cbClsExtra = 0; //窗口类无扩展wndclass.cbWndExtra = 0; //窗口势力无扩展wndclass.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH);//窗口背景为白色wndclass.hCursor = NULL;wndclass.hIcon = NULL;wndclass.hInstance = hInstance; //当前实例句柄 wndclass.lpfnWndProc = WindowProc; //关联到消息回调函数wndclass.lpszClassName = szClassName;wndclass.lpszMenuName = NULL; //窗口中无菜单wndclass.style = CS_HREDRAW | CS_VREDRAW ; //窗口重绘风格RegisterClass(&wndclass);hwndCreateWindow(szClassName,TEXT("Clock"),WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL, NULL, hInstance, NULL); //创建窗口ShowWindow(hwnd,nCmdShow); //显示窗口UpdateWindow(hwnd); //更新窗口,强制显示while(GetMessage(&msg,NULL,0,0)) //函数GetMessage 是从调用线程的消息队列里取得一个消息并将其放于指定的结构{TranslateMessage(&msg); //消息处理DispatchMessage(&msg); //消息派遣}return msg.wParam; //windows应用程序的消息循环形式}void setISOTROPIC(HDC hdc,int cxClient,int cyClient)//设置映射模式,使之成为笛卡尔坐标系的映射模式{SetMapMode(hdc,MM_ISOTROPIC);SetWindowExtEx(hdc,1000,1000,NULL); // 逻辑单位与设备单位比1/2SetViewportExtEx(hdc,cxClient/2,-cyClient/2,NULL);SetViewportOrgEx(hdc,cxClient/2,cyClient/2,NULL); //竖坐标向上为正,下为负}void drawClock(HDC hdc) // 画时钟圆盘{int x, y, radius; //以逻辑单位表示的窗口原点坐标SelectObject(hdc,CreateSolidBrush(RGB(1,148,138)));//设置整个窗口线条颜色for(int i=0;i<360;i+=6){x = (int)(cos(TWOPI/360*i)*900); //cos函数,包含在math.h头文件利的函数y = (int)(sin(TWOPI/360*i)*900);radius = !(i%5)?40:10;Ellipse(hdc,x-radius,y-radius,x+radius,y+radius);// 把弧度制转换成坐标形式,Ellipse函数用来画圆}}void drawHands(HDC hdc,SYSTEMTIME *pst,BOOL hChange)// draw hands函数负责绘制时钟的时针、分针和秒针的轮廓{int radius[3] = {500,700,850};int angle[3];angle[0] = pst->wHour*30+pst->wMinute/12*6;angle[1] = pst->wMinute*6;angle[2] = pst->wSecond*6;for(int i=hChange?0:2;i<3;i++){MoveToEx(hdc,0,0,NULL);LineTo(hdc,(int)(radius[i]*cos(ANGLE*(90-angle[i]))),(int)(radius[i]*sin(ANGLE*(90-angle[i]))));}}LRESULT CALLBACK WindowProc(HWND hwnd,UINT message, // 消息标识符,标识某个特定的消息WPARAM wParam,LPARAM lParam) //消息处理函数{TCHAR time[40];PAINTSTRUCT ps;HDC hdc;static int cxClient, cyClient;SYSTEMTIME st; //定义结构体变量static SYSTEMTIME preSt;BOOL hChange;switch(message) //switch 语句一个case代表一种情况 {case WM_CREATE: // 窗口创建事件SetTimer(hwnd,IDTIMER,1000,NULL); //创建一个1000ms定时器GetLocalTime(&st); //得到当前系统时间wsprintf(time,TEXT("%d年%d月%d日%d时%d分%d秒"),//记录系统时间,包括年、月、日、时、分、秒st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);SetWindowText(hwnd,time); // 设置当前时间为窗口titlepreSt = st;return 0;case WM_SIZE:cxClient = LOWORD(lParam);cyClient = HIWORD(lParam);return 0;case WM_TIMER: //定时器到时,即是每隔一秒要重画下界面GetLocalTime(&st); //每次都要获取当前时间hChange = st.wHour!=preSt.wHour||st.wMinute!=preSt.wMinute;hdc = GetDC(hwnd);setISOTROPIC(hdc,cxClient,cyClient);SelectObject(hdc,GetStockObject(WHITE_PEN));drawHands(hdc,&preSt,hChange);SelectObject(hdc,GetStockObject(BLACK_PEN));drawHands(hdc,&st,TRUE);ReleaseDC(hwnd,hdc);wsprintf(time,TEXT("%d年%d月%d日%d时%d分%d秒"),//记录系统时间,包括年、月、日、时、分、秒st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);SetWindowText(hwnd,time); //setwindowText函数:系统里的函数preSt = st; // 更新完毕后记录前一次的状态return 0;case WM_KEYDOWN:case WM_CHAR:DestroyWindow(hwnd); // 关闭窗口return 0;case WM_PAINT: //窗口绘制消息hdc = BeginPaint(hwnd,&ps); //开始绘制setISOTROPIC(hdc,cxClient,cyClient);drawClock(hdc);drawHands(hdc,&preSt,TRUE);EndPaint(hwnd,&ps); //结束绘制 return 0;case WM_DESTROY: //程序退出消息PostQuitMessage(0);return 0;}returnDefWindowProc(hwnd,message,wParam,lParam);//其他消息有系统默认处理}第五章课程设计的运行结果5.1 C语言课程设计的运行结果第六章课程设计的结果分析6.1 C语言课程设计的结果分析运行结果分析问题一:程序清单中某个符号添加错误,导致编译时出现错误,执行不出结果。
c语言课程设计钟表
c语言课程设计钟表一、教学目标本节课的学习目标为:知识目标:使学生掌握C语言中指针、函数、结构体等基本概念;理解并掌握钟表的运行原理及其在C语言中的实现方式。
技能目标:培养学生具备运用C语言进行钟表程序设计的能力;提高学生的编程思维和问题解决能力。
情感态度价值观目标:激发学生对计算机科学的兴趣,培养学生的创新精神和团队合作意识。
二、教学内容本节课的教学内容主要包括:1.C语言基础知识:指针、函数、结构体等基本概念。
2.钟表运行原理:时钟、分针、秒针的运动规律及其表示方法。
3.钟表程序设计:利用C语言实现钟表的运行,包括时钟、分针、秒针的动态显示。
三、教学方法本节课采用以下教学方法:1.讲授法:讲解C语言基础知识,引导学生理解并掌握基本概念。
2.案例分析法:分析钟表运行原理,让学生通过实际案例理解并掌握钟表的实现方法。
3.实验法:学生动手编写钟表程序,培养学生的实际编程能力和问题解决能力。
四、教学资源本节课所需教学资源包括:1.教材:《C语言程序设计》等相关教材,用于引导学生学习基础知识。
2.多媒体资料:钟表运行原理PPT、编程实例等,用于辅助讲解和展示。
3.实验设备:计算机、编程环境等,用于学生动手实践。
4.在线资源:相关编程教程、讨论区等,用于学生课后自学和交流。
五、教学评估本节课的评估方式包括:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,占总评的30%。
2.作业:评估学生完成的编程练习质量和进度,占总评的40%。
3.考试:进行一次钟表程序设计考试,评估学生的综合编程能力,占总评的30%。
评估方式应客观、公正,全面反映学生的学习成果。
教师应及时给予反馈,指导学生改进学习方法和策略。
六、教学安排本节课的教学安排如下:1.进度:按照教材和教学大纲,合理安排每个阶段的教学内容,确保在有限的时间内完成教学任务。
2.时间:根据学生的作息时间,选择合适的时间段进行授课,保证学生的学习效果。
3.地点:选择安静、设施齐全的教室作为教学地点,创造良好的学习环境。
c时钟课程设计
c 时钟课程设计一、教学目标本课程旨在让学生掌握C时钟的基本知识和技能,包括时钟的构造、工作原理以及如何正确使用和维护时钟。
同时,通过实践操作和问题解决,培养学生的动手能力和团队协作精神,提升他们对时间的认识和珍惜时间的意识。
具体来说,知识目标包括:1.了解时钟的历史发展和主要类型。
2.掌握时钟的构造要素,如机芯、表盘、指针等。
3.理解时钟的工作原理,包括机械钟表和电子钟表的运作方式。
4.学会正确设置和校准各种类型的时钟。
技能目标涉及:1.能够识别不同的时钟类型和品牌,并了解其特点。
2.掌握基本的时钟维修和保养技巧。
3.学会使用相关的工具和仪器进行时钟的安装和调试。
4.具备分析时钟故障的能力,并能提出解决方案。
情感态度价值观目标则包括:1.培养学生对时钟艺术的欣赏能力和对时间文化的尊重。
2.增强学生对时间的敏感性和管理能力,形成良好的时间观念。
3.培养学生细致观察、耐心等待和负责守时的品质。
4.通过团队合作,培养学生的沟通协作和互助精神。
二、教学内容本课程的教学内容将依据课程目标进行,主要包括以下几个方面:1.时钟的起源与发展:介绍时钟的历史背景,重点讲解古代、现代以及电子时钟的发展历程。
2.时钟的构造与工作原理:详细解析时钟的各个组成部分,如齿轮系统、发条、摆轮等,并通过图示和实物展示来讲解其工作原理。
3.时钟的类型与特点:对比讲解机械钟表、石英钟表和数字电子钟表的构造、功能和适用场合。
4.时钟的使用与维护:教授如何正确使用各种类型的时钟,并传授日常维护和保养的知识与技巧。
5.时钟故障分析与维修:通过案例分析,讲解常见的时钟故障及其原因,介绍故障排除的方法和步骤。
三、教学方法为了提高教学效果,我们将采用多样化的教学方法,包括:1.讲授法:用于讲解时钟的发展史、工作原理等理论性内容。
2.案例分析法:通过分析具体的时钟故障案例,让学生学会诊断和解决问题。
3.实验操作法:学生亲自动手,进行时钟的组装、调试和维护,增强实践能力。
c语言绘制钟表课程设计
c语言绘制钟表课程设计一、课程目标知识目标:1. 让学生掌握C语言中结构体和指针的使用方法,并能运用其定义钟表的各个参数。
2. 让学生理解C语言中定时器功能,学会使用定时器进行动画效果的实现。
3. 让学生掌握C语言图形库的基本使用方法,能够绘制基本的钟表图形。
技能目标:1. 培养学生运用C语言解决实际问题的能力,能够独立完成钟表绘制程序的设计与实现。
2. 提高学生编程实践能力,熟练使用C语言编写具有动画效果的程序。
3. 培养学生调试程序、解决问题的能力,能够在遇到问题时进行有效分析和调整。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养学生主动学习和探究的精神。
2. 培养学生团队协作意识,能够在小组合作中发挥个人优势,共同完成项目任务。
3. 引导学生关注科技发展,认识到计算机编程在现实生活中的应用价值。
本课程针对高年级学生,课程性质为实践性较强的学科拓展课程。
结合学生特点和教学要求,课程目标旨在使学生在掌握C语言基础知识的基础上,进一步提高编程实践能力,培养解决实际问题的综合素质。
通过本课程的学习,学生将能够独立完成钟表绘制程序的设计与实现,提升自身编程技能,并培养良好的团队协作意识和价值观。
二、教学内容1. C语言基础知识回顾:结构体和指针的使用,重点复习结构体在表示复杂数据结构中的应用,指针在动态数据管理中的应用。
教材章节:第二章 数据类型与表达式,第三章 控制结构,第四章 函数与指针。
2. 定时器功能介绍:定时器的工作原理,如何在C语言中使用定时器实现动画效果。
教材章节:第十五章 实时时钟与定时器。
3. 图形库的使用:C语言图形库的基本函数介绍,如何绘制基本图形和时钟表盘。
教材章节:第十七章 图形编程基础。
4. 钟表程序设计:结合结构体、指针和图形库,设计并实现一个简单的钟表程序。
教学安排:分阶段进行,包括需求分析、设计、编码、调试和优化。
5. 课程实践:学生分组进行项目实践,每组完成一个具有动画效果的钟表程序。
c语言模拟时钟转动课程设计报告.
《C语言程序设计》课程设计报告题目:模拟时钟转动程序班级:组别:组员:指导教师:目录第一章课程设计的题目 (2)1.1 C语言课程设计的题目 (2)第二章课程设计的要求 (2)2.1 C语言课程设计的要求 (2)第三章课程设计的目的 (2)3.1 C语言课程设计的目的 (2)第四章课程设计的内容 (3)4.1 C语言课程设计的程序清单和注释 (3)第五章课程设计的运行结果 (7)5.1 C语言课程设计的运行结果 (7)第六章课程设计的结果分析 (8)6.1 C语言课程设计的结果分析 (8)第七章课程设计的心得体会 (9)7.1 C语言课程设计的心得体会 (9)模拟时钟转动程序第一章课程设计的题目1.1 C语言课程设计的题目本次为期两周的课程设计的题目为设计一个模拟时钟转动的程序。
第二章课程设计的要求2.1 C语言课程设计的要求能模拟机械钟表行走;要准确地利用数字显示日期和时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与指针式时钟显示一致;按任意键时程序退出。
第三章课程设计的目的3.1 C语言课程设计的目的加深对讲授内容的理解,尤其是一些语法规定。
通过课程设计,自然地、熟练地掌握。
熟悉所用的计算机系统的操作方法,也就是熟悉语言程序开发的环境。
学会上机调试程序。
第四章课程设计的内容4.1 C语言课程设计的程序清单和注释模拟时钟转动程序清单+注释#include<windows.h> //包含窗口头文件#include<math.h> //头文件,包含了一些数学计算的函数#define TWOPI (2*3.14159)#define IDTIMER 1 //计时器ID#define ANGLE TWOPI/360 //2PILRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam,LPARAM lParam ); //回调函数Int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow ) // 应用启动函数mian{TCHAR szClassName[] = TEXT("analogCloc");MSG msg; //定义消息HWND hwnd; //窗口句柄WNDCLASS wndclass; //系统支持结构,定义并初始化窗口结构wndclass.cbClsExtra = 0; //窗口类无扩展wndclass.cbWndExtra = 0; //窗口势力无扩展wndclass.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH);//窗口背景为白色wndclass.hCursor = NULL;wndclass.hIcon = NULL;wndclass.hInstance = hInstance; //当前实例句柄wndclass.lpfnWndProc = WindowProc; //关联到消息回调函数wndclass.lpszClassName = szClassName;wndclass.lpszMenuName = NULL; //窗口中无菜单wndclass.style = CS_HREDRAW | CS_VREDRAW ; //窗口重绘风格RegisterClass(&wndclass);hwndCreateWindow(szClassName,TEXT("Clock"),WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL, NULL, hInstance, NULL); //创建窗口ShowWindow(hwnd,nCmdShow); //显示窗口UpdateWindow(hwnd); //更新窗口,强制显示while(GetMessage(&msg,NULL,0,0)) //函数GetMessage 是从调用线程的消息队列里取得一个消息并将其放于指定的结构{TranslateMessage(&msg); //消息处理DispatchMessage(&msg); //消息派遣}return msg.wParam; //windows应用程序的消息循环形式}void setISOTROPIC(HDC hdc,int cxClient,int cyClient)//设置映射模式,使之成为笛卡尔坐标系的映射模式{SetMapMode(hdc,MM_ISOTROPIC);SetWindowExtEx(hdc,1000,1000,NULL); // 逻辑单位与设备单位比1/2 SetViewportExtEx(hdc,cxClient/2,-cyClient/2,NULL);SetViewportOrgEx(hdc,cxClient/2,cyClient/2,NULL); //竖坐标向上为正,下为负}void drawClock(HDC hdc) // 画时钟圆盘{int x, y, radius; //以逻辑单位表示的窗口原点坐标SelectObject(hdc,CreateSolidBrush(RGB(1,148,138)));//设置整个窗口线条颜色for(int i=0;i<360;i+=6){x = (int)(cos(TWOPI/360*i)*900); //cos函数,包含在math.h头文件利的函数y = (int)(sin(TWOPI/360*i)*900);radius = !(i%5)?40:10;Ellipse(hdc,x-radius,y-radius,x+radius,y+radius);// 把弧度制转换成坐标形式,Ellipse函数用来画圆}}void drawHands(HDC hdc,SYSTEMTIME *pst,BOOL hChange)// draw hands函数负责绘制时钟的时针、分针和秒针的轮廓{int radius[3] = {500,700,850};int angle[3];angle[0] = pst->wHour*30+pst->wMinute/12*6;angle[1] = pst->wMinute*6;angle[2] = pst->wSecond*6;for(int i=hChange?0:2;i<3;i++){MoveToEx(hdc,0,0,NULL);LineTo(hdc,(int)(radius[i]*cos(ANGLE*(90-angle[i]))),(int)(radius[i]*sin(ANGLE*(90-angle[i]))));}}LRESULT CALLBACK WindowProc(HWND hwnd,UINT message, // 消息标识符,标识某个特定的消息WPARAM wParam,LPARAM lParam) //消息处理函数{TCHAR time[40];PAINTSTRUCT ps;HDC hdc;static int cxClient, cyClient;SYSTEMTIME st; //定义结构体变量static SYSTEMTIME preSt;BOOL hChange;switch(message) //switch 语句一个case代表一种情况{case WM_CREATE: // 窗口创建事件SetTimer(hwnd,IDTIMER,1000,NULL); //创建一个1000ms定时器GetLocalTime(&st); //得到当前系统时间wsprintf(time,TEXT("%d年%d月%d日%d时%d分%d秒"),//记录系统时间,包括年、月、日、时、分、秒st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);SetWindowText(hwnd,time); // 设置当前时间为窗口titlepreSt = st;return 0;case WM_SIZE:cxClient = LOWORD(lParam);cyClient = HIWORD(lParam);return 0;case WM_TIMER: //定时器到时,即是每隔一秒要重画下界面GetLocalTime(&st); //每次都要获取当前时间hChange = st.wHour!=preSt.wHour||st.wMinute!=preSt.wMinute;hdc = GetDC(hwnd);setISOTROPIC(hdc,cxClient,cyClient);SelectObject(hdc,GetStockObject(WHITE_PEN));drawHands(hdc,&preSt,hChange);SelectObject(hdc,GetStockObject(BLACK_PEN));drawHands(hdc,&st,TRUE);ReleaseDC(hwnd,hdc);wsprintf(time,TEXT("%d年%d月%d日%d时%d分%d秒"),//记录系统时间,包括年、月、日、时、分、秒st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);SetWindowText(hwnd,time); //setwindowText函数:系统里的函数preSt = st; // 更新完毕后记录前一次的状态return 0;case WM_KEYDOWN:case WM_CHAR:DestroyWindow(hwnd); // 关闭窗口return 0;case WM_PAINT: //窗口绘制消息hdc = BeginPaint(hwnd,&ps); //开始绘制setISOTROPIC(hdc,cxClient,cyClient);drawClock(hdc);drawHands(hdc,&preSt,TRUE);EndPaint(hwnd,&ps); //结束绘制return 0;case WM_DESTROY: //程序退出消息PostQuitMessage(0);return 0;}return DefWindowProc(hwnd,message,wParam,lParam);//其他消息有系统默认处理}第五章课程设计的运行结果5.1 C语言课程设计的运行结果第六章课程设计的结果分析6.1 C语言课程设计的结果分析运行结果分析问题一:程序清单中某个符号添加错误,导致编译时出现错误,执行不出结果。
c课程设计实时钟表
c课程设计实时钟表一、课程目标知识目标:1. 学生能够理解实时钟表的基本概念,掌握时、分、秒的相互关系及其在钟表上的表示方法。
2. 学生能够运用所学知识,识别并准确读取各种类型的实时钟表时间。
3. 学生了解钟表的历史发展及其在日常生活和科技领域中的应用。
技能目标:1. 学生能够通过观察、分析,正确设置和调整钟表时间,培养实际操作能力。
2. 学生能够运用所学知识解决与实时钟表相关的问题,提高问题解决能力。
3. 学生能够运用信息技术手段,设计并制作简单的实时钟表模型。
情感态度价值观目标:1. 学生培养对时间观念的尊重,养成守时、珍惜时间的良好习惯。
2. 学生在小组合作中,培养团队协作精神,学会分享和交流。
3. 学生通过学习实时钟表,认识到科技与生活的紧密联系,增强对科学技术的兴趣和探索精神。
课程性质:本课程为小学四年级信息技术课程,旨在通过实时钟表的学习,让学生掌握时间的基本概念,提高观察、操作和问题解决能力。
学生特点:四年级学生对新鲜事物充满好奇,动手操作能力强,但注意力容易分散,需要结合实际操作和趣味性教学。
教学要求:教师应注重理论与实践相结合,运用生动、形象的教学方法,激发学生兴趣,引导学生在实践中掌握知识,培养技能和情感态度价值观。
通过分解课程目标为具体学习成果,为后续教学设计和评估提供依据。
二、教学内容1. 实时钟表的基本概念:时、分、秒的定义及其关系,钟表的构造及其工作原理。
2. 钟表时间的读取与设置:各类钟表(电子钟、指针钟、数字钟)的读取方法,如何调整和设置时间。
3. 钟表的应用与制作:- 钟表在日常生活和时间管理中的应用;- 设计并制作简易实时钟表模型,运用信息技术手段实现基本功能。
4. 钟表与科技发展:介绍钟表的历史演变,探讨钟表在科技领域的应用。
教学大纲安排:第一课时:实时钟表的基本概念及构造,了解时、分、秒的关系。
第二课时:学习读取和设置各类钟表时间,培养实际操作能力。
第三课时:探索钟表在日常生活和时间管理中的应用,培养时间管理意识。
C语言_时钟代码+报告
C语言_时钟代码+报告C语言程序设计课程设计报告选题名称:钟系(院):专业:班级:姓名学号::指导教师::2007~20081学年学期学年第学期2008年1月12日摘要:我们日常生活中有各种各样的时钟。
随着计算机的普及和计算机科学的飞速发展,人们开始越来越多的利用计算机解决实际问题。
开发一个易于查看的时钟有较大的现实意义。
同时,该时钟会听到时钟的喀哒声,程序与生活紧密结合,具体直观,开发应用简单。
利用C 语言编辑源程序,再进行编译链接生成可执行文件,运行时可以查看时间,听到喀哒声,具体直观,方便了生活。
:Turbo C关键词计算机;时钟;;函数目录4 6 程序调试……………………………………………………………………………总结 (8)致谢 (9)参考文献 (10)1程序概述程序设计是一种技术,也是一项工程。
程序设计语言是程序设计的工具。
一种程序设计语言凝聚了具有时代特征的程序设计理念和方法。
本程序利用C语言中的图形处理函数完成时间的模拟显示。
1.1课题来源这个C语言时钟的课程设计,可以初步理解C语言编程的方法,对C语言小程序有较深刻的理解。
利用C语言中的图形处理函数完成时间的模拟显示。
了解图形处理函数的基本功能,掌握C语言中的时间函数等。
1.2课题意义基于算法思维方法的训练是现代信息素养的重要内容。
程序设计是引导学习者利用计算机进行解题的能力培养过程。
为了有效地进行程序设计,正确地应用程序设计语言表达算法,必须准确地运用程序设计语言,掌握其语法设计。
用C语言编程,设计一个时钟,掌握声音函数sound()、系统时间函数gettime()、绘制多边形函数DrawPoly()的用法。
1.3预期目标本程序利用C语言中的图形处理函数完成时间的模拟显示。
在C 环境中编辑源程序,设置表盘刻度,模拟时针、分针、秒针的运动,声音,生成可执行文件之后并运行在屏幕上会显示一个时钟,便于查看系统的时间,并且会听到秒针运动时的喀哒声。
C语言课程设计报告-模拟时钟转动程序
课程设计报告课程名称结构化程序设计课程设计院部名称专业班级学生姓名王蕾学号课程设计地点课程设计学时指导教师金陵科技学院教务处制目录第一章课程设计的目的和要求.............................................1.1 C语言课程设计的目的............................................1.2 C语言课程设计实现的要求........................................ 第二章课程设计的任务内容............................................... 第三章详细设计说明.....................................................3.1 程序系统的结构..................................................3.1.1 实验设备及环境:(软、硬件环境)3.2 模块描述........................................................3.2.1 指针式时钟................................................3.2.2 数字式时钟................................................3.3 输出项..........................................................3.4 算法............................................................3.5 流程图..........................................................3.6 函数说明........................................................3.7 接口............................................................3.8 调试结果........................................................ 第四章软件使用说明.....................................................4.1 软件使用说明及出现的问题........................................4.2 运行结果........................................................ 第五章课程设计心得与体会............................................... 附录1:参考文献......................................................... 附录2:修改后的源代码……………………………………………………………………模拟时钟转动程序第一章课程设计的目的和要求1.1 C语言课程设计的目的加深对讲授内容的理解,尤其是一些语法规定。
c语言数字时钟课程设计
c语言数字时钟课程设计一、课程目标知识目标:1. 学生能够理解并掌握C语言中时间处理的基础知识,包括时间的表示、时间的获取和时间的显示。
2. 学生能够运用C语言标准库函数实现时间的获取与转换。
3. 学生理解数字时钟的原理,掌握使用C语言设计简单数字时钟程序的方法。
技能目标:1. 学生能够独立编写代码,实现一个基于控制台的数字时钟,展示当前时间,并具备基本的时间更新功能。
2. 学生通过课程实践,提高问题分析能力,学会调试程序,解决编程过程中遇到的问题。
3. 学生能够运用结构化编程思想,使代码具有良好的可读性和可维护性。
情感态度价值观目标:1. 学生通过课程学习,培养对编程的兴趣和热情,形成积极探究的学习态度。
2. 学生在小组合作中,培养团队协作精神,学会交流与分享编程知识和经验。
3. 学生通过实际问题的解决,体验编程带来的成就感,增强自信心,培养解决实际问题的能力。
二、教学内容本课程以C语言编程为基础,结合以下教学内容实现数字时钟的设计与开发:1. 时间处理基础知识:包括时间的表示方法,如结构体time_t和struct tm的使用,以及时间转换函数localtime和strftime的应用。
2. 标准输入输出函数:使用printf和scanf等函数在控制台中输出和输入数据。
3. 定时器函数:介绍setitimer和signal函数的使用,实现定时更新时钟功能。
4. 循环和条件语句:运用for循环和if条件语句控制数字时钟的刷新和显示逻辑。
5. 小时、分钟、秒的格式化输出:利用字符串处理和格式化输出,确保时间显示的准确性。
教学内容安排和进度如下:1. 第一课时:介绍时间处理基础知识,使学生理解时间的表示和转换方法。
2. 第二课时:讲解标准输入输出函数,为后续编写时钟显示代码打下基础。
3. 第三课时:引导学生学习定时器函数,实现时钟的自动更新功能。
4. 第四课时:讲解循环和条件语句的使用,设计数字时钟的刷新逻辑。
C语言课程设计钟表设计
C程序实践课程设计报告课题名称:钟表设计*名:***学号:1071专业:电子信息科学与技术班级:信息09-2班指导教师:***目录第一章课程设计的目的和要求 (1)1.1 C语言课程设计的目的 (1)1.2 C语言课程设计实现的要求 (1)第二章课程设计的任务内容 (1)第三章详细设计说明 (2)程序系统的结构 (2)3.1.1实验设备及环境:(软、硬件环境) (2)模块描述 (2)3.2.1指针式时钟 (2)3.2.2数字式时钟 (2)输出项 (2)算法 (2)流程图 (3)函数说明 (4)接口 (5)第四章课程设计心得与体会 (5)附录: (7)第一章课程设计的目的和要求1.1 C语言课程设计的目的加深对讲授内容的理解,尤其是一些语法规定。
通过课程设计,自然地、熟练地掌握。
熟悉所用的计算机系统的操作方法,也就是熟悉语言程序开发的环境。
学会上机调试程序。
通过编程最终使程序运行结果为电脑屏幕显示模拟时钟,并正常运行显示表针时间。
1.2 C语言课程设计实现的要求能模拟机械钟表行走;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;要准确地利用数字显示日期和时间并且可以根据用户的需求更改当前时间(指针式时钟与数字式时钟实现同步更改);数字式时钟的时间显示与指针式时钟显示一致;可以通过上下键改变当前的时、分、秒;改的时间是小时、分钟、还是秒数;通过Tab键切换按Esc时程序退出。
第二章课程设计的任务内容要熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
用C语言实现一个模拟时钟转动程序;Graphics函数库。
提出总体方案的设计思想和原理,绘制程序流程图和描述程序的功能,并说明程序的特点和难点。
c语言电子时钟课程设计
c语言电子时钟课程设计一、课程目标知识目标:1. 理解C语言中结构体、函数和循环控制的使用,掌握电子时钟的基本原理。
2. 学习并掌握使用C语言编写程序,实现电子时钟的功能,包括时、分、秒的显示与更新。
3. 了解C语言中定时器功能的使用,实现电子时钟的自动更新。
技能目标:1. 能够运用所学知识,独立设计并编写一个简单的C语言电子时钟程序。
2. 培养学生的编程实践能力,提高问题分析和解决能力。
3. 学会使用调试工具,对程序进行调试和优化,提高程序运行的稳定性。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发学生的学习主动性。
2. 培养学生的团队合作意识,学会与他人共同解决问题,相互学习和进步。
3. 培养学生的创新精神,敢于尝试新方法,勇于克服困难,不断优化程序。
课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,使学生能够学以致用。
学生特点:学生已具备一定的C语言基础,了解基本语法和编程思路,但对实际应用还不够熟练。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的编程实践能力,培养学生的问题分析和解决能力。
在教学过程中,关注学生的个体差异,给予个性化指导。
通过课程学习,使学生能够独立完成一个具有实际意义的编程项目。
二、教学内容1. 复习C语言基础:变量、数据类型、运算符、控制结构(章节1-4)。
2. 结构体与指针:介绍结构体的定义和使用,指针的概念和操作(章节5)。
3. 函数:回顾函数的定义、调用和参数传递,强调模块化编程的重要性(章节6)。
4. 循环控制:深入学习for循环和while循环,理解其在电子时钟中的应用(章节7)。
5. 定时器与时间处理:介绍定时器原理,时间处理函数的使用(章节8)。
6. 电子时钟编程实践:结合所学知识,设计并实现电子时钟程序。
- 显示部分:编写代码实现时、分、秒的显示(课时1)。
- 更新部分:实现时间递增,每秒更新显示(课时2)。
- 定时器应用:使用定时器自动更新时间,减少资源消耗(课时3)。
c课程设计代码时钟
c课程设计代码时钟一、教学目标本课程的目标是让学生掌握C语言编程基础,学会使用C语言编写简单的程序,并能够运用C语言进行基本的算法实现。
具体的学习目标包括:1.知识目标:–掌握C语言的基本语法和数据类型。
–学会使用C语言进行变量定义、运算符使用、控制结构等基本操作。
–了解C语言的函数定义和调用方式。
2.技能目标:–能够使用C语言编写简单的程序,实现基本的输入输出、计算等功能。
–学会使用C语言进行基本的算法实现,如排序、查找等。
–能够阅读和理解C语言代码,进行简单的代码调试和修改。
3.情感态度价值观目标:–培养学生的编程思维和解决问题的能力。
–增强学生对计算机科学的兴趣和好奇心。
–培养学生的团队合作意识和沟通能力。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个方面:1.C语言的基本语法和数据类型。
2.变量定义、运算符使用、控制结构等基本操作。
3.函数定义和调用方式。
4.基本输入输出、计算等程序编写。
5.基本算法实现,如排序、查找等。
具体的教学大纲安排如下:第1-2周:C语言的基本语法和数据类型。
第3-4周:变量定义、运算符使用、控制结构等基本操作。
第5-6周:函数定义和调用方式。
第7-8周:基本输入输出、计算等程序编写。
第9-10周:基本算法实现,如排序、查找等。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括:1.讲授法:教师通过讲解和示范,向学生传授C语言的基本语法和编程技巧。
2.讨论法:学生分组进行讨论,共同解决问题,培养团队合作意识和沟通能力。
3.案例分析法:分析实际案例,让学生学会将理论知识应用于实际问题的解决中。
4.实验法:学生动手编写代码,进行实验操作,巩固所学知识,提高编程能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C程序设计语言》。
2.参考书:《C Primer Plus》、《C和指针》。
C语言图形时钟课程设计实验报告.
目录1.系统功能要求。
2. 数据结构设计及说明。
3.程序结构(画流程图)。
4.各模块的功能。
5.试验结果(包括输入数据和输出结果)。
6.体会。
7.参考文献。
8.附录:程序清单及源程序。
●系统功能要求:在屏幕上显示一个图形时钟(用程序绘制一个与时钟样式相似即可),时间与系统时间一致,且要随着时间的走动准确的走动。
●数据结构设计及说明(1)图形时钟要用TC来编译,学C语言时主要用VC,用TC对我有一定的挑战性,不熟悉编译,对图形函数也没有太多接触,做这个有一定难度。
(2)先画出时钟基本组成,(时针分针秒针,中心点,表盘及其分隔点)。
(3)时钟表设计思想:第一步,确定秒钟的走时。
将圆等分成60份每过一秒,秒钟要转1/60个圆,亦即一等份。
第二步,确定分钟的走时。
将圆等分成60份每过一分,分钟要转1/60个圆,亦即一等份。
分钟自己走的再加秒钟的,才是分钟此时的位置。
第三步,确定时钟的走时。
将圆等分成12等分。
每过一时,时钟走一等份。
和分钟一样,得加上分钟,秒钟的走时,才是此刻时钟的位置。
(4)时钟走动与系统时间联系:每过一秒画出秒针,并除去前一秒的秒针,分针秒针同样可用。
画线函数与时间联系使用变量。
(5) 设置横纵坐标x=a*cos(b*c*pi/180-pi/2)+300;y=a*sin(b*c*pi/180-pi/2)+240;设置表针的动态坐标点x1=200*sin(i*6*pi/180)+300;y1=200*cos(i*6*pi/180)+240;x2=(200-l)*sin(i*6*pi/180)+300;y2=(200-l)*cos(i*6*pi/180)+240;程序结构(画流程图)总流程图:指针转动流程图:●各模块的功能●试验结果(包括输入数据和输出结果)体会:刚开始做时基本上什么都不懂,用TC做,我更不会。
不过参考了很多资料,到网上查,泡了几天图书馆,差不多能写出基本程序,虽然很多是借鉴别人的,不过能写成这样,我心里还是挺高兴的。
C语言时钟图形输出系统设计报告
大红鹰学院信息工程学院课程设计报告项目名称:时钟图形输出项目组长:王树康项目成员:何洁,昇琳班级名称:10信管4专业名称:信息管理与信息系统完成时间: 2011年6月24日信息工程学院制一、案例描述1.、总体描述制作一个简单的钟面图形,方便我们看时间。
时间与系统时间相一致,并且时针,分针,秒针会根据时间的变化而移动。
2、模块描述1)钟面模块:钟面是圆形的,用一个for循环在圆侧画上均匀的时间刻度,在3点,6点,9点,12 点的刻度位置各有一个小长方形,使钟面更加方便看时间。
2)时间模块:从电脑上获取时间后,与保存的时间数据作对比,如果不一样就画一条与底色相同的直线将该直线覆盖,再根据当前时间转化成时钟,分钟,秒钟,的移动来显示时间。
3)动画模块:用任意变换各种颜色的圆圈,增加界面的美感。
二、界面设计模拟家庭钟表,利用时针,分针,秒针进行时间显示。
本软件界面友好,打开后便运行,看时间很方便,一目了然,也很人性化的显示出数字时间。
三、模块化设计方案1、系统主要函数及功能1)drawclock函数:功能为绘制时钟图形绘制时钟圆盘,及时间刻度,方便使用者观看。
2)showtime函数:功能为显示时间通过时针,分针,秒针的移动来显示时间。
还有显示数字化的时钟,在整点时会报时提示。
3)flash函数:显示动画增加界面的美观度。
2、主函数调用各功能函数流程图四、算法设计1,显示时间在电脑上获取时间后,时,分,秒分别利用弧度转化成win-tc能识别的信息,再通过时钟,分钟,秒钟的移动来显示时间。
2.时钟设计钟盘为圆形,钟盘有12条均匀的时间刻度,其中在12点,3点,6点,9点的地方分别有一个小方格为,为看时间提供方便。
拓展功能介绍1)秒钟每走一秒都会发出声音,用sound(2000)和nosound()来实现,使得每走一秒都会停顿下声音。
2)整点报时,当秒针和分针都指向0时,发出蜂鸣声提示。
3)在钟盘上能同时显示数字化的时钟。
计算机程序设计(C语言)课程设计报告
计算机程序设计(C 语言)课程设计报告题目:电子动画时钟学院:机电工程学院专业:班级:090109 班学号:姓名:指导教师:设计日期:一、概述选题背景:随着社会的进步和科技的发展,电子钟表逐渐成为了人们生活中不可缺少的一部分。
设计思路: (一)功能模块设计, 1. 电子时钟执行主流程2. 电子时钟界面显示3. 电子时钟按键控制模块4. 时钟动画处理模块(二)数据结构设计 1.time 结构体 2. 全局变量 ( 三 ) 函数功能描述1. keyhandle()2.timeupchange()3.timedownchange()4.digitclock()5.drawcursor()6.clearcursor()7.void clockhandle()8.main() (四)程序实现(五) 运行结果。
、概要设计2.1 、数据结构此程序中,使用了C语言的time结构体和几个全局变量,l.time结构体struct time{unsigned char ti_min; /* 分钟*/unsigned char ti_hour; /* 小时*/unsigned char ti_hund; /* 百分之一秒*/unsigned char ti_sec; /* 秒*/};time 结构体定义在dos.h 文件中,可用来保存系统的当前时间,其中各字段的值的含义如下。
1. unsigned char ti_min: 保存分钟值。
2. unsigned char ti_hour: 保存小时。
3. unsigned char ti_hund: 保存百分之一秒,例如,ti_hund=500 ,表示1/500 秒。
4. unsigned char ti_sec: 保存秒数。
2.2 、全局变量下面对程序用到的全局变量及数组进行说明.1. double h,m,s: 此3 个全局变量分别用来保存小时,分钟,秒数。
2. double x,x1,x2,y,y1,y2: 保存数字时钟中小时,分,秒在屏幕中显示的坐标值。
c 实验报告
c 实验报告上周,我们在计算机程序设计课上开始了一项新的实验,主题是 C 语言。
在这次实验中,我们要分别使用 C 语言编写一个简单的闹钟程序和一个小型的日历程序,并成功运行它们。
首先,我们从编写闹钟程序开始。
在这项任务中,我们首先需要了解在C 语言中如何获取时间、设置时间和计算时间上的差异,并创建一个基本的执行框架。
在代码编写前的准备过程中,我们使用了标准库中的 time.h 和 signal.h,并从 Linux 系统调用中使用了 sigaction 和 alarm 函数。
这些函数的帮助下,我们可以处理时钟信号并在指定的时间段后执行特定操作。
随后,我们进入实际编码环节,通过 C 语言的语法和库函数知道如何创建函数、控制流程、循环、变量的声明和功能等。
我们使用了本地开发环境的 GDB 和 GCC 编译器来调试和构建程序,以试图找出并解决我们遇到的问题。
这个过程需要我们不断地调整代码、重新编译和运行程序,直至最终的正确结果。
接下来,我们寻求解决另外一个挑战,这一次是编写一个 C 语言的日历程序。
在这项任务中,我们学习了如何读取系统时间、使用结构体来储存日期和如何使用头文件 strftime.h 来格式化日期时间。
在我们编写程序的时候,我们发现了其他关于日期和时间计算的一些库和函数,例如 time.h 和 localtime 函数。
在本次实验中,我们还学习了如何在 CLI 界面下运行我们的 C 语言程序,这需要我们利用 Linux 操作系统命令行终端和 shell。
我们在运行程序前,需要通过 GCC 编译并链接所有代码文件。
在使用 CMake 和 Makefile 帮助自动化地构建程序时,我们用到了一些其他的技术工具,如版本控制 Git 和工作流管理工具 GitHub。
通过完成这个实验项目,我对 C 语言和计算机程序设计的理解和能力得到了巩固和深化。
通过使用 C 语言,我们在计算机界面上获得了令人满意的结果,这将在未来的编程生涯中大有裨益。
【图形时钟c语言vc6.0】c语言,,,,,图形模拟时钟
【图形时钟c语言vc6.0】c语言,,,,,图形模拟时钟《图形时钟语言语言,,,,,图形模拟时钟》是一篇好的范文,好的范文应该跟大家分享,希望对网友有用。
语言图形模拟时钟-学年第二学期《高级语言程序设计》课程设计报告题目:图形模拟时钟专业:计算机科学与技术班级:级()班姓名:王欣指导教师:陈广宏成绩:计算机学院年月日目录设计内容及要求设计要求程序结构流程图概要设计概要分析数据结构设计(:百度)用法说明实验结果要求设计结果与分析实验结果实验结果与分析小结致谢文献源代码设计内容及要求设计要求模拟机械钟表行走;要准确地利用数字显示日期和时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与指针式时钟显示一致;按任意键时程序退出。
在屏幕上显示一个图形时钟(用程序绘制一个班于时钟样式相似即可),时间与系统时间一致,且要随着时间的走到准确的走动。
程序结构流程图图:总程序流程图:指针转动流程图概要设计概要分析()函数(,,){=;;();(,,);(,,);}范文作用:画表盘(为表盘的半径,,为圆心的坐标。
)()函数(,,,,){,;=+*();=-*();();(,,,);}作用:画指针:直线起点的横坐标:直线起点的纵坐标:直线终点的横坐标:直线终点的纵坐标()()函数①:=,;;类型和最高分辨率_,_,_;(&,&,"");下页语言图形模拟时钟---配适器---显示模式②:();背景色③:(!()){(,,);函数(转载于:百度)(&);得到当前系统时间(,);定位输出位置④:(()_)是程序的编写。
由于该程序所涉及的信息内容比较广泛,所以程序的编写也有些复杂。
程序的编写是一项困难的任务,完成此程序必须运用书中的大部分知识,而且要有清晰的思路和较强的语言组织能力。
)是程序的检查和系统的调用。
当程序运行后,显示出一个时钟。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
draw(150, h, 30); /*画时针*/ setcolor(14); draw(170, m, 6); /*画分针*/ setcolor(4); draw(190, s, 6); /*画秒针*/ while (!kbhit()) { while (t[0].ti_sec == s) gettime(t); setcolor(4); draw(190, s, 6); /*清除前面画的秒针*/ s = t[0].ti_sec; draw(190, s, 6); /*画秒针*/ if (t[0].ti_min != m) { setcolor(14); draw(170, m, 6); /*清除前面画的分针*/ m = t[0].ti_min; draw(170, m, 6); /*画分针*/ } if (t[0].ti_hour != h) { setcolor(7); draw(150, h, 30); /*清除前面画的时针*/ h = t[0].ti_hour; draw(150, h, 30); /*画时针*/ } } getch(); closegraph(); /*退出图形界面*/ }
- 10 -
- 7 -
参考文献: 《C 程序设计思想与方法》 《C 语言序 (使用 TC) # include <graphics.h> # include <math.h> # include <dos.h> # define pi 3.1415926 void draw(int a, int b, int c) { float x, y; x=a*cos(b*c*pi/180-pi/2)+300; /*确定横坐标*/ y=a*sin(b*c*pi/180-pi/2)+240; /*确定纵坐标*/ line(300, 240, x, y);/*绘制时针或分针或秒针*/ } void init() /*划时钟边框函数*/ { int i,l,x1,x2,y1,y2; circle(300,240,200);/*以(300,240)为圆心,200 为半径画圆*/ circle(300,240,5);/*以(300,240)为圆心,5 为半 径画圆*/ for(i=0;i<60;i++) /*划钟点上的短线*/ { if(i%5==0) l=15;
- Байду номын сангаас -
(4)
时钟走动与系统时间联系:每过一秒画出秒 针,并除去前一秒的秒针,分针秒针同样可用。 画线函数与时间联系使用变量。
(5)
设置横纵坐标 x=a*cos(b*c*pi/180-pi/2)+300; y=a*sin(b*c*pi/180-pi/2)+240; 设置表针的动态坐标点 x1=200*sin(i*6*pi/180)+300; y1=200*cos(i*6*pi/180)+240; x2=(200-l)*sin(i*6*pi/180)+300; y2=(200-l)*cos(i*6*pi/180)+240;
- 2 -
程序结构(画流程图) 总流程图:
开始
确定横纵坐标
写出时钟表盘并将表盘分 60 份的函数
图形方式初始化
在表盘适当位置插入 12、3、6、9
获取系统时间并写入结构体 t 中
画出时针分针秒针
函数使指针转动并除去前一秒的指针
结束
- 3 -
指针转动流程图:
- 4 -
开始
gettime(t);setcolor(4);draw(190,s,6); s=t[0].ti_sec;draw(190, s, 6);
数据结构设计及说明
(1)
图形时钟要用 TC 来编译,学 C 语言时主要用 VC,用 TC 对我有一定的挑战性,不熟悉编译,对 图形函数也没有太多接触,做这个有一定难度。
(2)
先画出时钟基本组成, (时针分针秒针,中心 点,表盘及其分隔点) 。
(3)
时钟表设计思想: 第一步, 确定秒钟的走时。 将圆等分成 60 份每过一 秒,秒钟要转 1/60 个圆,亦即一等份。 第二步, 确定分钟的走时。 将圆等分成 60 份每过一 分,分钟要转 1/60 个圆,亦即一等份。 分钟自己走的再加秒钟的,才是分钟此时 的位置。 第三步,确定时钟的走时。将圆等分成 12 等分。每 过一时,时钟走一等份。和分钟一样, 得加上分钟,秒钟的走时,才是此刻时钟 的位置。
t[0].ti_min != m
N
Y
setcolor(14);draw(170, m, 6); m = t[0].ti_min;draw(170, m, 6);
t[0].ti_hour != h
Y
N
setcolor(7);draw(150, h, 30); h = t[0].ti_hour;draw(150, h, 30);
试验结果(包括输入数据和输出结果)
- 6 -
12
9
3
6
体会: 刚开始做时基本上什么都不懂,用 TC 做,我更不 会。 不过参考了很多资料, 到网上查, 泡了几天图书馆, 差不多能写出基本程序,虽然很多是借鉴别人的,不过 能写成这样,我心里还是挺高兴的。 有了一点成功我就很兴奋, 这是动力。 程序很奇特, 很多问题都可以用程序编写, 看到那些大型程序我就感 觉我也能写出这样的程序。 程序设计主要靠理解与运用, 有些没有学过的知识 不一定要懂得彻底,只要会运用就行。 不足之处也很多,程序思路不太清晰可能有些混 乱。 有很多程序设计使用并不熟练, 甚至有些方法掌握 不了,更容易忘记。算法结构了解并不深入,独立自主 的想法占据总体达不到要求。 需要加强练习和对知识的 理解与掌握。
- 8 -
else l=5; x1=200*sin(i*6*pi/180)+300; /*画线函数*/ y1=200*cos(i*6*pi/180)+240; x2=(200-l)*sin(i*6*pi/180)+300; y2=(200-l)*cos(i*6*pi/180)+240; line(x1,y1,x2,y2); } } main() { int x, y,i; int gdriver, gmode; unsigned char h, m, s; struct time t[1]; gdriver = DETECT; initgraph(&gdriver, &gmode, ""); /*初始化*/ for(i=0;i<=6;i++) { outtextxy(300,80,"12") ; outtextxy(300,390,"6"); outtextxy(140,230,"9"); outtextxy(460,230,"3"); } init(); /*调用 init()函数*/ setwritemode(1);/*将当前线与原有的线进行异或操 作*/ gettime(t); /*将计算机时间写入结构体 t 中*/ h = t[0].ti_hour; /*h 赋初值当前时数*/ m = t[0].ti_min; /*m 赋初值当前分数*/ s = t[0].ti_sec; /*s 赋初值当前秒数*/ setcolor(7);
目录
1.系统功能要求。 2. 数据结构设计及说明。 3.程序结构(画流程图) 。 4.各模块的功能。 5.试验结果(包括输入数据和输出结果) 。 6.体会。 7.参考文献。 8.附录:程序清单及源程序。
系统功能要求:
在屏幕上显示一个图形时钟 (用程序绘制一个与时钟样 式相似即可) ,时间与系统时间一致,且要随着时间的走动 准确的走动。
Y
t[0].ti_sec==s
N
结束
- 5 -
各模块的功能
void draw(int a, int b, int c) 功能 确定横纵坐标,确定针分针秒针函数
void init()
功能
划时钟边框函数和画钟点上的短线
main()
功能
主函数
图形初始化 时钟添加 12 点、3 点、6 点、9 点 获取系统时间, 画时针分 针秒针 将系统时间与时钟联系