【机房】验收总结

【前言】

机房收费系统总算是要做一个结尾了,拖延了很长时间,最后决定在这个节点来逼自己一把,最终还是证明自己可以完成的。

【正文】

我们在做一个程序的时候,首先要思考面向用户是谁,用户会需要用到什么功能,这些功能大体上需要怎样实现,有哪些是可以简化的,有哪些是比较人性化的,怎样可以增加用户体验,这些都是我们在开始做程序之前要思考到的问题。做一个程序最重要的环节并不是敲代码的时候,而是你在了解用户需求并构思的时候。

但是我们总是先敲代码先做着,做完了再去优化,再去思考,这就有些本末倒置了,而且会浪费很多的时间和精力。

数据库

  • 数据库中的数据类型,不同的表中相同的名字对应的数据类型应该是一样的.
  • 像cardNo studentNo等列,已经在程序中限制了输入的字符不能超过6个字符,那么数据库中的数据类型就应该限制为CHAR(6)不要过多,否则维护数据库费人力物力。
  • 还有时间和日期,date和time,可以合并为datatime,不必复杂,不要浪费。
  • 对于金额,numeric这个数据类型,numeric(18,0)最多输入18个数字,不可以有小数,但是有的表中是允许存在小数的。充值整数,扣费整数,哪里来的小数呢,这个小数完全没有必要存在。但是也会存在打折出来扣费0.5,这个时候就另当别论了。
    18个字符,充值的时候需要连接数据库判断加入这个钱之后,数据库中的钱有没有18个字符,如果超过了18个字符,数据库会崩,我们需要限制一下,超过18个字符就不让它充钱了。
  • 数据库中的使用不使用,结账不结账,可以直接用0和1代替,节省资源,也方便记录。

各种限制

用户名和密码,只能输入数字和退格键,不可以使用右键粘贴。密码用*代替。
查看更多的限制可以查看VB中的各种限制

Private Sub txtCardNo_KeyPress(KeyAscii As Integer)
    txtCardNo.MaxLength = 6 '限制输入数字长度为6
    '限制只能输入数字
    Select Case KeyAscii
        Case 48 To 57
        Case 8
    Case Else
        KeyAscii = 0
        txtCardNo.Text = ""
    End Select
End Sub
'禁止单击右键
Private Sub txtCardNo_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = MouseButtonConstants.vbRightButton Then
        Clipboard.Clear
    End If
End Sub

登录窗体

  • 窗体加载的事件不对,点击空白处就没有了各个控件的显示。
  • 除了卡号需要输入以外,其他的都是不需要输入的,可以不使用text控件,使用label透明,这样更美观。
  • 上机之后显示账户的基本信息,更新当前上机人数。
  • 下机之后需要显示全部信息以及消费时间和消费金额,需要设置一个timer控件,过几秒钟之后就消除这些内容。
  • 下机之后同样要更新上机人数。也可以设置一个timer控件,每隔几秒钟就要查询一下online表,更新上机人数。
  • 上机的时候需要查询当前用户余额是否大于最少余额,上机的时候不足最少余额了,要提示需要充值,若不充值,需要强制下机。
  • 其他的控件内容是需要跟随卡号进行变动的,卡号进行变动的时候,其他卡号的内容要清空。
  • 界面的picturebox里面的图片要跟随控件或者窗体变化大小,不然就限制窗体的大小以及不能点击最大最小。

查看余额

  • 除卡号之外的其他文本框不能输入,需要限制各文本框的输入条件和输入长度。
  • 卡号在查询不到的时候,提示卡号不存在。这里的提示不要有很明显的提示框,可以在旁边设置一个暗按钮,提示一行红字,告知你没有这个卡号,总是爆提醒,会影响用户体验。
    其他内容需要跟随变化,卡号变动其他内容要清空。
  • 点击查询之前要先把所有控件的内容清空这样才会有变动。
  • 不需要有清除信息的按钮,浪费!
  • 一般用户下面不要有退出的按钮,一是权限不明确,二是可以直接点击叉号退出,浪费!

学生查看上机记录

  • MSHFlexGrid,要注意不要有一行空白格,这是一个老问题!
  • 在表格中显示的问题,要注意列宽,让内容充分显示出来。金额在表格中靠右显示,其余的内容最好是居中显示。
  • 日期和时间可以合并,不要浪费资源。
  • 导出Excel表格的时候,可以设置自己自动命名,可以是当前日期时间或者是当前的用户等,自己设置。
  • 下面表格的内容跟随卡号变动,卡号变化的时候,下面的内容直接清空。
