c语言实现电子时钟_课程设计
电子时钟c语言课程设计

电子时钟c语言课程设计一、课程目标知识目标:1. 学生能理解并掌握C语言中结构体、指针、函数等基本概念;2. 学生能运用C语言编程实现电子时钟的功能,包括时、分、秒的显示与更新;3. 学生了解电子时钟的原理,明确时间与计算机系统时间的关系。
技能目标:1. 学生能运用所学知识,设计并编写出具有实际功能的电子时钟程序;2. 学生通过课程学习,掌握编程调试技巧,提高解决问题的能力;3. 学生能够进行团队协作,共同分析问题、设计解决方案并完成项目。
情感态度价值观目标:1. 学生培养对编程的兴趣,激发探索精神,增强学习动力;2. 学生通过课程学习,认识到编程在实际生活中的应用,提高学习的实用性;3. 学生在团队协作中,学会沟通与交流,培养合作精神和团队意识。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握C语言编程的基本技能,培养实际编程能力。
学生特点:学生已经掌握了C语言的基本语法,具有一定的编程基础,但对实际项目的开发流程和团队协作经验不足。
教学要求:教师需引导学生将所学理论知识应用于实际项目,注重培养学生的动手能力、解决问题的能力和团队协作能力。
在教学过程中,将目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. C语言基础回顾:结构体、指针、函数的定义与使用;2. 电子时钟原理介绍:时间概念、计算机系统时间处理;3. 编程环境准备:配置开发环境、编译与调试;4. 项目需求分析:明确电子时钟的功能需求、界面设计;5. 编程实现:- 设计结构体存储时间数据;- 编写函数实现时、分、秒的更新;- 实现界面显示与交互;- 处理异常情况与边界条件;6. 项目测试与优化:测试电子时钟程序、优化代码性能;7. 团队协作与交流:分组进行项目开发、组内讨论与分享;8. 课堂总结与反馈:总结项目开发过程、收集学生反馈。
教材关联章节:C语言基础、结构体与指针、函数、项目实践。
教学内容安排与进度:1. 基础知识回顾(1课时);2. 电子时钟原理介绍(1课时);3. 编程环境准备与项目需求分析(1课时);4. 编程实现(4课时);5. 项目测试与优化(2课时);6. 团队协作与交流(2课时);7. 课堂总结与反馈(1课时)。
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语言编程

课程设计说明书课程设计名称:专业课程设计课程设计题目:电子钟的设计学院名称:信息工程学院专业:电子信息工程班级: XXXXXX 学号: XXXXXXXX 姓名: XXXX 评分:教师: XXXXXX20 XX 年 X 月 X 日当今信息科技高速发展,使用方便、低成本电子设备已逐步成为我们日常生活中电子产品的主力军。
用软件代替硬件的电子设备能大大地节省成本,且有利于资源的节约,因此,以软代硬的设计必将成为我们现代设计的主流。
本设计是利用MCS-51系列单片机内部的定时器/计数器进行中数年定时,配合软件延时实现时、分、秒的计时。
该方案节省硬件成本,且能够使设计者在定时/计数器的使用中及程序设计方面得到锻炼和提高,因此本系统将采用软件方法实现计时。
关键词:单片机计数器软件第一章实验要求及设计思路 (4)1.1 设计内容及要求 (4)1.2 设计的目与和意义 (4)1.3 设计的基本思路与主要内容 (5)第二章系统组成及工作原理 (6)2.1 系统组成 (6)2.2工作原理 (7)第三章硬件设计与分析 (9)3.1 硬件设计原理 (9)3.2 AT89C51单片机介绍 (9)3.3单片机最小应用系统 (9)3.4显示电路 (11)3.5 键盘及其接口 (12)第四章软件设计 (14)4.1 主程序设计 (14)4.2 定时中断程序 (17)4.3 显示子程序 (17)第五章调试与运行 (19)第六章结论与体会 (20)参考文献 (21)附录一系统原理图 (22)附录二元件清单 (23)附录三程序清单 (24)第一章 实验要求及设计思路1.1 设计内容及要求设计一个电子钟,要求如下:(1) 利用单片机最小系统设计一个电子钟(不能采用单片机开发系统)(2) 用8255扩展键盘及显示接口(3) 显示方式:** 时** 分** 秒(4) 时间可以任意修改1.2 设计的目的与意义人类的生活包括:工作、学习、休息以及参与社会的多种实践活动,环环有条理,更加丰富多彩。
c电子时钟课程设计

