机房收费管理系统之下机

逻辑,做事先理好逻辑, 先干什么,再干什么。在写代码就思路清晰的多。

下机要清算好,消费金额,  不能把账算错。

画个流程图

代码部分


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 Trim(mrc2.Fields(0)) <> Trim(txtCardNo.Text) Then
            MsgBox "该卡号未注册!", 48, "警告"
            Exit Sub
        End If
        
        If mrc2.Fields(0) = Trim(txtCardNo.Text) Then
            MsgBox "学生没有上机,无法下机!", 48, "警告"
            Exit Sub
        End If
        
        '计算消费时间
        txtOffDate.Text = Date
        txtOffTime.Text = Time
        
'       CostDate = DateDiff("n", txtOnDate.Text, txtOffDate.Text)
'       CostTime = DateDiff("n", txtOnTime.Text, txtOffTime.Text)
        CostTime = DateDiff("n", StartTime, Endtime)
        
        txtCTime = (Val(CostDate) + Val(CostTime))
        
        '计算消费金额
        If Trim(txtCTime.Text) <= Val(mrc3.Fields(4)) Then
            txtCMoney.Text = 0
        Else
            If Trim(txtType.Text) = "固定用户" Then
                txtCMoney.Text = Format(Val(txtCTime.Text) / mrc3.Fields(2) * mrc3.Fields(0), "0.00")
                 
            Else
                txtCMoney.Text = Format(Val(txtCTime.Text) / mrc3.Fields(2) * mrc3.Fields(1), "0.00")
 
            End If
        End If
        
        '计算余额
        txtBaLance.Text = Val(mrc2.Fields(7)) - Val(Trim(txtCMoney.Text))
        
       ' 删除online_info表上信息
        txtSQL = "Delete from online_info where cardno='" & Trim(txtCardNo.Text) & "'"
        mrc.Delete
        mrc.Update
        mrc.Close
        
        '更新line_info表
        With mrc1
'            .Fields(6) = Date
'            .Fields(7) = Time
            .Fields(8) = Date
            .Fields(9) = Time
            .Fields(10) = Trim(txtCTime.Text)
            .Fields(11) = Trim(txtCMoney.Text)
            .Fields(12) = Trim(txtBaLance.Text)
            .Fields(13) = "正常下机"
            .Fields(14) = VBA.Environ("computername")
            
  
            .Update
            .Close
        End With
        
        '更新学生表
        With mrc2
            .Fields(7) = txtBaLance.Text
            .Update
            .Close
        End With
       
       MsgBox "下机成功"
       
       txtCardNo = ""
       txtSID = ""
       txtDept = ""
       txtType = ""
       txtName = ""
       txtSex = ""
       txtOnDate = ""
       txtOffDate = ""
       txtBaLance = ""
       txtOnTime = ""
       txtOffTime = ""
       txtCTime = ""
       txtCMoney = ""
       
       
End Sub

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tzk_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值