(接上讲)

  三接口实例的应用及思路分析

  在上面的两讲中,我们讲了接口和类的关系,从中我们注意到,接口是类的模板,类是实现接口的,在之前的讲解中我们也了解到,类是对象的模板,对象是实例化类得到的。那么从这讲开始,我将利用相当的时间给大家讲解一个实例,让大家从这个实例中了解到接口、类、对象、过程、函数等概念的具体的应用。

  实例:实现某列文本数据的排序,要求:

  1 读取数据,预存在数组中

  2 实现按照指定的要求排序,一是按冒泡排序,二是实现快速排序

  3 实现排序过程中的比较方式不同,一是区分大小写,二是忽略大小写。

  4 排序后将数组回填给某列。

  这里我给出了一列的测试数据:

  

  上述数据共3000行,其中有几个小写的字符数据,我们要实现按照上述要求排序。

  思路分析:

  1 建立一个排序的接口。对应两个类用于实现排序接口,一个类实现冒泡排序,一个类实现快速排序。

  2 建立一个比较的接口。对应两个类用于实现这个比较接口,一个类用于区分大小写的比较,一个类用于忽略大小写的比较。

  3 在标准模块中实现数据的读取,数据的传递,数据的反馈。

  4 在标准模块中实现排序及比较的选择。

  实现思路结构的搭建:

  1 Isortable 接口,这个接口定义排序。为了实现这个接口建立两个类:一个是Csortermp,实现冒泡排序,这个类中实现一般的排序方案,比较,然后根据比较的结果实现位置的调换,达到冒泡的目的;第二类是Csorter,实现快速排序,这种排序方法在很多资料上都有介绍,就是通过取中间值,递归实现分布比较达到排序的目的,这种方法在数据量大时,可以显著的节约时间。

  2 Icomparer接口,这个接口定义了比较。也有两个类实现这个接口,一个类是CompareIgnoreCase,用于忽略大小的比较,一个类是CompareUseCase,用于实现大小写的比较。这两个类可以利用StrComp()函数实现,这个函数中可以利用参数vbBinaryCompare和vbTextCompare实现是否区分大小写的目的。

  3 标准模块:在标准模块中将要求用户选择排序的方式和比较的方式,根据用户的选择实现不同类的实例化过程。

  这种思路的优点:

  1 不同的模块实现不同的功能,从而达到低耦合性。当有一个模块的逻辑进行修正时不会影响其它的模块。

  2 给程序升级带来方便。当我们想利用其它的方法实现排序时,这需要再建立一个新类实现Isortable排序的接口;如果我们要利用其它的方法实现比较时,只需要建立一个新的类实现Icomparer比较接口,而不必去修改其它的代码。

  3 给自己的代码库增加筹码。我一直推崇的是积木编程,通过上述思路的实现,可以增加自己的积木库,在后续自己写代码时可以利用上述的类和接口。这需要在标准模块中调用这些积木。

  4 在某种程度上讲,代码具有遗传性,这种遗传性给理解代码带来很大的便利。自己写的代码可以自成体系。

  从下讲开始将正式进入代码搭建讲解部分。

  今日内容回向:

  1 如何利用接口实现我们的目的?

  2 利用接口的好处用哪些?

  

  在取代OFFICE新的办公软件没有到来之前,谁能在数据处理方面做到极致,谁就是王者。其中登峰至极的技能非VBA莫属!众鸟高飞尽,孤云独去闲。相看两不厌,只有敬亭山。

  学习VBA是个过程,这个过程是自己忍受孤独的过程。

  “水善利万物而不争”,你看她绵绵密密,微处则无声,巨则汹涌。学习亦如此,把握现在,为达千里,需要默默耕耘,知道什么是自己所需要的,不要蜷缩在一小块自认为天堂的世界里,待到暮年时去自欺欺人。要在当下,用一颗充满生机的心灵,努力提高自己,这才是进取。越是有意义的事情,困难会越多。愿力决定始终,智慧决定成败。不管遇到什么,都是风景。看淡纷争,看轻得失。一杯茶,满也好,少也好,不要去计较;浓也好,淡也好,其中都有值得品的味道。去感悟真实的时间,静下心,多学习,积累福报。而不是天天混日子,也不是天天熬日子。一切众生的心都在变化,像时间一样,永远不会停留,把握现在就是福报。

  VBA是利用Office实现自己小型办公自动化的有效手段,我记得20年前自己初学VBA时,那时的资料甚少,只能看源码自己琢磨,真的很难。20年过去了,为了不让学习VBA的朋友重复我之前的经历,我根据自己多年VBA实际利用经验,推出了五部VBA专门教程,回向给需要学习的朋友:

  第一套:VBA代码解决方案是VBA中各个知识点的讲解,覆盖绝大多数的VBA知识点,初学必备;

  第二套:VBA数据库解决方案数据库是数据处理的专业利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法和实例操作。

  第三套:VBA数组与字典解决方案数组和字典是VBA的精华,字典是VBA代码水平提高的有效手段,值得深入的学习。

  第四套:VBA代码解决方案之视频是专门面向初学者的视频讲解,可以快速入门,更快的掌握这门技能。

  第五套:VBA中类的解读和利用这是一部高级教程,讲解类的虚无与肉身的度化,可以对促进自己理论的提高。

  学习的过程也是修心的过程,修一个平静的心。在代码的世界中,心平静了,心情好了,身体自然而然就好。心静则正,内心里没有那么多邪知邪见,也就没有那么多妄想。在平静中积累自己的财富。我的上述教程是我多的经验的传递,大家可以根据1,3,2,5或者是4,3,2,5的顺序逐渐深入的逐渐学习。可以WeChat: NZ9668

  

  最后将一阙词送给致力于VBA学习的朋友:

  浮云掠过,暗语无声,

  唯有清风,惊了梦中啼莺。

  望星,疏移北斗,

  奈将往事雁同行。

  阡陌人,昏灯明暗,忍顾长亭。

  多少VBA人,

  暗夜中,悄声寻梦,盼却天明。

  怎无凭!

  分享成果,随喜正能量

  举报/反馈

