说完了经验,再谈谈技术方面,其实对于技术,师哥师姐们都已经写了好多博客,这也是我在敲机房几乎没写这方面的博客的原因,不过别人的再好也是别人的,下面说说自己的。

(一)数据库的设计

其实虽然说是数据库的设计,但是自己并没有设计属于自己的数据库,自己刚刚开始敲的时候师傅虽然说,数据库还是自己设计比较好,但是我当时竟然以为是照着建一个类似的,当然我也这样干了,结果敲代码的时候发现,原来自己代码的简易程度和数据库设计的合不合理密不可分,明明如果数据库建的好,一两句代码就能解决,就因为数据库太啰嗦,导致代码也特别混乱,所以说,要想有一个好的系统,首先要有一个好的数据库。

(二)主界面竟然是这样的

刚开始敲的时候建主界面,就很随便的建了一个窗体,然后开始往上面加东西,加的差不多的时候思思告诉我:“那不是一个窗体,那是一个MDI窗体。”然后她告诉我学生信息管理的主界面也是一个MDI窗体,当时觉得学生我明明用了一个普通窗体也没啥问题啊,然后我查了一下什么事MDI窗体(多文档界面),有一个人在博客中是这样写的:所谓,MDI,是Multiple
Document Interface的缩写,在VC++开发时,如果使用MFC,则创建工程时,一般会引导用户去选择单文档窗体还是多文档窗体。MDI是微软为开发人员提供的用来创建同时操作多个文档的编程接口。所谓Document相当于一个线程,它在属于自己的空间中,处理特定的事务。用户可以查看或者完成数字报表制作、文本编辑或者画图等操作,仅仅通过简单的移动鼠标从一个空间到另一个空间。

咱们常用的单文档界面,在同一时刻只能打开一个窗口,每次只能打开一个文档,处理完一个才能打开另一个,像NotePad(记事本)或Microsoft Paint(画笔)这样的窗体。它一次只处理一个文档,降低了编程的复杂度并减少了运行程序时所需的资源,对某些小型应用(比如文本编辑器或小型图像编辑器)可以采用这种类型的窗口应用程序。

在诸如文本编辑器、图像处理器这样的应用软件中,通常需要同时处理一个或多个文档,每个文档独立地执行软件所需要的功能。这种需要在一个窗体中同时包含多个子窗体的应用程序通常成为多文档(MDI)应用程序,子窗体之间可以进行数据交互,也可以互不相干。Visual Studio 2010开发环境就是多文档应用程序的典型实例。通常情况下,多文档窗体应用程序具有以下几个特点。





分级管理:所有窗体分成父-子两级。父窗体作为容器管理子窗体,一个父窗体可以有零个或多个子窗体。





独立显示:各子窗体根据需要独立地处理任何类型数据,并显示到界面,与用户进行交互。





并发处理:多个子窗体可以同时在后台处理数据,且相互之间可以进行交互。





容易修改:当某个功能需求发生变化时,只需要修改对应子窗体,方便快捷。





容易扩展:当需要增加某个功能时,只需要增加对应功能的子窗体,并添加到父窗体。

以上可以看出,单文档和多文档窗体各有各的好处,而我们的机房收费系统因为有很多的功能,为了方便管理,加强控制,所以选用了MDI 窗体。

(三)结账是个大问题

验收了两遍,最使我难看的应该就是结账这个窗体了,敲这个窗体的时候,我问了很多人,当然每个人有每个人的理解,他们也是这样告诉我的,结果验收的时候,我发现自己的钱怎么算都不对,仅仅是退了一张卡,机房就赔了好多钱。。。。因为结账这个窗体是参照着师姐的敲的,所以导致自己的代码很混乱,当认真研究的时候就发现很多代码都是在做无用功,明明上面已经写了一遍,结果下面又来一遍,然后删删改改,好长一段代码就被改的剩下一小段了,而这时再看自己的代码,一眼就能看出来问题出在哪里,一点不像之前生怕改错了哪里导致一步错,步步错。

(四)下机没想象中那么难

他们老是说下机是个难点,但是真的到最后敲的时候就发现,其实并没有想象中那么难,就像自己把他想象成了大老虎,真的遇见了才发现只是只凶一点的猫儿,先把自己的逻辑搞清楚。

逻辑搞清楚了,就会发现原来这么简单。代码很简单,都可以写出来的。

(五)报表最不能迷糊

有日报表和周报表两项,但是其实他们显示的东西差不多,周报表比日报表多了一个日期区段的选择(不造我这样说对不对,可能理解上有偏差,请给我指出来)做报表用到了一个第三方控件,这个控件的使用还是很方便的,网上也有很多详细的教程,这里就不多说,重点说一下这个钱是怎么算的,以周报表为例,一共有五项,上期充值卡余额:也就是本条记录中上一条的本期充值卡金额。本期充值金额:本期所有的充值。本期消费金额:所有卡的消费。本期退款金额:所有退卡时退还的钱。本期充值卡余额:也就是上期充值卡余额+本期充值余额+本期消费金额-本期退款金额。之前鼓捣报表钱怎么都算不对,后来发现是因为我的名称命名的不太好,所以在算钱的时候加减会弄错。

敲完了机房收费,就会发现代码其实是很好敲的,但是敲代码前,要有自己的想法,自己的逻辑。

