C语言钟表【改进版】

2023-11-02

改进版源代码:
#include<stdio.h>
#include<graphics.h>
#include<math.h>
#include<dos.h>
#define PI 3.1415926
#define x 320
#define y 240
int main()
{
 int gdriver = DETECT,gmode,i,l;
 float th_hour,th_min,th_sec,m,n,x1,y1,x2,y2;
 struct time curtime;
 initgraph(&gdriver,&gmode,"");
 while(! kbhit())
 {
  for(i=0;i<60;i++)
      {
   if(i%5==0)
   {
    l=15 ;
    setcolor(13);
   }
   else
   {
    l=5;
   }
          x1=200*cos(i*6*PI/180)+320;
          y1=200*sin(i*6*PI/180)+240;
         x2=(200-l)*cos(i*6*PI/180)+320;
          y2=(200-l)*sin(i*6*PI/180)+240;
   line(x1,y1,x2,y2);
   if(i%5==0)
   {
    switch(i)
    {
     case 0 :
      outtextxy(x2-9,y2-2,"3");
      break;
     case 5 :
      outtextxy(x2-10,y2-6,"4");
      break;
     case 10 :
      outtextxy(x2-7,y2-9,"5");
      break;
     case 15 :
      outtextxy(x2-2,y2-10,"6");
      break;
     case 20 :
      outtextxy(x2-1,y2-10,"7");
      break;
     case 25 :
      outtextxy(x2+3,y2-7,"8");
      break;
     case 30 :
      outtextxy(x2+4,y2-2,"9");
      break;
     case 35 :
      outtextxy(x2+2,y2+1,"10");
      break;
     case 40 :
      outtextxy(x2+1,y2+3,"11");
      break;
     case 45 :
      outtextxy(x2-7,y2+4,"12");
      break;
     case 50 :
      outtextxy(x2-5,y2+3,"1");
      break;
     case 55 :
      outtextxy(x2-9,y2,"2");
      break;
    }
   }
   setcolor(9);
     }
  gettime(&curtime);
  /*得到当前系统时间*/
  gotoxy(40,18);      /*定位输出位置*/
  setcolor(7);
  outtextxy(getmaxx()/2-30,getmaxy()/4,"UESTC_TerryLi");
  setcolor(2);
  rectangle(0,0,getmaxx(),getmaxy());
  rectangle(20,20,getmaxx()-20,getmaxy()-20);
  line(0,0,20,20);
  line(getmaxx(),0,getmaxx()-20,20);
  line(0,getmaxy(),20,getmaxy()-20);
  line(getmaxx(),getmaxy(),getmaxx()-20,getmaxy()-20);
  printf("Now Time:");
      printf("%.0f:",(float)curtime.ti_hour);
      if((float)curtime.ti_min<10) printf("0");
      printf("%.0f:",(float)curtime.ti_min);
      if((float)curtime.ti_sec<10) printf("0");
      printf("%.0f",(float)curtime.ti_sec);
  /*获得三个
  圆*/
  setcolor(11);
    circle(x,y,200);
  circle(x,y,12);
  setcolor(4);         /*the first  */
  circle(x,y,3);       /*the second */
  setfillstyle(1,4);   /*the third  */
  floodfill(x,y,4);    /*fouth      */ /*si bu chan sheng zhong jian de hong yuan xin*/
  th_sec=(float)curtime.ti_sec*0.1047197551;                 /*2π/60=0.1047197551*/
  th_min=(float)curtime.ti_min*0.1047197551+th_sec/60.0;
      th_hour=(float)curtime.ti_hour*0.523598775+th_min/12.0;    /*2π/12=0.5235987755 */
  /*draw hour point*/
  m = x + 90*sin(th_hour);     /*70*/
  n = y - 90*cos(th_hour);
  setcolor(13);
  line(x,y,m,n);
  /*draw minute point*/        /*110*/
  m = x + 130*sin(th_min);
  n = y - 130*cos(th_min);
  setcolor(11);
  line(x,y,m,n);
  /*draw second point*/         /*140*/
  m = x + 170*sin(th_sec);
  n = y - 170*cos(th_sec);
  setcolor(5);
  line(x,y,m,n);
  sleep(1);
  cleardevice();
 }
 closegraph();
 return 0;
}
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言钟表【改进版】 的相关文章

