☆ CS之旅
文章平均质量分 63
百川灌河
这个作者很懒,什么都没留下…
展开
-
抽象工厂之“反射”技术
在七层中最重要的一个闪光点就是使用了“反射”技术,下面来说一下我自己的理解。在说反射前,先说一下“键值对”。在机房收费系统的配置文件中有一段这样的代码: 这里面的每一个“key”都对应着一个相应的值“value”,key与value做到一一对应。这样根据key,就可以得到与其对应的值了。在反射工厂中以登录功能为例,看它是如何运用的:原创 2016-11-30 19:59:28 · 527 阅读 · 21 评论 -
C#之数组
在VB当中我们学习了数组,现在C#中也学习了数组,那么我们来回忆一下数组:(1)数组是一组具有相同类型和名称的变量的集合;(2)这些变量称为数组的元素,每个数组元素都有一个编号,这个编号叫做下标,我们可以通过下标来区别这些元素;(3)数组元素的个数被称为数组的长度;(4)一般情况下,数组元素的类型必须相同;(5)C#中,数组是system.Array类的一个实例。在C#中的原创 2016-08-07 10:59:07 · 519 阅读 · 10 评论 -
C#之加加减减
加加和减减一开始听的时候,搞得我一头雾水,心里想,又是加,又是减,而且还有前加,后加,前减,后减,什么啊,乱七八糟的,但是今天重新听,而且自己写完小程序后,逐渐清晰明了了,学习就是这样的过程吧。----前言(内心小小的感悟)正题:(1)加加之后加:num++第一种情况:num++不参与运算,则自身加1。看我的小程序: #region int num =原创 2016-07-31 11:30:47 · 799 阅读 · 11 评论 -
UML学习总结
视频以及使用enterprise architecte画图工具把机房收费系统的九种图画完了,UML项目到这里就接近尾声了。这篇博客就对我这段的学习做一个小小的总结吧。(一)浅谈UML(Unified Modeling Language)(1)UML:统一建模语言,是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化额编制文档的一种标准语言。原创 2016-07-25 16:55:41 · 626 阅读 · 13 评论 -
UML之部署图and构件图
部署图和构件图都属于UML中的实现图,实现图从硬件的组成和布局以及软件系统划分和功能实现。实现图包括:---构件图:用来显示一组构件之间的组织与依赖关系。---部署图:用来描述系统硬件的物理拓扑结构以及在此结构上执行的软件。(一)构件图(component diagram)1、概念:构件图从软件架构的角度来描述一个系统的主要功能,如子系统、类、包、构件等。使用构件最重要的是复用原创 2016-07-24 15:15:03 · 1053 阅读 · 10 评论 -
UML之时序图
时序图是UML中动态行为图之一,描述对象之间传递消息的时间顺序,用来表示用例中的行为顺序,是强调消息时间顺序的交互图。时序图所包含的元素:1、对象(object):为类的实例,在时序图中对象有三种状态:激活、运行和销毁。在ea中的图符为:2、消息(message):是对象间的一种通信机制。是定义交互和协作中交互原创 2016-07-23 20:37:37 · 819 阅读 · 6 评论 -
UML之活动图、状态图
之前的文章讲解到了用例图、类图、包图、对象图。其中用例图展示了系统中的角色以及用户的功能需求。类图、包图、对象图是UML中的静态图,展示了系统的静态结构。接下来本文主要讲解UML中的动态行为图:活动图和状态图。(一)活动图1、概念:首先回顾以下流程图:其常被用来建立算法模型,使用流程图可以表示一个算法的执行序列、过程、判定点、分支和循环。活动图与流程图十分类似。不同之处在于它支持并行活原创 2016-07-22 16:25:26 · 2751 阅读 · 8 评论 -
UML之对象图
一、首先我们来看一下对象图和类图的联系与区别:1、对象图是类图的实例,几乎使用与类图完全相同的标识。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。2、与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类。它描述的不是类之间的关系,而是对象之间的关系。3、对象图也代表了一个系统的静态视图,但这种静态视图是系统在某一时刻的一个快照。而类图描述所有可能的情况原创 2016-07-21 21:43:48 · 698 阅读 · 9 评论 -
UML之类图
类图类是对象的集合,展示了对象的结构以及与系统的交互行为。类主要有属性(attribute)和方法(method)构成,属性代表对象的状态,如果属性被保存到数据库中,此称之为“持久化”;方法代表对象的操作行为,类具有继承关系,可以继承父类,也可以与其他的class进行交互。类图展示了系统的逻辑结构,类和接口的关系。类的构成:类主要有属性和方法构成,比如商品属性有:名称、价格、高度原创 2016-07-06 21:11:36 · 766 阅读 · 13 评论 -
UML之用例图
用例图是UML中九种图之一,用例是对一个活动者(actor)使用系统的一项功能时所进行的交互过程的一个文字描述系列。对系统的用户需求、功能的描述,表达的是系统的功能和所提供的服务,它只描述活动者和系统在交互过程中做些什么,并不描述怎么做。它展示了一个外部用户能够观察到的系统功能模型图。它的用途是帮助开发团队以一种可视化的方式理解系统的功能需求。用例图包含的元素:1、角色(actor原创 2016-06-23 18:16:44 · 1000 阅读 · 10 评论 -
UML之初识
UML(Unified Modeling Language)统一建模语言,是用来设计软件蓝图的可视化建模语言。它不是一个程序设计语言,不是一个形式化语言,而是一个可视化建模语言。对比:UML是一种面向对象的程序设计范型,注重软件中涉及到了哪些类;而以过程为程序设计范型的编程语言,注重软件中涉及的功能。其中UML的基本构造块中包括:UML中的事物、UML中的关系、UML中的图。这原创 2016-06-19 16:16:38 · 1262 阅读 · 73 评论 -
软件工程之模块的耦合与内聚
一个大而复杂的软件系统若想简单化,就要分解,这就引入了模块化的概念,模块化:把一个大而复杂的软件系统划分成易于理解的比较单纯的模块结构。那么与模块化相对应的就是抽象化了,抽象化:软件系统进行模块设计时,可有不同的抽象层次。模块(Module)一般具有如下三个基本属性:功能:描述该模块实现什么功能;逻辑:描述模块内部怎么做;状态:该模块使用时的环境和条件。模块的独立性:是指软件系原创 2016-06-18 15:14:07 · 6477 阅读 · 10 评论 -
软件工程整体总结
今天终于把哈工大软件工程的视频看完了,但是也只是速度加快2倍简单的过了一遍,现在只能简单的做一下整体的总结。在接触一个新事物的时候,囫囵吞枣式一种比较高效的学习方式。学习软件工程首先要明白什么是软件,什么事软件工程:软件:软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。软件是一种逻辑实体,而不是具体的物理实体。软件工程到目前为止还没有统一的定义原创 2016-06-18 14:59:28 · 845 阅读 · 9 评论 -
软件开发文档编写规范
软件开发过程中产生文档说明:计划阶段:理解问题--形成系统目标范围说明书(可行性报告);需求分析阶段:用户要求--形成需求规格说明书(已经开始着手用户手册);设计阶段:软件结构、功能。概要设计--建立软件结构(概要设计说明书);详细设计--功能实现(程序规格说明书);编码阶段:编写程序--形成程序清单;测试阶段:发现、排除错误;运行、维护阶段:改进的软件产品。对应着上面原创 2016-06-12 21:13:17 · 1474 阅读 · 11 评论 -
机房收费系统调错总结(二)
问题三:正在值班教师窗体思路:正在值班教师应为登陆者,本窗体从WorkLog表中查找;在登陆窗体中天际onwork的记录;其次程序退出时删除onwork表中的记录,更该worklog表中的记录。登陆窗体: Else '添加进onwork数据表中 If Trim(mrc.Fields(1)) = Trim(原创 2016-06-05 15:22:53 · 596 阅读 · 15 评论 -
机房收费系统调错总结(一)
上次师傅验收提出了很多问题,也让我进一步理解了机房收费系统里面的逻辑关系,以及设计一个软件如何更好的使它人性化,更好的服务用户,这才是软件设计者应该时刻谨记的----服务用户。问题一:结账结账窗体和注册窗体、充值窗体、退卡窗体是紧密联系在一起的。结账中的操作员应该是登陆者,而登陆者是由注册窗体中的UserId所赋值的(这里我一开始把userid赋值错了,导致不能出现该操作者的所有信息)原创 2016-06-05 14:47:32 · 507 阅读 · 12 评论 -
机房收费系统整体观看
数据库整体关系,内部逻辑。原创 2016-05-29 17:30:33 · 557 阅读 · 14 评论 -
面向对象之多态
前言:面向对象的三大特性是:封装、继承、多态。通过三种方法把程序的耦合度降低,传统的印刷术和问题就在于所有的字都刻在同一版面上造成耦合度太高所致,活字印刷术的出现就是利用面向对象的思维克服了传统技术的缺陷。在代码工程中我们吸取几千年前老祖宗的智慧开始用设计模式使得程序更加的灵活,容易修改,并且容易复用。接下来跟随小编去探索“多态”的奥秘吧~“多态”用一句简单精炼的话描述是:通过继承实现的不原创 2016-08-08 16:45:06 · 506 阅读 · 11 评论 -
工厂三姐妹
哈哈,之前总是看师哥师姐的博客“工厂三姐妹”,今天终于揭开了她的神秘面纱,“工厂三姐妹”即简单工厂模式,工厂方法模式,抽象工厂模式,三个姐妹各有风姿,都有自己独特的美和智慧,接下来就让我们走进她们。学习设计模式的最终目的就是让代码更加灵活,容易修改,并且易于复用,学习面向对象的分析设计编程思想,利用封装、继承、多态把程序的耦合度降低,对于后期的维护工作以及面对用户的需求变更可谓是一种非常好的思原创 2016-08-22 17:25:27 · 483 阅读 · 12 评论 -
C#版机房收费系统打包
对于VS程序打包,网上有许多微软自带的打包工具InstallShield,资料网上有很多,我认为好的一篇,在这里放上链接: InstallShield打包。下面介绍我们曾经打包VB程序的工具:SetUP Factory。(步骤很简单)步骤:(1)打开程序,在工具栏中选中Release,一般程序默认Debug:为什么改为Release,这里链接:Debug文件夹和Release文原创 2016-11-20 20:56:30 · 967 阅读 · 23 评论 -
C#控件之DataGridView
1、不显示下面的新行:通常DataGridView的最下面一行是用户新追加的行(行头显示*)。如果不想让用户新追加行即不想显示该新行,可以将DataGridView对象的AlowUserToAddRows属性设置为False。DataGridView1.AllowUserToAddRows = false;2、首次加载时去除默认选中的第一行数据:在DataGridView控件初原创 2016-11-18 17:12:48 · 760 阅读 · 17 评论 -
哈希表---直接进行访问的数据结构
机房重构中接触到了哈希表,它到底是个什么东西呢?百度中的解释:散列表(Hash table),也叫哈希表,是根据关键码值(key value)而直接进行访问的数据结构。也就是说它通过关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数也叫散列函数,存放记录的数组也叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录原创 2016-10-09 17:35:53 · 859 阅读 · 13 评论 -
存储过程
因为此次编程用到了存储过程,之前在学习数据库视频的时候就一带而过了,现在又回头重温一遍。什么是存储过程:存储过程可以说是一个记录集,它是由一些T—SQL语句组成的代码块,这些T—SQL语句组成的代码就像一个方法一样实现一些功能(对单表或多表的增删改查),然后再给这个代码块取一个名字,在用户到这个功能的时候调用它就可以了。它的优点:由于存储过程在创建时即在数据库服务器上进行了编译并存原创 2016-09-23 20:57:26 · 748 阅读 · 80 评论 -
泛型集合
首先我们先来认识一下集合:如果对象可以提供对相关对象的引用,那么它就是一个集合,它可以遍历集合中的每个数据项;专业的说法就是所有实现了System.Collections.IEnumerable接口的类的对象都是集合。集合与数组的比较:(1)数组Array()是固定大小的,不能伸缩;而集合却是可变长的。(2)数组要声明元素的类型,集合类的元素类型却是object。(3)数组原创 2016-09-19 08:35:00 · 659 阅读 · 17 评论 -
颗粒归收--构造函数与析构函数
一、构造函数与构析函数作为比C更先进的语言,C#提供了更好的机制来增强程序的安全性。C#编译器具有严格的类型安全检查功能,它几乎能找出程序中所有的语法问题,这的确帮了程序员大忙。但是程序通过了编译检查并不代表错误已经不存在了,在“错误”的大家庭里,“语法错误”的地位只能算是冰山一角。级别高的错误通常隐藏的很深,不容易发现。根据经验,不少难以察觉的错误是由于变量没有被正确初始化或清除转载 2016-09-03 14:54:07 · 356 阅读 · 11 评论 -
浅谈三层与MVC
MVC框架(Model View Controller):MVC 是模型(Model)--视图(View)--控制器(Controller)的缩写,是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化界面的结构原创 2016-08-31 16:36:40 · 1101 阅读 · 15 评论 -
三层架构之实现
上一篇文章我们知道了了解了什么是三层,它的工作流程,它的优势与劣势,这篇文章主要讲解三成的具体实现过程。首先第一步要建立数据库,包含两个表:(1)Users表(2)Scores表数据库建完之后,就是具体的代码实现阶段了。根据三层之间的引用原则(DAL所在程序集不引用BLL和UI,BLL需要引用DAL,UI直接引用BLL,可能会间接引用DAL),另外实体层供其它层引用原创 2016-08-31 15:19:22 · 1004 阅读 · 14 评论 -
三层架构
三层架构概述三层分为物理上的三层和逻辑上的三层,物理上的三层包括:客户机(PC)、应用服务器、数据库服务器。逻辑上的三层,是我们需要学习的,分为显示层、业务逻辑层、数据访问层。此外还需要用到实体层,它不属于三层中的任意一层,它是独立于其他三个层次的,只能供其他层次进行引用,但是不能引用其他的三个层次。三层简介:(1)数据访问层(DAL)DAL的作用:向数据源加载数据原创 2016-08-31 11:24:29 · 642 阅读 · 9 评论 -
设计模式宏观把控(三)
行为型模式共有11种,分别是观察者模式、模板方法模式、命令模式、状态模式、职责链模式、解释器模式、中介者模式、访问者模式、策略模式、备忘录模式、迭代器模式。原创 2016-08-25 17:39:59 · 450 阅读 · 16 评论 -
设计模式宏观把控(二)
结构型模式共有7中设计模式,分别是适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式。结构型模式,讨论的是类和对象的结构,它采用继承机制来组合接口或实现,或者通过组合一些对象,从而实现新的功能。7种模式具有很大的相似性,但是也各有侧重。Adapter模式通过类的继承或者对象的组合侧重于转换已有的接口;Bridge模式通过将抽象类和实现相分离,让他们可以分别独原创 2016-08-25 11:03:33 · 417 阅读 · 14 评论 -
设计模式宏观把控(一)
一共有23种设计模式,分为三大类型,分别是创建型、结构型、行为型。无论是什么设计模式,软件开发都应该力求:高内聚、低耦合,内聚性:一个例程内部组成部分之间相互联系的紧密程度;耦合性描述的是一个例程与其他例程之间联系的紧密程度。软件开发的目标应创建这样的例程:内部完整,即高内聚;与其他例程之间的联系则是小巧、直接、可见、灵活,即松耦合。创建型模式:抽象工厂(Abstract Factory)、原创 2016-08-25 08:52:51 · 575 阅读 · 12 评论 -
设计模式之七大原则
设计模式共有六大原则,下面就我学到的东西做一个小小的总结,感觉很多东西理解的还是表象,没有深入到它的精髓之处。设计模式的核心宗旨是如何提高一个软件系统的可维护性和可复用性,而这七大原则就是为支持可维护性、可复用性而提炼出的精华,是设计模式的指导性原则。学习设计模式这本书感觉真的受益无穷,它很好的锻炼了我面向对象的逻辑思维。也真正的理解了编程与生活联系的是如此的紧密,编程就在生活之中原创 2016-08-24 21:19:12 · 462 阅读 · 14 评论 -
中介者模式
中介者模式(Mediator),用一个中介对象来封装一系列的对象交往。中介者使各对象不需要显式的相互吸引,从而使其耦合松散,而且可以独立地改变它们之间的交互。在之前一段时间面向对象的学习中,虽然把一个系统分割成许多对象通常可以增加复用性,但是对象之间的相互连接的激增又会降低其可复用性。大量的连接使得一个对象不可能在没有其他对象的支持下工作,所以对系统的行为进行任何较大的改动就会变得十分困难。原创 2016-08-24 16:57:21 · 403 阅读 · 10 评论 -
单例模式(饿汉VS懒汉)
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。“通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象,一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且它可以提供一个访问该实例的方法。”单例模式(Singleton)结构图:Singleton类,定义一个GetInstance原创 2016-08-23 23:22:01 · 445 阅读 · 8 评论 -
组合模式
组合模式(Composite),将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。它要处理的问题实质就是让整体与部分可以被一致对待的问题。适用场景:当软件需求中是体现部分与整体层次的结构时,以及希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式了。组合模式(Composite)结构图:原创 2016-08-23 17:13:25 · 261 阅读 · 9 评论 -
备忘录模式
备忘录(Memento):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象回复到原先保存的状态。适用场景:Memento模式比较适用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,Originator可以保存根据保存的Memento信息还原到前一状态。有时一些对象的内部信息必须保存在对象以外的地方原创 2016-08-23 14:48:44 · 321 阅读 · 9 评论 -
机房收费系统前提工作
机房收费系统是第一个没有源码的项目,这对于我的编程学习之路来说是一个里程碑式的项目。问题之(一)附加数据库问题原因:对于要附加的数据库权限不够解决方法:数据库文件和日志文件都必须授权:右击文件--属性--安全页--组或用户:Everyone--权限:完全控制即可(二)注册文件“机房收费系统”中的3个控件方法:打开DOS窗口输入:regsvr32 +路原创 2016-05-05 10:59:20 · 518 阅读 · 14 评论