机房收费(一)之上下机

机房收费(一)之上下机,第1张

概述(一)概览        学习机房收费时,当我们对它有个大概了解,能够理清基本内在逻辑关系以后,就该动手 *** 作了。我刚敲得的时候,逻辑还比较混乱,以为大概都明白,其实不然。对上下机这部分看法也一直停留在它太难,完全不知道怎么办的阶段,耽误了很多时间,其实不管看起来多难的内容,都一定要动手实践,动手的过程就是很好的学习过程。        学习上下机之前,我们需要知道上下机的按钮怎样可以添加到MDI窗 (一)概览

学习机房收费时,当我们对它有个大概了解,能够理清基本内在逻辑关系以后,就该动手 *** 作了。我刚敲得的时候,逻辑还比较混乱,以为大概都明白,其实不然。对上下机这部分看法也一直停留在它太难,完全不知道怎么办的阶段,耽误了很多时间,其实不管看起来多难的内容,都一定要动手实践,动手的过程就是很好的学习过程。

学习上下机之前,我们需要知道上下机的按钮怎样可以添加到MDI窗体上,其实就是在窗体上添加一个pictureBox控件,其他 *** 作则都是在pictureBox上进行。

学习上下机,我们需要先通过原程序分析该程序的内在逻辑,初步了解程序是以怎样的逻辑与顺序在运行,再看它实际运行的效果,最后对上下机画一个简单的流程图或导图(这一阶段动手画图很重要)。当完成对上下机的流程学习后,代码自然就顺理成章了。

(二)导图
(三)思路分析 1.上机

上机部分,我们的大概思路是:首先判断卡号文本框是否为空,若是,提示,若否,判断该卡号是否注册(存在),若否,给出提示,若是,判断该卡号是否正在上机,若是,提示,若否,查看数据库中该卡号用户的余额是否充足,若否,给出提示,若是,允许上机,此时上机成功。

总之,上机需满足的条件就是:1.卡号不为空 2.卡号已注册 3.该卡号未上机 4.余额充足

2.下机

下机部分的大概思路和上机有很大相似之处,首先判断卡号文本框是否为空,若是,提示,若否,判断该卡号是否注册(存在),若否,给出提示,若是,判断该卡号是否正在上机,若否,提示,若是,允许下机,此时下机成功。

总之,下机需满足的条件就是:1.卡号不为空 2.卡号已注册 3.该卡号已上机 4.余额充足

(四)其他 1.计算消费时间(t) 计算消费时间的目的是为计算消费金额做铺垫。在这里,适用datediff函数。 datediff函数 作用:返回两个日期之间的差值。 语法:DateDiff("时间数据类型(年、月、日等 )",开始时间,结束时间) 时间数据类型举例:年(yy或yyyy) 月(mm或m) 日(dy或y) 小时(hh) 分钟(n或mi) 秒(s或ss) 消费时间

(注:一定要将日期和时间都进行比较)

(1) t=当前时间-登录时间

代码如下:

contime = DateDiff("n",Onlmrc.FIElds(9),Format(Now(),"yyyy-mm-dd hh:mm:ss"))
(2)t=( 当前日期-登录日期)+( 当前时刻-登录时刻
代码如下:
Time1 = DateDiff("n",Trim(txtOndate.Text),Trim(txtOffdate.Text))Time2 = DateDiff("n",Trim(txtOntime.Text),Trim(txtOfftime.Text))contime = Val(Time1 + Time2)
2.计算消费金额(m) 概念

下机部分的难点在于计算消费金额,在这里主要涉及到几对概念:

(1)用户分类:固定用户,临时用户

(2)消费金额与时间的关系:消费时间,准备时间,至少上机时间,递增单位时间

(3)下机方式:正常下机,强制下机

具体分析

(1)固定用户和临时用户由于单位费用不同,所以当消费时间超过至少上机时间时,要分开计算,但计算方法一致。

(2)计算

0<消费时间<=准备时间,m=0

准备时间<消费时间<=至少上机时间,m=单位金额*至少上机时间

消费时间>至少上机时间,m=(上机时间-准备时间)/递增单位时间*单位金额

(3)当用户余额充足,可以自己选择时间下机

当用户余额不足,系统会强制用户下机(此时需要程序利用timer事件,每固定时间比较该账户余额与最低余额之间的关系,一旦账户余额<最低余额,便强制用户下线。)

实际 *** 作

1.计算消费金额时,常用到round函数。

round函数

作用:按指定的位数对数值进行四舍五入

语法:round(需要四舍五入的数字,四舍五入后数字的目标位数)

2.计算消费金额的代码:

If contime <= Basmrc.FIElds(4) Then            '消费时间<=准备时间      Consume = 0ElseIf contime <= Basmrc.FIElds(3) Then        '消费时间<=至少上机时间       If txtType.Text = "固定用户" Then       '固定用户消费                                               '消费金额=消费时间/60分钟 * 单位金额           Consume = Basmrc.FIElds(0) / 60 * Basmrc.FIElds(3)       Else                                    '临时用户消费           Consume = Basmrc.FIElds(1) / 60 * Basmrc.FIElds(3)       End IfElseIf contime > Basmrc.FIElds(3) Then         '消费时间>至少上机时间       If txtType.Text = "固定用户" Then                                               '计算消费金额时四舍五入           Consume = Round(((contime - Basmrc.FIElds(4)) / 60) * Basmrc.FIElds(0),2)       Else           Consume = Round(((contime - Basmrc.FIElds(4)) / 60) * Basmrc.FIElds(1),2)       End IfEnd If
(五)小结 我的上下机过程真的是很曲折,错误连连 ,但正因如此,我对上下机的感受才更加深刻,也查找了更多的资料,尝试了更多的解决办法。每一个学习阶段,我们都将遇到很多问题,这便是我们学习中宝贵的财富。 而上下机部分远没有我们想象中的困难,理清逻辑关系,一切问题就会迎刃而解。 总结

以上是内存溢出为你收集整理的机房收费(一)之上下机全部内容,希望文章能够帮你解决机房收费(一)之上下机所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1266448.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存