利用类接口技术完成排序相关推荐

  1. 计算机组成原理+左冬红,计算机组成原理与接口技术--基于MIPS架构(第2版高等学校电子信息类专业系列教材)...

    导语 内容提要 华中科技大学电子信息与通信学院基于FPGA平台的"微机原理与接口技术"课程教学改革已进行数载,作者在总结教学经验基础上,对<计算机组成原理与接口技术>进 ...

  2. 反思脑机接口技术:机器真的能控制我们的大脑吗?

    来源:AI科技评论 作者:R. Douglas Fields 编译:陈彩娴 猛烈的公牛在冲锋的途中锁定了双腿.它将双蹄扎进地下,在与之搏斗的人类参赛选手被刺伤之前停了下来. 这个人类参赛选手不是职业斗 ...

  3. 计算机接口实验1,计算机接口技术实验一.doc

    计算机接口技术实验一.doc 数学与计算机学院 <计算机接口技术 实验报告 专业:网络工程 班级:1202 学号:1205110121 姓名:吴天亮 郭峰林 实验1定时与中断接口程序设计 一实验 ...

  4. 天津工业大学19年计算机考研大纲,2019年天津工业大学《计算机原理及接口技术》考研复试大纲...

    2019年天津工业大学<计算机原理及接口技术>考研复试大纲已出,圣才考研网小编为大家整理了相关内容,欢迎大家点击查看!更多考研动态|模拟试题|历年真题请关注圣才考研网! 天津工业大学硕士研 ...

  5. Entity Framework 实体框架的形成之旅--为基础类库接口增加单元测试,对基类接口进行正确性校验(10)...

    本篇介绍Entity Framework 实体框架的文章已经到了第十篇了,对实体框架的各个分层以及基类的封装管理,已经臻于完善,为了方便对基类接口的正确性校验,以及方便对以后完善或扩展接口进行回归测试 ...

  6. 天津工业大学19年计算机考研大纲,天津工业大学2019考研《计算机原理及接口技术》复试大纲...

    2019考研初试成绩预计将于2月15日左右开始查询,现在应该有不少估过分的考生开始准备复试了.下面是天津工业大学2019考研<计算机原理及接口技术>复试大纲,以供大家备考复试作参考. 天津 ...

  7. 如何利用大数据技术构建用户画像

    在大数据时代,我们经常谈论的概念之一是用户画像.准确营销的商业目的可以通过在互联网领域利用用户画像来实现,这就是为什么在这个流量至上的时代构建用户画像是如此重要.任何企业公司的产品要想做好精细化运营, ...

  8. 微机原理与接口技术简答题集锦(河北专升本计算机)

    第一章 微型计算机基础 1. 微处理器.微型计算机和微型计算机系统三者之间有什么区别? 微处理器(CPU)∶将运算器与控制器集成在一起,它包括运算器.控制器.寄存器组和片内总线.用于实现微型计算机的运 ...

  9. 脑机接口技术使瘫痪病人重获运动能力,4D打印技术已经到来!|技术前沿洞察...

    热点追踪 / 深度探讨 / 实地探访 / 商务合作 滴!友情提醒:您的假期余额已经不足一天. 今天小探也按时为你带来技术前沿洞察,最近高校.大公司的最近技术真是眼花缭乱,阿司匹林减轻能够减轻空气污染伤 ...

最新文章

  1. Codeforces Round #403 (Div. 1, based on Technocup 2017 Finals)
  2. c++怎么输入esc_绘制CAD图纸的过程中CAD快捷键失灵了怎么办?
  3. springboot2使用JUnit5单元测试使用大全
  4. Delphi编译指令说明
  5. 《教师教学究竟靠什么--谈新课程的教学观》之交往与互动的教学观 心得体会三...
  6. 傅里叶变换和逆傅里叶变换numpy
  7. 【python数字信号处理】——循环卷积(也叫圆圈卷积)
  8. Bootloader传参数到Kernel
  9. python import如何使用_python之import引用
  10. Docker 终失 C 位,开源少年缘何黑化
  11. 白话machine learning之Loss Function
  12. 使用SourceOffSite时出现的问题及解决办法
  13. Sketch2AE插件(Sketch文件导入AE)最新破解版
  14. leetcode-739.每日温度-单调栈
  15. mysql门店分析_餐饮数据分析(MySQL+Pivot)
  16. NOIP2020总结
  17. Python使用RMF聚类分析客户价值
  18. 网盘加速器PanDownload+网盘倍速播放
  19. Adaboost算法介绍
  20. 使用virt-manager创建虚拟机

热门文章

  1. odoo14 开发基本操作
  2. odoo使用部署——会计
  3. Windows提示无法访问指定设备、路径或文件该怎么办?
  4. 如何判断二维平面中,两条线段是否相交
  5. SpringKafka原理解析及源码学习-Spring生态(一)
  6. 什么是PCM?它和.wav文件是什么关系?
  7. 生活不止眼前的代码,还有书和远方!
  8. 广告公关公司如何选择项目管理软件
  9. C#界面美化推荐DotNetBar
  10. 常用Python标准库