本篇博客适合已经做完上下机的同学、本篇主要讲下机时、上机费用的计算

——————本文若有错误请及时指出——————

(一)流程图如下——简单

左图为计算

上机费用的流程图

我把他成了一个过程

在下机中调用

左图是简版的

数据流程图

(二)输入输出数据

输入

             

上机时间到下机时间:

上机日期时间是2013年11月12日19:03:54

下机日期时间是2013年11月12日20:03:54

那上机时间到下机时间就是

1小时或者60分钟

基本信息

基本信息我们运算只用到一部分、如图

输出

             

时间:

这个输出的时间的单位是小时、格式按照半小时为单位算

例:0.5  1   1.5   2   2.5

上机费用:

这个输出单位是元、格式按照1元为单位

(三)计算


我尽可能的详细写了计算的流程、方便大家理解、我画了详细的流程图、如图

time1是输入的时间

time2是输出的时间

money是输出的钱


1.准备时间
如果上机时间小于准备时间、有可能你还没上机呢、从客户的角度我认为是不应收费的、但是从商家的角度看、刷卡了代表已经交易了、而且网吧只要你上机就马上消费一小时的钱、这里算做上机最小金额
2.减去准备时间
就是减去客户没上机的准备时间、算出真正的上机时间
3.递增时间
个人理解、如果递增时间是5分钟那么、上机时间的进制就是5分钟、所以tiem1是上机时间、time2是根据递增时间算出的、要收费的时间。

4.最小上机时间
看看收费的时间是否小于最小上机时间、如果小于、time2就改成最小上机时间。


5。算出有多少个半小时、因为是按照半小时已收费的。算出收费金额money。

6.比较一下收费的钱是否小于上机最小金额、如果小于的话就改成上机最小金额

(四)代码

看了流程图之后相信大家已经对计算流程有了认识、下面是整个过程的代码、有详细的备注、每个阶段都详细的划分了、相信大家很容易理解。

'计算下机收费的过程
Private Sub ConsumeMoney()'为连接数据库定义的Dim txtsql As String '放select语句的字符串函数Dim mrc As ADODB.Recordset '定义mrc为记录集'注释:——记录集——就是记录的集合、是查询出来的数据生成一个临时的虚拟表Dim msgtext As String '运行查询报错的文字容器'用于记录基本信息中的记录Dim Note0 As Long '固定用户半小时的费用Dim Note2 As Long '递增单位时间Dim Note3 As Long '至少上机时间Dim Note4 As Long '准备时间Dim Note5 As Long '上机最少金额'定义时间Dim Time1 As CurrencyDim Time2 As Currency'记录金钱Dim Money As Currency'————————————————————'计算上机开始到结束的时间(开始的日期时间到结束的日期时间算出相差分钟数)'txtOnDate.Text = 开始日期'txtOnTime.Text = 开始时间'txtUnderDate.Text = 结束日期'txtUnderTime.Text = 结束时间Time1 = DateDiff("m", txtOnDate.Text & " " & txtOnTime.Text, txtUnderDate.Text & " " & txtUnderTime.Text)'————————————————'读取基本信息的内容txtsql = "select * from DataSetting_Info"Set mrc = executeSQL(txtsql, msgtext)If mrc.RecordCount <> 0 ThenNote0 = Val(mrc.Fields(0))Note2 = Val(mrc.Fields(2))Note3 = Val(mrc.Fields(3))Note4 = Val(mrc.Fields(4))Note5 = Val(mrc.Fields(5))ElseMsgBox "下机错误、因为基本数据为空", , "下机错误"End If'——————————————————————'判断时间是否小于准备时间、如果小于、直接输出If Val(Time1) < Note4 ThentxtUse.Text = 0.5txtMoney.Text = Note5Exit SubEnd If'计算减去准本时间的上机时间Time1 = Val(Time1) - Note4'——————————————————————'按照递增时间算出应收费的消费时间Time2 = (Fix(Val(Time1) / Note2)) * Note2'判断time2是否小于最小上机时间If Val(Time2) < Note3 ThenTime2 = Note3End If'——————————————————Time2 = Val(Time2) / 30 '有几个半小时If Val(Time2) > 1 Then '如果时间大于半小时则If Fix(Time2) <> Val(Time2) Then '判断是不是整数/如果不是整数则加1Time2 = Fix(Time2) + 1End IfElse '小于半小时按照30分钟算Time2 = 1End If'————————————————————————Money = Fix(Val(Time2)) * Note0 '算出上机消费金额'判断金额是否小于最小金额If Val(Money) < Note5 ThenMoney = Note5End If'——————————————————'输出Time2 = Time2 / 2 '半小时换算成小时If Time2 < 1 ThentxtUse.Text = "0" & Time2 '不知道为啥1除以2=.5所以只能这么写txtMoney.Text = MoneyElsetxtUse.Text = Time2txtMoney.Text = MoneyEnd IfEnd Sub

其实下机本来可以写的简单点、但是常常想起米老师的那句不能凑合、所以!——bu neng cou huo!

下一篇:机房收费系统简单的逻辑(下)组合查询我不愁

