机房开放收费管理系统—后期总结反思
在写了第一个机房收费管理系统功能分析表以后,我是这样想的,既然要模仿现在这个收费管理系统,那么就要了解它的功能,初步知道了功能,那如何实现这个功能,是什么技术支持,这些都好说,比较难找的就是这些功能,这些背后的东西,背后的联系,各自的细节处理等等这些东西都是需要好好考虑的。
就进行第一次分析后,我的步骤就是,按照后台操控、前台管理,分别走了这么一趟,测试过新卡注册、充值、刷卡上下机,各个权限的记录查询,结账,报表...
我把凡是和数据打交道的窗体都初定为一个数据库中的数据表,这样数据处理起来就会简单一点,可是又有好多表关联很紧,于是我就把它们"合并同类项"了,最后定下来了8个表,可是经过这个收费系统各个功能的一通儿实现后,发现这几个表根本不够,有的表中缺少一些其他的数据说明,于是我就增加几列来存储那些数据。有的数据没地儿存储,那只有新建表来存放这些数据啦,难不成让这些数据 "露宿街头"吧~ 。
我认为针对这个系统,了解各个功能窗体还主要是用于分析建表,对于数据库编程来说,主要对象还是数据库里数据的增删改查的基本操作。同样,这些简单的操作叠合在一起就会有金字塔般的效果。很神奇的哈~~
就这样,清点一下 总共是10各表。
其中的表的字段名定义很多不规范的,还需要好好总结,学习。
表1 Rguser_info(注册学生信息/学生的基本信息/学生的上机消费/余额信息)注:在这个表里增加了注册老师这一表项。
学号 | 姓名 | 系别 | 年级 | 班级 | 卡号 | 余额 | 性别 | 状态 | 备注 | 注册老师 |
Student_id | student_name | Subject | grade | class | Card_no | Blance | Sex | Student_state | Remark | Rg_Teacher |
表2 ChargeMo_info(学生充值信息/收取金额查询)
卡号 | 充值金额 | 充值日期 | 充值时间 | 充值教师 | 结账状态(未/已结帐) | 写入结账状态的日期 (用于后面的结账报表) |
Card_no | Charge_amount | Charge_date | Charge_time | Charge_teacher | Close_state | Close_date |
表3 CloseMo_info(退还学生金额信息,退卡信息)
卡号 | 退还金额 | 退还日期 | 退还时间 | 结账老师 | 结账状态() |
Card_no | Close_amount | Close_date | Close_time | Close_teacher | Close_state |
表4 Operator_info(操作员工作记录查询)
序号 | 教师 | 级别 | 上机日期 | 上机时间 | 下机日期 | 下机时间 | 机器名 |
Serial_no | Teacher_name | Level_no | Rg_date | Rg_time | Exit_date | Exit_time | Computer_name |
表5 ModifyOperator_info(添加、删除操作员)
用户名 | 用户级别 | 密码 | 姓名 | 开户人 |
Yhm | Level_no | password | xm | khr |
表6 StudentRcd_info(学生上机记录)
卡号 | 姓名 | 上机日期 | 上机时间 | 下机日期 | 下机时间 | 消费金额 | 余额 | 备注 |
Card_no | Student_name | login_date | login_time | Down_date | Down_time | Expense | Blance | Remark |
表7 OndutyOperator_info(正在值班老师查询)
教师 | 级别 | 登录日期 | 登录时间 | 在线状态 | 机器名 |
teacher_name | Level_no | Login_date | Login_time | Teacher_state | Computer_name |
表8 SetBasedata_info(基本数据设定)
固定用户半小时消费 | 递增时间 | 最少时间 | 准备时间 | 最少金额 |
Half_cost | Time_addstep | Time_atleast | Time_getready | Money_atleast |
表9 DayCheckout_info(日结账报表)
上期充值卡余额 | 当日充值总额 | 当日消费 | 当日退款 | 本期充卡余额 | 备注 |
Lastcharge_blance | Todaycharge_blance | Today_expense | Today_close | Thischarge_blance | Ramark |
表10 WeekCheckout_info(周结账报表)
上期充值卡余额 | 本期充值总额 | 本期消费金额 | 本期退款金额 | 本期充值卡余额 | 备注 |
Lastcharge_blance | Thischarge_amount | Thisexpense_amount | Thisclose_amount | Thischarge_blance | remark |
表9和表10 是新增的表,主要是针对后面的报表打印,要使用GRD++Report 控件,如果单独有两个表来存储相关的数据,那会很省力。
接下来说说,在这个收费管理系统内部编码的过程遇到的一些问题。
1.问题:出现学生消费金额为null值不可读,这些问题出于未正常结账,客户端非正常关闭,这些信息多是因为调试阶段出现问题。
2、问题:显示记录信息的控件会"信息滞留",就是在你进行下一个操作的时候还回现实着上一个学生的信息。这样容易发生错误。只要在change过程里写一个清空,然后再初始化一下。
解决方法如下:
Private Sub txtCardno_Change()
myflexgrid.Clear
With myflexgrid