c 电子时钟课程设计一、课程目标知识目标:1. 学生能够理解电子时钟的基本原理,掌握电子时钟的主要部件及其功能。
2. 学生能够掌握时、分、秒的概念,学会电子时钟的时间设置与调整。
3. 学生能够了解电子时钟的设计与制作过程,掌握基本的电路连接方法。
技能目标:1. 学生能够运用所学知识,独立完成电子时钟的组装与调试。
2. 学生能够运用电子时钟的设计原理,进行简单的时钟程序编写与优化。
3. 学生能够通过实际操作,培养动手能力、逻辑思维能力和问题解决能力。
情感态度价值观目标:1. 学生通过学习电子时钟的制作,培养对科学技术的热爱和兴趣,增强创新意识。
2. 学生在团队协作中,学会互相帮助、沟通与交流,培养合作精神。
3. 学生能够认识到时间的宝贵,养成珍惜时间、合理安排时间的好习惯。
课程性质:本课程为电子技术实践课程,旨在让学生通过动手实践,掌握电子时钟的基本原理与制作方法。
学生特点:五年级学生具有一定的认知能力、动手能力和逻辑思维能力,对新鲜事物充满好奇。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的主观能动性,引导学生在实践中探索、发现、解决问题。
将课程目标分解为具体的学习成果,以便在教学设计和评估中实现课程目标的有效落实。
二、教学内容1. 电子时钟基本原理:电子时钟的工作原理、主要部件(如晶体振荡器、分频器、计数器、显示器件等)及其功能。
教材章节:《电子技术》第五章第二节2. 时间概念与电子时钟设置:时、分、秒的概念,电子时钟的时间设置与调整方法。
教材章节:《电子技术》第五章第三节3. 电子时钟设计与制作:电子时钟的设计流程、电路连接方法,以及组装与调试技巧。
教材章节:《电子技术》第五章第四节、第五节4. 时钟程序编写与优化:基于电子时钟原理,进行简单的时钟程序编写与调试。
教材章节:《电子技术》第五章第六节5. 实践操作与作品展示:学生分组进行电子时钟的组装、调试,展示作品并进行评价。
教材章节:《电子技术》第五章实践环节教学进度安排:第一课时:电子时钟基本原理及主要部件介绍第二课时:时间概念与电子时钟设置方法第三课时:电子时钟设计与制作(一)第四课时:电子时钟设计与制作(二)第五课时:时钟程序编写与优化第六课时:实践操作与作品展示教学内容确保科学性和系统性,结合教材章节,以理论与实践相结合的方式进行教学,旨在帮助学生掌握电子时钟相关知识,培养动手能力与创新能力。
C语言课程设计 时钟代码

