-
2021-12-23 20:37:29
1.计时范围为1秒~1小时
2.有清零复位控制功能
3.有开始/停止控制功能设计要求:
1.画出整体方框图,说出设计思路
2.写出各模块代码更多相关内容 -
设计一个计时器,能够设置倒计时的时间,并进行倒计时。
2010-06-01 20:54:321、使用Timer控件,其中设置间隔时间,每次激活时计时时间减少相应数值(使用简单,但是程序复杂的话,计时“非常”不准)。 2、使用系统时间来计时,Timer控件进行激活显示。如:设置开始时间如StartTime = Timer... -
基于Proteus的单片机计时器设计
2021-01-19 18:47:27计时器广泛应用于日常生活和自动化工业控制中。近年来随着单片机在实时检测和自动控制系统中的应用,它的优势越发突出。利用单片机制作的计时器,使其更加智能化。 利用单片机制作的计时器更加智能化,当计时... -
一种实现计时器变为倒计时器的设计方案
2021-01-20 04:46:03摘要:倒计时器的设计方法很多,本文介绍了一种实现计时器变为倒计时器的设计方案。方案通过巧妙的设计方法实现了所有计时器变为倒计时器。而且该设计方法适用于所有的十进制计时器,具有很好的普遍性和实用性。 ... -
电子测量中的一种实现计时器变为倒计时器的设计方案
2020-10-20 09:12:27摘要:倒计时器的设计方法很多,本文介绍了一种实现计时器变为倒计时器的设计方案。方案通过巧妙的设计方法实现了所有计时器变为倒计时器。而且该设计方法适用于所有的十进制计时器,具有很好的普遍性和实用性。 ... -
C51单片机与接口技术课程设计——计时器(代码+课程设计报告)
2021-07-09 15:02:02计时器:显示时间、暂停和复位 -
自己制作一个计时器、倒计时器
2020-11-30 10:12:00时间的观念在现在的时代越来越重要,考试要定时完成,炒菜做饭要计时完成,甚至连煮包泡面都要计时才能更加美味。制作计时器对我们越来越重要。 本程序的编写环境是VC++6.0,目前此程序实现了...每次只能执行一个功能。计时器和倒计时器的设计与实现
摘 要
时间的观念在现在的时代越来越重要,考试要定时完成,炒菜做饭要计时完成,甚至连煮包泡面都要计时才能更加美味。制作计时器对我们越来越重要。本计时器中的倒计时使用的for函数输出把时间用00:00:00这种格式输出,使用Sleep来让整个程序暂停一秒,来完成计时一秒的功能,然后用/r覆盖掉上一行输出一秒后的剩余倒计时,在倒计时变为00:00:00时,输出时间到并用/a响铃。计时器采用类似的计时方法,不一样的是这次使用system(“cls”)清屏,然后重新输出下一次时间,用函数kbhit确定是否有键盘敲击,如果有将其录入,当这个值和所确定的停止值相同时,将退出for函数,停止计时,并输出时间。
本程序的编写环境是VC++6.0,目前此程序实现了计时器和倒计时器的功能。每次只能执行一个功能。
关键词: vc6.0,C语言,函数,计时器,倒计时器。1 引言
1.1关于工程实践
在我看来,整个工程实践中是让我们了解程序设计的整个流程,以及怎么实现这项功能,如何利用所学的c语言知识,来完成一个属于自己的小程序,小软件,在其中遇到的问题将其总结,最后将成为很好的学习笔记。
1.2 课题背景
经过一个学期的C语言课程学习,我们已经掌握了基本的C语言编程,而如何使用这些编程知识,让其变得有用十分重要。于是我们想到了开发一个计时倒计时的小程序。
在人们生活中,时间是很重要的一种东西。无论什么都离不开时间。倒计时和计时更是如此。通过倒计时计算考试时间,计算煮饭煮菜的时间,通过计时计算跑步时间,计算做题讲课的时间。时间观念对我们来说越来越重要,制作计时器对我们也越来越重要,所以让我们来看看如何制作一个计时装置,即一个计时器和一个倒计时器。
2 需求分析
2.1程序目标
完成一个简单的计时器和倒计时器,要求实现最基本的计时和倒计时程序,当用户打开程序后通过提示输入数字1 2 3进行三种操作。
(1)输入数字1进行倒计时操作,通过输入00:00:00这种格式的时间倒计时,在时间到的时候提示“时间到!”,同时响铃。
(2)输入数字2进行计时器操作,通过提示进入计时程序,并通过按Esc键停止计时,并输出计时时间。2.2 开发环境及工具
2.2.1 运行环境
Windows10
也可以在一台内存大于800k内存的位系统电脑运行。2.2.2 编程软件介绍
Microsoft Visual C++60.:调用系统文件#include <stdio.h>实现输入输出、#include <stdlib.h>使用退出exit函数、#include <time.h>读取系统时间通过结构体time_t实现、#include <Windows.h>
3 系统总体结构设计
3.1 基本简介
本程序分为四个模块,除了程序的main函数以外,分别分为面板,计时和倒计时三部分。其中面板模块就是呈现给用户的主界面,计时模块负责实现记录在给定时间之间的时间长度,以及开始计时和结束计时的输入输出,而倒计时则是专门负责在倒计时的时间录入和时间到时的提示以及响铃。
下面是程序流程图:
3.2 系统功能模块及设计
3.2.1 数据结构设计
主体程序中设计除了选择以外,输出“输入错误”的程序后可以重新输入选择。
3.2.2 面板模式介绍
进入程序后,输出:
“计时器&&倒计时器
本程序是由网络空间安全学院学生工程实践研发
==== 计时方式 ====
1. 倒计时器
2. 计时器
请输入你选择的代号:”几行字样。
通过用户输入1 或 2来控制进入计时器还是倒计时器,如果用户不小心输入错误将提示“不好意思选错咯~”并在此进行选择,面板模块只是起到将其他模块链接起来的作用,在后期需要追加更多功能时也可以由面板模块连接。
3.2.3 倒计时器模块介绍
倒计时器将承担输入时间并进行倒计时的功能,用户将在此模块界面直接输入格式为“00:01:09”的时间进行倒计时,输入正确时间正确,将输出“倒计时开始!”,当时间变成“00:00:00”时,输出“时间到!”并响铃,之后按任意键退出程序。
3.2.4 计时器模块介绍
计时器将承担计算从用户输入开始标记到用户输入结束标记之间的时间的功能,用“计时时长为:00:00:05”的格式输出所计的时间。
4 系统详细设计与实现
4.1界面模块设计与实现
作为最简单的计时和倒计时程序,使用vc6.0的默认程序窗口。
4.2 模块设计与实现
4.2.1主体模块设计与实现
在主体之前定义其他模块的函数。通过while函数实现如果输入错误那么便接受用户的重新输入选择,通过switch函数选择进入计时器功能的函数还是倒计时器功能的函数。作为main函数,在之后追加函数或修改时更加容易。
4.2.2 面板模块设计与实现
进入程序后,由面板模块的函数通过printf函数输出边界图形字符以及欢迎界面,并介绍该程序选择方法(输入数字1 or 2)具体如下图。提示用户进行输入,之后通过while函数和switch函数进行选择。(while函数用于当输入错误时可以重新输入)
4.2.3 倒计时器模块的设计与实现
倒计时器的代码在面部模式的函数中,通过printf输出提示输入倒计时时间(格式:00:01:08),当输入正确后,输出“倒计时开始”并输出“00:01:08”格式一秒一秒减少的时间,当时间变为“00:00:00”时,响铃并输出“时间到!”三字。
4.2.4 计时器模块设计与实现
模块分为两部分,一部分在主体函数里通过输入选择计时模式开始计时,然后进入计时器函数,用Sleep和system(”cls”)和while循环通过(00:00:00)格式下秒数分钟数,进行计时,通过函数kbhit、if、getch停止计时跳出循环,完成计时。
5 系统测试与分析
5.1 测试
根据电脑所给的提示出现语法错误,缺少变量的定义大多的语法错误在通过书本或网络的参考下能够修改。主要是平时看书不仔细、不太注意而产生的。如没有注意具体数据使用。
5.2 调试过程中遇到的主要问题
if,while,switch三个循环中容易缺少括号,进行修改后括号更加容易出错。这直接导致在vc中编译时出现很多错误。
time_t结构体出现在#include <time.h>头文件里。
<conio.h>头文件用来 kbhit getch
<Windows.h>头文件用来 sleep结论
经过了四个星期的c语言程序设计终于在老师的细心指导和同学的热情帮助下基本完成了计时器和倒计时器的设计修改任务。
程序设计期间,学习到很多课堂上没有的知识,还积累了很多实践经验,增强了动手能力和解决实际问题的能力。我通过网上查找到很多成功的关于计时器倒计时器的程序,通过对那些已经成功的程序进行分析找到自己的设计思路,制定设计流程。通过对网现存的计时器倒计时器的比对,我发现我自己做的程序显得十分简陋,但是这个程序也是我通过完整的设计流程设计出的程序。
限于作者知识水平和经验有限,此程序还有许多有待完善和改正的地方,恳请各位老师和读者批评指正。参考文献
[1] 黄明等.21世纪进阶辅导 C语言程序设计.大连理工大学出版社,2005
[2] 马靖善等.C语言程序设计.清华大学出版社,2005附录:
程序下载:
代码
#include <stdio.h> #include <stdlib.h> #include <time.h> #include<conio.h>//kbhit getch #include <Windows.h>//用于sleep int daojishi(); int jishiqi(); int main () { int c; printf("╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n"); printf("╠ ╣\n"); printf("╠ ╣\n"); printf("╠ ╣\n"); printf("╠ 计时器&&倒计时器 ╣\n"); printf("╠ ╣\n"); printf("╠ ╣\n"); printf("╠ ╣\n"); printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n"); printf("本程序是由网络空间安全学院学生工程实践研发\n"); printf("====计时方式====\n"); printf("1. 倒计时器\n"); printf("2. 计时器\n"); printf("请输入你选择的代号:"); scanf("%d", &c); while(c!=1&&c!=2){ printf("不好意思选错咯~\n"); printf("====计时方式====\n"); printf("1. 倒计时器\n"); printf("2. 计时器\n"); printf("请输入你选择的代号:"); scanf("%d", &c); } switch(c) { case 1: daojishi(); break; case 2: jishiqi(); break; } return 0; } int daojishi() { int i,j,k; int hour=0,min=0,sec=0; printf("请输入倒计时时间(例如:01:26:30):"); scanf("%d:%d:%d", &hour, &min, &sec); if(hour>24 || hour<0 || min>60 || min<0 || sec>60 || sec<0) { printf("输入有误!\n"); return 0; } printf("倒计时开始!\n"); for(i=hour; i>=0; i--) { for(j=min; j>=0; j--) { for(k=sec; k>=0; k--) { printf("\r%02d:%02d:%02d", i, j, k); Sleep(1000); } sec = 59; } min = 59; } printf("\a\n时间到!\n");//倒计时结束后响铃 exit(0); } int jishiqi() { int hour = 0, min = 0, sec = 0,n; while (n!=32) { if(kbhit()){//键盘敲击 检查当前是否有键盘输入,如果有则赋值给n n=getch(); while(n==32){ exit(0); } } Sleep(1000);//暂停1s system("cls");//清屏 printf("╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n"); printf("╠ ╣\n"); printf("╠ ╣\n"); printf("╠ ╣\n"); printf("╠ 计时器&&倒计时器 ╣\n"); printf("╠ ╣\n"); printf("╠ ╣\n"); printf("╠ ╣\n"); printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n"); printf("本程序是由网络空间安全学院学生工程实践研发\n"); printf("====计时方式====\n"); printf("1. 倒计时器"); printf("\n"); printf("2. 计时器"); printf("\n"); printf("请输入你选择的代号:2"); printf("\n"); printf("按空格停止计时"); printf("\n"); sec++; if (sec == 60) { min++; sec = 0; } if (min == 60) { hour++; min = 0; } if (hour == 24) { hour = 0; } printf("%02d:%02d:%02d\n", hour, min, sec); //%02d输出长度为2,不足2前面补0 if(kbhit()){//键盘敲击 检查当前是否有键盘输入,如果有则赋值给n n=getch(); while(n==32){ exit(0); } } } return 0; }
-
基于数字逻辑的多功能计时器的设计及实现
2020-12-09 22:07:51基于数字逻辑的多功能计时器的设计及实现 成都信息工程学院...本文即针对此问题,设计了一种能通过按键方式查看记录过程中任一时刻值的计时器。这种计时器在查看中间值时不会影响整个记录过程,并且能把相应数据送入 -
数字电路设计_篮球比赛计时器的设计&多功能数字钟设计_multisim11
2021-08-28 09:26:48author:komdec time:20180701 内容:论文、原理图,电路设计和MS11源文件 基于multisim仿真软件的数字电路设计:篮球比赛计时器的设计、 多功能数字钟设计 -
利用Qt实设计计时器Timer
2021-10-10 10:31:27利用Qt实设计计时器Timer类,可以实现开始计时、停止计时、暂停计时以及打点等功能。 -
数电设计 篮球比赛24秒计时器---proteus
2020-07-01 09:16:06一、设计内容和要求 (1)具有24秒计时功能。 (2)设置外部操作开关,控制计时器的直接清零、启动和暂停/连续功能。 (3)在直接清零时,要求数码显示器灭灯。 (4)计时器为24秒递减时, 计时间隔为1秒。 (5)计时... -
c++设计一个计时器(能够暂停,重新开始,继续)的功能。写的不好,仅供参考!
2016-03-27 08:59:44完全模拟计时器实现(时间精确到 秒 即可) 功能要求: 1.计时器的开始功能 例如:键盘按键a 开始计时。 2.计时器的暂停功能 例如:键盘按键空格键 计时暂停 3.计时器的停止功能 例如:键盘按键s 计时停止 4....完全模拟计时器实现(时间精确到 秒 即可)
功能要求:
1.计时器的开始功能 例如:键盘按键a 开始计时。
2.计时器的暂停功能 例如:键盘按键空格键 计时暂停
3.计时器的停止功能 例如:键盘按键s 计时停止
4.一次计时结束之后,可以再次计时(也就说,如果当前计时停止,按a键可以重新开始下一轮计时)
实现要求:
1.利用C++中面向对象特性去实现计时类
2.利用C++中抽象、封装等特性实现计时器类的抽象与封装。可能会用到
void gotoxy(int x,int y)
所需头文件
#include<windows.h>
#include<conio.h>
功能:将控制台光标定位到(x,y)处。
void hoidden()
所需头文件
#include<windows.h>
#include<conio.h>
#include<conio.h>
功能:隐藏控制台光标。
在使用之前要先进行声明
此外还可能会用到time函数和
kbhit()函数,
kbhit()可以用来检查当前是否有键盘输入。
下面来看代码
首先来声明gotoxy()函数和hidden()函数如下:#include<iostream> #include<windows.h> #include<conio.h> #include<time.h> #include<iomanip> using namespace std; void gotoxy(int x, int y) //定位光标,x为行坐标,y为列坐标 { COORD pos = {x,y}; //(坐标 位置); HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); //得到标准处理(标准输出处理); SetConsoleCursorPosition(hOut, pos); //设置控制台光标位置; } void hidden() //隐藏光标 { HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO cci; GetConsoleCursorInfo(hOut,&cci); cci.bVisible=0; //赋1为显示,赋0为隐藏 SetConsoleCursorInfo(hOut,&cci); } class Time { public: Time(){hour=minute=second=0;gotoxy(40,10);display();} void menu(); void xuanze(); private: void settime(); void display(); void chongzhi(){second=0;minute=0;hour=0;} double hour; double minute; double second; }; void Time::settime( ) { second++; if(second==60) { second=0; minute++; } else if(minute==60) { minute=0; hour++; } Sleep(1000); } void Time::display() { cout<<setw(2)<<setfill('0')<<hour<<":"; cout<<setw(2)<<setfill('0')<<minute<<":"; cout<<setw(2)<<setfill('0')<<second<<endl; } void Time::menu() { gotoxy(40,6); cout<<"*&计时器&*"<<endl; gotoxy(26,18); cout<<"按a开始计时 按s重新计时 按空格暂停"<<endl; } void Time::xuanze() { char key; hidden(); key=getch(); if(key=='a'||key=='A') { while(1) { if(kbhit()) { hidden(); key=getch(); if(key=='s'||key=='S') { chongzhi(); xuanze(); } else if(key==' ') { xuanze(); } } settime(); gotoxy(40,10); display(); } } else xuanze(); } int main() { Time te; te.menu(); te.xuanze(); }
然后在while循环中控制输入的字符确定执行那个功能,其中使用key=getch()能够使输入的字符隐藏其中sleep函数简介Sleep
Sleep函数的功能是让程序挂起一段时间,第一个字母大写,只在VC中使用,头文件为#include<windows.h>,单位为毫秒,若想挂起120毫秒,可以写为:
Sleep(120);
在linux gcc中,让程序挂起一段时间的函数为sleep和usleep,sleep的第一个字母小写,sleep的单位是秒,usleep的单位为微妙us,1秒为1000毫秒,1毫秒等于1000微妙,linux中的sleep和usleep在头文件#include<unistd.h>中。
gotoxy(int x, int y)x,y为界面的横纵坐标,可以改为任意,可自己上机试一试
经过编辑运行后生成界面如下
-
篮球竞赛30S计时器数电课程设计资料包
2021-07-10 15:52:21资料包:数电课程设计报告+原理图+仿真文件(仿真图)+电路各模块原理分析 -
1-99分钟倒计时计数计时器60进制计数器倒计时定时器等6个计时器Multisim仿真实例.zip
2021-04-25 09:54:231-99分钟倒计时计数计时器60进制计数器倒计时定时器等6个计时器Multisim仿真实例 -
javascript设计简单的秒表计时器
2020-10-23 07:15:40主要介绍了javascript设计简单的秒表计时器,该秒表将包括两个按钮和一个用于显示时间的文本框,当单击开始按钮时开始计时,最小单位为0.01秒,此时再次单击按钮则停止计时,文本框显示经过的时间,需要的朋友可以... -
计时器的设计
2020-12-11 01:02:17利用前面关卡中设计的60进制计数器和24进制计数器,来联合设计一个24小时的计数器,要求具有同步置数、异步清零功能。利用前面关卡中设计的60进制计数器和24进制计数器,来联合设计一个24小时的计数器,要求具有同步置数、异步清零功能。
-
WPF制作一个简单的倒计时器实例附
2021-01-02 00:00:31实例一: 早上起来后闲的...在Vs2008中建了个WPF工程后,浏览了下默认生成的工程文件结构,一个App.xaml(当然还有App.xaml.cs)和一个Windows1.xaml(Windows1.xaml.cs)。设计界面也和之前的Window Form程序大不一样 -
Simulink : Timer - Counter: Simulink 实现一个简单的计时器/计数器-matlab开发
2021-05-30 12:06:36-Simulink实现,用于简单的计时器和计数器- 使用 MATLAB 2013b 和 2006b 创建 -
数字计时器Multisim设计
2015-12-23 23:32:44数字计时器Multisim设计,免费贡献。 -
嵌入式计时器设计
2018-06-10 16:04:43嵌入式设计计时器,利用Linux C编写程序,实现计时器的功能 -
数字逻辑课程设计 弹道计时器的设计
2018-01-29 17:16:14由题意可知,弹道计时器的主要功能是测量子弹等发射物穿过起始传感器和终止传感器 之间的距离所需要的时间,并将该时间显示出来。因此,该计时器需要由方波信号发生器、控 制电路、计数器和译码显示器等几个部分组成... -
基于Multisim的计时器设计与仿真
2021-04-16 15:53:05计时器是数字电路的重要组成部分,本文基于Multisim仿真软件以及数字电路相关理论知识,完成了24秒计时器的设计与仿真,实现了直接清零、启动、暂停、断点计时、自动报警等功能,大大提高了学生的综合实践能力。 -
基于Proteus的篮球赛24秒倒计时器设计与仿真.pdf
2021-07-11 23:19:57基于Proteus的篮球赛24秒倒计时器设计与仿真.pdf -
24小时计时器
2018-12-20 21:37:55图片 数字电子电路用74LS160设计24小时计时器,采用六个四位数码管。 -
篮球竞赛30秒计时器的设计与实现-数字电子技术课程设计
2019-12-29 12:29:58电子课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的环节,是真正锻炼学生能力的环节。在许多领域中计时器均得到普遍应用,诸如在体育比赛,定时报警器、游戏中的倒计时,交通信号灯、... -
一个多路计时系统的设计方案
2021-02-03 13:46:52一个多路计时系统的设计方案、电子技术,开发板制作交流 -
基于51单片机倒计时器秒表定时器数码管显示设计(毕业设计)
2022-04-06 11:15:40基于51单片机倒计时器秒表定时器数码管显示设计(毕业设计) 本设计由STC89C52单片机核心电路+4位共阳数码管显示电路+蜂鸣器电路+按键电路+电源电路组成。 1、可以设置倒计时间1到99分种,倒计时最后5秒蜂鸣器报警... -
C++如何实现简单的计时器详解
2020-08-31 16:37:52因为最近闲着无聊就想着要不用C++写点什么东西,仔细想了想其实自己的C++学的也不怎么好,写个简单的计时器吧!所以下面这篇文章主要介绍了利用C++如何实现简单的计时器,需要的朋友可以参考借鉴,下面来一起看看吧。 -
VHDL课程计时器
2013-03-24 21:21:03VHDL课程计时器 -
PPT播放计时器-C#Winform设计
2020-03-20 16:00:55因为工作需要,经常性在大屏幕...1. 双屏,一个屏幕显示PPT课件,一个屏幕显示计时器,提醒演讲人注意时间 2. 适合12米X5米的大屏幕前多人演讲右键操作计时 缺点:没有与PPT整合,需要手动打开和设定时间并计时