热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

机房收费系统上下机

前言:在十一结束的时候,机房收费系统的基本功能终于完成了,但因为自考的缘故,也没有一直写博客总结,今天就趁着闲

前言:在十一结束的时候,机房收费系统的基本功能终于完成了,但因为自考的缘故,也没有一直写博客总结,今天就趁着闲暇时间完成总结,完美收官。

机房收费系统的上下机是最基本的功能,简单来说,收费、统计等功能都是建立在上下机以及相连的数据库表之上的,没有上下机,其他都是空谈。

上机:上机很简单,流程就是操作员给要上机的用户上机,在用户名处输入学号,然后点击上机,将上机的用户从学生表中找出,并将部分数据传递给Online表中,从而完成上机。

流程图:
在这里插入图片描述

代码部分:
Private Sub cmdOnline_Click()Dim mrcbd As ADODB.RecordsetDim mrcol As ADODB.Recordset'下机按钮可用cmdOffline.Enabled = True'若卡号框为空If txtCardID.Text = "" ThenLabel14.Caption = "请输入卡号!"txtCardID.SetFocusExit SubElseIf Not IsNumeric(Trim(txtCardID.Text)) ThenLabel14.Caption = "请输入数字!"txtCardID.Text = ""txtCardID.SetFocusExit SubEnd IfEnd If'查询学生表中卡号列txtSQL = "select * from student_info where cardno='" & Trim(txtCardID.Text) & "'"Set mrcs = ExecuteSQL(txtSQL, MsgText)'第一次判断是否有用户If mrcs.EOF ThenLabel14.Caption = "没有该用户,请注册或核实信息是否正确!"txtCardID.SetFocustxtCardID.Text = ""Exit SubElse'第二次判断是否用户正在上机txtSQL = "select * from online_info where cardno='" & Trim(txtCardID.Text) & "'"Set mrcol = ExecuteSQL(txtSQL, MsgText)'如果用户正在上机If mrcol.EOF = False ThenLabel14.Caption = "该用户正在上机!"txtCardID.Text = mrcs!cardnotxtType.Text = mrcs!TypetxtSID.Text = mrcs!studentnotxtName.Text = mrcs!studentnametxtFaculty.Text = mrcs!departmenttxtGender.Text = mrcs!sextxtOnlineDate.Text = mrcs!DatetxtOnlineTime.Text = mrcs!TimelblUserName.Caption = UserNametxtBalance.Text = mrcs!cashExit SubElse'第三次判断用户余额是否充足'该处一定要用where来判断是对哪一列数据的对比txtSQL = "select * from student_info where cardno='" & Trim(txtCardID.Text) & "'"Set mrcs = ExecuteSQL(txtSQL, MsgText)txtSQL = "select * from basicdata_info "Set mrcbd = ExecuteSQL(txtSQL, MsgText)If Val(mrcs.Fields(7))

下机则是将要下机的用户从界面中"取消登陆的状态",从数据库Online表中删掉,再添加到line表中,并且通过Basicdata表中的计费数据,进行计算。之后根据用户所消费的金额,从余额中扣除金钱,从而更新学生表

下机代码:

Private Sub cmdOffline_Click()Dim mrcol As ADODB.RecordsetDim mrcl As ADODB.RecordsetDim mrcoloff As ADODB.RecordsetDim offlinetime As IntegerDim mrcbd As ADODB.RecordsetDim costtime As StringDim costday As StringDim alltime As StringDim unittime As String'判断是否输入卡号If txtCardID.Text = "" ThenLabel14.Caption = "请输入卡号!"txtCardID.SetFocusExit SubEnd If'查询online表中的卡号列txtSQL = "select * from online_info where cardno='" & Trim(txtCardID.Text) & "'"Set mrcol = ExecuteSQL(txtSQL, MsgText)'判断该用户是否正在上机If mrcol.EOF ThenLabel14.Caption = "该用户尚未上机!"txtCardID.SetFocustxtCardID.Text = ""Exit SubElse'消费时间计算costday = DateDiff("n", mrcol!ondate, Date)costtime = DateDiff("n", mrcol!OnTime, Time)alltime = Val(costday) + Val(costtime)txtSQL = "select * from basicdata_info "Set mrcbd = ExecuteSQL(txtSQL, MsgText)'判断是什么类型用户,从而进行计费If Trim(mrcol!cardtype) = "固定用户" ThentxtCostMoney = alltime / 60 * mrcbd!RateElsetxtCostMoney = alltime / 60 * mrcbd!tmprateEnd If'判断是否超过准备时间If costtime End Sub

总结:上下机其实就是对数据表中,信息的增加、修改或删除。
难点:下机消费时间与金额的计算,以及对之后表的更新,这期间逻辑一定要十分清晰。


推荐阅读
  • Windows服务与数据库交互问题解析
    本文探讨了在Windows 10(64位)环境下开发的Windows服务,旨在定期向本地MS SQL Server (v.11)插入记录。尽管服务已成功安装并运行,但记录并未正确插入。我们将详细分析可能的原因及解决方案。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • IneedtofocusTextCellsonebyoneviaabuttonclick.ItriedlistView.ScrollTo.我需要通过点击按钮逐个关注Tex ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 在使用 DataGridView 时,如果在当前单元格中输入内容但光标未移开,点击保存按钮后,输入的内容可能无法保存。只有当光标离开单元格后,才能成功保存数据。本文将探讨如何通过调用 DataGridView 的内置方法解决此问题。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
author-avatar
血玉残阳
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有