用C/C++写的简易电子钟
2020-03-01 23:35
1156 查看
先来看看简易电子钟的效果图
程序所包含的函数如下表所示
函数名 | 输入 | 输出 |
---|---|---|
main | 无 | 无 |
NumDisplay | num,x,y | 无 |
SetPosition | x,y | 无 |
SeparateNum | num | NumGroup |
DotDisplay | x,y | 无 |
整个程序都不是特别难,下面就直接上流程图和代码了(代码的Dev-C++中编译的)
#include <windows.h> #include <stdio.h> void NumDisplay(int num,int x,int y); //数显函数 void SetPosition(int x,int y); //设置输出位置函数 int *SeparateNum(int num); //将两位数分开的函数 void DotDisplay(int x,int y); //时钟点显示函数 static int NumGroup[2]; //设置一个静态变量存放分开的两位数 int main() { SYSTEMTIME sys; while(1) { GetLocalTime(&sys); //获得系统的时间 NumDisplay(sys.wHour,0,1); DotDisplay(14,2); NumDisplay(sys.wMinute,16,1); DotDisplay(32,2); NumDisplay(sys.wSecond,35,1); Sleep(1*1000); //延时1s } return 0; } void NumDisplay(int num,int x,int y) { int *num_group,i; num_group=SeparateNum(num); for(i=0;i<2;i++) //时、分、秒都是两位,所以两次循环分别打印 { if(i==0) num=num_group[0]; else num=num_group[1]; switch(num) { case 0: SetPosition(x+i*7,y); printf("######"); SetPosition(x+i*7,y+1);printf("# #"); SetPosition(x+i*7,y+2);printf("# #"); SetPosition(x+i*7,y+3);printf("# #"); SetPosition(x+i*7,y+4);printf("# #"); SetPosition(x+i*7,y+5);printf("# #"); SetPosition(x+i*7,y+6);printf("######"); break; case 1: SetPosition(x+i*7,y); printf(" # "); SetPosition(x+i*7,y+1);printf(" # "); SetPosition(x+i*7,y+2);printf(" # "); SetPosition(x+i*7,y+3);printf(" # "); SetPosition(x+i*7,y+4);printf(" # "); SetPosition(x+i*7,y+5);printf(" # "); SetPosition(x+i*7,y+6);printf(" # "); break; case 2: SetPosition(x+i*7,y); printf("######"); SetPosition(x+i*7,y+1);printf(" #"); SetPosition(x+i*7,y+2);printf(" #"); SetPosition(x+i*7,y+3);printf("######"); SetPosition(x+i*7,y+4);printf("# "); SetPosition(x+i*7,y+5);printf("# "); SetPosition(x+i*7,y+6);printf("######"); break; case 3: SetPosition(x+i*7,y); printf("######"); SetPosition(x+i*7,y+1);printf(" #"); SetPosition(x+i*7,y+2);printf(" #"); SetPosition(x+i*7,y+3);printf("######"); SetPosition(x+i*7,y+4);printf(" #"); SetPosition(x+i*7,y+5);printf(" #"); SetPosition(x+i*7,y+6);printf("######"); break; case 4: SetPosition(x+i*7,y); printf("# #"); SetPosition(x+i*7,y+1);printf("# #"); SetPosition(x+i*7,y+2);printf("# #"); SetPosition(x+i*7,y+3);printf("######"); SetPosition(x+i*7,y+4);printf(" #"); SetPosition(x+i*7,y+5);printf(" #"); SetPosition(x+i*7,y+6);printf(" #"); break; case 5: SetPosition(x+i*7,y); printf("######"); SetPosition(x+i*7,y+1);printf("# "); SetPosition(x+i*7,y+2);printf("# "); SetPosition(x+i*7,y+3);printf("######"); SetPosition(x+i*7,y+4);printf(" #"); SetPosition(x+i*7,y+5);printf(" #"); SetPosition(x+i*7,y+6);printf("######"); break; case 6: SetPosition(x+i*7,y); printf("######"); SetPosition(x+i*7,y+1);printf("# "); SetPosition(x+i*7,y+2);printf("# "); SetPosition(x+i*7,y+3);printf("######"); SetPosition(x+i*7,y+4);printf("# #"); SetPosition(x+i*7,y+5);printf("# #"); SetPosition(x+i*7,y+6);printf("######"); break; case 7: SetPosition(x+i*7,y); printf("######"); SetPosition(x+i*7,y+1);printf(" #"); SetPosition(x+i*7,y+2);printf(" #"); SetPosition(x+i*7,y+3);printf(" #"); SetPosition(x+i*7,y+4);printf(" #"); SetPosition(x+i*7,y+5);printf(" #"); SetPosition(x+i*7,y+6);printf(" #"); break; case 8: SetPosition(x+i*7,y); printf("######"); SetPosition(x+i*7,y+1);printf("# #"); SetPosition(x+i*7,y+2);printf("# #"); SetPosition(x+i*7,y+3);printf("######"); SetPosition(x+i*7,y+4);printf("# #"); SetPosition(x+i*7,y+5);printf("# #"); SetPosition(x+i*7,y+6);printf("######"); break; case 9: SetPosition(x+i*7,y); printf("######"); SetPosition(x+i*7,y+1);printf("# #"); SetPosition(x+i*7,y+2);printf("# #"); SetPosition(x+i*7,y+3);printf("######"); SetPosition(x+i*7,y+4);printf(" #"); SetPosition(x+i*7,y+5);printf(" #"); SetPosition(x+i*7,y+6);printf("######"); break; default: printf("out of range!"); } } } void DotDisplay(int x,int y) { SetPosition(x,y);printf("#"); SetPosition(x,y+3);printf("#"); } void SetPosition(int x,int y) { HANDLE winHandle;//句柄 COORD pos = {x,y}; winHandle = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(winHandle,pos); //设置光标位置 } int *SeparateNum(int num) { NumGroup[0]=num/10; NumGroup[1]=num%10; return NumGroup; }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- C++简易文件读写
- 简易的python脚本:c代码转c++
- 简易通用数据库API c++ wrapper: hisqlapi-1.0.0.9 发布
- 分享我的电子藏书:C++系列(共32本)
- 行编辑器的简易C++实现
- C++练习项目---TinySTL,简易的STL库
- C++期末大作业-简易通讯录
- 用cl和sublime搭建简易c++开发环境
- c++ 多线程开发简易工具——OpenMP使用
- 使用ultraedit和cl编译器打造简易c/c++开发环境
- 一个简易的C++日志记录类
- 使用ultraedit和cl编译器打造简易c/c++开发环境
- 第十六周C++【任务三】拓展一电子词典
- TinyWS —— 一个C++写的简易WEB服务器(二)
- C++实现简易的万年历
- C++简易字符串类
- 简易电子词典
- C++ 使用boost asio学习 搭建简易service
- C++写的简易贪吃蛇
- 用C++实现简易的文本编辑器