c语言时钟报告,C语言图形时钟课程设计实验报告

41528d3028836879cd698677c3999917.gifC语言图形时钟课程设计实验报告

目录1.系统功能要求。2. 数据结构设计及说明。3.程序结构(画流程图) 。4.各模块的功能。5.试验结果(包括输入数据和输出结果) 。6.体会。7.参考文献。8.附录:程序清单及源程序。 系统功能要求:在屏幕上显示一个图形时钟(用程序绘制一个与时钟样式相似即可) ,时间与系统时间一致,且要随着时间的走动准确的走动。 数据结构设计及说明(1) 图形时钟要用 TC来编译,学 C语言时主要用VC,用 TC对我有一定的挑战性,不熟悉编译,对图形函数也没有太多接触,做这个有一定难度。(2) 先画出时钟基本组成, (时针分针秒针,中心点,表盘及其分隔点) 。(3) 时钟表设计思想:第一步,确定秒钟的走时。将圆等分成 60份每过一秒,秒钟要转 1/60个圆,亦即一等份。第二步,确定分钟的走时。将圆等分成 60份每过一分,分钟要转 1/60个圆,亦即一等份。- 1 -分钟自己走的再加秒钟的,才是分钟此时的位置。第三步,确定时钟的走时。将圆等分成 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; 程序结构(画流程图)总流程图:- 2 -开始确定横纵坐标写出时钟表盘并将表盘分 60 份的函数图形方式初始化函数使指针转动并除去前一秒的指针画出时针分针秒针获取系统时间并写入结构体 t 中在表盘适当位置插入 12、3、6、9结束指针转动流程图:- 3 -结束开始t[0].ti_sec==sgettime(t);setcolor(4);draw(190,s,6);s=t[0].ti_sec;draw(190, s, 6);t[0].ti_min != m NYsetcolor(14);draw(170, m, 6); m = t[0].ti_min;draw(170, m, 6);t[0].ti_hour != h NYsetcolor(7);draw(150, h, 30); h = t[0].ti_hour;draw(150, h, 30);YN 各模块的功能- 4 -void init()main()划时钟边框函数和画钟点上的短线主函数 图形初始化时钟添加 12 点、3 点、6 点、9 点获取系统时间,画时针分针秒针将系统时间与时钟联系功能功能 试验结果(包括输入数据和输出结果)void draw(int a, int b, int c) 确定横纵坐标,确定针分针秒针函数功能- 5 -12369 体会:刚开始做时基本上什么都不懂,用 TC做,我更不会。不过参考了很多资料,到网上查,泡了几天图书馆,差不多能写出基本程序,虽然很多是借鉴别人的,不过能写成这样,我心里还是挺高兴的。有了一点成功我就很兴奋,这是动力。程序很奇特,很多问题都可以用程序编写,看到那些大型程序我就感觉我也能写出这样的程序。程序设计主要靠理解与运用,有些没有学过的知识不一定要懂得彻底,只要会运用就行。不足之处也很多,程序思路不太清晰可能有些混乱。有很多程序设计使用并不熟练,甚至有些方法掌握不了,更容易忘记。算法结构了解并不深入,独立自主的想法占据总体达不到要求。需要加强练习和对知识的理解与掌握。 参考文献:《C 程序设计思想与方法》《C 语言完全手册》《C 语言课程设计指导》《百度知道 图形时针》- 6 - 附录:程序清单及源程序 (使用 TC)# include # include # include # 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; 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); } } - 7 -main(){int x, y,i;int gdriver, gmode;unsigned char h, m, s;struct time t[1];gdriver = DETECT;initgraph( /*初始化*/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); draw(150, h, 30); /*画时针*/setcolor(14);draw(170, m, 6); /*画分针*/setcolor(4);draw(190, s, 6); /*画秒针*/while (!kbhit()){while (t[0].ti_sec == s)- 8 -gettime(t);setcolor(4);draw(190, s, 6); /*清除前面画的秒针*/s = t[0].ti_sec;draw(190, s, 6);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软发布 2023 财年第一季度财报:营收达 501 亿美元,同比增长 11%

