VC++ 制作一个简易的控制台时钟应用
1、下载EasyX Library for C++ (http://www.easyx.cn/)
直接下载:EasyX_20151015(beta)
EasyX 绘图库目前支持 Visual C++ 6.0 / 2008 / 2010 / 2012。下载的压缩包解压缩后,执行 Setup.hta 安装即可。



2、VS建立控制台应用程序,新建cpp文件,输入代码:
// 头文件
#include <graphics.h>
#include <math.h>
#include <conio.h>
#include <stdio.h> // 宏定义
#define PI 3.141592654 // 函数声明
void Draw_Dial(); // 绘制静态的表盘
void Draw_Hand(int hour, int minute, int secend); // 绘制表针 //主函数
int main( void )
{
initgraph(, ); // 初始化一个图形界面 640*480
Draw_Dial();
setwritemode(R2_XORPEN); // 设置XOR绘图模式
SYSTEMTIME time; // 定义一个时间结构体用来保存当前的时间
while (!_kbhit())
{
GetLocalTime(&time); // 获取当前的时间
Draw_Hand(time.wHour,time.wMinute,time.wSecond); // 把表针绘制出来
Sleep(); // 间隔1秒(1000毫秒)
Draw_Hand(time.wHour, time.wMinute, time.wSecond); // 把表针绘制出来
}
closegraph(); // 关闭图形界面
return ;
} // 绘制静态的表盘
void Draw_Dial()
{
setcolor(GREEN); // 绘制边界
circle(, , ); // 画圆函数的参数:320 240坐标 160是圆的半径大小
circle(, , );
circle(, , ); // 图形界面的输出文本信息
outtextxy(, , _T("GOOD GOOD STUDY"));
outtextxy(, , _T("DAY DAY UP")); // 绘制图形刻度
setcolor(WHITE);
int x, y;
for (int i = ; i < ; i++)
{
x = + int( * sin(PI * * i / ));
y = + int( * cos(PI * * i / ));
if (i % == )
{
bar(x - , y - , x + , y + );
}
else if (i % == )
{
circle(x, y, );
}
else
{
putpixel(x, y, WHITE);
}
} // 绘制数字刻度
for (int i = ; i < ; i++)
{
sprintf_s(ch,"%d",i);
x = + int( * sin(PI * * i / ));
y = + int( * cos(PI * * i / ));
if (i % == )
{
switch (i)
{
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;
case : outtextxy(x, y, _T("")); break;;
default: break;
}
}
}
} // 绘制表针
void Draw_Hand(int hour, int minute, int second)
{
double h_hour, h_minute, h_second; // 三个弧度值
int x_hour, y_hour, x_minute, y_minute, x_second, y_second; // 末端位置
// 计算弧度值
h_second = second * * PI / ;
h_minute = minute * * PI / + h_second / ;
h_hour = hour * * PI / + h_minute / ;
// 计算末端位置
x_second = int( * sin(h_second));
y_second=int( * cos(h_second));
x_minute = int( * sin(h_minute));
y_minute = int( * cos(h_minute));
x_hour = int( * sin(h_hour));
y_hour = int( * cos(h_hour));
// 绘制秒针
setlinestyle(PS_SOLID, ); // PS_SOILD 实线 2像素 线条的粗细
setcolor(RED);
line( + x_second, - y_second, - x_second / , + y_second / );
// 绘制分针
setlinestyle(PS_SOLID, ); // PS_SOILD 实线 2像素 线条的粗细
setcolor(YELLOW);
line( + x_minute, - y_minute, - x_minute / , + y_minute/);
// 绘制时针
setlinestyle(PS_SOLID, ); // PS_SOILD 实线 2像素 线条的粗细
setcolor(GREEN);
line( + x_hour, - y_hour, - x_hour / , + y_hour/);
}
3、编译运行

VC++ 制作一个简易的控制台时钟应用的更多相关文章
- 用XMLHttpRequest制作一个简易ajax
概述 jquery退出历史舞台之后,我们怎么来发送ajax请求呢?可以用相关的库,也可以自己制作一个简易的ajax. 需要说明的是,我们使用的是XMLHttpRequest 2,它几乎兼容所有主流浏览 ...
- 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具
查看本章节 查看作业目录 需求说明: 使用 history 对象和 location 对象中的属性和方法制作一个简易的网页浏览工具 实现思路: 使用history对象中的 forward() 方法和 ...
- iOS:制作一个简易的计算器
初步接触视图,制作了一个简易的计算器,基本上简单的计算是没有问题的,不是很完美,可能还有一些bug,再接再厉. // // ViewController.m // 计算器 // // Created ...
- 使用Windows Form 制作一个简易资源管理器
自制一个简易资源管理器----TreeView控件 第一步.新建project,进行基本设置:(Set as StartUp Project:View/Toolbox/TreeView) 第二步.开始 ...
- Opencv探索之路(二十):制作一个简易手动图像配准工具
近日在做基于sift特征点的图像配准时遇到匹配失败的情况,失败的原因在于两幅图像分辨率相差有点大,而且这两幅图是不同时间段的同一场景的图片,所以基于sift点的匹配已经找不到匹配点了.然后老师叫我尝试 ...
- 通过JS制作一个简易数码时钟
设计思路: 数码时钟即通过图片数字来显示当前时间,需要显示的图片的URL根据时间变化而变化. a.获取当前时间Date()并将当前时间信息转换为一个6位的字符串; b.根据时间字符串每个位置对应的数字 ...
- 使用jQuery制作一个简易的购物车结算流程
因为今天下午时候在网上买了东西,在结算界面的时候突发奇想的也想自己动手做一个结算界面,当然了,只是一个最简易的结算界面,有商品数量的加减,有单价和小计,单个多个删除,全选和区县全选等等一些小功能,我在 ...
- 原生NodeJs制作一个简易聊天室
准备工作 安装NodeJs环境 安装编译器Sublime 如果网速不理想,可以百度一下如何加快npm的速度~ 使用node搭建一个简单的网站后台 做完准备工作之后,新建文件夹chatroom,在cha ...
- 制作一个简易计算器——基于Android Studio实现
一个计算器Android程序的源码部分分为主干和细节两部分. 一.主干 1. 主干的构成 计算器的布局 事件(即计算器上的按钮.文本框)监听 实现计算 2. 详细解释 假设我们的项目名为Calcula ...
随机推荐
- web 前端常用组件【06】Upload 控件
因为有万恶的IE存在,所以当Web项目初始化并进入开发阶段时. 如果是项目经理,需要知道客户将会用什么浏览器来访问系统. 明确知道限定浏览器的情况下,你才能从容的让手下的封装必要的前端组件. 本篇文章 ...
- 【分享】国外后台界面HTML源码 [免费]
国外后台界面HTML模版下载,里面的文字是英文的,不过可以修改成中文,带有数据统计界面和曲线图,本套模板相对完整,在主界面上点击那些菜单,都可以点开二级页面,希望对搞代码的程序员,对不擅长美工的朋友提 ...
- HTML5 File API — 让前端操作文件变的可能
前言 在 HTML5 File API 出现之前,前端对于文件的操作是非常有局限性的,大多需要配合后端实现.出于安全角度考虑,从本地上传文件时,代码不可能获取文件在用户本地的地址,所以纯前端不可能完成 ...
- tomcat远程部署应用
Tomcat安装成功后,在ip地址:8080上就可以看见熟悉的首页,在这个首页中,上方有一个manage app按钮,点击就可以进行应用管理了.这样就不需要使用ftp把war包传上去了. 要想远程部署 ...
- 代码比较器 Araxis Merge
Araxis Merge 是一个可视化的文件比较.合并和同步的软件,能够方便的被软件工程师和 web 站点开发者使用快速精确地比较.了解和联合不同版本的源文件:进行版本和质量控制,创建 HTML 或是 ...
- java中使用MD5加密技术
在项目中经常会对一些信息进行加密,现在常用的信息加密技术有:MD5.RSA.DES等,今天主要说一下,md5加密,以及如何在java代码根据自己的业务需求使用md5. MD5简介: MD5即Messa ...
- Asp.Net MVC<五>:过滤器
ControllerActionInvoker在执行过程中除了利用ActionDescriptor完成对目标Action方法本身的执行外,还会执行相关过滤器(Filter).过滤器采用AOP的设计,它 ...
- Oracle之分页查询
select * from ( select a.*, rownum rn from (select * from table_name) a where rownum<= 40 ) where ...
- linux red hat 给普通用户开启root权限
环境:虚拟机:red hat 6.5:root角色用户:普通用户:宏基笔记本:win7: 操作过程: 1.登录普通用户,进入图形界面(可以设置为启动登录进入命令行界面): 2.按Crl+ALT+F2进 ...
- BZOJ 3757: 苹果树
3757: 苹果树 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 1726 Solved: 550[Submit][Status][Discuss] ...