机房收费系统——再回首「建议收藏」

机房收费系统——再回首「建议收藏」机房收费系统——再回首

大家好,又见面了,我是你们的朋友全栈君。

机房收费系统陆陆续续都要结束了,回顾自己敲机房的经历,一路上真的收获了不少。


技术篇

       在实现功能的时候,有的东西以前接触的不是很多,像数据导出到Excel,组合查询,做报表等等,不过我们还是通过自己的思考和网络上的知识做到了。下面就具体分享一些具体的小细节

1.下手之前多一份思考

      在调用数据库的时候,我们大多用的是select语句,除了要查询的内容外,更新,删除添加都也是先用select语句,然后再用mrc.AddNew , mrc.Delete , mrc.Update等,在看数据库视频的时候,老师很详细的讲过每一种语句的使用方法,而且在模块里也是这么写的

 If InStr(“INSERT,DELETE,UPDATE”, UCase$(sTokens(0))) Then
        cnn.Execute SQL
        MsgString = sTokens(0) & “query successful”
    Else
        Set rst = New ADODB.Recordset
        rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
        Set ExecuteSQL = rst
        MsgString = “查询到” & rst.RecordCount & “条记录”
    End If

在代码中也写到了关于Insert,delete的内容,所以我们在遇到一些能使用update,delete 或是 insert 语句的时候,也可以试着直接使用一些这个语句。

比如说在添加和删除用户的窗体中,想要删除某一个用户,就可以这么写

    txtSQL = “delect User_Info where “
    Call ExecuteSQL(txtSQL, msgText)

添加一个新用户时

   txtSQL = “insert into User_Info values(‘” & txtUser.Text & “‘,'” & txtPWD.Text & “‘,'” & comboUserLevel.Text & “‘,'” & txtName.Text &  _                          “‘,'” & Head &  “‘)”
    Call ExecuteSQL(txtSQL, msgText)

更新某个用户信息

    txtSQL = “update User_Info set UserID = ‘ “

   Call Executesql(txtSQL, msgText)

这样就省去了很多代码,而且节省了很多时间,还避免了插入的数据跟数据库中的字段不对应的错误。

2.对功能不断完善

以注册用户信息为例,

        首先注册卡号为 “1011”的用户,用户信息为张三的个人信息,用了一段时间,张三退卡了,那么1011这个卡号还可以再次注册,而且用户信息为李四的信息,这样的情况可以吗?

        这个问题说明我们的程序还不够完善,所以可以多加一些限定条件,比如说

<pre name="code" class="vb"><span style="font-size:14px;">    txtSQL = "select * from student_Info where cardno= '" & Trim(txtCardno.Text) & "'"    '查询卡号
    Set mrc = ExecuteSQL(txtSQL, msgText)
    If mrc.EOF = False Then
        If Trim(mrc.Fields(10)) = Trim("不使用") Then                    ’判断是否已经退卡
            A = MsgBox("此卡已注销,是否要激活?", vbYesNo + vbQuestion, "提示")            '如果已退卡,询问是否要激活     
            If A = vbYes Then
                txtSQL = "update student_Info set status= '" & Trim("使用") & "' where cardno = '" & txtCardno.Text & "'"
                Call ExecuteSQL(txtSQL, msgText)
                Exit Sub
            End If
        End If</span>
<span style="font-size:14px;">    End If</span>



通过以上代码也可以看出,在这中条件下,卡号和用户是一对一的关系。当然还有其他的处理方法,这只是其中一种,我觉得只要合理就可以。

3.多次重复的代码该怎么办

        面向对象的一个好处就是封装好的对象可以服用,我们在敲代码的时候,不妨也可以这么想,如果一段代码总是重复实现,是不是可以写成一个公共的函数来调用呢?

        比如说想要清空注册窗体中的内容,是直接就写  text1.Text = ” ”  呢,还是有其他更好的办法。这是在贾文静同学的博客中看到的一种办法

<span style="font-size:14px;">    For Each ctrl In Me.Controls
        If TypeOf ctrl Is TextBox Then
            ctrl.Text = ""
        End If
    Next</span>


这里用了一个循环语句,就做到了,而且还避免了遗漏某些文本框的可能。

还有就是在优化的时候,比如说注册用户时班级填错了

首先是txtClass. SetFocus,

然后是txtClass.SelStart = 0
            txtClass.SelLength = Len(txtCardno.Text)

其中每一个信息都有可能填错,所以也可以把这几行代码拿出来单独定义为一个函数再调用。


