计时器与时钟的设计


一、计时器

    1.功能主要是包括开始和暂停(默认关闭窗口为退出)。

2.大致想法是程序运行,产生一个界面,主要信息是 开始 和 结束。
   a.开始:
   程序运行,自 00:00:00 开始,精确到秒。
b.暂停:
   键盘输入,程序接收到特定的暂停信息,记录当时时间,界面停止到此时刻。

3.功能实现:
   a.界面:
   直接一个输出函数,将功能信息输出显示板,让使用者了解操作功能。
       java:System.out.println()
   C语言:printf()
b.时间的显示与刷新
   用到睡眠 Sleep(time),定义间隔每秒进一。java中使用线程睡眠 Thread.sleep(time)
hour每 12 或 24 重置 min与sec每 60 重置
   int hour=0,min=0,sec=0;
   while(true){
   Sleep(1000);
sec++;
if(sec==60){
   //达到 60 重置为 0,且上一级单位进一。
   sec=0;
min++;
   if(min==60){
   //达到 60 重置为 0,且上一级单位进一。
   min=0;
hour++;
//计时器时间无限制。hour不设置上限
//(24 小时制 24 重置**\**12 小时制 12 重置)
   }
}
//输出此刻时间,C语言调用刷新cls,java用 setText() 方法或者其刷新方法
printf("%d:%d:%d",hour,min,sec);
System("cls");
}
c.开始:
   直接根据界面提示输入开始信号,运行程序
d.暂停:
   在程序进行中,程序随时接受外界命令,当接收信息与程序设置的暂停信息一致时,程序暂停。
   view1:在三层循环里分别加入输入流,此流在限制在 1 sec 内关闭 close() 并释放处理 
      输入流能接收键盘输入,通过读取 read() 判断满足特定条件,即为暂停
  判断满足,执行语句,记录此刻时间,并跳出时间运行程序,输出时间
  
  start=System.currentTimeMillis();
  //调用时间方法,返回现在的时间为毫秒
  //之前定义 long 型,否则第二次循环时会出错,因为命名冲突
  InputStream is=null;
  InputStreamReaeder isr=null;
  is=new InputStream();
  isr=new InputStreamReaeder(is);
  char[] c=new char[24];
  int len;
  String str0="run",str;
  while((len=isr.read(c))!=-1){
      str=new String(c,0,len);
  if(str.equal(str0)){
      System.out.println("%d:%d:%d",hour,min,sec);
  //最新时间,也是此时暂停想要的时间
  break;
  //跳出或者 C 语言暂停 pause,java中wait sleep yield暂停
  }
  }
  last=System.currentTimeMillis();
  //调用时间方法,返回现在的时间为毫秒
  //之前定义 long 型,否则第二次循环时会出错,因为命名冲突
  if((last-start)>999){
      //时间大于999毫秒即关闭流。在运行这段程序时,重新创建输入流
  isr.close();
  }
  
  以上代码其实就是实现在每时每刻都能接受键盘信息,并判断是否暂停
  
view2: 多线程,主线程:时间运行程序为,次线程:判断条件执行暂停
      次线程与主线程分别独立工作,互不影响,次线程等待键盘信息并判断,
  开始:程序打开就开始
  暂停:次程序传来信息就停止,次线程进行判断是否调用方法要向主线程发送信息。
       
/**********************************************************/


                  仅限参考,欢迎改进
                  大力支持,独立创新


/**********************************************************/


二、时钟
a.通过界面化设计
   大致布局为:上  中:电子时间显示板
           下左一:按钮Button("修改时间");
下左二:按钮Button("闹钟");
下右二:按钮Button("计时器");
下右一:按钮Button("游戏");
b.功能设计
   view:
       1.程序打开就开始调用方法读取系统时间,无其他操作时,显示板执行运行时间的程序
2.监控到修改时间,接受数据,给hour,min,sec重新赋值。并且时间程序的时间自此开始
    可以进行修改12小时制 24小时制
3.闹钟,即对接受的hour1,min1,sec1,当时间hour,min,sec分别相等时,调用声音,程序响铃
4.引入计时器
5.监控到此按钮响应时,运行自行设计的小游戏(猜数,贪吃蛇,等)
c.功能实现:
   页面:GUI
按钮:GUI可响应
程序:监控响应后,运行对应程序。

/*************************************************/
         保持你的好奇心  发挥你的想象力
/*************************************************/
if error,tell me how should i do please,thanks

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

niaonao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值