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一…

用c语言递归函数做扫雷,【C语言基础学习---扫雷游戏】(包含普通版+递归炼狱版)...

/*******************///以下是源文件game.c内容/*******************/#include"game.h"//初始化棋盘的实现void InitBoard(char board[ROWS][COLS], int rows, int cols, char set){int i 0;int j 0;for (i 0; i < rows; i){for (j 0; j < cols; j){board…

记一次 .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;请找出这个图形的规律&…

c语言 三角形三边abc,C语言代码输入abc三个数,求一这3个数为边长的三角形面积...

2011-01-04 回答#include #include #include #include #include int main(){float a 0.0;float b 0.0;float c 0.0;float s 0.0;double area 0.0;while(true){printf("input your date(a,b,c):");scanf("%f%f%f",&a,&b,&c);if(!isdigit((…

shell脚本中向hive动态分区插入数据

在hive上建表与普通分区表创建方法一样&#xff1b; 1 CREATE TABLE dwa_m_user_association_circle(2 device_number string, 3 oppo_number string, 4 prov_id_oppo string, 5 area_id_oppo string, 6 dealer_oppo string, 7 short_call_nums bigint, 8 long3…

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…

html标记语言 --框架

html标记语言 --框架六、框架1、什么是框架 框架将浏览器划分成不同的部分&#xff0c;每一部分加载不同的网页 实现同一浏览器窗口中加载多个页面的效果。 语法格式<frameset>.......</frameset>2. 属性2.1 cols使用“像素数”和%分割左右窗口&#xff0c;“*” 表…

c语言兔子洞,数据结构水题选讲 - osc_y08db3kb的个人空间 - OSCHINA - 中文开源技术交流社区...

[Ynoi2011]ODT\(O(nlog^2n)\) 的做法非常显然直接把树重链剖分一下&#xff0c;每个点维护轻儿子的平衡树就行但是这题 \(1e6\) 的数据范围使得 \(O(nlog^2n)\) 没那么容易卡过去(当然很多人卡过去了考虑给一个点很多重儿子那么若一个点有 \(k\) 个重儿子&#xff0c;修改复杂度…

centos 7.x systemd service 配置方法整理

一、存放路径/etc/systemd/system二、service配置整理2.1 zookeeper.service[Unit]DescriptionZooKeeper ServiceAftersyslog.targetAfternetwork.target[Service]#使用shell脚本启动的要用forking模式TypeforkingUserzookeeperGroupzookeeper#脚本启动ExecStart/usr/local/zoo…

MAVEN集成测试环境搭建

1. MAVEN SVN HUDSON SONAR集成测试环境搭建、1.1 软件准备 Hudson、Jenkins、Sonar1.2 软件安装 说明&#xff1a;本例均使用将应用程序部署至web容器下&#xff0c;Hudson和Sonar有其他部署启动方式&#xff0c;如有需要请自行使用&#xff0c;本文不做赘述。1.2.1 安装hu…

ubus c语言例子,openwrt之ubus例子

好一个icrootLEDE:/# ubus call test_ubus helloworld {"id":1,"msg":"hi","array":["a","b"]}{"id": 1,"msg": "hi","shuzu": ["a","b"]}文件目…

使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南

1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器&#xff0c;借助它可以非常方便的读写mongo库。本文介绍使用Spring Data MongoDB来访问mongodb数据库的几种方法&#xff1a; 使用Query和Criteria类JPA自动生成的查询方法使用Query 注解基于JSON查询在开始前&#…