———————今天复习了下小学的加+减-乘*除/————————chenchen

机房收费系统之简单的逻辑(上)下机费用运算相关推荐

  1. 机房收费系统【VB版】——上下机

    前言: 机房收费系统三大难点之一--上下机,需要一点一点开始分析,不断完善自己的逻辑,然后对照逻辑[查表--更新--显示],编写代码. 逻辑流程图: 注意 计算消费金额: 总结: 其实这里自己应该反思 ...

  2. 机房收费系统【VB版】——选择下机

    前言: 今天实现机房收费系统--一般用户--学生上机状态查看--选中全部/部分下机部分收获很多!多亏了看光哥的博客,写的很清楚机房收费系统--上机状态查询之下机 过程: 要显示的表格式写查询,就会出来 ...

  3. 机房收费系统验收报告

    1.项目信息   项目名称:机房收费系统   项目开始时间:   项目结束时间: 2.项目概述   该项目适用于做学校机房收费系统,适合学生的上下机,各种权限的管理员的不同操作,以及金额的日结算和月结 ...

  4. 机房收费系统合作版(四):一路走来感谢有你相伴

    [前言] 伴随着1月25日米老师首次验收以及1月31日学术再次验收,鹅思晗小组的机房收费系统合作版终于画上一个圆满的句号. 回想这两个大牛和一只小菜的软件开发之旅还是蛮有趣的:特记于此,以此来纪念我这 ...

  5. 机房收费系统系列二:MDI子窗体和主窗体显示

    在机房收费系统中,frmmain作为MDI的主窗体,想要在MDI主窗体上添加控件,picture控件是最好的伴侣,但是在添加了picture控件以后,问题也就随之而来了.点击子窗体的时候,子窗体被&q ...

  6. 《机房收费系统》软件需求说明书

    1引言 1.1编写目的 主要说明机房收费系统用户的各个方面的工作需求,包括教职工的值班结账,学生的上下机等.预期读者是系统分析员和开发人员. 1.2背景 说明: a. 待开发的软件系统的名称:机房收费 ...

  7. 机房收费系统之软件需求说明书

    1.引言 1.1编写目的 本软件的需求说明书是为了使用户和软件开发者对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础文档.是对需求分析的各项结果进行了总结详细描述了本软件的规格,并且给出 ...

  8. 机房收费系统——软件需求说明书

    软件需求说明书 1引言 1.1编写目的 软件需求说明书是需求分析阶段的一个文档,是对软件目标及范围的求精和细化,深入描述软件功能及软件的约束范围,使用户和软件开发者对该软件的初始的规定有个大概的了解, ...

  9. 机房收费系统——上下机

    自学生管理系统以后,进入了机房收费系统,开始自己真的很抵触这个东西,因为没有源码,只能靠自己了.对代码没有亲和力的我,只能硬着头皮硬闯.下面看看就讲讲我的上下机的辛酸路吧! [分析] 界面:很简单,只 ...

最新文章

  1. linux内核支持硬盘,Intel 10nm桌面版还是来了:Linux内核已支持
  2. python代码编辑器排行榜-写 Python 哪个编辑器 / IDE 最好用?
  3. pycharm如何修改背景成护眼色和字体大小
  4. 心得体悟帖---17、于迷茫低落处找到本心
  5. IPRO_DOCXCC_EXTRACT_PARTBODY
  6. java锁性能对比_提高Java的锁性能
  7. python中fetchall_Python连接MySQL并使用fetchall()方法过滤特殊字符
  8. 这一年多来,阿里Blink测试体系如何从0走向成熟?
  9. Flask笔记-session安全问题(避免任务重复提交)
  10. 基于Quartus II+ModelSim SE的后仿真(Verilog版)
  11. PDF转Word的免费软件推荐
  12. 2019互联网寒冬之面试心得
  13. java 随机生成姓名_java生成随机姓氏中文人名
  14. 学习笔记 Tianmao 篇 FragmentTabHost (TabHost升级版)
  15. 一群阿里码农的公益实践:用技术禁毒、打拐
  16. 基于Python实现并测试Modularity算法
  17. POI导出execle javaweb
  18. 编写爬取糗事百科信息爬虫代码学习笔记
  19. python 斗图图片爬虫
  20. .xml配置文件中The reference to entity serverTimezone must end with the ';' delimiter.错误

热门文章

  1. 【深度学习】顶刊TPAMI 2022!基于不同数据模态的行为识别:最新综述
  2. html帮助文件导入天正,天正建筑基础教程:天正建筑导入导出设置
  3. 面试题-实施工程师2
  4. 新思路计算机二级考试题库软件,新思路等考通二级Visual Basic
  5. 若依前后端分离框架学习-3:获取菜单
  6. 2020年Redis系列面试题详解
  7. windows C盘实际可见文件的大小远小于C盘显示的已用容量
  8. C语言 局部变量和全局变量
  9. matlab车牌匹配时读取,基于Matlab的车牌识别(完整版)详解.doc
  10. 如何用ghost备份linux,Linux如何用Ghost备份Linux系统?