/*电子时钟源代码*/#include<graphics.h>#include<stdio.h>#include<math.h>#include<dos.h>#define PI 3.1415926 /*定义常量*/#define UP 0x4800 /*上移↑键:修改时间*/#define DOWN 0x5000 /*下移↓键:修改时间*/#define ESC 0x11b /*ESC键:退出系统*/#define TAB 0xf09 /*TAB键:移动光标*//*函数声明*/int keyhandle(int,int); /*键盘按键判断,并调用相关函数处理*/int timeupchange(int); /*处理上移按键*/int timedownchange(int); /*处理下移按键*/int digithour(double); /*将double型的小时数转换成int型*/int digitmin(double); /*将double型的分钟数转换成int型*/int digitsec(double); /*将double型的秒钟数转换成int型*/void digitclock(int,int,int ); /*在指定位置显示时钟或分钟或秒钟数*/void drawcursor(int); /*绘制一个光标*/ void clearcursor(int);/*消除前一个光标*/void clockhandle(); /*时钟处理*/ double h,m,s; /*全局变量:小时,分,秒*/double x,x1,x2,y,y1,y2; /*全局变量:坐标值*/struct time t[1];/*定义一个time结构类型的数组*/main(){int driver, mode=0,i,j;driver=DETECT; /*自动检测显示设备*/initgraph(&driver, &mode, "");/*初始化图形系统*/setlinestyle(0,0,3); /*设置当前画线宽度和类型:设置三点宽实线*/ setbkcolor(0);/*用调色板设置当前背景颜色*/setcolor(9); /*设置当前画线颜色*/ line(82,430,558,430);line(70,62,70,418);line(82,50,558,50);line(570,62,570,418);line(70,62,570,62);line(76,56,297,56);line(340,56,564,56); /*画主体框架的边直线*//*arc(int x, int y, int stangle, int endangle, int radius)*/arc(82,62,90,180,12);arc(558,62,0,90,12);setlinestyle(0,0,3);arc(82,418,180,279,12);setlinestyle(0,0,3);arc(558,418,270,360,12); /*画主体框架的边角弧线*/setcolor(15);outtextxy(300,53,"CLOCK"); /*显示标题*/setcolor(7);rectangle(342,72,560,360); /*画一个矩形,作为时钟的框架*/setwritemode(0); /*规定画线的方式。
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. 学生能够理解实时钟表的基本概念,掌握时、分、秒的相互关系及其在钟表上的表示方法。
2. 学生能够运用所学知识,识别并准确读取各种类型的实时钟表时间。
3. 学生了解钟表的历史发展及其在日常生活和科技领域中的应用。
技能目标:1. 学生能够通过观察、分析,正确设置和调整钟表时间,培养实际操作能力。
2. 学生能够运用所学知识解决与实时钟表相关的问题,提高问题解决能力。
3. 学生能够运用信息技术手段,设计并制作简单的实时钟表模型。
情感态度价值观目标:1. 学生培养对时间观念的尊重,养成守时、珍惜时间的良好习惯。
2. 学生在小组合作中,培养团队协作精神,学会分享和交流。
3. 学生通过学习实时钟表,认识到科技与生活的紧密联系,增强对科学技术的兴趣和探索精神。
课程性质:本课程为小学四年级信息技术课程,旨在通过实时钟表的学习,让学生掌握时间的基本概念,提高观察、操作和问题解决能力。
学生特点:四年级学生对新鲜事物充满好奇,动手操作能力强,但注意力容易分散,需要结合实际操作和趣味性教学。
教学要求:教师应注重理论与实践相结合,运用生动、形象的教学方法,激发学生兴趣,引导学生在实践中掌握知识,培养技能和情感态度价值观。
通过分解课程目标为具体学习成果,为后续教学设计和评估提供依据。
二、教学内容1. 实时钟表的基本概念:时、分、秒的定义及其关系,钟表的构造及其工作原理。
2. 钟表时间的读取与设置:各类钟表(电子钟、指针钟、数字钟)的读取方法,如何调整和设置时间。
3. 钟表的应用与制作:- 钟表在日常生活和时间管理中的应用;- 设计并制作简易实时钟表模型,运用信息技术手段实现基本功能。
4. 钟表与科技发展:介绍钟表的历史演变,探讨钟表在科技领域的应用。
教学大纲安排:第一课时:实时钟表的基本概念及构造,了解时、分、秒的关系。
第二课时:学习读取和设置各类钟表时间,培养实际操作能力。
第三课时:探索钟表在日常生活和时间管理中的应用,培养时间管理意识。
c语言课程设计闹钟
c语言课程设计闹钟一、教学目标本课程旨在通过学习C语言编程,使学生掌握编写简单的闹钟程序的基本技能。
具体目标如下:1.理解C语言的基本语法和数据结构。
2.掌握函数的定义和调用。
3.了解操作系统中时间相关的函数和概念。
4.能够使用C语言编写简单的程序。
5.能够通过编程实现闹钟的基本功能,如设定时间、响起闹铃等。
6.能够对程序进行调试和优化。
情感态度价值观目标:1.培养学生的逻辑思维能力和解决问题的能力。
2.培养学生对编程和计算机科学的兴趣。
3.培养学生遵守时间和纪律的良好习惯。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数的定义和调用,以及操作系统中时间相关的函数和概念。
具体安排如下:1.C语言的基本语法和数据结构(2课时)2.函数的定义和调用(2课时)3.闹钟程序的设计和实现(4课时)4.程序调试和优化(2课时)三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解C语言的基本语法、数据结构和函数的定义和调用。
2.案例分析法:通过分析实际案例,使学生理解和掌握闹钟程序的设计和实现。
3.实验法:让学生通过动手实践,加深对C语言编程的理解和掌握。
四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用《C程序设计语言》作为主教材,辅助以相关参考书。
2.多媒体资料:提供相关的教学视频和PPT,帮助学生更好地理解和掌握知识。
3.实验设备:提供计算机和相关的编程环境,让学生能够进行实际的编程实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
1.平时表现(20%):通过课堂参与、提问和小组讨论等方式评估学生的学习态度和参与程度。
2.作业(30%):布置相关的编程作业,评估学生对课程内容的掌握程度和编程能力。
3.考试(50%):期末进行闭卷考试,评估学生对课程知识的全面理解和应用能力。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保学生系统地掌握C语言编程的知识。
c数字时钟课程设计
c 数字时钟课程设计一、教学目标本课程旨在通过学习数字时钟的设计与实现,让学生掌握C语言编程的基本技能,培养学生的逻辑思维能力和创新能力。
具体的教学目标如下:1.知识目标:(1)了解C语言的基本语法和数据类型;(2)掌握函数的定义和调用;(3)理解指针的概念及其应用;(4)熟悉字符串操作和时间处理相关函数。
2.技能目标:(1)能够运用C语言编写简单的程序;(2)具备阅读和理解C语言代码的能力;(3)学会使用调试工具进行程序调试;(4)能够独立设计和实现一个数字时钟程序。
3.情感态度价值观目标:(1)培养学生的编程兴趣,提高学习积极性;(2)培养学生团队合作和自主探究的精神;(3)培养学生面对挑战,解决问题的信心和勇气。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基础知识:介绍C语言的基本语法、数据类型、运算符、控制结构等;2.函数与指针:讲解函数的定义、调用、参数传递以及指针的概念和应用;3.字符串操作:学习字符串的存储结构、常用字符串操作函数;4.时间处理:了解时间相关的数据类型和函数,学习如何获取和显示当前时间;5.数字时钟设计与实现:引导学生运用所学知识独立设计和实现一个数字时钟程序。
三、教学方法为了提高教学效果,本课程将采用以下几种教学方法:1.讲授法:讲解C语言基础知识、函数与指针、字符串操作和时间处理等相关概念;2.案例分析法:通过分析典型的数字时钟程序,让学生理解数字时钟的实现原理;3.实验法:引导学生动手编写和调试数字时钟程序,培养学生的实际操作能力;4.讨论法:学生进行小组讨论,分享学习心得和编程经验,提高学生的团队协作能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R);2.参考书:《C Primer Plus》、《C语言程序设计》;3.多媒体资料:教学PPT、视频教程、编程实例;4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等);5.在线资源:编程论坛、博客、开源项目等。
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. 第四课时:讲解循环和条件语句的使用,设计数字时钟的刷新逻辑。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言实现电子时钟_课程设计题目: c语言实现电子时钟1课程设计的任务和具体要求1( 掌握利用c语言相关函数开发电子时钟的基本原理,为进一步开发高质量的程序打下坚实的基础。
提高运用c语言解决实际问题的能力。
2( 了解计算机图形学的相关算法。
3( 了解计算机图形学的相关函数的使用。
指导教师签字: 日期: 指导教师评语成绩: 指导教师签字: 日期:2课程设计所需软件、硬件等Windows xp win-TC课程设计进度计划起至日期工作内容备注 2010年12月1日-2010收集资料年12月20日2010年12月20日-2010编写程序年12月26日参考文献、资料索引序号文献、资料名称编著者出版单位a. 姜灵芝等.c语言课程设计案例精编.北京:清华大学出版社.2008b. 胡景春等。
大学生计算机课程实践优秀作品选编.南京:东南大学出版社.20103摘要:我们日常生活中有各种各样的时钟,随着计算机的普及和计算机科学的飞速发展,人们开始越来越多的利用计算机解决实际问题。
开发一个易于查看的时钟有较大的现实意义。
该时钟只实现简单的界面,程序与生活紧密结合,体直观开发简单。
利用c语言编辑源程序,再进行编译连接生成可执行文件,运行时可看见漂亮的外观。
一 .设计课题:电子时钟课程设计二.设计目的:本程序中涉及时间结构体,数组、绘图等方面的知识,通过本程序的训练,使我们有一个更深刻的了解,掌握利用c语言相关函数开发电子时钟的基本原理,为进一步开发高质量的程序打下坚实的基础。
提高运用c语言解决实际问题的能力。
三.设计内容:(1) 欢迎界面,以一个笑脸开始(2)主界面,包括数字时钟和电子时钟和按键提示。
(3)设计者介绍和功能提示。
四.总体设计:电子时钟是针对人们判断时间的落后和不准确性,通过利用计算机来实行对时间的系统计算,增加了准确性。
在软件的总体设计中采用自上而下,逐步细化,模块化设计,结构化编码方式进行。
系统结构图电子时钟时界按钟数面键动字显控画时示制处钟模模理模块块模块块1五.详细设计:(1)电子时钟执行主流程首先,程序调用initgraph()函数,使系统进入图像模式,然后通过使用line(),arc(),outtextxy(),和circle()等函数来绘制主窗口及电子时钟界面,然后调用clockhandle()函数来处理时钟的运转及数字时钟的显示。
在clcockhandle()函数中,使用bioskeu()函数来获取用户的按键值,当用户按键为Esc时,程序会从clockhandle()函数中返回,从而退出程序。
(2)电子时钟显示电子时钟界面的难度主要在于模拟时钟运转的动画时钟的时间刻度是用大小不同的圆来表示的,3根长度不同的但有一端在相同坐标位置的直线分别表示时、分、秒针。
(3)时钟按键控制模块在按键控制模块中,使用bioskey()函数来读取按键的键值,然后调用keyhandle()函数对键盘按键值进行判断,执行相应的操作,具体操作如下:a. Tab键是用来清除上一个光标,然后再新位置处绘制一个光标。
b. 光标上移键是用来增加相应的时、分、秒值。
c. 光标下移键是用来减少相应的时、分、秒值。
d. Esc键是用来结束程序的。
(4)时钟动画处理模块12krarcosaorsina先通过坐标点的计算再做好时钟动画处理流程,最后退出程序。
(5)数字时钟处理模块在数字时钟处理模块中,会每隔一秒调用gettime()函数,获取系统时间,再调用digitclock函数再相应的位置显示时、分、秒值。
数字的修改有当前光标的位置和上、下移键共同决定的。
2(6)汉字处理模块运用点阵法,调用drawmat()函数实现。
六.调试分析:在此次课程设计中,遇到了一些问题,通过老师的指导和组员之间的协作,最后都解决了问题。
a. 要减少调试时间首先要害死程序写出来的语法错误少,那就哟啊养成良好的习惯,比如写主函数main()后写了左花括号“{”马上补右括号“}”等等。
b. 另一个重要的方面就是数据的类型一定要对应,还有格式也非常重要,在写程序时一定要注意。
七(课程设计总结和心得体会:1. 通过这次课程设计,加强了我们动手、思考和解决问题的能力。
而且在设计过程中,经常会遇到这样那样的情况,就是心里想老着这样的接法可以行得通,经过老师一点拨就放弃了这种想法。
2. 我沉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个函数的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多函数的功能,并且对于其在程序中的使用有了更多的认识。
3.平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。
而且还可以记住很多东西。
比如一些程序功能的实现,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个函数印象深刻。
认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
所以这两个星期的课程设计对我们的作用是非常大的。
经过两个星期的学习,过程曲折可谓一语难尽。
在此期间我们也失落过,也曾一度热情高涨。
从开始时满富盛激情到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。
此次课程设计,学到了很多课内学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。
、在此,感谢于老师的细心指导,也同样谢谢其他各组同学的无私帮助~八(参考文献:c. 姜灵芝等.c语言课程设计案例精编.北京:清华大学出版社.2008d. 胡景春等。
大学生计算机课程实践优秀作品选编.南京:东南大学出版社.2010 附录(源代码):#include<graphics.h>#include<stdio.h>3#include<math.h>#include<dos.h>#define PI 3.1415926 /*定义常量*/#define UP 0x4800 /*上移?键:修改时间*/ #define DOWN 0x5000 /*下移?键:修改时间*/退出系统*/ #define ESC 0x11b /*ESC键 :#define TAB 0xf09 /*TAB键 : 移动光标*/ /*函数声明*/int keyhandle(int,int); /*键盘按键判断,并调用相关函数处理*/ int timeupchange(int); /*处理上移按键*/int timedownchange(int); /*处理下移按键*/int digithour(double); /*将double型的小时数转换成int型*/ int digitmin(double); /*将double型的分钟数转换成int型*/ intdigitsec(double); /*将double型的秒钟数转换成int型*/ voiddigitclock(int,int,int ); /*在指定位置显示时钟或分钟或秒钟数*/ void drawcursor(int); /*绘制一个光标*/void clearcursor(int);/*消除前一个光标*/void clockhandle(); /*时钟处理*/double h,m,s; /*全局变量:小时,分,秒*/double x,x1,x2,y,y1,y2; /*全局变量:坐标值*/struct time t[1];/*定义一个time结构类型的数组*/ main(){int driver, mode=0,i,j;driver=DETECT; /*自动检测显示设备*/initgraph(&driver, &mode, "");/*初始化图形系统*/setlinestyle(0,0,3); /*设置当前画线宽度和类型:设置三点宽实线*/ setbkcolor(0);/*用调色板设置当前背景颜色*/setcolor(9); /*设置当前画线颜色*/line(82,430,558,430);line(70,62,70,418);line(82,50,558,50);line(570,62,570,418);line(70,62,570,62);line(76,56,297,56);line(340,56,564,56); /*画主体框架的边直线*//*arc(int x, int y, int stangle, int endangle, int radius)*/ arc(82,62,90,180,12);arc(558,62,0,90,12);setlinestyle(0,0,3);arc(82,418,180,279,12);setlinestyle(0,0,3);arc(558,418,270,360,12); /*画主体框架的边角弧线*/4setcolor(15);outtextxy(300,53,"CLOCK"); /*显示标题*/setcolor(7);rectangle(342,72,560,360); /*画一个矩形,作为时钟的框架*/setwritemode(0); /*规定画线的方式。
mode=0, 则表示画线时将所画位置的原来信息覆盖*/setcolor(15);outtextxy(433,75,"CLOCK");/*时钟的标题*/setcolor(7);line(392,310,510,310);line(392,330,510,330);arc(392,320,90,270,10);arc(510,320,270,90,10); /*绘制电子动画时钟下的数字时钟的边框架*/ /*绘制数字时钟的时分秒的分隔符*/setcolor(5);for(i=431;i<=470;i+=39)for(j=317;j<=324;j+=7){setlinestyle(0,0,3);circle(i,j,1); /*以(i, y)为圆心,1为半径画圆*/}setcolor(15);line(424,315,424,325); /*在运行电子时钟前先画一个光标*//*绘制表示小时的圆点*/for(i=0,m=0,h=0;i<=11;i++,h++){x=100*sin((h*60+m)/360*PI)+451;y=200-100*cos((h*60+m)/360*PI);setlinestyle(0,0,3);circle(x,y,1);}/*绘制表示分钟或秒钟的圆点*/for(i=0,m=0;i<=59;m++,i++){x=100*sin(m/30*PI)+451;y=200-100*cos(m/30*PI);setlinestyle(0,0,1);circle(x,y,1);}/*在电子表的左边打印帮助提示信息*/setcolor(4);outtextxy(184,125,"HELP");setcolor(15);outtextxy(182,125,"HELP");setcolor(5);outtextxy(140,185,"TAB : Cursor move");outtextxy(140,225,"UP : Time ++");5outtextxy(140,265,"DOWN: Time --");outtextxy(140,305,"ESC : Quit system!");outtextxy(140,345,"Version : 2.0");setcolor(12);outtextxy(150,400,"Nothing is more important than time!"); clockhandle();/*开始调用时钟处理程序*/closegraph(); /*关闭图形系统*/*/ return 0; /*表示程序正常结束,向操作系统返回一个0值}void clockhandle(){int k=0,count;setcolor(15);gettime(t);/*取得系统时间,保存在time结构类型的数组变量中*/h=t[0].ti_hour;m=t[0].ti_min;x=50*sin((h*60+m)/360*PI)+451; /*时针的x坐标值*/y=200-50*cos((h*60+m)/360*PI); /*时针的y坐标值*/line(451,200,x,y);/*在电子表中绘制时针*/x1=80*sin(m/30*PI)+451; /*分针的x坐标值*/y1=200-80*cos(m/30*PI); /*分针的y坐标值*/line(451,200,x1,y1); /*在电子表中绘制分针*/digitclock(408,318,digithour(h)); /*在数字时钟中,显示当前的小时值*/ digitclock(446,318,digitmin(m)); /*在数字时钟中,显示当前的分钟值*/ setwritemode(1);/*规定画线的方式,如果mode=1,则表示画线时用现在特性的线与所画之处原有的线进行异或(XOR)操作,实际上画出的线是原有线与现在规定的线进行异或后的结果。