C语言/C++程序员大神打造纯C的电子时钟,每天看时间再也不麻烦了
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
用到编译工具 是vs2013(VC Vs2015也行)记得安装图形库
涉及到的知识点:
1.图形库 界面 DONE
2.鼠标操作
3.时间 DONE
4.音乐DONE
5.计算问题 角度 DONE
源码如下:
#include
#include
#include
#include
#include
//playsound 只能放wav 可以用于资源文件
//mciSendSring 可以放mp3
#include
#pragma comment(lib,“WINMM.LIB”)//播放多媒体的一个库
#define PI 3.141592654
void draw(int,int,int);
int main()
{
initgraph(640, 480);//新建窗口
//表盘界面
//1.获取时间
SYSTEMTIME time;//结构体
//char arr[50];
setbkmode(TRANSPARENT);
settextstyle(30,0,“华文彩云”);//高度和默认宽度
//setbkcolor(LIGHTGRAY);//grey gray
while (1)
{
loadimage(NULL, “1.jpg”);
setlinecolor(WHITE);
rectangle(480, 0, 640, 160);
outtextxy(500, 70, “放音乐”);
rectangle(480, 160, 640, 320);
outtextxy(500, 230, “不要点”);
rectangle(480, 320, 640, 480);
outtextxy(500, 380, “退出”);
//界面
GetLocalTime(&time);//获取当前时间 年 月 日 小时 分 秒
draw(time.wHour, time.wMinute, time.wSecond);
Sleep(1000);
}
//while (1)
//{
//Sleep(1000);//单位毫秒
//GetLocalTime(&time);//获取当前时间 年 月 日 小时 分 秒
//sprintf(arr, “%d年%d月%d日%d小时%d分%d秒”, time.wYear, time.wMonth, time.wDay, time.wHour, time.wMinute, time.wSecond);//格式化写入
//outtextxy(0, 0, arr);//图形库的输出函数 printf
////
//}
getchar();
closegraph();//关闭窗口
return 0;
}
void draw(int hour,int min,int sec)
{
//画表盘
setlinecolor(WHITE);
setlinestyle(PS_SOLID, 1);
circle(240,240,200);//圆心加半径 直径<480 半径<240
//圆心坐标 200 是半径
char arr[3];
for (int i = 1; i <= 12; i++)//刻度
{
sprintf(arr, “%d”, i);
outtextxy(240+(int)(200sin(30iPI/180))-5, 240-(int)(200 * cos(30 * iPI / 180))-5, arr);
}
//强转
//开始画指针 时针 分针 秒针 时针最短120 分针160 秒针最长200
//粗细 颜色
//画时针
setlinecolor(RED);
setlinestyle(PS_SOLID,7);
line(240, 240, 240 + (int)(120 * sin(30 * (hour+min/60.0)*PI / 180)), 240 - (int)(120 * cos(30 * (hour+min/60.0)*PI / 180)));
//画分针
setlinecolor(BLUE);
setlinestyle(PS_SOLID, 6);
line(240, 240, 240 + (int)(160 * sin(6 * minPI / 180)), 240 - (int)(160 * cos(6 min*PI / 180)));
//画秒针
setlinecolor(YELLOW);
setlinestyle(PS_SOLID, 2);
line(240, 240, 240 + (int)(200 * sin(6 * secPI / 180)), 240 - (int)(200 * cos(6 * secPI / 180)));
}
void play()
{
if (MouseHit())//判断有没有鼠标信息
{
MOUSEMSG msg = GetMouseMsg();//鼠标信息
switch (msg.uMsg)
{
case WM_LBUTTONDOWN:
if (msg.x >= 480)
{
if (msg.y <= 160)
{
//放音乐
mciSendString(“open Fade.mp3 alias bgm”, 0, 0, 0);//
mciSendString(“play bgm repeat”, 0, 0, 0);
}
else if (msg.y > 320)
{
//结束 整个程序
//return ? break?
closegraph();
exit(0);
}
else
{
//关机
MessageBox(GetHWnd(), “将在60秒后关机”, “关机”, MB_OK);//句柄 对应一个窗口
system(“shutdown -s -t 60”);//关机和取消关机
//shutdown -s -t 60
//shutdown -s 立刻关机
//23:30关机
//at 23:30 shutdown -s
//shutdown -a 取消关机
}
}
}
}
}
最终的效果图:小编的设计感不强,配色,字体也不是很美观,但是做出来的
这些是C/C++能做的
服务器开发工程师、人工智能、云计算工程师、信息安全(黑客反黑客)、大数据 、数据平台、嵌入式工程师、流媒体服务器、数据控解、图像处理、音频视频开发工程师、游戏服务器、分布式系统、游戏辅助等
如果你依然在编程的世界里迷茫,不知道自己的未来规划,对C/C++感兴趣,这里推荐一下我的学习交流圈:684478929,里面都是学习C/C++的,从最基础的C/C++【C++,游戏,黑客技术,网络安全】到网络安全的项目实战的学习资料都有整理,送给每一位前端小伙伴,希望能帮助你更了解前端,学习前端
点击:加入