有关机房收费系统学生下机的思考

??

所谓的专家,就是在一个非常小的领域把全部的错误都犯过的人

---------题记

做机房收费系统也有一段时间了,眼下已经进行到学生下机操作了。

由于学生下机操作时。须要依据不同用户的类别。来进行对应的结账服务。于是乎就想到了曾经学习到的设计模式,那么针对这个问题。能够用到那些模式呢?小编在这里总结一下。(可能有些模式过于勉强,但这都无所谓,学习的真谛就在于此,不断的反复和实验)

-------------------------------------------------------------------------------------------------------------------------------------------------------

前言

先分析下下机须要用到的数据

固定用户每小时费用:代表会员级别每小时花费金额

暂时用户每小时费用:代表暂时用户每小时花费金额

至少上机时间:学生假设上机时间小于此的话,就按此时间计算

准备时间:此时间不计算在学生上机时间里面

至少金额:上机时间小于至少上机时间的,就按此计算

策略模式

策略模式曾经也写过类似的博客,连接例如以下

策略模式总结

类图

Strategy接口:封装了不同类别用户计算金额的算法

Context类:封装了不同的角色,当外部调用时。无须知道算法,直接实例化该类就可以

代码:

‘‘‘ <summary>
‘‘‘ 策略的接口
‘‘‘ </summary>
‘‘‘ <remarks></remarks>
Public Interface Strategy
    ‘‘‘ <summary>
    ‘‘‘
    ‘‘‘ </summary>
    ‘‘‘ <param name="consumeTime">花费的时间</param>
    ‘‘‘ <param name="bill">不同类型用户上机每小时花费金额</param>
    ‘‘‘ <returns>返回消费的金额</returns>
    ‘‘‘ <remarks></remarks>
    Function ConsumeMoney(ByVal consumeTime As Single, bill As Single) As Single

End Interface

‘‘‘ <summary>
‘‘‘ 固定用户实现接口
‘‘‘ </summary>
‘‘‘ <remarks></remarks>
Public Class regularUser
    Implements Strategy
    Public Function ConsumeMoney(consumeTime As Single, bill As Single) As Single Implements Strategy.ConsumeMoney
        ‘假设小于准备时间的话,不收费的
        If consumeTime < 5 Then
            Return 0
            ‘假设小于最少上机时间的话,就收费最少金额
        ElseIf consumeTime > 5 And consumeTime < 30 Then
            Return 2
        Else
            Return bill / 60 * consumeTime
        End If
    End Function

End Class

Public Class context
    ‘抽象策略
    Dim strategy As Strategy = Nothing
    ‘构造函数设置详细策略
    ‘注意在vb.net中使用sub new()keyword来使用构造函数
    Sub New(ByVal _strategy As Strategy)
        Me.strategy = _strategy
    End Sub
    ‘封装后的策略方法
    Public Sub count(ByVal consumeTime As Single, bill As Single)
        Me.strategy.ConsumeMoney(consumeTime, bill)
    End Sub
End Class

特别声明:这仅仅是一个学生下机结账的小Demo。

 未完待续……

时间: 2024-12-28 20:19:58

有关机房收费系统学生下机的思考的相关文章

机房收费系统学生下机结账小结

这几天一直在考虑机房收费系统学生下机操作.学生下机,一则须要加入学生下机记录信息:还须要计算学生在整 个上机过程中所花费的金额,而且更新学生剩余金额.那么如何做在性能上或者扩展上更好一些呢? 操作 1.加入学生下机信息 2.计算学生上机时间 3.依据上机时间来计算学生所花费的金额 4.更新学生的剩余金额 设计模式 在通过学生上机时间来计算学生所花费的金额这步操作上,须要进行一些条件分支语句的推断.由于上机时间被分为 了三部分:准备时间.至少上机时间.上机时间.所以在步骤3中有大量的条件分支语句,

机房收费系统上下机之观察者模式的尝试

如果读者想在本篇文章中看到观察者模式的巧妙应用,大概有些不可能了.因为这里我只是想把自己的一种思路展现给大家,然后和大家探讨. 背景: 在敲机房收费系统的过程中,都是别人说可能会用到什么模式,然后自己针对这些模式进行思考,然后去模仿书中的例子去用. 这不,师姐说上下机这里能用观察者模式,然后我就琢磨了一番,只是收获不是很丰硕,貌似也和师姐讲课中的设想不一样. 我在琢磨使用观察者模式时,已经把系统中和上下机有关的功能实现了.只是在写代码的过程中发现,每次下机,都需要先把正在上机的卡的上机信息查出来

机房收费系统之下机完整版

