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

与机房收费系统重相见

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

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

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

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

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

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

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

        问过师傅后,师傅说,考一级的时候,你上机前饭卡里不能少于三元钱。所以教师得知道它卡里的余额。但是,我觉得也不用专门去查。因为,我们可以在学生把卡贴到刷卡机上,先根据卡号查询到它的余额,然后显示并提醒老师它卡里的钱不够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分钟,就不计了。具体怎么算呢?

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

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