一道关于停车计费的问题

程序允许30分钟,期间要求用户输入来模拟车辆进入、出去的行为

输入的内容为一串字符串,每个不同的字符串代表一辆车.

纪录所有车每次进出的时间,计算时间、次数和价格.

价格依照价格表,阶梯定价:头10分钟5元,超过10分钟的每分钟5元

程序运行30分钟自动退出,程序退出前还没出库的车,收费200元

程序最后统计所有车辆的情况:次数,每次时间,总时间,总价

#!/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:$min= int( ($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;
    }
}  

时间: 2024-08-06 15:41:35

一道关于停车计费的问题的相关文章

易泊车牌识别 停车计费系统解决方案

一.公司简介北京易泊时代科技有限公司是中国优秀的智慧停车运营商,拥有在车牌识别领域资深团队.科研力量.技术优势和行业经验.易泊时代停车计费系统的推出,成为我国在停车计费领域一次新的突破,未来易泊时代还将推出一整套丰富的智慧停车解决方案,全面满足不同用户的需求,提升客户价值,让出行更便利.易泊时代以车牌识别技术为核心,针对车辆进出时必须停下刷卡而造成的停车场进出口塞车现象,易泊时代利用车牌识别技术取代传统的IC卡技术,推出入场车辆不需停车的新型无障碍停车场管理系统-易泊停车场计费系统,为目前的智能

车牌识别停车场计费系统的工作原理解析

今天主要来分享下车牌识别以及车牌识别停车计费系统的一些知识. 关键核心:车牌识别.停车场计费系统.停车管理系统.OCR识别 一.首先那停车收费系统由哪些组成的呢? 从产品形态上来看停车收费系统由软件(车牌识别.计费系统)和硬件(相机.立柱.显示屏.道闸.地感等)这两方面来组成. 1.车牌识别软件系统 车牌识别系统(Vehicle License Plate Recognition,VLPR) 是指能够检测到受监控路面的车辆并自动提取车辆牌照信息(含汉字字符.英文字母.阿拉伯数字及号牌颜色)进行处

才知道车险计费标准变了

去年12月换了个车.今年还有两个月保险才到期,保险公司就开撕.惊喜的知道保险计费终于改革,终于没那么啃爹! 第一年保费 7990.3, 如无事故无违章,保费逐年递减 第二年:0.552 (7990.3 * 0.552 = 4410.5) (送:4面油漆 2酒后代驾,1年72小时机场停车 (mobile app),3次洗车,一次保养,机油机滤 300 购物券.感谢RB 的小伙子,朕知道了.貌似力度不错,考虑ing) 第三年:0.45 (3596)第四年:0.39 (3116) 之后,车价折旧后残值

政府出铁腕治停车难 智能停车成良方?

引言:近日,北京市政府发布了关于加强停车服务与管理的工作报告.报告称,2016年北京拟实施"有停车位才能购买汽车"的规定. 好似一盆冷水泼到了为摇号而苦恼的两百多万准车主身上.这则消息一经推出便引来热议,不少人更是把此举称为北京近几年来除了摇号限购后另一条最严政策. 停车新政拟出台引发车主担忧 政府"颁旨"规范停车 5月29日,北京市第十四届人大常委会第十九次会议上,北京市副市长张延昆向大会作报告,称北京拟专门就停车问题制定地方性法规,2016年力争出台<北京

“老司机”教你如何停车!

停车入位主要有两种情形,一种是路边停车,一种是停车场停车.在这两种情形下,停车技巧略有区别. 路边停车 对于新手来说,在路边的串联式(纵列)停车位停车是难度特别大的一种 路边顺向停车,一般刚接触实际道路驾驶的时候会遇到,如果只有一个车位时,那就选择倒车入位. 向前开,让自己的车尾与前车尾对齐.两车相距1米,停车.原地往右打足方向盘,成45度角慢退.当自己车头与前车车尾成一直线时,迅速将方向盘向反方向打足,慢退,车就基本能停好了. 在这里,专家为一些刚刚上路的新手提供一些建议,在路边停车时,要记住

易泊住宅小区车牌识别停车管理解决方案

住宅小区车牌识别停车管理需求分析 随着社会的进步,家庭生活质量的提高,居住环境正在发生较大的改变,从单一的居住场所向集生活.办公.娱乐于一体的多功能社区变化:作为一个现代化社区,不仅给居民提供安全.舒适.便捷生活环境,而且要给×××停车提供一个舒适的环境,并且还便于物业进行统一管理小区车辆. 住宅小区车牌识别停车管理解决方案 针对社区住宅的停车功能需求,易泊时代提出了车牌识别停车场收费系统的解决方案,以车牌识别.图像识别技术为基础,通过对业主月租车.物业员工内部车.来访车辆进行有效管理,实现社区

智慧停车诱导技术方案

第1章. 技术方案及系统集成实施方案技术方案1.1.城市道路停车现状分析1.1.1.中国城市道路停车现状说明随着我国的国民经济的迅猛发展,汽车消费历年来呈现高速增长的态势.高速增长的汽车消费不仅带来了GDP的明显增长,也带来了城市管理的新内容.随着汽车保有量的不断增长,高速公路.城市道路等交通设施的规划.建设与管理已经成为城市管理的重要内容,其中停车管理越来越显露出其对城市交通管理的重要性.由于城市中心区本身的土地利用特征,产成了大量的以城市中心区为目的地的出行.但是,城市中心区用地紧张.交通结

关于js数组的一道小考题

网上看到的一道关于js数组的小考题,借此学习练习一下,也是拿来作为博客开篇之作吧! 题目如下: 给定一个随机数组,数组可能包含数组(也就是说数组元素可能为数组).要求用js实现一个函数,返回该数组中所有元素,重复的要求去掉.例如:数组[2,3,[4,6,[3,8]],12,10],返回结果为:[2,3,4,6,8,12,10]. 我的答案如下:(额外增加了排序) 1 var arr = [2,3,[4,6,[3,8,[15,16,[17,18,[1,2,3,[19,20]]]]],[13,14]

一道SQL的面试题之联想

一道SQL的面试题之联想 本人工作在一家小型的民营企业,主要从事业务系统的日常维护,二次开发,菜鸟一枚.周五经理准备面试两个开发人员,据简历,都还比较不错,让经理产生了想法,于是准备了一套面试题目,给我们亮了一道SQL题目,非他之手,据出此题者说,如果面试者只能写出一种方法,基本可以pass.请读者仔细看题: 题目:如下表,用一条select语句求出所有课程在80分(含80分)以上的学生姓名,请写出所有可行方案.(注意:表名为sc,字段为name,kc,score) 这道题目并不陌生吧,相信大家