机房收费系统—总结

                机房收费系统差不多有一个半月的时间,总的来说过程很纠结很难过,总是在着急赶时间和烦躁中完成的。但是完成之后觉得当初遇到的问题都不算什么,反而带给自己更多的知识和解决问题的方法。想好好写篇总结纪念一下,但是想到的之后这么多,一些功能的实现前面的博客已经写过了。这是整体的总结:


         一、总体看懂菜单功能——用户权限。

          用户一共有三种权限,分别为一般用户、操作员和管理员。每个用户权限大小各不同。从设计系统的开始就应该有这种权限等级的意识,根据权限的不同而设计用户的功能。不要等最后调试的时候才做,当真正做一个大的系统的时候就太晚了。应该首先就具有全局观念。

                                     

    一般用户只负责管理查询学生上机的基本信息,权限最低,主要体现在“查”上,包括查看余额,上机记录。充值记录、上机状态等。

           操作员的权限就稍微大一些,可以对新用户注册、所有学生进行充值、退卡等操作,还可以查询此操作员的充值和退卡金额,对学生信息的查询不实局限在只单一的查,而是进行统计,有方向的查看,例如学生基本信息维护和学生上机统计信息查询两个窗体。操作员工作记录是对所有操作员工作的查询,也是统计系统全面或有方向的查询,不想一般用户那样单一。

           管理员权限最大,和钱有直接的接触。对学生上机的结账操作和账单查询,学生上机的基本数据的设定,查看正在值班教师,打印报表等,同时这种权限问题正在管理员设定的,当管理员注册一个用户时同时也规定了他的权限。

           而上下机操作和对学生进行强制下机是所有员工都可以使用的。并且员工都可是行使自身权限和比自身低的所有权限。

           只知道这个系统有这样三种权限,但是这样做的意义在哪里呢,在敲代码的时候并没有多想,只是实现了他们的每一个功能。我想权限的管理是为了更好的设计数据库吧,也或者是为了满足业务需求。

         

         二、界面设计。

           刚开始的时候就遇到了界面的问题,因为MDI窗体只能添加有对其属性的控件,所以一开始是借用的学生信息管理系统的方法,因为在MDI父窗体上添加picturebox控件作为框架容器,但是在整体运行时就遇到了麻烦,由于有正在操作的子窗体时别的窗体就不能获得焦点,只能一次打开一个功能窗体,使用完关闭在打开另一个子窗体,这无疑增加了麻烦。

          最后采用了添加一个form窗体作为容器控件,对这个窗体的属性做一些更改之后界面就更美观了,当再打开另一个子窗体时上一个就自动显示为最小化。当然这个方法并不是我想出来的,赵崇同学的博客:

    

        

           三、我的两次验收。

            这里最需要我的检讨。自己觉得拖得时间太长了,最后就不认真起来了,第一次验收的时候还有很多错误,我要是师傅会很严厉的骂我自己一顿的。师傅说敲这个系统不是为了完成它而是为了学习知识体会做系统的过程而做。很不耐心的回来改好了错误。但是从心里厌烦的报表还是出了问题,以至于我的两次验收都是很不光彩。

            回来做了很多的思考。包括设计到“钱”的问题。

            我出现的一些问题:

            因为所有的输入框都会直接的写入到数据库表中,所以对数据的类型就需要注意,所以在输入框输入时都应该有限制的,或者是长度或者是符号等,这里要回顾一下以前学过的ASCII表。

            退卡,我设计的是退卡时这个用户还存在,只是退还了所有剩余金额,而有的是把这个用户彻底从数据数中删除。如果用户正在上机就不能进行退卡操作,还有就是退卡和上下机的关系。

            结账,要注意是否还有正在上机的同学,如果有怎么办,这里应该给一个提示。

            到现在还在困惑我的一个问题还没有解决,就是怎么想网吧那样,可以在你最后几分钟提醒用户余额不足,不知道是怎么实现的一直在计算用户的消费还是?这是个大问题。

            

           四、学会代码复用。

              整个系统一共有四个窗体用到组合查询,四个窗体用到导出excel表,凡是查询的就会用MSFlexGrid表来显示结果,每个功能实现的代码都有一样的,这是为了减少代码的冗余和免得自己再敲一遍代码,我们可以采用模块思想。当再遇到这个功能时只需要调用即可。例如:组合查询中判断输入框是否为空,将连接符转化成数据库表中的字段名将选择的字段汉字转化成数据库中的字段等。功能怎么都是实现,为什么不让自己的代码简单一些呢。

     例如:

Public Function FieldName(strFieldName As String) As String
   Select Case strFieldName
       Case "卡号"
          FieldName = "cardno"
       Case "学号"
          FieldName = "studentNo"
       Case "姓名"
          FieldName = "studentName"
       Case "性别"
          FieldName = "sex"
       Case "系别"
          FieldName = "department"
       Case "年级"
          FieldName = "grade"
       Case "班号"
          FieldName = "class"
       Case "上机日期"
          FieldName = "ondate"
       Case "上机时间"
          FieldName = "ontime"
       Case "下机日期"
          FieldName = "offdate"
       Case "下机时间"
          FieldName = "offtime"
       Case "消费金额"
          FieldName = "consume"
       Case "余额"
          FieldName = "cash"
       Case "备注"
          FieldName = "status"
       Case "级别"
          FieldName = "level"
       Case "教师"
          FieldName = "UserID"
    End Select

End Function
      

             五、数据库。

     在刚开始的时候听了家长的话,找清了每个窗体与每个表的关系。之前也写过一篇别人看来都很恐怖的博客,因为实在很乱,关系只有我自己看的懂。在学习一点软工知识后觉得没有好好的对系统对分析没有自己亲自建数据库而遗憾。

 

             六、整理心态。

             我承认自己的心态很不好,在敲机房收费的日子我的心情总是伴随着问题的出现与解决而变化。遇到问题以为自己解决不了而烦恼,其实到了自己做总结的时候想想整个系统代码都是自己敲出来的还是有种有成就的感觉。在开始的时候总是对别人说不知道从哪开始就不开始,只有自己做了和做过了才知道做的事情带给自己的是什么,学到的是什么。希望这个系统让我在以后的日子里不会畏惧任何的学习。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值