来一个高考倒计时程序

2023年的高考已不足百天

#include <stdio.h> #include <time.h> #include <windows.h> // Windows系统下的延时函数头文件 int main() { // 设置高考时间为2023年6月7日9时 struct tm examTime = {0}; examTime.tm_year = 2023 - 1900; // 年份要减去1900 examTime.tm_mon = 5; // 月份从0开始计数,即5表示6月 examTime.tm_mday = 7; examTime.tm_hour = 9; // 获取当前时间 time_t nowTime = time(NULL); struct tm *pNow = localtime(&nowTime); // 计算时间差 time_t examSecs = mktime(&examTime); time_t nowSecs = mktime(pNow); time_t diffSecs = examSecs - nowSecs; // 输出倒计时信息 while (diffSecs >= 0) { //清屏再显示 system("cls"); printf("距离2023年高考还有:\n"); printf("%ld天 ", diffSecs / (24 * 60 * 60)); diffSecs %= 24 * 60 * 60; printf("%ld小时 ", diffSecs / (60 * 60)); diffSecs %= 60 * 60; printf("%ld分钟 ", diffSecs / 60); diffSecs %= 60; printf("%ld秒\n", diffSecs); Sleep(1000); // 暂停1秒钟,单位为毫秒 nowSecs += 1; // 当前时间加1秒 pNow = localtime(&nowSecs); // 更新当前时间 diffSecs = examSecs - nowSecs; // 重新计算时间差 } printf("高考已经开始!加油!\n"); return 0; } 

这个控制台显示的好象有点闪烁,改一改。

#include <stdio.h> #include <stdlib.h> #include <time.h> #include <windows.h> // Windows系统下需要添加这个头文件 int main() { // 计算高考日期 struct tm examTime = {0}; examTime.tm_year = 123; // 从1900年开始算,2023年-1900=123 examTime.tm_mon = 6 - 1; // 月份从0开始算,6月需要减1 examTime.tm_mday = 7; examTime.tm_hour = 9; examTime.tm_min = 0; examTime.tm_sec = 0; // 计算距离高考的时间差 time_t examSecs = mktime(&examTime); // 高考的时间戳 time_t nowSecs = time(NULL); // 当前时间戳 struct tm* pNow = localtime(&nowSecs); // 将时间戳转换为本地时间 nowSecs = mktime(pNow); // 将本地时间转换为时间戳 long diffSecs = examSecs - nowSecs; // 获取标准输出的句柄 HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); // 将控制台的显示模式设置为无缓冲模式 DWORD prev_mode; GetConsoleMode(hStdout, &prev_mode); SetConsoleMode(hStdout, CONSOLE_FULLSCREEN_MODE); // 输出倒计时信息 while (diffSecs >= 0) { //不显示光标样式 HANDLE consoleHandle = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO info; info.dwSize = 100; info.bVisible = FALSE; SetConsoleCursorInfo(consoleHandle, &info); // 将光标移动到指定位置输出信息 COORD pos = {0, 0}; SetConsoleCursorPosition(hStdout, pos); printf("距离2023年高考还有:\n"); printf("%ld天 ", diffSecs / (24 * 60 * 60)); diffSecs %= 24 * 60 * 60; printf("%ld小时 ", diffSecs / (60 * 60)); diffSecs %= 60 * 60; printf("%ld分钟 ", diffSecs / 60); diffSecs %= 60; printf("%ld秒 ", diffSecs); // 等待1秒钟 Sleep(1000); // 重新计算时间差 nowSecs = time(NULL); pNow = localtime(&nowSecs); nowSecs = mktime(pNow); diffSecs = examSecs - nowSecs; } //还原控制台的显示模式 SetConsoleMode(hStdout, prev_mode); printf("\n高考结束,加油!!!\n"); return 0; } 

顺便再来一个python版的随机点名器

学生名单放在studenname.txt文本文件里,每行一个姓名。

import random # 读取学生姓名列表 with open('studentname.txt', 'r') as f: student_list = f.readlines() # 随机选取学生姓名 selected_student = random.choice(student_list) # 输出点名结果 print(f"选中的学生是:{selected_student.strip()}") 

加一个tkinter,加两个按钮。

import tkinter as tk from tkinter import filedialog, messagebox import random class App(tk.Tk): def __init__(self): super().__init__() self.title("我的点名器") self.geometry("300x100") # 创建选择文件的按钮 self.select_file_button = tk.Button(self, text="选择文件", command=self.select_file) self.select_file_button.pack(pady=10) # 创建点名按钮 self.pick_name_button = tk.Button(self, text="开始点名", command=self.pick_name, state="disabled") self.pick_name_button.pack(pady=10) # 文件路径 self.file_path = None def select_file(self): # 弹出文件选择对话框 self.file_path = filedialog.askopenfilename(filetypes=[("文本文件", "*.txt")]) # 如果选择了文件,则启用点名按钮 if self.file_path: self.pick_name_button.config(state="normal") def pick_name(self): # 从文件中随机选择一行 with open(self.file_path, "r") as f: lines = f.readlines() if len(lines) > 0: name = random.choice(lines).strip() messagebox.showinfo("本次点名幸运学生:", f"恭喜:{name}") if __name__ == "__main__": app = App() app.mainloop() 

来一个高考倒计时程序插图

基本完工,大家再改改吧!

原文链接:https://blog.csdn.net/hbqjzx/article/details/129494497?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171910921916777224474319%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171910921916777224474319&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-15-129494497-null-null.nonecase&utm_term=2024%E5%B9%B4%E9%AB%98%E8%80%83%E5%87%BA%E5%88%86

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享