小感悟:
上下机是最后才完成的,之前一直感到很犯怵,不得不承认是让上下机给吓着了。原以为上下是最难处理的,完成了,才明白,和结账相比,上下机原来也不过如此。有时候,我们认为事情很难,很多时候是自己吓自己,其实事物本身并没有很难。相信自己,是最大的动力。
上机
上机涉及到三个表student表,online表,basicdate表,下面以表的先后使用关系介绍一下整个上机过程:
1、首先连接student表,判断卡号是否已注册
2、然后连接online表,判断卡号是否正在上机,如果上机,显示卡号信息,并统计上机人数
3、然后连接basicdate表,查看余额是否少于5元,如果少于5元,先充值再上机
4、最后,上机成功,显示上机信息,并将上机信息更新到online表中,并更新此时的上机人数。
下机
下机涉及到四个表,student表,online表,basicdate表,line表,下面也已表的先后使用顺序介绍一下下机的整体过程:
1、 首先连接student表,查看卡号是否已注册
2、 然后连接online表,查看该卡号是否正在上机,如果正在上机,填充下机信息并计算消费时间以及消费金额
消费时间:消费时间=上机时间-准备时间(连接basicdate表,获取准备时间)
消费金额:1>小于准备时间,不收费
2>以30分钟为单位,按用户的类型不同,收取不同的费用
代码如下:
'如果上机时间小于准备时间,则不收费
If Val(Count) < mrc3.Fields(4) Then
txtConsumeMoney.Text = "0"
txtBalance.Text = mrc1.Fields(7)
End If
'消费时间以30分钟为单位,先判断用户类型
If Int(txtConsumeTime.Text) Mod 30 = 0 Then
If Trim(txtType.Text) = "固定用户" Then
txtConsumeMoney.Text = Int(txtConsumeTime.Text / 30) * (Val(mrc3.Fields(0)) / 2)
Else
txtConsumeMoney.Text = Int(txtConsumeTime.Text / 30) * (Val(mrc3.Fields(0)) / 3)
End If
Else
If Trim(txtType.Text) = "固定用户" Then
txtConsumeMoney.Text = Int(txtConsumeTime.Text / 30 + 1) * (Val(mrc3.Fields(0)) / 2)
Else
txtConsumeMoney.Text = Int(txtConsumeTime.Text / 30 + 1) * (Val(mrc3.Fields(0)) / 3)
End If
End If
余额变动,更新到student表中
3、 然后连接basicdate表,查看余额是否少于5元,如果少于5元,提醒用户尽快充值
4、 下机成功,清除online表的此条信息,并连接line表,将用户信息更新到line表中