第一次机房收费系统--上机

前言:

原以为上机很困难,自己没有办法完成的,但是当自己真正地静下心来去点师姐给的系统,对应着数据库一点点地看,才发现原来上机并没有想象中的那么困难!


流程图:

首先开始的时候思路一定要清楚,中间细节的部分可以先不做考虑,等大致的框架出来之后再将细节的部分添加进去!就像盖房子一样,大致框架就相当于房子的墙,细节部分就相当于房子里面的各种装饰,缺一不可!



知识点:

1.使用的卡显示已经注销

                    '数据集中有记录,但是该卡已经停用
                    txtSQL = "select * from student_info where cardno='" & txtcardno.Text & "'and status='不使用'"
                    Set mrc5 = ExecuteSQL(txtSQL, MsgText)
                    If mrc5.EOF = False Then
                        MsgBox "该卡已经注销,请重新输入!", 48, "提示"
                        txtcardno.Text = ""
                        txtcardno.SetFocus

2.余额问题

                txtSQL = "select * from student_info where cardno='" & txtcardno.Text & "'and status='使用'"
                Set mrc3 = ExecuteSQL(txtSQL, MsgText)
                    '判断余额是否小于最小金额,若小于,需要充值后再继续上机,强制下机,此时最好弹出充值界面
                    '此时判断用户类型
                    txtSQL = "select * from basicdata_info"
                    Set mrc4 = ExecuteSQL(txtSQL, MsgText)
                    If mrc3.Fields(7) < mrc4.Fields(5) Then
                        MsgBox "余额小于最小限制金额,请充值后再上机!", 48, "提示"
                        '弹出充值窗口
                        frmrecharge.Show
                        SetParent frmrecharge.hWnd, Picture1.hWnd

3.不能重复上机

            txtSQL = "select * from online_info where cardno='" & txtcardno.Text & "'"
            Set mrc2 = ExecuteSQL(txtSQL, MsgText)
            If mrc2.EOF = False Then
                MsgBox "该卡正在上机,不能重复上机!", 48, "提示"
4.获取计算机名

在模块中定义计算机名,然后在代码框中调用

'API函数声明计算机名
Public Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
'调用API函数获取计算机名

Public Function GetThisComputerName() As String
    Dim sBuffer As String
    Dim lSize As Long
    
    sBuffer = Space$(255)
    lSize = Len(sBuffer)
    GetComputerName sBuffer, lSize
    
    If lSize > 0 Then
        GetThisComputerName = Left$(sBuffer, lSize)
    End If
End Function
在代码框中调用:

mrc.Fields(8) = GetThisComputerName     '将计算机名同步到数据库的相应表格中
5.将数据同步到表中

上机涉及到四个表:online_info  line_info  student_info   basicdata_info

    '上机时将上机卡的数据同步至online_info表中
    Set mrc = New ADODB.Recordset
    txtSQL = "select * from online_info"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    mrc.AddNew
    mrc.Fields(0) = Trim(txtcardno.Text)
    mrc.Fields(1) = Trim(txttype.Text)
    mrc.Fields(2) = Trim(txtstudentno.Text)
    mrc.Fields(3) = Trim(txtstudentname.Text)
    mrc.Fields(4) = Trim(txtdepartment.Text)
    mrc.Fields(5) = Trim(txtsex.Text)
    mrc.Fields(6) = Trim(txtOnLinedate.Text)
    mrc.Fields(7) = Trim(txtOnLinetime.Text)
    mrc.Fields(8) = GetThisComputerName     '将计算机名同步到数据库的相应表格中
    mrc.Fields(9) = Now
    Label16.Caption = mrc.RecordCount + 1  '显示上机人数
    mrc.Update
    mrc.Close
    
     '上机时将上机卡的数据同步到line_info表中
     Set mrc6 = New ADODB.Recordset
     txtSQL = "select * from line_info"
     Set mrc6 = ExecuteSQL(txtSQL, MsgText)
     mrc6.AddNew
     mrc6.Fields(1) = Trim(txtcardno.Text)
     mrc6.Fields(2) = Trim(txtstudentno.Text)
     mrc6.Fields(3) = Trim(txtstudentname.Text)
     mrc6.Fields(4) = Trim(txtdepartment.Text)
     mrc6.Fields(5) = Trim(txtsex.Text)
     mrc6.Fields(6) = Trim(txtOnLinedate.Text)
     mrc6.Fields(7) = Trim(txtOnLinetime.Text)
     mrc6.Fields(12) = Trim(txtcash.Text)
     mrc6.Fields(13) = "正常上机"
     mrc6.Fields(14) = GetThisComputerName
     mrc6.Update
     mrc6.Close
     MsgBox "上机完成!", 48, "提示"