'    添加列名
    With MSHFlexGrid1
        .Rows = 1
        .CellAlignment = 4
        .TextMatrix(0, 0) = "卡号"
        .TextMatrix(0, 1) = "充值金额"
        .TextMatrix(0, 2) = "充值日期"
        .TextMatrix(0, 3) = "充值时间"
        .TextMatrix(0, 4) = "充值教师"
    End With

        '判断是否移动到数据集对象的最后一条记录
        Do While Not mrc.EOF

            With MSHFlexGrid1
                .Rows = .Rows + 1
                .CellAlignment = 4
                .TextMatrix(.Rows - 1, 0) = mrc.Fields(2)   '卡号
                .TextMatrix(.Rows - 1, 1) = mrc.Fields(3)   '充值金额
                .TextMatrix(.Rows - 1, 2) = Trim(mrc.Fields(4))   '充值日期
                .TextMatrix(.Rows - 1, 3) = mrc.Fields(5)   '充值时间
                .TextMatrix(.Rows - 1, 4) = Trim(mrc.Fields(6))   '充值教师

            '移动到下一条记录
            mrc.MoveNext
           
           End With

          Loop

注册

  • 输入卡号查找这个卡号是否存在,不存就要注册,存在就提示。
  • 注册的时候状态只有使用,可以不要这个选择了,直接在代码中默认,也可以选择使用不使用,然后使用的时候再次激活。
  • 注册时候是不是可以考虑不充值金额,以后使用的时候再去充值。
  • 一个卡号对应一个学号,还是,一个卡号对应多个学号,这个需要判断。
  • 清空按钮没有必要存在。

充值

  • 下面文本框限制不可以输入。
  • 如果输入的卡号不对,会提示卡号不存在或者已经停用,这个时候需要卡号和充值金额同时清空。
  • 已经限制了充值金额不能少于最少金额,还需要限制充值金额不能是以0开头的(002),也不能是0(0000)。
  • 充值成功之后显示的充值老师应该是当前登录账户,而不是给这个账户注册的老师,防止责权不明。
  • 提示充值成功可以使用暗按钮,爆一行红字提示,不要直接弹出提示框。

退卡

  • 退卡的时候可以不输入退还金额,自动把全部金额退还。
  • 退卡之后这个账户就是不使用状态。
  • 退卡成功之后有一个提示框,然后直接清空内容。这样清除信息按钮就没有存在的必要了。

学生上机信息统计

  • 输入的内容需要限制,根据输入的限制进行限制。
  • 表格中的显示需要调整格式,按照上面说的。

学生上机状态查看

  • 点击显示全部之后,可以左键选中标记,右键有一个菜单栏,显示的内容是上机管理的内容。
  • 上机管理可以跳着标记选中下机,下机成功之后需要更改主窗体的当前上机人数。
  • 学生基本信息维护,应该是对于学生的基本信息进行更改维护,不应该是学生基本信息查询。

收取金额查询

  • 起始时间早于终止时间,终止时间早于系统当前时间。
    显示的表格格式需要调整。
    表格可以设置一个滑轮,可以鼠标进行滑动。

删除和添加用户

  • 当前登录的用户不要显示,不然容易误删。
  • 删除的时候最好是做一个选中标记进行删除,不然点击表头删除岂不是要爆“91”了。

基本数据设定

  • 至少上机时间和准备时间可以去掉。上机即扣费,自己点击上机,这是网吧的做法,可以考虑参考,这样做的话就需要把普通用户和管理员的登录和上机界面区分开了,普通用户可以设置为登录即上机。

账单

  • 表格可以显示起始日期和终止日期,不然不知道你结账是何时的。
  • 上期余额没有必要另外拎出来,可以直接去掉了。
  • 注意操作顺序,选择时间——刷新账单——打印预览——打印,这个顺序是不可以更改的哟。
  • 表单上显示打印表单的时间和账单的时间(就是两个时间,不知道你能不能理解)

结账

  • 结账是管理员对操作员的动作。汇总的是操作的售卡退卡以及充值金额收取金额等。
  • 结账的时候有一个临时用户,需要主要汇总的金额是否包含临时用户的,偶尔临时用户的操作会造成负值。如果说汇总的金额是固定用户和临时用户的总用户,那么就不必再有临时用户的显示,若是说汇总的金额是只有固定用户的,没有临时用户的,那么这里就需要统计临时用户的存在。

【结尾】

以上的总结都是需要注意的事项,也是下次需要重点优化的地方。

这不是结束,这是一个新的起航!

你可能感兴趣的:(#,机房收费系统)