机房收费系统——技术总结 标签: vb数据库技术 2014-09-07 22:29 1153人阅读 评论(30)
说完了经验,再谈谈技术方面,其实对于技术,师哥师姐们都已经写了好多博客,这也是我在敲机房几乎没写这方面的博客的原因,不过别人的再好也是别人的,下面说说自己的。
(一)数据库的设计
其实虽然说是数据库的设计,但是自己并没有设计属于自己的数据库,自己刚刚开始敲的时候师傅虽然说,数据库还是自己设计比较好,但是我当时竟然以为是照着建一个类似的,当然我也这样干了,结果敲代码的时候发现,原来自己代码的简易程度和数据库设计的合不合理密不可分,明明如果数据库建的好,一两句代码就能解决,就因为数据库太啰嗦,导致代码也特别混乱,所以说,要想有一个好的系统,首先要有一个好的数据库。
(二)主界面竟然是这样的
刚开始敲的时候建主界面,就很随便的建了一个窗体,然后开始往上面加东西,加的差不多的时候思思告诉我:“那不是一个窗体,那是一个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)的更多相关文章
- 全方位分析Objcetive-C Runtime 分类: ios技术 2015-03-11 22:29 77人阅读 评论(0) 收藏
本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机.主要内容如下: 引言 简介 与Runtime交互 ...
- maven 标签: 项目管理软件 2016-09-11 22:29 323人阅读 评论(24) 收藏
开始接触itoo的java项目之后,也就开始接触maven,搭建环境中有一个步骤是配置maven和jboss,当时知道jboss是用来部署我们的项目的,但是maven就只知道一个更新maven,那么, ...
- 机房收费系统总结之4——VB.NET 轻松解决判断文本框、组合框为空问题
纵观机房收费系统,判断文本框.组合框为空问题无非两种情况.第一种:判断窗体中所有文本框.组合框是否为空.第二种:判断一部分文本框.组合框是否为空.下面看看是如何实现这两种情况的. 第一种:判断窗体中所 ...
- JAVA代码规范 标签: java文档工作 2016-06-12 21:50 277人阅读 评论(5) 收藏
开始做java的ITOO了,近期的工作内容就是按照代码规范来改自己负责的代码,之前做机房收费系统的时候,也是经常验收的,甚至于我们上次验收的时候,老师也去了.对于我们的代码规范,老师其实是很重视的,他 ...
- 【机房收费系统 4】:VB获取标准北京时间,免除时间误差
导读:这又是师傅给我指出的一个问题,说实话,其实开始根本没有当回事,觉得麻烦,可是,等我完成了获取标准北京时间后,我发现,这一步,是必须的.谢谢师傅对我的严格要求,让我一步一步的成长起来! 一.事件缘 ...
- 什么是实例化? 标签: vb 2015-02-08 20:26 1026人阅读 评论(30) 收藏
为什么要写这个博客呢?可能是因为自己的基础太差,昨天敲三层的注册,各层都敲完了以后,死活报错,无奈之下只能找晓婵求救,她只改了三个地方,犯了同一个错误,我的源码是这样写的:Dim uA As Ent ...
- Hibernate 标签: hibernate数据库 2017-01-15 22:03 462人阅读 评论(24)
什么是hibernate? Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernat ...
- 【数据库】sql2008卸载和默认实例的删除 标签: 数据库 2014-11-16 15:15 5878人阅读 评论(30)
在安装sql2008的时候,会碰到这一步,要求创建实例,可以选择默认实例和命名实例,如果是第一次安装的话,可以选择默认实例,但是如果是第二次甚至更多次安装的 话,很多时候会出现不能用默认实例,只能自己 ...
- IOS之富文本编辑 分类: ios技术 2015-03-06 22:51 89人阅读 评论(0) 收藏
之前做项目时遇到一个问题: 使用UITextView显示一段电影的简介,由于字数比较多,所以字体设置的很小,行间距和段间距也很小,一大段文字挤在一起看起来很别扭,想要把行间距调大,结 ...
随机推荐
- 【vue】vue-znly
老规矩,放下博主的项目地址:https://github.com/wohaiwo/vue-znly 我一直在想给那些开源者取什么名字比较好,怎样才对得起他们开源项目的精神,后来想想,还是叫博主吧.有的 ...
- 关于 linux 的 limit 的设置
以下内容参考链接 1.file-max系统最大打开文件描述符数 永久性:在/etc/sysctl.conf中设置 2.nr_open是单个进程可分配的最大文件数. 内核支持的最大file handle ...
- CSS:你真的懂margin吗?
你真的了解margin吗?你知道margin有什么特性吗?你知道什么是垂直外边距合并? margin在块元素.内联元素中的区别?什么时候该用padding而不是margin?你知道负margin吗?你 ...
- MySQLDemo2
-- 查询所有数据库 show databases -- 删除数据库 drop database a -- use `数据库名称`; 表示使用此数据库 use mybatis -- 查看表结构 sho ...
- dll加载过程全局变量会先初始化
在一个生成dll的工程中看到一个文件只有一句全局变量初始化的代码,很好奇为什么这句代码在dll加载的时候就会执行,因此断点调试发现 __declspec(noinline) BOOL __cdecl ...
- 2018-2-13-C#-相对路径转绝对路径
title author date CreateTime categories C# 相对路径转绝对路径 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17:23 ...
- 【react】react-reading-track
这是一个很有趣的图书阅读demo 先放github地址:https://github.com/onlyhom/react-reading-track 我觉得这个博主的项目很有意思呢 我们一起看看代码啊 ...
- python的工具pip进行安装时出现 No module named 'pip'
现象: 解决: python -m ensurepip easy_install pip python -m pip install --upgrade pip #用于更新pip,默认安装的是pip9 ...
- 2018.8.10 提高B组模拟赛
T1 阶乘 Time Limits: 1000 ms Memory Limits: 262144 KB Detailed Limits Goto ProblemSet Description 有n个正 ...
- Linux下的MySQL主从同步
网上一些关于Linux下的MySQL主从同步教程非常之多,有些很简单的配置却弄的非常复杂,有些根本无法配通,下面是我通过简单的配置完成的主从同步过程,大家可以参考,此文章更适用于新手. 一.测试环境: ...