程序中还有很多细节值得我们去思考,去优化,我们可以做的更好。


经验篇

1.just  to do it

        记得刚开始敲机房的时候,就一个登陆窗体就做了好几天,代码检查了一遍又一遍,就是登陆不了,再加上这是第一次自己敲代码,很受挫,就觉得自己做不下去了,就因为这个还跟师父聊了一晚上,于是又有不得不再继续进行,这不自己也做出来了吗!所以有时候不能因为一点点困难就想到要放弃,没有什么事是过不去的,世上无难事,只要肯登攀!

2.学习生活化

        一开始接触机房,我们肯定对这个系统不是很了解,尤其是像一般用户,操作员,管理员的职能范围还不同,所以我们可以静下来想想,生活中的很多地方都跟我们这个很相似,就像咱们图书馆的上机系统。

        咱们去图书馆上网,在屋里的老师就相当于一般用户,可以执行一些简单的查询功能。当我们的卡里余额不足时,就得去新图书馆找专门的老师充值,这个老师就相当于我们的操作员,可以注册,对用户充值,并执行一些相应的查询。再高一级的负责人就相当于管理员,可以添加,删除工作人员,像一般用户,操作员,管理员等,并对相应的数据进行结账,日结账单反映了一天的收益情况,周结账单的记录就反映了一周的收益情况,管理者可以根据这一周的情况进行分析,并对接下来的工作作出指导。

        我们也可以把这个系统和网吧的收费联系对比,也可以是其他的,不管怎么理解,合理就好。


下面是对机房整体的回顾,还有每个窗体中用到的数据库中的表,有的窗体中一个功能就可能用到三四张表,所以要好好分析分析,一个都不能落下。

机房收费系统——再回首「建议收藏」

机房收费系统——再回首「建议收藏」

里面的信息可能还有不完善的地方,还请大家多多指教。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105788.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • docker基础:私库系列:再探Harbor:(4) https方式的私库管理

    docker基础:私库系列:再探Harbor:(4) https方式的私库管理在前面的介绍中,缺省使用了http的方式,而考虑安全的角度,容器的仓库在生产环境中往往被设定为https的方式,而harbor将这些证书的创建和设定都进行了简单的集成,这篇文章来看一下在harbor下如何使用https的方式。

  • 2022 CCF中国开源大会会议通知(第四轮)[通俗易懂]

    2022 CCF中国开源大会会议通知(第四轮)[通俗易懂]2022CCF中国开源大会(CCFChinaOSC)拟于2022年8月20日至21日在陕西省西安高新国际会议中心召开。大会由中国计算机学会(CCF)与开放原子开源基金会主办,CCF开源发展委员会、西安电子科技大学承办,西安电子科技大学计算机科学与技术学院(国家示范性软件学院)具体落实,西安市智能软件工程重点实验室负责实施,得到西安高新区管委会的大力支持,西安软件园发展中心具体执行。大会由华为技术有限公司作为白金赞助商,阿里巴巴集团、汇丰科技、东软集团股份有限公司、江苏引跑网络科技有限公司作为赞助商。本届

  • 微信公众平台开发教程Java版(六) 事件处理(菜单点击/关注/取消关注)

    微信公众平台开发教程Java版(六) 事件处理(菜单点击/关注/取消关注)前言:事件处理是非常重要的,这一章讲讲常见的事件处理 1、关注/取消关注 2、菜单点击事件类型介绍:在微信中有事件请求是消息请求中的一种。请求类型为:event 而event事件类型又分多种事件类型,具体分 关注:subscribe 取消关注:unsubscribe 自定义菜单点击:CLICK 根据上面的类型分类可建对应的常量…

  • java实现快速排序图解_快速排序图文详解

    java实现快速排序图解_快速排序图文详解快速排序快速排序法介绍图解代码理解快速排序法介绍快速排序(QuickSort)是对冒泡排序的一种改进,基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。图解代码理解publicclassQuickSort{//从小到大排序publicvoidquickSort(intleft,intright,

    2022年10月21日
  • C语言飞机游戏

    C语言飞机游戏300行代码实现最简易的飞机小游戏,简单有趣,快来试试

  • ResNet18-TensorFlow[通俗易懂]

    ResNet18-TensorFlow[通俗易懂]1、ResNet代码#-*-coding:utf-8-*-“””CreatedonWedFeb2619:38:012020@author:HongyongHan”””importtensorflowastffromtensorflowimportkerasfromtensorflow.kerasimportlayers,SequentialclassBasicBlock(layers.Layer):#初始化函数#fil

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号