机房收费系统——下机

前言

下机在机房中是比较难的,也不能说难,在搞懂逻辑之前只能说迷糊,搞懂以后你绝对就不说难了。其中也遇到了很多问题,比如时间格式的转化,这么多表到底该删除哪个,更新哪个。不过已经被我一一的解决了,流程图真的是个好工具!其中,对于上机表的删除和下机表的更新可以使用触发器实现,在优化中在继续研究!

在这里插入图片描述

代码片段

Private Sub cmdOffline_Click()
    Dim txtSQL As String
    Dim MsgText As String
    Dim mrc As ADODB.Recordset
    Dim mrc1 As ADODB.Recordset
    Dim mrc2 As ADODB.Recordset
    Dim mrc3 As ADODB.Recordset
    Dim mrc4 As ADODB.Recordset
    Dim StartDate As Date
    Dim EndDate As Date
    Dim StartTime As Date
    Dim Endtime As Date
    Dim CostDate As Long
    Dim CostTime As Long
    Dim a As Integer
        
        'mrc连接online表
        txtSQL = "select * from online_info where cardno='" & Trim(txtCardNo.Text) & "'"
        Set mrc = ExecuteSQL(txtSQL, MsgText)
        
        'mrc1连接line表
        txtSQL = "select * from line_info where cardno='" & Trim(txtCardNo.Text) & "'"
        Set mrc1 = ExecuteSQL(txtSQL, MsgText)
        
        'mrc2连接student表
        txtSQL = "select * from student_info where cardno='" & Trim(txtCardNo.Text) & "'"
        Set mrc2 = ExecuteSQL(txtSQL, MsgText)
        
        'mrc3连接basicdata表
        txtSQL = "select * from basicdata_info"
        Set mrc3 = ExecuteSQL(txtSQL, MsgText)
        
        'mrc4连接cancelcard表
        txtSQL = "select * from cancelcard_info where cardno='" & Trim(txtCardNo.Text) & "'"
        Set mrc4 = ExecuteSQL(txtSQL, MsgText)
        
        If Trim(txtCardNo.Text) = "" Then
            MsgBox "请输入卡号!", 48, "警告"
            txtCardNo.SetFocus
            Exit Sub
        End If
        
        If IsNumeric(txtCardNo.Text) = False Then
            MsgBox "卡号请输入数字!", 48, "警告"
            txtCardNo.SetFocus
            txtCardNo.Text = ""
            Exit Sub
        End If
        
        If mrc2.Fields(0) <> Trim(txtCardNo.Text) Then
            MsgBox "该卡号未注册!", 48, "警告"
            Exit Sub
        End If
        
        If mrc.Fields(0) = Trim(txtCardNo.Text) Then
            MsgBox "学生没有上机,无法下机!", 48, "警告"
            Exit Sub
        End If
        
        '计算消费时间
        labOffDate.Caption = Date
        labOffTime.Caption = Time
        
        CostDate = DateDiff("n", labOnDate.Caption, labOffDate.Caption)
        CostTime = DateDiff("n", labOnTime.Caption, labOffTime.Caption)
        
        labCTime.Caption = (Val(CostDate) + Val(CostTime))
        
        '计算消费金额
        If Trim(labCTime.Caption) <= Val(mrc3.Fields(4)) Then
            labCMoney.Caption = 0
        Else
            If Trim(labType.Caption) = "固定用户" Then
                labCMoney.Caption = Format(Val(labCTime.Caption) / mrc3.Fields(2) * mrc3.Fields(0), "0.00")
                 
            Else
                labCMoney.Caption = Format(Val(labCTime.Caption) / mrc3.Fields(2) * mrc3.Fields(1), "0.00")
 
            End If
        End If
        
        '计算余额
        labBalance.Caption = Val(mrc2.Fields(7)) - Val(Trim(labCMoney.Caption))
        
        '删除online_info表上信息
        mrc.Delete
        mrc.Update
        mrc.Close
        
        '更新line_info表
        With mrc1
            .Fields(8) = Trim(labOffDate.Caption)
            .Fields(9) = Trim(labOffTime.Caption)
            .Fields(10) = Trim(labCTime.Caption)
            .Fields(11) = Trim(labCMoney.Caption)
            .Fields(12) = Trim(labBalance.Caption)
            .Fields(13) = "正常下机"
            .Fields(14) = VBA.Environ("computername")
            .Update
            .Close
        End With
        
        '更新学生表
        With mrc2
            .Fields(7) = labBalance.Caption
            .Update
            .Close
        End With
       

结语

要是我做机房之前让我看到这一段代码绝对就被吓死了,现在可以靠自己写代码实现这些功能。不要自己吓自己,没有解决不了的事情,只有逃避问题的自己,遇到困难积极面对解决就完了!机房就是i+1的学习材料,我们之前有了学生的铺垫,再做机房虽然有一些难度,但是都是可以克服的难度,继续加油!

机房收费管理系统 问题描述 结合我校计算机机房的运作模式,设计一种适合的收费管理系统,能够实现相关的人员检索,计时收费,管理汇总等功能模块。 开发环境 采用C或C++实现,VC++6.0 基本要求 主要功能模块: (1) 登录模块 (2) 上机管理模块 说明:上机登记时,余额不足3元或卡处于挂失状态,则拒绝登记。 每位同学的一次上机形成一条记录,每30秒遍历一次上机记录表,对表中所有正上机字段为TRUE的记录的上机用时增加30秒,同时减少上机卡表中的余额。 (3) 上机卡管理模块 (4) 充值挂失模块 (5) 查找统计模块:统计某天上机的总时数、每次上机的平均时数和机房的收入;某学生上机的次数、上机总时数、每次上机平均时间;挂失和查询余额。 参考的数据结构: 上机卡(卡号,姓名,专业班级,余额,状态),状态有:正常和挂失。 上机记录(卡号,上机日期,开始时间,上机用时,正上机,管理号代码) 上机记录表永久保存,用于事后查询和统计。 设计要求 1) 界面友好,输入信息符合逻辑:如上机时间设定在合理的时间范围。 2) 能从实践生活出发,设计合理的功能模块 3) 各类信息的数据结构明晰 4) 可根据自身生活体验添加相关功能模块。 拓展功能要求 鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。鼓励引入小型数据作为处理数据的来源,拓展知识面。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值