前篇博客只是简单的说了下,机房收费系统下机的简单思路,下面来正式的介绍下整个流程. 分析 由于下机的时候需要涉及到两个表中的数值--StudentInfo表和OnlineInfo表,那么我们的思路就是如何能够简化查 询的操作. 学生表中包含的学生的静态信息,而上机信息表中则包含了有关学生上机的所有的信息. 流程 1.更新学生下机信息 2.触发器触发后,会自动的更新学生的消费时间,消费金额并更新学生余额 3.两张表联合查询有关界面上的所有信息 4.为所有的文本框赋值 注意:其实最有意思的就是触发器

机房收费系统——视图的运用

对于视图在一年前的数据库学习和自考中就学到了,那时只是理论学习,这次在机房收费系统重构中亲自实践,加深了对视图的理解. 定义: 从数据库系统外部来看,视图是用户从一个特定的角度来查看数据库中的数据.从数据库系统内部来看,视图是由SELECT语句组成的查询定义的虚拟表,在数据库中并不真实存在.好比在提高班有学术部,安全部,纪律部等等,这些部门就是视图,需要给哪个部门开会就通知哪个部门.这些部门的人都是提高班各个期的(基本表),并且每个人都是独一无二的. 操作: 由于视图只是存储的SQL Selec

重构机房收费系统——数据库设计

曾记得,第一次编写机房收费系统的文档模板,整整有12个文档需要编写,仅仅花了两三天的时间就让师傅验收,完结项目,就这样囫囵吞枣的文档编写完成了. 要知道:欠下的账,终究是要还的.现在到了机房收费系统个人版重构阶段, (1)进行数据抽象,设计局部概念模型: (2)将局部概念模型综合成全局概念模型 (3)就可以按要求绘制机房收费系统数据库概念设计模型--ER关系图. 可以说,之前的数据库的概念设计给我奠定了一丢丢的设计基础,外加<数据库系统原理>中的三范式定理,本着求知好学.虚心请教的理念,于是乎

职责链模式——机房收费系统下机结账

在机房收费系统中,学生下机结账最让人头疼了.因为学生的消费时间(下机时间-上机时间-上机准备时间)有三种情况: 1.消费时间<=0,也就是下机时间与上机时间的间隔在上机准备时间范围内,这种情况是不收费的. 2.消费时间<=最少上机时间,这种情况下消费时间按照最少上机时间收费. 3.消费时间>最少上机时间,这种情况还要考虑递增单位时间.比如递增单位时间是10分钟,消费时间是42分 钟,42/10=4.....2,这种情况要按照50分钟收费. 以上消费时间就分了三种情况,更复杂的是第二种和第

与机房收费系统重相见

第一次与机房收费系统相见,大概还是在去年的8,9月份.这次与之重相见,光阴已近一载.去年与它的相见可能要用"鲁莽"."冒失"来形容.不知道这次的再聚首,它是否能感觉到我的真心诚意. 说自己真心诚意还是有原因的.就像朋友之间相处,有的朋友非常贴心.这种朋友非常了解你,对你非常用心.对于机房收费系统,我能不能算是它的一个贴心的朋友呢?--我想,如今,我仅仅能说我在努力地去了解它,理解它. 我对它的认识出现了下面问题: 搞不清楚它的"成分" 在文化大革

机房收费系统总结

经过二十天的艰苦奋斗我的机房收费系统终于敲完了,在回家之前又让师傅验收了一边终于通过,自己当时感觉那叫一个兴奋呀,终于可以高高兴兴回家了,太好了.当时兴奋过头导致没有写总结,以致回到家后才写总结. 我在做机房收费系统时,感觉最让人头疼的就是结账.算钱,虽然自己是个理科生,可是这算账真不敢恭维,那真叫个一塌糊涂,怎么都算不清楚.那时真的想找块豆腐去撞一下,把自己给撞清醒了.不过好在最后终于做出来,当时感觉世界瞬间就亮了. 其实在做完机房收费系统,最大的感受就是要理清自己的思路,无论是结账还是上下机

机房收费系统——数据库设计说明书

GB8567--88 数据库设计说明书 1      引言 优质数据库在处理大数据的程序或系统中是有非常重要的作用的,所以对于数据库的设计有很多的要求和规定.首先数据库要有很好的可维护性.灵活性,并且数据库的算法逻辑性也要有一定的优化性,这样可以对资源进行有效利用,并且处理数据的时间也会缩短. 1.1   编写目的 由于上机的人越来越多,产生的上机数据越来越多,原始的保存方式已经不能满足数据存储的需要,所以使用数据库对各种记录进行存储.并且数据库可以节省很多的资源,如人力.时间.空间等. 数据库