代码展示:

Private Sub cmdOnLine_Click()
    '判断卡号是否为空,如果为空,提醒输入;
    '若不为空,判断是否注册过,如果注册了就继续往下执行;
    '没有注册包括:数据集中没有这个卡号;数据集中有这个卡号,但是该卡已经停用!
    If txtcardno.Text = "" Then
        MsgBox "卡号不能为空,请输入!", 48, "警告"
        txtcardno.SetFocus
    Else
        txtSQL = "select * from student_info where cardno='" & txtcardno.Text & "'"
        Set mrc1 = ExecuteSQL(txtSQL, MsgText)
        '数据集中没有记录的情况
        If mrc1.EOF = True Then
            MsgBox "该卡没有注册,请重新输入!", 48, "提示"
            txtcardno.Text = ""
            txtcardno.SetFocus
'            mrc1.Update
'            mrc1.Close
        Else
        
            '判断是否上机了,一个卡不能重复上机;
            '如果已经上机,显示上机,若没有上机,进行正常上机
            '正常上机后将文本框中的数据添加到online_info表中
            
            
            '判断是否上机
            txtSQL = "select * from online_info where cardno='" & txtcardno.Text & "'"
            Set mrc2 = ExecuteSQL(txtSQL, MsgText)
            If mrc2.EOF = False Then
                MsgBox "该卡正在上机,不能重复上机!", 48, "提示"
            Else
                '正常使用的卡
                txtSQL = "select * from student_info where cardno='" & txtcardno.Text & "'and status='使用'"
                Set mrc3 = ExecuteSQL(txtSQL, MsgText)
                If mrc3.EOF = False Then
                    '将数据库总中的数据显示在文本框中
                    txtstudentno.Text = Trim(mrc3.Fields(1))
                    txtdepartment.Text = Trim(mrc3.Fields(4))
                    txttype.Text = Trim(mrc3.Fields(14))
                    txtstudentname.Text = Trim(mrc3.Fields(2))
                    txtsex.Text = Trim(mrc3.Fields(3))
                    Label24.Visible = True
                    txtOnLinedate.Text = Date
                    txtOnLinetime.Text = Time
                    txtcash.Text = Trim(mrc3.Fields(7))
    '                mrc3.Update
    '                mrc3.Close
    
                    '判断余额是否小于最小金额,若小于,需要充值后再继续上机,强制下机,此时最好弹出充值界面
                    '此时判断用户类型
                    txtSQL = "select * from basicdata_info"
                    Set mrc4 = ExecuteSQL(txtSQL, MsgText)
                    If mrc3.Fields(7) < mrc4.Fields(5) Then
                        MsgBox "余额小于最小限制金额,请充值后再上机!", 48, "提示"
                        '弹出充值窗口
                        frmrecharge.Show
                        SetParent frmrecharge.hWnd, Picture1.hWnd
