一道关于停车计费的问题

一道关于停车计费的问题,第1张

概述程序允许30分钟,期间要求用户输入来模拟车辆进入、出去的行为 输入的内容为一串字符串,每个不同的字符串代表一辆车. 纪录所有车每次进出的时间,计算时间、次数和价格. 价格依照价格表,阶梯定价:头10分钟5元,超过10分钟的每分钟5元 程序运行30分钟自动退出,程序退出前还没出库的车,收费200元 程序最后统计所有车辆的情况:次数,每次时间,总时间,总价 code: #!/usr 程序允许30分钟,期间要求用户输入来模拟车辆进入、出去的行为 输入的内容为一串字符串,每个不同的字符串代表一辆车. 纪录所有车每次进出的时间,计算时间、次数和价格. 价格依照价格表,阶梯定价:头10分钟5元,超过10分钟的每分钟5元 程序运行30分钟自动退出,程序退出前还没出库的车,收费200元 程序最后统计所有车辆的情况:次数,每次时间,总时间,总价

code:

  #!/usr/bin/perl      use strict;      use warnings;      use Data::Dumper;      use Time::Local;      use POSIX qw{strftime};      my (%hash,%count)=();      my $start_time = time;      sub p_money{  #计算费用          my $time = shift;         return 5 if $time <= 600;         if ($time>600 and $time<1800){          my $min;           $time%60==0?$min = ($time-600)/60:$minint( ($time-600)/60 +1);              my $mon_minute = 5+$min*5;             return $mon_minute;         }      }      my (@arr,$end_time);      while(1){          my ($start);         $end_time=time;      print  "Car Number :";         eval{      local $SIG{ALRM}=sub {dIE "timeout\n";};        alarm(5);          chomp( $start = <>);        #此处设施中断  5秒内没有用户输入就继续循环,          push @{$hash{$start}},time;          $count{$start}++ if defined $start;          alarm(0);         };      if ($end_time-$start_time>20){   #这里程序运行20秒,则退出循环,打印车辆的费用              for (sort keys %hash){      my $stop_time = time()-$hash{$_}[0];              my $car_start_time = strftime("%Y-%m-%d %H:%M:%s", localtime($hash{$_}[0]));              my $car_stop_time = strftime("%Y-%m-%d %H:%M:%s", localtime(time));              push @arr,"$_\t$car_start_time $car_stop_time $stop_time\t200\n";              }         print "\n车号\t开始时间\t离开时间\t停车时间\t价格\n";         print @arr;              exit;          }         if(defined $start  and  ($count{$start}||0) >1 ){              push @{$hash{$start}},time;              my $stop_time = $hash{$start}[-1]-$hash{$start}[0];              my $car_money = p_money $stop_time;              my $car_start_time = strftime("%Y-%m-%d %H:%M:%s", localtime($hash{$start}[0]));              my $car_stop_time = strftime("%Y-%m-%d %H:%M:%s", localtime($hash{$start}[-1]));              push @arr, "$start\t$car_start_time $car_stop_time $stop_time\t$car_money\n";              delete $count{$start}; #删除 出库车辆              delete $hash{$start};              redo;  #继续等待用户输入          }else{              redo;          }      }    @H_664_419@ 

结果:

总结

以上是内存溢出为你收集整理的一道关于停车计费的问题全部内容,希望文章能够帮你解决一道关于停车计费的问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1282523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存