机房收费系统——技术总结 标签: vb数据库技术 2014-09-07 22:29 1153人阅读 评论(30)的更多相关文章

  1. 全方位分析Objcetive-C Runtime 分类: ios技术 2015-03-11 22:29 77人阅读 评论(0) 收藏

    本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 简介 与Runtime交互 ...

  2. maven 标签: 项目管理软件 2016-09-11 22:29 323人阅读 评论(24) 收藏

    开始接触itoo的java项目之后,也就开始接触maven,搭建环境中有一个步骤是配置maven和jboss,当时知道jboss是用来部署我们的项目的,但是maven就只知道一个更新maven,那么, ...

  3. 机房收费系统总结之4——VB.NET 轻松解决判断文本框、组合框为空问题

    纵观机房收费系统,判断文本框.组合框为空问题无非两种情况.第一种:判断窗体中所有文本框.组合框是否为空.第二种:判断一部分文本框.组合框是否为空.下面看看是如何实现这两种情况的. 第一种:判断窗体中所 ...

  4. JAVA代码规范 标签: java文档工作 2016-06-12 21:50 277人阅读 评论(5) 收藏

    开始做java的ITOO了,近期的工作内容就是按照代码规范来改自己负责的代码,之前做机房收费系统的时候,也是经常验收的,甚至于我们上次验收的时候,老师也去了.对于我们的代码规范,老师其实是很重视的,他 ...

  5. 【机房收费系统 4】:VB获取标准北京时间,免除时间误差

    导读:这又是师傅给我指出的一个问题,说实话,其实开始根本没有当回事,觉得麻烦,可是,等我完成了获取标准北京时间后,我发现,这一步,是必须的.谢谢师傅对我的严格要求,让我一步一步的成长起来! 一.事件缘 ...

  6. 什么是实例化? 标签: vb 2015-02-08 20:26 1026人阅读 评论(30) 收藏

    为什么要写这个博客呢?可能是因为自己的基础太差,昨天敲三层的注册,各层都敲完了以后,死活报错,无奈之下只能找晓婵求救,她只改了三个地方,犯了同一个错误,我的源码是这样写的:Dim uA As  Ent ...

  7. Hibernate 标签: hibernate数据库 2017-01-15 22:03 462人阅读 评论(24)

    什么是hibernate? Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernat ...

  8. 【数据库】sql2008卸载和默认实例的删除 标签: 数据库 2014-11-16 15:15 5878人阅读 评论(30)

    在安装sql2008的时候,会碰到这一步,要求创建实例,可以选择默认实例和命名实例,如果是第一次安装的话,可以选择默认实例,但是如果是第二次甚至更多次安装的 话,很多时候会出现不能用默认实例,只能自己 ...

  9. IOS之富文本编辑 分类: ios技术 2015-03-06 22:51 89人阅读 评论(0) 收藏

    之前做项目时遇到一个问题:          使用UITextView显示一段电影的简介,由于字数比较多,所以字体设置的很小,行间距和段间距也很小,一大段文字挤在一起看起来很别扭,想要把行间距调大,结 ...

随机推荐

  1. python-基础-字符串-列表-元祖-字典2

    接上:http://www.cnblogs.com/liu-wang/p/8973273.html 3 元组 4 字典 4.1 字典的介绍 <2>软件开发中的字典 变量info为字典类型: ...

  2. mapreduce join操作

    上次和朋友讨论到mapreduce,join应该发生在map端,理由太想当然到sql里面的执行过程了 wheremap端 join在map之前(笛卡尔积),但实际上网上看了,mapreduce的笛卡尔 ...

  3. java异常处理throw和throws的区别

    throws和throw区别 throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理. 而throw则是指抛出的一个具体的异常 ...

  4. Django定义全局变量

    定义全局变量,在项目的任何位置都可以获取到变量的值 在include App=>include文件夹下=>context_processors.py 里定义需要获取的变量 #!/usr/b ...

  5. CF549G Happy Line

    传送门 解题思路 题意大概就是给你个数列,你可以随意交换i,i+1,交换后位于第i+1位的数字+1,位于第i位的数字-1,问最终能否形成一个不下降序列并输出.设初始数列中两个位置x,y最终交换后的位置 ...

  6. JS 重载页面,本地刷新,返回上一页

    JS 重载页面,本地刷新,返回上一页 : <a href="javascript:history.go(-1)">返回上一页</a> <a href= ...

  7. [转]web计时机制——performance对象

    页面性能一直都是Web开发人员比较关注的领域.但在实际应用中,度量页面性能的指标,是javascript的Date对象.Web Timing API改变了这个局面,让开发人员通过javascript就 ...

  8. mysql8.0 的坑 hibernate连接配置坑

    https://blog.csdn.net/qq_36448800/article/details/81180881 这篇文章对于连接配置说的是对的,也比较全面

  9. spring springmvc 展示图片,静态资源的处理

    jsp中显示一张照片 <img alt="静态图片" src="static/目录.png"> 然后在springmvc的配置中加上 <!-- ...

  10. ROWID的使用——快速删除重复的记录

    ROWID是数据的详细地址,通过rowid,oracle可以快速的定位某行具体的数据的位置.ROWID可以分为物理rowid和逻辑rowid两种.普通的表中的rowid是物理rowid,索引组织表(I ...