北京时间 2022 年 10 月 26 日——微软发布 2023 财年第一季度财报。财报显示&#xff0c;截止到 2022 年 9 月 30 日&#xff1a;营收达到 501 亿美元&#xff0c;增长 11%&#xff08;按固定汇率计算增长 16%&#xff09;运营收入为 215 亿美元&#xff0c;增长 6%&#xff0…

《图解CSS3:核心技术与案例实战》——1.3节渐进增强

本节书摘来自华章社区《图解CSS3&#xff1a;核心技术与案例实战》一书中的第1章&#xff0c;第1.3节渐进增强&#xff0c;作者 大漠&#xff0c;更多章节内容可以访问云栖社区“华章社区”公众号查看 1.3 渐进增强第一次听到“渐进增强”&#xff08;Progressive Enhancement…

阿里云云主机搭建网站攻略 - 云翼计划

阿里云服务器&#xff08;云主机&#xff09;搭建网站攻略 - 云翼计划 提示&#xff1a;此搭建攻略为2017版本&#xff0c;阿里云未跟新前。 最新搭建攻略请前往 Amaya丶夜雨博客 / 最新个人博客 https://www.amayaliu.cn 支持一下哦&#xff0c;谢谢。&#xff08;9.5一…

记一次 .NET 某医疗器械 程序崩溃分析

一&#xff1a;背景 1.讲故事前段时间有位朋友在微信上找到我&#xff0c;说他的程序偶发性崩溃&#xff0c;让我帮忙看下怎么回事&#xff0c;上面给的压力比较大&#xff0c;对于这种偶发性崩溃&#xff0c;比较好的办法就是利用 AEDebug 在程序崩溃的时候自动抽一管血出来&a…

1251: 字母图形 [水题]

1251: 字母图形 [水题] 时间限制: 1 Sec 内存限制: 128 MB提交: 140 解决: 61 统计题目描述 利用字母可以组成一些美丽的图形&#xff0c;下面给出了一个例子&#xff1a; ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形&#xff0c;请找出这个图形的规律&…

WPF效果第二百零二篇之TreeView带连接线

前面文章中分享了TreeView支持多选;然而在项目上使用时,领导觉得不满意:体现不了真正的从属关系;既然领导都发话了;那就开整就行了;今天就再来个带有连接线的TreeView效果:1、来看看TreeViewItem的Template:2、展开和收缩动画:3、参考资料https://www.codeproject.com/tips/673…

ObjectTive C语言语法,[译]理解 Objective-C 运行时(下篇)

本文来自网易云社区作者&#xff1a;宋申易所以到底 objc_msgSend 发生了什么&#xff1f;很多事情。看一下这段代码&#xff1a;[self printMessageWithString:"Hello World!"];这实际上被编译器翻译成&#xff1a;objc_msgSend(self, selector(printMessageWithStr…

菜鸟学习MVC实录:弄清项目各类库的作用和用法

MVC模式即&#xff1a;模型&#xff08;Model&#xff09;-视图&#xff08;View&#xff09;-控制器&#xff08;Controller&#xff09; Model &#xff08;模型&#xff09;&#xff1a;是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责数据库中存取数据View…

SSL服务器

2019独角兽企业重金招聘Python工程师标准>>> SSL 是一个安全协议&#xff0c;它提供使用 TCP/IP 的通信应用程序间的隐私与完整性。因特网的 超文本传输协议&#xff08;HTTP&#xff09;使用 SSL 来实现安全的通信。 在客户端与服务器间传输的数据是通过使用对称算…

微软Skype Translator将支持阿拉伯语即时语音翻译

据美国科技时代网(Tech Times)3月9日报道&#xff0c;日前&#xff0c;微软旗下即时翻译软件Skype Translator再添新语种&#xff0c;微软宣布Skype Translator已经支持阿拉伯语。Skype用户可通过使用阿拉伯语即时翻译与朋友、家人以及海外商业伙伴进行交流。 据报道&#xff0…