随机推荐

  • 最大公约数和最小公倍数问题(3月30日)

    一 给出xo和yo 找两个数满足 xo是这两个数的最小公约数 yo是这两个数的最小公倍数 首先题目给的数据是 2 lt x0 lt 100000 2 lt y0 lt 1000000 如果用双层for循环的话一看就会直接超时 二 对于求最大
  • 93个springboot计算机毕业设计程序汇总大全,毕设练手必备。

    在选择计算机毕业设计题目和项目的时候 你是否曾经感到迷茫和犹豫不决 你知道怎样的项目才是既具有不重复性又能成功的吗 今天 我们将给即将毕业的同学分享一些毕业设计项目 希望对你的毕业设计有所帮助 一 成品列表 以下所有springboot框架
  • TensorFlow入门 - 变量(Variables)

    训练模型时 需要使用变量 Variables 保存和更新参数 Variables是包含张量 tensor 的内存缓冲 变量必须要先被初始化 initialize 而且可以在训练时和训练后保存 save 到磁盘中 之后可以再恢复 restor
  • 科普:PCI-E插槽都有哪些样子?

    主板上的扩展插槽曾经是多种多样的 例如曾经非常流行的组合就是PCI插槽搭配AGP插槽 其中AGP插槽主要用在显卡上 而PCI插槽的用途则更广一些 不仅有用在显卡上 还能用于扩展其它设备 如网卡 声卡 调制解调器等等 这两种插槽曾经共同为广大
  • RSYNC介绍 、备份、自动备份 脚本编写

    RSYNC 简介 rsync 是一个远程同步 是一个开源的快速安全高效的异地备份工具 可以在不同的主机之间镜像同步整个目录树 支持增量备份 有保持链接和权限功能 且采用优化的同步算法 传输前执行压缩 因此非常适合异地备份 镜像服务等应用 也
  • linux虚拟机开放端口号,虚拟机centos7开放端口

    1 先查看防火墙是否开启的状态 以及开放端口的情况 systemctl status firewalld service 查看防火墙开启还是关闭 sudo firewall cmd list all 可以查看端口开放情况 firewall
  • 超简单制作多系统启动U盘教程

    超简单制作多系统启动U盘教程 文章目录 超简单制作多系统启动U盘教程 前言 基本配置 配置PE系统 配置其他操作系统 前言 这两天心血来潮 本来想用Win to go做一个windows便携系统 B站教程无意间发现Ventoy软件 可谓功能
  • 套接字多种可选项

    Windows平台 WSADATA wsaData int iResult WSAStartup MAKEWORD 2 2 wsaData if iResult NO ERROR printf Error at WSAStartup n C
  • 虚拟机centos6.4网络连接设置--桥接设置

    Windows 本机虚拟网卡设置 虚拟机安装完成之后 在 本机网络设置里面出现 两个网卡VMware Network Adapter VMnet1和VMware Network Adapter Vmnet8 联网用Vmnet8 设置连接网络
  • PHP Smarty如何进行调试和错误处理?

    欢迎来到PHP Smarty的世界 如果你在这里寻求如何调试和错误处理的方法 那么我可以向你保证 我们会让这个过程尽可能的有趣和轻松 首先 让我们先来谈谈调试 在Smarty中 你可以使用以下几种方法来进行调试 使用Smarty的debug
  • Centos7 安装MongoDB5

    1 mongodb安装 MongoDB的下载网址 Download MongoDB Community Server MongoDB 下载完安装包之后上传到系统 然后解压 tar xf mongodb linux x86 64 rhel80
  • 灰色预测GM(1,1)代码

    目录 1 一项初始序列X0 2 累加序列 生成新序列 3 紧邻均值生成序列 4 求相关参数 5 由第四步求出参数 6 生成预测模型 7 累减还原 得原始数列的灰色预测值 8 模型检验 9 可视化 结果分析 1 一项初始序列X0 import
  • 数据库事务

    事务 TRANSACTION 是作为单个逻辑工作单元执行的一系列操作 这些操作作为一个整体一起向 系统提交 要么都执行 要么都不执行 事务是一个不可分割的工作逻辑单元 事务必须具备以下四个属性 简称 ACID 属性 原子性 Atomicit
  • 解决Could not connect to Redis at 39.101.74.81:6379: ConnectinectionException: Failed to create socket

    1 修改redis conf文件 1 注释掉原先的 bind 127 0 0 1 2 将protected mode yes 修改为no 2 查看是否开启6379端口号 firewall cmd list ports 没开启的话开启 fir
  • 从DB Browser for SQLite导出.csv文件

    如何从 db数据库文件中导出某个表的 csv文件 一般的 后台收集的日志保存在数据库中 查找日志时候需要打开 db文件的数据库 使用DB Browser for SQLite这个软件可以打开和查看数据库表以及数据 使用DB Browser
  • Golang笔记:使用ssh包作为客户端与SSH服务器交互

    文章目录 目的 基础说明 使用演示 单次通讯 连续通讯 远程终端 总结 目的 Golang中可以使用 golang org x crypto ssh 包作为SSH客户端或者SSH服务使用 这篇文章将简单记录下作为客户端使用的一些内容 Pac
  • form表单的提交

    基于html 语言的form表单的提交 1 表单属性设置 标签 表示表单标签 定义整体的表单区域 action属性 设置表单数据提交地址 method属性 设置表单提交的方式 一般有 GET 方式和 POST 方式 不区分大小写 2 表单元
  • Ubuntu中Tango Control的Pogo无法加载的解决办法

    文章目录 环境 步骤 卸载java ubuntu 安装指定版本jdk 重新编译测试 参考 在 自定义Tango Control设备服务在Ubuntu中的测试 中发现 pogo经常出现加载不出来的情况 但是偶尔会有一次可以打开 https b
  • Python:回文日期问题

    每日一题 目录 每日一题 文章目录 前言 一 题目描述 二 输入描述 三 输出描述 1 引入库 2 执行结果 datetime模块的用法 flag的用法 replace 方法 参数 总结 前言 本文章重点讲述回文日期问题 在其中介绍用到的函
  • C语言钟表【改进版】

    改进版源代码 include