'                        Exit Sub
                    End If
                Else
                    '数据集中有记录,但是该卡已经停用
                    txtSQL = "select * from student_info where cardno='" & txtcardno.Text & "'and status='不使用'"
                    Set mrc5 = ExecuteSQL(txtSQL, MsgText)
                    If mrc5.EOF = False Then
                        MsgBox "该卡已经注销,请重新输入!", 48, "提示"
                        txtcardno.Text = ""
                        txtcardno.SetFocus
    '                    mrc2.Update
    '                    mrc2.Close
                    End If
                End If
            End If
        End If
    End If
    
    '上机时将上机卡的数据同步至online_info表中
    Set mrc = New ADODB.Recordset
    txtSQL = "select * from online_info"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    mrc.AddNew
    mrc.Fields(0) = Trim(txtcardno.Text)
    mrc.Fields(1) = Trim(txttype.Text)
    mrc.Fields(2) = Trim(txtstudentno.Text)
    mrc.Fields(3) = Trim(txtstudentname.Text)
    mrc.Fields(4) = Trim(txtdepartment.Text)
    mrc.Fields(5) = Trim(txtsex.Text)
    mrc.Fields(6) = Trim(txtOnLinedate.Text)
    mrc.Fields(7) = Trim(txtOnLinetime.Text)
    mrc.Fields(8) = GetThisComputerName     '将计算机名同步到数据库的相应表格中
    mrc.Fields(9) = Now
    Label16.Caption = mrc.RecordCount + 1  '显示上机人数
    mrc.Update
    mrc.Close
    
     '上机时将上机卡的数据同步到line_info表中
     Set mrc6 = New ADODB.Recordset
     txtSQL = "select * from line_info"
     Set mrc6 = ExecuteSQL(txtSQL, MsgText)
     mrc6.AddNew
     mrc6.Fields(1) = Trim(txtcardno.Text)
     mrc6.Fields(2) = Trim(txtstudentno.Text)
     mrc6.Fields(3) = Trim(txtstudentname.Text)
     mrc6.Fields(4) = Trim(txtdepartment.Text)
     mrc6.Fields(5) = Trim(txtsex.Text)
     mrc6.Fields(6) = Trim(txtOnLinedate.Text)
     mrc6.Fields(7) = Trim(txtOnLinetime.Text)
     mrc6.Fields(12) = Trim(txtcash.Text)
     mrc6.Fields(13) = "正常上机"
     mrc6.Fields(14) = GetThisComputerName
     mrc6.Update
     mrc6.Close
     MsgBox "上机完成!", 48, "提示"
End Sub

未完待续O(∩_∩)O~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 31
    评论
机房收费管理系统 问题描述 结合我校计算机机房的运作模式,设计一种适合的收费管理系统,能够实现相关的人员检索,计时收费,管理汇总等功能模块。 开发环境 采用C或C++实现,VC++6.0 基本要求 主要功能模块: (1) 登录模块 (2) 上机管理模块 说明:上机登记时,余额不足3元或卡处于挂失状态,则拒绝登记。 每位同学的一次上机形成一条记录,每30秒遍历一次上机记录表,对表中所有正上机字段为TRUE的记录的上机用时增加30秒,同时减少上机卡表中的余额。 (3) 上机卡管理模块 (4) 充值挂失模块 (5) 查找统计模块:统计某天上机的总时数、每次上机的平均时数和机房的收入;某学生上机的次数、上机总时数、每次上机平均时间;挂失和查询余额。 参考的数据结构: 上机卡(卡号,姓名,专业班级,余额,状态),状态有:正常和挂失。 上机记录(卡号,上机日期,开始时间,上机用时,正上机,管理号代码) 上机记录表永久保存,用于事后查询和统计。 设计要求 1) 界面友好,输入信息符合逻辑:如上机时间设定在合理的时间范围。 2) 能从实践生活出发,设计合理的功能模块 3) 各类信息的数据结构明晰 4) 可根据自身生活体验添加相关功能模块。 拓展功能要求 鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。鼓励引入小型数据作为处理数据的来源,拓展知识面。
Java机房上机管理系统是一种用于管理机房上机的软件系统。它可以帮助机房管理员更好地管理机房资源,包括电脑的使用情况、电脑的维修情况等。下面是一个简单的Java机房上机管理系统的设计思路: 1. 系统功能设计 - 上机申请:学生可以通过系统提交上机申请,包括上机时间、使用电脑编号等信息。 - 电脑维修申报:学生可以通过系统提交电脑维修申报,包括电脑编号、故障描述等信息。 - 机房电脑管理:管理员可以通过系统管理机房电脑,包括电脑的添加、删除、修改等操作。 - 上机记录查询:学生和管理员可以通过系统查询上机记录,包括上机时间、使用电脑编号等信息。 - 维修记录查询:学生和管理员可以通过系统查询维修记录,包括电脑编号、故障描述等信息。 2. 系统架构设计 - MVC设计模式:将系统分为模型、视图和控制器三个部分,分别负责数据处理、用户界面和业务逻辑。 - 数据库设计:使用关系型数据库存储系统数据,包括学生信息、电脑信息、上机记录、维修记录等。 - 用户界面设计:使用Java Swing框架实现用户界面,包括登录界面、主界面、上机申请界面、电脑维修申报界面、机房电脑管理界面、上机记录查询界面、维修记录查询界面等。 3. 代码实现要求 - 标识符命名要符合规范,使用驼峰命名法。 - 代码要有注释,注释要清晰明了。 - 代码要有异常处理,避免程序崩溃。 - 代码要有单元测试,保证代码质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值