首页 > 代码库 > 与机房收费系统重相见

与机房收费系统重相见

       第一次与机房收费系统相见,大概还是在去年的8,9月份。这次与之重相见,光阴已近一载。去年与它的相见可能要用“鲁莽”、“冒失”来形容。不知道这次的再聚首,它是否能感觉到我的真心诚意。

       说自己真心诚意还是有原因的。就像朋友之间相处,有的朋友非常贴心。这种朋友非常了解你,对你非常用心。对于机房收费系统,我能不能算是它的一个贴心的朋友呢?——我想,如今,我仅仅能说我在努力地去了解它,理解它。

       我对它的认识出现了下面问题:

  1. 搞不清楚它的“成分”

       在文化大革命期间,要将走社会主义道路的人和走资派划分开来。在看机房收费系统时,我也想搞清楚它的本质。毕竟我们要乐交诤友不交损友嘛。

       事实上叫“机房收费系统”的非常多,我查了一些资料,有的机房收费系统类似于网吧的收费系统或者咱们学校旧图书馆的收费系统,先在卡里充值,然后找到一台电脑,电脑起初是处于锁屏状态的,然后输入自己的username和password后,能够进入桌面,自己操作电脑。由于每台机子上都装有机房收费系统,所以能够查自己卡里剩余多少钱等等。可是,咱们的机房收费系统,是数信学院为考计算机一级的学生上机服务的。学生并不接触该系统。他们要上机,就把饭卡贴到刷卡机上,老师在系统中点上机,则上机时间从此刻算起,然后学生进入机房,电脑能够随便用。不存在输入username和password的问题。然后假设想下机,就到机房门口,把饭卡再贴到刷卡机上,老师点下机,则此刻记为下机时间。

       但是,既然学生不接触此系统,那么一般用户下,为什么还会有“学生查看剩余金额”、“学生上机记录查看”、“学生充值记录查看”呢?由于我认为既然一般用户不是学生,那么他的职责就是给学生刷卡上机,刷卡下机,或者强制他们下机。查看上述的记录有什么实际的意义吗?

        问过师傅后,师傅说,考一级的时候,你上机前饭卡里不能少于三元钱。所以教师得知道它卡里的剩余金额。可是,我认为也不用专门去查。由于,我们能够在学生把卡贴到刷卡机上,先依据卡号查询到它的剩余金额,然后显示并提醒老师它卡里的钱不够3元,所以老师就不会让他上机了。

      (少于三元钱的原因:假如机房按1元/1小时来收费的话,机房开放时间比方说是9:00~12:00;14:00~17:00;18:00~21:00,那么你每次最多上3个小时,所以最多花3元钱,可是假设你卡里有两元钱,你一次还上3个小时,这样你卡里的钱就为负了,但这是不同意的。所以你上机前,你卡里至少应该有:单位价格*每次上机时间的最大值。)

       总之,有些分不清它是要为学生服务,还是为教师服务。

      2.它“平易近人”吗?

        机房收费系统既能够接待固定用户,又能够接待暂时用户,表面看起来非常平易近人,实际上也有自己的小心思,那就是按不同的标准收费,固定用户类似于“会员”,暂时用户类似于“非会员”。仅仅是在我们的系统中,或者我们的生活实际,不须要把学校学生分为固定的和暂时,否则就太“商业化了”。

      3. “精明”OR“仁义”

        第一次我还是领略了机房收费系统非常有“经济头脑”,非常会赚钱。可是这次好像发现它还是比較“仁义”的,没有榨取人民的血汗钱。这就要说说机房收费系统的收费逻辑了。

        这里包含几个重要的数据:

  • 固定用户每小时费用/暂时用户每小时费用(我们姑且用单位价格来概括)
  • 递增单位时间
  • 准备时间
  • 至少上机时间
  • 最少金额(这个在上文中提过了它的作用,这里就不说了)

       机房收费系统在学生上机的时候,给了学生一个准备的时间,是不是有一点点“仁义”?

       我们看看它是怎么收费的:

       我们令L=下机时间—上机时间-准备时间

       假设L<=至少上机时间,那么消费时间就按至少上机时间来算。

       假设L>至少上机时间,那么消费时间就按L来算。

       那么递增单位时间是干什么呢?

       举个样例,比方你上机用了32分钟,假设递增单位时间是5分钟,那么最后消费时间就按30分钟来计算,由于仅仅够6个递增单位时间,剩余的2分钟没够5分钟,就不计了。详细怎么算呢?

        就是用上述的消费时间/递增单位时间将结果取整之后,再乘以递增单位时间,为真正的消费时间。这样之后,消费金额就不难算了,用真正的消费时间*单位价格=消费金额。

      总结:以上是自己对机房收费系统的理解,就像师傅说的,每一个人都有不同的理解,在重构的时候,不能别人如何做,我也如何做,要多动脑筋去思考。