机房收费管理系统 之 总结反思

机房开放收费管理系统后期总结反思

 

  在写了第一个机房收费管理系统功能分析表以后,我是这样想的,既然要模仿现在这个收费管理系统,那么就要了解它的功能,初步知道了功能,那如何实现这个功能,是什么技术支持,这些都好说,比较难找的就是这些功能,这些背后的东西,背后的联系,各自的细节处理等等这些东西都是需要好好考虑的。

就进行第一次分析后,我的步骤就是,按照后台操控、前台管理,分别走了这么一趟,测试过新卡注册、充值、刷卡上下机,各个权限的记录查询,结账,报表...

  我把凡是和数据打交道的窗体都初定为一个数据库中的数据表,这样数据处理起来就会简单一点,可是又有好多表关联很紧,于是我就把它们"合并同类项"了,最后定下来了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

        .CellAlignment = 4

        .TextMatrix(0, 0) = "卡号"

        .TextMatrix(0, 1) = "充值金额"

        .TextMatrix(0, 2) = "充值日期"

        .TextMatrix(0, 3) = "充值时间"

        .TextMatrix(0, 4) = "充值老师"

    End With

End Sub

 

3、如何限制文本框的输入字符数,其实这个功能用处很大的,也很简单就用到了一个textbox的属性,maxlength 属性。0 为默认。

 

4、一开始设想的时候没有把退卡和注册联系起来。

这样把退卡和注册联系起来,在后面的查找信息可以把退卡的学生直接排除掉。如果退过卡的学生需要再次上机也不会出现"该用户已注册"的错误信息。

 

5.在关于学生信息信息维护的好多个联合查找窗体中,这些联合的搜索条件是为了使搜索信息更精确,这样flexgrid控件就 只显示一行信息。这需要多个combobox 之间有个限制关系。

在关于操作员记录,学生上机记录等联合查询中,就需要控件能够显示多条数据了。

Option Explicit

Private Sub Form_Load()

    Dim i As Integer

    For i = 1 To 12

        Combo1.AddItem i

    Next i

End Sub

 

Private Sub Combo1_Click()

    Dim i As Integer

    Combo2.Clear            '这样就实现了在combo2中只去掉在combo1.text 的值。

    For i = 1 To 12

        Combo2.AddItem i

    Next

    Combo2.RemoveItem (Combo1.ListIndex)

End Sub

 

6、一些只能选的combox 控件值应该限制一下属性。style 属性。

使得只能选择而不能自己填写。

 

7.点选数据窗体(flexgrid 控件)中的某行数据,判断是否有一行数据被选中,myflexgrid.text 是指当前选中行的首列字段值。可以根据myflexgrid.text 这个字段值来判断。

 

8、在基本数据设定这个窗体里,我是提前写进了数据,就一条数据,以后直接在这个基础上进行数据的更改操作。

 

9.已退卡的  再次注册,后面的查询就要多添加一个限制条件。

 

10、发现把txtsql设成公共变量,给我前期实现功能、后期调试程序,造成了很大的不便。在模块的使用,变量的使用上还存在不足。有不少简便的算法都想不到,使得编写出来的代码显得过于臃肿。

 

总结:整体的来说,通过这十多天对于这个机房收费管理系统各个功能的实现,发现了很多问题。

1、自身对整个工程的进度缺乏掌控,以致进度比较慢,到近些天才做完,要知道像这种系统还是很小的呢,想来做那些大工程的时候是需要很强毅力的。

2、在写代码的时候,感觉这一行行代码从自己拇指间流过,感觉不错,可是看看这一屏幕的代码,是那么的臃肿,其中不乏好多重复的代码,从一个程序员的基本素质看,代码的复用率不高,自然效率就上不去,其中会存在很多问题,这一通下来,感觉自己的代码虽然能干活,但是不像个样子。自己VB学的也不扎实,进来在论坛里发帖提问,发现了有一个人用到自定义类型来回帖,突然有点返回去看陈伟老师视频的冲动,真的该好好返回去看看那些视频了,真正掌握了一门语言,在其中自由自在、随心所欲的解决问题,是那样的顺手,那样的自然。

3、对于数据库的知识,目前做的这两个大一点的实例,还只是用到的初级的对结果集的操作,还有对于建立表时,其中的关系设置,游标,锁 这样一些东西都还没有涉及到呢。不过对于结果集的最多体会还是处理删除操作,因为这个删除操作需要判断当前结果集里是否有数据。还就是给表、字段、变量,起名字的时候还是生疏,有一部分还是不合起名规则的。

4、初步了解了一点把数据库中数据映射显示出来的报表控件的使用。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
机房收费管理系统 问题描述 结合我校计算机机房的运作模式,设计一种适合的收费管理系统,能够实现相关的人员检索,计时收费管理汇总等功能模块。 开发环境 采用C或C++实现,VC++6.0 基本要求 主要功能模块: (1) 登录模块 (2) 上机管理模块 说明:上机登记时,余额不足3元或卡处于挂失状态,则拒绝登记。 每位同学的一次上机形成一条记录,每30秒遍历一次上机记录表,对表中所有正上机字段为TRUE的记录的上机用时增加30秒,同时减少上机卡表中的余额。 (3) 上机卡管理模块 (4) 充值挂失模块 (5) 查找统计模块:统计某天上机的总时数、每次上机的平均时数和机房的收入;某学生上机的次数、上机总时数、每次上机平均时间;挂失和查询余额。 参考的数据结构: 上机卡(卡号,姓名,专业班级,余额,状态),状态有:正常和挂失。 上机记录(卡号,上机日期,开始时间,上机用时,正上机,管理号代码) 上机记录表永久保存,用于事后查询和统计。 设计要求 1) 界面友好,输入信息符合逻辑:如上机时间设定在合理的时间范围。 2) 能从实践生活出发,设计合理的功能模块 3) 各类信息的数据结构明晰 4) 可根据自身生活体验添加相关功能模块。 拓展功能要求 鼓励采用Turbo C/C++、MFC等开发工具,实现彩色或图形操作界面。鼓励引入小型数据作为处理数据的来源,拓展知识面。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一道光_

1分也是爱,鼓励鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值