运行效果如下:

在源代码的基础上,可以通过 API 函数 mciSendString 轻松加上滴答声音。

代码如下:


// 程序名称:钟表模拟程序(表针形式)
// 编译环境:Visual C++ 6.0,EasyX 2013白露版
// 程序编写:BestAns <BestAns@qq.com>
// 最后更新:2010-10-30
//
#include <graphics.h>
#include <conio.h>
#include <math.h>#define  PI  3.1415926536void DrawHand(int hour, int minute, int second)
{    double a_hour, a_min, a_sec;                    // 时、分、秒针的弧度值
    int x_hour, y_hour, x_min, y_min, x_sec, y_sec; // 时、分、秒针的末端位置

    // 计算时、分、秒针的弧度值
    a_sec = second * 2 * PI / 60;
    a_min = minute * 2 * PI / 60 + a_sec / 60;
    a_hour= hour * 2 * PI / 12 + a_min / 12;

    // 计算时、分、秒针的末端位置
    x_sec = int(120 * sin(a_sec)); y_sec = int(120 * cos(a_sec));
    x_min = int(100 * sin(a_min)); y_min = int(100 * cos(a_min));
    x_hour= int(70 * sin(a_hour)); y_hour= int(70 * cos(a_hour));

    // 画时针
    setlinestyle(PS_SOLID, 10);
    setcolor(WHITE);
    line(320 + x_hour, 240 - y_hour, 320 - x_hour / 7, 240 + y_hour / 7);

    // 画分针
    setlinestyle(PS_SOLID, 6);
    setcolor(LIGHTGRAY);
    line(320 + x_min, 240 - y_min, 320 - x_min / 5, 240 + y_min / 5);

    // 画秒针
    setlinestyle(PS_SOLID, 2);
    setcolor(RED);
    line(320 + x_sec, 240 - y_sec, 320 - x_sec / 3, 240 + y_sec / 3);
}void DrawDial()
{    // 绘制一个简单的表盘
    circle(320, 240, 2);
    circle(320, 240, 60);
    circle(320, 240, 160);
    outtextxy(296, 310, "shadow");

    // 绘制刻度
    int x, y;
    for (int i=0; i<60; i++)
    {        x = 320 + int(145 * sin(PI * 2 * i / 60));
        y = 240 + int(145 * cos(PI * 2 * i / 60));

        if (i % 15 == 0)
            bar(x - 5, y - 5, x + 5, y + 5);
        else if (i % 5 == 0)
            circle(x, y, 3);
        else
            putpixel(x, y, WHITE);
    }
}void main()
{    initgraph(640, 480);        // 初始化 640 x 480 的绘图窗口

    DrawDial();                 // 绘制表盘

    setwritemode(R2_XORPEN);    // 设置 XOR 绘图模式

    // 绘制表针
    SYSTEMTIME ti;              // 定义变量保存当前时间
    while(!kbhit())             // 按任意键退出钟表程序
    {        GetLocalTime(&ti);      // 获取当前时间
        DrawHand(ti.wHour, ti.wMinute, ti.wSecond); // 画表针
        Sleep(1000);            // 延时 1 秒
        DrawHand(ti.wHour, ti.wMinute, ti.wSecond); // 擦表针(擦表针和画表针的过程是一样的)
    }

    closegraph();               // 关闭绘图窗口
}