是什么让.NET7的Min和Max方法性能暴增了45倍?

简介在之前的一篇文章.NET性能系列文章一&#xff1a;.NET7的性能改进中我们聊到Linq中的Min()和Max()方法.NET7比.NET6有高达45倍的性能提升&#xff0c;当时Benchmark代码和结果如下所示&#xff1a;[Params(1000)] public int Length { get; set; }private int[] arr;[Globa…

在Identity框架中使用RoleBasedAuthorization

本文将介绍在 Identity 框架中如何使用 Sang.AspNetCore.RoleBasedAuthorization[1] 库。核心介绍Identity 和 jwt 的基本配置我们在这里不再赘述&#xff0c;可以参考最后的项目样例。核心的代码主要为 IRolePermission 的实现。internal class MyRolePermission : IRolePermi…

Magicodes.IE 2.7.0-beta发布

2.7.0-beta2022.10.27使用SixLabors.ImageSharp替代System.Drawing&#xff0c;感谢linch90 &#xff08;见pr#454&#xff09;2.6.92022.10.26fix: 动态数据源导出到多个sheet的问题 &#xff08;见#449&#xff09;2.6.82022.10.18Excel模板导出添加API&#xff0c;以支持通过…

Ubuntu 18.04上Qmmp安装教程

Qmmp&#xff0c;一个开源的基于Qt的多媒体播放器。它具有多种音频文件格式支持&#xff0c;DSP效果&#xff0c;视觉效果;输出系统支持&#xff08;OSS4&#xff08;FreeBSD&#xff09;&#xff0c;ALSA&#xff08;Linux&#xff09;&#xff0c;Pulse Audio&#xff0c;JAC…

C# WPF 表格控件的前后台数据交互?

概述GridControl控件使用我们已经进行了实例讲解&#xff0c;这节内容我们列举一个特殊的应用场景&#xff1a;表格中有一列CheckBox&#xff0c;默认都处于勾选状态&#xff0c;当用户通过界面操作后&#xff0c;我们要确保用户至少选择了一项&#xff0c;相当于一次数据验证&…

Java(C#)基础差异-语法

1、long类型 Java long类型&#xff0c;若赋值大于int型的最大值&#xff0c;或小于int型的最小值&#xff0c;则需要在数字后加L或者l&#xff0c;表示该数值为长整数&#xff0c;如long num2147483650L。 举例如下&#xff1a; public static void main(String[] args) {/** …

android防止左向右滑出程序,Android——ViewPager禁止左右滑动的实现

目录1 背景用ViewPagerBottomNavigationView多个Fragment快速搭建的页面切换架构&#xff0c;一个有四个页面&#xff0c;因为测试需要&#xff0c;需要屏蔽掉中间的两个&#xff0c;做法是&#xff1a;设置不可点击选择&#xff1a;xml布局文件中&#xff0c;BottomNavigation…

Yii2 的快速配置 api 服务 yii2-fast-api

yii2-fast-api yii2-fast-api是一个Yii2框架的扩展&#xff0c;用于配置完善Yii2&#xff0c;以实现api的快速开发。 此扩展默认的场景是APP的后端接口开发&#xff0c;因此偏向于实用主义&#xff0c;并未完全采用restfull的标准&#xff0c;方便前端开发处理接口数据以及各种…

.NET6打包部署到Windows Service

1.安装Nuget包安装以下nuget包支持windows service<PackageReference Include"Microsoft.AspNetCore.Hosting.WindowsServices" Version"6.0.10" /> <PackageReference Include"Microsoft.Extensions.Hosting.WindowsServices" Version…

android emoji unicode编码表,unicode编码

unicode编码app是一款字符查找客户端应用&#xff0c;通过unicode编码可以方便寻找特定字符&#xff0c;查看字符表情详细的描述&#xff0c;并且利用unicode编码就可以快捷复制任意unicode编码&#xff0c;提高开发效率&#xff0c;非常的实用&#xff0c;快来下载unicode编码…