加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

一道关于停车计费的问题

发布时间:2020-12-16 00:17:47 所属栏目:大数据 来源:网络整理
导读:程序允许30分钟,期间要求用户输入来模拟车辆进入、出去的行为 输入的内容为一串字符串,每个不同的字符串代表一辆车. 纪录所有车每次进出的时间,计算时间、次数和价格. 价格依照价格表,阶梯定价:头10分钟5元,超过10分钟的每分钟5元 程序运行30分钟自动
程序允许30分钟,期间要求用户输入来模拟车辆进入、出去的行为
输入的内容为一串字符串,每个不同的字符串代表一辆车.
纪录所有车每次进出的时间,计算时间、次数和价格.
价格依照价格表,阶梯定价:头10分钟5元,超过10分钟的每分钟5元
程序运行30分钟自动退出,程序退出前还没出库的车,收费200元
程序最后统计所有车辆的情况:次数,每次时间,总时间,总价

code:

 
 
  1. #!/usr/bin/perl ?
  2. use?strict; ?
  3. use?warnings; ?
  4. use?Data::Dumper; ?
  5. use?Time::Local; ?
  6. use?POSIX?qw{strftime}; ?
  7. my?(%hash,%count)=(); ?
  8. my?$start_time?=?time; ?
  9. sub?p_money{??#计算费用 ?
  10. ????my?$time?=?shift; ?
  11. ???return?5?if?$time?<=?600; ?
  12. ???if?($time>600?and?$time<1800){ ?
  13. ????my?$min; ?
  14. ?????$time%60==0?$min?=?($time-600)/60:$min=?int(?($time-600)/60?+1); ?
  15. ????????my?$mon_minute?=?5+$min*5; ?
  16. ???????return?$mon_minute; ?
  17. ???} ?
  18. } ?
  19. my?(@arr,$end_time); ?
  20. while(1){ ?
  21. ????my?($start); ?
  22. ???$end_time=time; ?
  23. print??"Car?Number?:"; ?
  24. ???eval{ ?
  25. local?$SIG{ALRM}=sub?{die?"timeoutn";}; ?
  26. ??alarm(5); ?
  27. ????chomp(?$start?=?<>);????????#此处设施中断??5秒内没有用户输入就继续循环, ?
  28. ????push?@{$hash{$start}},time; ?
  29. ????$count{$start}++?if?defined?$start; ?
  30. ????alarm(0); ?
  31. ???}; ?
  32. if?($end_time-$start_time>20){???#这里程序运行20秒,则退出循环,打印车辆的费用 ?
  33. ????????for?(sort?keys?%hash){ ?
  34. my?$stop_time?=?time()-$hash{$_}[0]; ?
  35. ????????my?$car_start_time?=?strftime("%Y-%m-%d?%H:%M:%S",?localtime($hash{$_}[0])); ?
  36. ????????my?$car_stop_time?=?strftime("%Y-%m-%d?%H:%M:%S",?localtime(time)); ?
  37. ????????push?@arr,"$_t$car_start_time?$car_stop_time?$stop_timet200n"; ?
  38. ????????} ?
  39. ???print?"n车号t开始时间t离开时间t停车时间t价格n"; ?
  40. ???print?@arr; ?
  41. ????????exit; ?
  42. ????} ?
  43. ???if(defined?$start??and??($count{$start}||0)?>1?){ ?
  44. ????????push?@{$hash{$start}},time; ?
  45. ????????my?$stop_time?=?$hash{$start}[-1]-$hash{$start}[0]; ?
  46. ????????my?$car_money?=?p_money?$stop_time; ?
  47. ????????my?$car_start_time?=?strftime("%Y-%m-%d?%H:%M:%S",?localtime($hash{$start}[0])); ?
  48. ????????my?$car_stop_time?=?strftime("%Y-%m-%d?%H:%M:%S",?localtime($hash{$start}[-1])); ?
  49. ????????push?@arr,?"$startt$car_start_time?$car_stop_time?$stop_timet$car_moneyn"; ?
  50. ????????delete?$count{$start};?#删除?出库车辆 ?
  51. ????????delete?$hash{$start}; ?
  52. ????????redo;??#继续等待用户输入 ?
  53. ????}else{ ?
  54. ????????redo; ?
  55. ????} ?
  56. } ?

结果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读