`
liyuandong
  • 浏览: 329395 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

表驱动法介绍

阅读更多

 

        表是几乎所有数据结构课本都要讨论的非常有用的数据结构。表驱动方法出于特定的目的来使用表,下面将对此进行讨论。
       程序员们经常谈到"表驱动"方 法,但是课本中却从未提到过什么是"表驱动"方法。表驱动方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或Case)来把它们找出来的 方法。事实上,任何信息都可以通过表来挑选。在简单的情况下,逻辑语句往往更简单而且更直接。但随着逻辑链的复杂,表就变得越来越富有吸引力了,通过下面 的这个例子大家就能知道什么是所谓的表驱动方法了。
 
      假设你需要一个可以返回每个月中天数的函数(为简单起见不考虑闰年),一个比较笨的方法是一个大的if语句:
int iGetMonthDays(int iMonth)
{
 int iDays;
 if(1 == iMonth) {iDays = 31;}
 else if(2 == iMonth) {iDays = 28;}
 else if(3 == iMonth) {iDays = 31;}
 else if(4 == iMonth) {iDays = 30;}
 else if(5 == iMonth) {iDays = 31;}
 else if(6 == iMonth) {iDays = 30;}
 else if(7 == iMonth) {iDays = 31;}
 else if(8 == iMonth) {iDays = 31;}
 else if(9 == iMonth) {iDays = 30;}
 else if(10 == iMonth) {iDays = 31;}
 else if(11 == iMonth) {iDays = 30;}
 else if(12 == iMonth) {iDays = 31;}
 return iDays;
}

可以看出本来应该很简单的一件事情,代码却是这么冗余,解决这个的办法就可以用表驱动方法。
static int aiMonthDays[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
/* 我们可以先定义一个静态数组,这个数组用来保存一年十二个月的天数 */
int iGetMonthDays(int iMonth)
{
 return aiMonthDays[(iMonth - 1)];

 

分享到:
评论

相关推荐

    深入数据驱动编程之表驱动法的详解

    本篇文章是对表驱动法进行了详细的分析介绍,需要的朋友参考下

    极智魔法师G1950游戏鼠标驱动 官方版

    极智魔法师G1950鼠标驱动是一款为极智魔法师G1950游戏鼠标准备的驱动程序。...极智魔法师G1950鼠标驱动官方介绍汇集世界顶级魔兽公会星辰的操控智慧,提供卓越的游戏体验!全部按键可,欢迎下载体验

    行业-电子政务-水流驱动超大叶轮发电法兼河道疏浚利用法的介绍分析.rar

    行业-电子政务-水流驱动超大叶轮发电法兼河道疏浚利用法的介绍分析.rar

    点阵式液晶显示器的动态驱动法

    以点阵式液晶显示器为例对其动态驱动法作以介绍,给出了一种克服交叉效应的办法。  液晶的显示是由于在显示像素上施加了电场,这个电场是显示像素前后两电极上的电位信号的合成。由于直流电场容易使液晶的寿命降低...

    驱动魔法师简体中文注册版.rar

    软件介绍: 安装说明:软件安装后不要立即打开,复制Language文件夹到C:\Program Files\Driver Magician目录下,覆盖原文件即是中文版。最后再使用压缩包内附的信息注册即可。一款比较专业的驱动管理工具,可以...

    行业-电子政务-水流驱动超大叶轮发电法兼河道疏浚利用法 (1)的介绍分析.rar

    行业-电子政务-水流驱动超大叶轮发电法兼河道疏浚利用法 (1)的介绍分析.rar

    怎么关闭驱动防火墙 高优先率防火墙关闭法【详细介绍】.docx

    怎么关闭驱动防火墙 高优先率防火墙关闭法【详细介绍】.docx

    lcd液晶显示屏的两种驱动方法

    LCD液晶显示屏的驱动方式有许多种,常用的驱动方法有静态驱动法和动态驱动法。下面就由小编为您介绍一下吧。

    Driver Magician驱动备份V4.5中文注册版.rar

    软件介绍: Driver Magician即驱动魔法师,和国内的驱动精灵类似的软件,它能够更新硬件驱动程序,备份本机部分或全部硬盘的驱动,在系统出现故障或系统重装之前,你应该先做好备份以便恢复,可备份 驱动为EXE自...

    用常见的DC/DC芯片做LED恒流驱动电路

    近一个月看了很多的广告式的LED驱动的IC介绍,感到毫无新意,即没有把IC做成真正的LED专用驱动,也...其实每款DC/DC的IC(无论升压或降压)都能接成恒流的LED的驱动,现在分别以KZW3688和CE9908为例介绍一下接法及特点。

    HAL库驱动详解.pdf

    介绍 STM32CubeTM是意法半导体的一项原始计划,旨在通过减少 开发工作,时间和成本。 STM32CubeTM涵盖了STM32产品组合。 STM32CubeTM版本1.x包括: STM32CubeMX,一种图形软件配置工具,允许生成C初始化 使用...

    《计算机应用基础》中的任务驱动.doc

    《计算机应用基础》中的任务驱动 摘要:本文主要介绍了我校在以就业为导向的课程改革课题中所用到的"任务驱动"教 学法的具体实施步骤,并将其和传统教学法作了几点比较,提出了实施"任务驱动"教学 法时应注意的几点...

    大白话领域驱动设计DDD视频教程

    课程介绍 抛开杂念,看看传统三层CRUD编程方式 DDD领域驱动设计到底是什么? DDD和传统三层优劣势比较 DDD在国内现象是个什么情况? DDD从战略设计到战术设计概览 第2章 领域分析模型 核心域,支撑子域,通用子域 ...

    多机驱动带式输送机功率平衡的研究与分析

    文章介绍了液体黏性传动装置的结构与工作原理及其液压伺服控制系统原理,给出了一种利用液体黏性传动装置实现带式输送机功率平衡调节的电流控制法原理,即通过改变液体黏性传动装置所配用的液压伺服控制系统中各个电液...

    基于“任务驱动”的CAD教学方法探讨

    介绍了利用"任务驱动"教学法设计的CAD教学方法,从设计任务、分析任务、上机辅导(实践任务)和评价任务几个方面阐述了"任务驱动"教学法与CAD教学相结合的具体教学模式,改变了以往"教师讲,学生听"、以教定学的被动教学...

    基于任务驱动法的_Java程序设计_有效课堂教学(毕设&课设论文参考).pdf

    【1】该资源属于项目论文,非项目...【3】文章适合学习借鉴,为您的项目开发或写作提供专业知识介绍及思路,不推荐完全照抄。 【4】毕业设计、课程设计可参考借鉴! 重点:鼓励大家下载后仔细研读学习,多看、多思考!

    带式输送机驱动滚筒的有限元分析

    主要研究带式输送机驱动滚筒不同轮辐间距对滚筒受力变化的影响,简单介绍有限元分析法和三维建模,然后对驱动滚筒进行受力分析,最后把ANSYS有限元法和CAE技术结合起来对驱动滚筒进行设计分析。

    ARM9 的WinCE 驱动程序设计

    由ARM9微处理器构成的便携式大容量数据采集系统,是典型的测试应用系统,可以在 现场实时采集和存储多达8路、12M字节的数据,数据可长期保存。...法,包括流式接口驱动的编写、系统启动加载和中断初始化等实用技术。

    电磁逆设计 中伴随变量法的浅显介绍与演示_python_Jupyter_代码_下载

    该笔记本是一个现场演示,解释了伴随变量法 (AVM) 及其在电磁问题和设计激光驱动加速器中的应用。 更多详情、使用方法,请下载后阅读README.md文件

Global site tag (gtag.js) - Google Analytics