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

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

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

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


技术篇

       在实现功能的时候,有的东西以前接触的不是很多,像数据导出到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)
blank

相关推荐

  • 在总线周期的t1,t2,t3,t4状态,cpu_cpu总线分为

    在总线周期的t1,t2,t3,t4状态,cpu_cpu总线分为第一关:MIPS指令译码器设计要求我们设计译码器,那么首先要知道要指令的具体格式,通过查阅MIPS指令手册可以知道OPFuncSLT000000101010BEQ000100/ADDI001000/LW100011/SW101011/于是将获得的OP、Func和常数对比就行,相同输出1以下给出例子:第2关:定长指令周期—时序发生器FSM设计根据下图,知道次态和原态之间的关系。输入输出:法1:填写表格,生成表达式:

    2022年10月13日
  • awk 数组排序多种实现方法「建议收藏」

    awk 数组排序多种实现方法「建议收藏」由于awk数组,是关联数组。for…in循环输出时候,默认打印出来是无序数组。 [chengmo@localhost~]$awk’BEGIN{info=”thisisatest”;split(info,tA,””);for(kintA){printk,tA[k];}}’4test1this2is3a 如果需要按照顺序输出,通过

  • python删除文件中指定内容

    python删除文件中指定内容lines=[lforlinopen("file.txt","r")ifl.find("20150723",0,8)!=0]fd=open("file.txt","w")fd.writelines(lines)fd.close()开头是20150723的行删除

  • 风控模型的基础知识

    风控模型的基础知识风控模型根据设定的y变量与可获得的x变量不同,大致可以分为三类:即A卡,B卡,C卡。今天就让我们聊聊三者的区别。1、A卡(Applicationscorecard)A卡即申请评分模型,此类风控模型的目的在于预测申请时点(申请信用卡、申请贷款)未来一定时间内逾期的概率。Y变量的设定观察点为申请时点,定义为表现期内是否逾期。X变量一般只有客户填写的申请书信息,加上外部查询的数据与征信报告。2、B卡(Behaviorscorecard)B卡即行为评分模型,此类风控模型的目的在于预测使用时点(获得贷

  • 利用IAR Timeline工具测试delay函数执行时间

    利用IAR Timeline工具测试delay函数执行时间”要把大象放冰箱,总共分几步”,呵呵,写到本篇博客的时候突然想起小品宋丹丹说的那句经典台词了(俺们东北人儿对本山大叔的作品真是滚瓜烂熟了,搞的舍友还时不时跟我学上一学),哈哈,所以就索性给题目也加上了“几步”的说法,把复杂的事情简单化,也起到吸引人眼球的作用(当然本篇也是有实料的,进来的不会让你失望的,呵呵)。咳咳,至于到底是几步,是不是传说中的“三步”来,哈哈,那还得下面分解。。。  

发表回复

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

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