利用c语言编辑--钟表模拟程序(表针形式)相关推荐

  1. 利用C语言编辑画图程序的实现方法

    不知道大家在进行开发县级电网调度自动化系统的时候,是否都会遇到一个问题就是:要绘制一个电力系统一次接线图.大家都应该知道其实电力系统的一次接线图是较为复杂的,如果想要使用一般的编程方法来进行绘制的话, ...

  2. c语言画图 钟表模拟程序,图形模拟时钟C语言课程设计

    图形模拟时钟C语言课程设计 更新时间:2017/2/2 9:03:00  浏览量:640  手机版 学号13082101182014-2015学年第二学期 <高级语言程序设计> 课程设计报 ...

  3. php开发的app商城,如何利用PHP语言开发手机APP

    如何利用PHP语言开发手机APP 一般的PHP框架都可以用来做app后台服务器.因为原理上客户端从你这边拿的都是字符串数据,所以就算你不用框架也没有问题,不过会引发后续的问题.PHP提供API给客户端 ...

  4. Linux系统中利用C语言控制LED的方法

    大家好, 今天主要和大家聊一聊,如何利用C语言控制LED灯的实验. 目录 ​第一:C语言板控制LED灯简介 第二:实验程序实现 ​第三:C语言实验控制程序 ​第一:C语言板控制LED灯简介 实际工作中 ...

  5. 洗衣机控制系统c语言编程,采用C语言编辑基于51单片机的全自动洗衣机控制系统毕业论文.doc...

    采用C语言编辑基于51单片机的全自动洗衣机控制系统毕业论文 深 圳 大 学 本 科 毕 业 论 文(设计) 题目: 基于单片机设计的全自动 洗衣机控制器 姓名: 郑嘉泽 专业: 电子信息工程 学院: ...

  6. 易语言运行 (c:内部.exe, 假, ),利用易语言编写流氓软件

    首页 > 新闻动态 利用易语言编写流氓软件 编写流氓软件对于我们这样的没有怎么学过各种变成语言的人来说基本上是天方夜谭,但是今天我接触了一下易语言,发现它是-种对于我们小菜来说很容易上手的编程语 ...

  7. Cloud Computing:基于无影云电脑利用Python语言实现绘制“可爱小老虎”虎年快乐及无影云电脑简介、应用场景、使用体验(五步快速上手)分享图文教程之详细攻略

    Cloud Computing:基于无影云电脑利用Python语言实现绘制"可爱小老虎"虎年快乐及无影云电脑简介.应用场景.使用体验(五步快速上手)分享图文教程之详细攻略 目录 无 ...

  8. php codeigniter 语言,利用 PHP 语言, CodeIgniter 框架, MySQL 数据库搭建简单的 Forum...

    CodeIgniter-learn-forum 利用 PHP 语言, CodeIgniter 框架, MySQL 数据库搭建简单的 Forum ,仅供学习之用. 演示地址:Demo 功能简介 用户注册 ...

  9. 速卖通产品编辑中使用html,速卖通多语言编辑发布产品怎么做?

    速卖通怎么发布产品?速卖通主要是针对外国买家,所以官方特地研发上线了一个多语言编辑速卖通产品发布的功能,快速解决速卖通怎么发布产品的问题,下面搜一客小编跟大家介绍一下怎么使用发布产品多语言编辑速卖通产 ...

最新文章

  1. 常见字符串拼接性能比较
  2. 测试如何学python_如何从0开始学Python自动化测试
  3. “.Net 社区大会”(dotnetConf) 2018 Day 1 主题演讲
  4. linux命令详解——tee
  5. 从2019年开始,越来越多的人关注“副业”这个词
  6. 【已解决】wordpress文章页面如何去掉特色图像
  7. android支持平台,Android 平台功能
  8. UVALive 3211 Now or Later (2-SAT)
  9. Mem系列函数介绍及案例实现
  10. mysql 主从不同步
  11. Nodejs gRPC client 使用typescript
  12. 使用SCM管理jenkinsfile
  13. html等宽字体汉字,等宽字体(Monospaced Font)
  14. OpenCV下载地址分享
  15. CentOS 8使用 Kickstart配置 UEFI PXE 启动
  16. 计算机无法锁定在任务栏,win10系统无法锁定任务栏的处理办法
  17. 1.3经济金融基础之金融市场
  18. 畅购商城_第9章SpringSecurity整合Oauth2
  19. My Thirty-eighth - 验证二叉树搜索树 - By Nicolas
  20. 微信恋爱话术表白漫画脸头像制作生成小程序源码

热门文章

  1. pytorch生成对抗网络生成动漫图像
  2. VPython三维仿真(NO.4) 创建坐标系
  3. Window7升级 PowerShell
  4. 过敏性鼻炎吃什么药好?怎么养?
  5. FPGA实战篇——【3】按键控制蜂鸣器
  6. 测绘人必备的三维地图工具,功能超级实用!
  7. 2023_OWASP TOP10_漏洞详情
  8. 电脑进不了,电脑进不了系统怎么解决
  9. ABAQUS 导出图片
  10. mysql新建数据库字符集与排序规则的选择