- 编程
计时器
- @ 2025-11-28 22:57:30
#include<iostream>
#include<windows.h>
#include<conio.h>
#include<vector>
using namespace std;
struct node{
string s;
int now;
};
string intime(){
string s = "00:00:00";
vector <node> last;
last.clear();
int now = 7;
last.push_back({s,now});
int i = 0;
while(true){
system("cls");
cout << s << endl;
for(int k = 1;k<=now;k++){
cout << " ";
}
cout << "^" << endl;
char c = _getch();
if(c == 13) return s;
if(c == 8){
if(i==0){
continue;
}
i--;
s = last[i].s;
if(last[i].now != -1) now = last[i].now;
continue;
}
if(c == 17) exit(0);
if('0' <= c && c <= '9'){
s[now] = c;
now--;
if(s[now] == ':') now--;
}
if(last[i].s != s){
last.push_back({s,now});
i++;
}
if(now < 0) now = 0;
}
}
int s2i(string s){
int ans = 0;
int j = 1;
for(int i = s.size()-1;i>=0;i--){
ans+=(s[i]-'0')*j;
j*=10;
}
return ans;
}
void printTimeText(int hours, int minutes, int seconds) {
vector<vector<string>> largeNumbers = {
{ // #
"#########",
"# #",
"# #",
"# #",
"# #",
"# #",
"#########"
},
{ // #
"# ",
"# ",
"# ",
"# ",
"# ",
"# ",
"# "
},
{ // #
"#########",
" #",
" #",
"#########",
"# ",
"# ",
"#########"
},
{ // #
"#########",
" #",
" #",
"#########",
" #",
" #",
"#########"
},
{ // #
"# #",
"# #",
"# #",
"#########",
" #",
" #",
" #"
},
{ // #
"#########",
"# ",
"# ",
"#########",
" #",
" #",
"#########"
},
{ // #
"#########",
"# ",
"# ",
"#########",
"# #",
"# #",
"#########"
},
{ // #
"#########",
" #",
" #",
" #",
" #",
" #",
" #"
},
{ // #
"#########",
"# #",
"# #",
"#########",
"# #",
"# #",
"#########"
},
{ // #
"#########",
"# #",
"# #",
"#########",
" #",
" #",
"#########"
}
};
vector<int> h_digits, m_digits, s_digits;
if (hours == 0) {
h_digits.push_back(0);
} else {
int temp = hours;
while (temp > 0) {
h_digits.insert(h_digits.begin(), temp % 10);
temp /= 10;
}
}
if (minutes < 10) {
m_digits.push_back(0);
m_digits.push_back(minutes);
} else {
m_digits.push_back(minutes / 10);
m_digits.push_back(minutes % 10);
}
if (seconds < 10) {
s_digits.push_back(0);
s_digits.push_back(seconds);
} else {
s_digits.push_back(seconds / 10);
s_digits.push_back(seconds % 10);
}
for (int row = 0; row < 6; row++) {
for (int i = 0; i < h_digits.size(); i++) {
if(i == 0) cout << " ";
cout << largeNumbers[h_digits[i]][row];
if (i < h_digits.size() - 1) {
cout << " ";
}
}
cout << " ";
for (int i = 0; i < m_digits.size(); i++) {
if(i == 0) cout << " ";
cout << largeNumbers[m_digits[i]][row];
if (i < m_digits.size() - 1) {
cout << " ";
}
}
cout << " ";
for (int i = 0; i < s_digits.size(); i++) {
if(i == 0) cout << " ";
cout << largeNumbers[s_digits[i]][row];
if (i < s_digits.size() - 1) {
cout << " ";
}
}
cout << endl;
}
for (int i = 0; i < h_digits.size(); i++) {
if(i == 0) cout << "时";
cout << largeNumbers[h_digits[i]][6];
if (i < h_digits.size() - 1) {
cout << " ";
}
}
cout << " ";
for (int i = 0; i < m_digits.size(); i++) {
if(i == 0) cout << "分";
cout << largeNumbers[m_digits[i]][6];
if (i < m_digits.size() - 1) {
cout << " ";
}
}
cout << " ";
for (int i = 0; i < s_digits.size(); i++) {
if(i == 0) cout << "秒";
cout << largeNumbers[s_digits[i]][6];
if (i < s_digits.size() - 1) {
cout << " ";
}
}
cout << endl;
}
void setRGBColor(int r, int g, int b) {
cout << "\033[38;2;" << r << ";" << g << ";" << b << "m";
}
void resetColor() {
cout << "\033[0m";
}
void setE74C3CColor() {
setRGBColor(243,76,60);
}
int main(){
cout << "TengYve Technology Dev" << endl;
string art = "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.......@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..-+.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..#@@.-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@.-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..=@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.+@@@@@@@@@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@.#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.-@@@@@@@@@@@:.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.-@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.@@@@@@@@@@@@@@.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=.@@@@@@@@@@@@@@=.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@-.@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@.@@@@@@@@@@@@@@#...@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.-@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:...@@@@@@@@@@@@@@@@@@@@@@@@@@@@..:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+..=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*....#....#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@@@*-......-:@@@@@@@@@@@@@@@@@@@@%....#@@@@@@@:....=@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..@@@...-@@@@@@@@@@:.................%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@..*..:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@...@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n";
cout << art;
Sleep(3000);
system("cls") ;
string st;
st = intime();
string sh = "",sm = "",ss = "";
int f = 1;
for(int i = 0;i<st.size();i++){
if(st[i] == ':'){
f++;
continue;
}
if(f == 1){
sh += st[i];
}
else if(f == 2){
sm += st[i];
}
else{
ss += st[i];
}
}
int h,m,s;
h = s2i(sh);
m = s2i(sm);
s = s2i(ss);
int alls = h*60*60 + m*60 + s;
resetColor();
for(int i = alls;i>=1;i--){
system("cls");
int hours = i / 3600;
int minutes = (i % 3600) / 60;
int seconds = i % 60;
resetColor();
printTimeText(hours,minutes,seconds);
if(i <= 10) setE74C3CColor();
cout << "\n\n剩余秒数: " << i << " 秒" << endl;
printf("剩余时间: %.2d:%.2d:%.2d",hours,minutes,seconds);
Sleep(1000);
}
resetColor();
system("cls");
cout << "时间到!" << endl;
}
DevC++可用
1 条评论
-
方均宸 LV 9 @ 2025-11-28 22:58:08这个不算什么大项目,就不用以前那种开源锚点的形式了
你想干啥干啥,CV拿走都行
- 1