教学对象  教学时间  年 月 日  教学内容 第6章 系统设计 第3节 代码设计  教学目的 理解代码设计的作用,了解代码的种类,掌握代码的设计方法和校验方法。  教学重点 代码的设计方法,代码的种类及校验方法。  教学难点 代码的校验。  建议学时 1学时 教学教具 多媒体教学系统,国家标准  教学方法 讲授(PPT)  演示设计 板书设计 一、代码及其功能 二、代码的设计方法 三、代码的种类 四、代码的校验  教学过程  课程导入  为什么在校学生都有一个学号?在不同的学校,同一个学生的学号又不一样?公民的身份证号码有多少位?它们代表什么意思?想想看,我们每一个人有多少除了名字以外的号码?等等。       一、代码及其作用 1、定义 代码(Code)是人为确定的代表客观事物(实体)名称、属性或状态的符号或者是这些符号的组合。 2、作用 在系统开发过程中设计代码作用是: 唯一化。在现实世界中有很多东西如果我们不加标识是无法区分的,这时机器处理就十分困难。所以能否将原来不能确定的东西,唯一地加以标识是编制代码的首要任务。 举例。最简单、最常见的例子就是职工编号。在人事档案管理中我们不难发现,人的姓名不管在一个多么小的单位里都很难避免重名。为了避免二义性,唯一地标识每一个人,因此编制了职工代码。 规范化。唯一化虽是代码设计的首要任务。但如果我们仅仅为了唯一化来编制代码,那么代码编出来后可能是杂乱无章的,使人无法辨认,而且使用起来也不方便。所以我们在唯一化的前提下还要强调编码的规范化。 举例。财政部关于会计科目编码的规定,以“1”开头的表示资产类科目;以“2”表示负债类科目;“3”表示权益类科目;“4”表示成本类科目等。 系统化。系统所用代码应尽量标准化。在实际工作中,一般企业所用大部分编码都有国家或行业标准。 举例。在产成品和商品中各行业都有其标准分类方法,所有企业必须执行。另外一些需要企业自行编码的内容,例如生产任务码、生产工艺码、零部件码等,都应该参照其它标准化分类和编码的形式来进行。 二、代码设计的原则 一个良好的设计既要保证处理问题的需要,又要保证科学管理的需要。在实际分类时必须遵循如下几点: 1、必须保证有足够的容量,要足以包括规定范围内的所有对象。如果容量不够,不便于今后变化和扩充,随着环境的变化这种分类很快就失去了生命力。 2、按属性系统化。分类不能是无原则的,必须遵循一定的规律。根据实际情况并结合具体管理的要求来划分是我们分类的基本方法。分类应按照处理对象的各种具体属性系统地进行。如在线分类方法中,哪一层次是按照什么属性来分类,哪一层次是标识一个什么类型的对象集合等都必须系统地进行,只有这样的分类才比较容易建立,比较容易为别人所接受。 3、分类要有一定的柔性,不至于在出现变更时破坏分类的结构。所谓柔性是指在一定情况下分类结构对于增设或变更处理对象的可容纳程度。柔性好的系统在一般的情况下增加分类不会破坏其结构。但是柔性往往还会带来别的一些问题,如冗余度大等,这都是设计分类时必须考虑的问题。 4、注意本分类系统与外系统、已有系统的协调。任何一项工作都是从原有的基础上发展起来的,故分类时一定要注意新老分类的协调性,以便于系统的联系、移植、协作以及新老系统的平稳过渡。 如何利用国际标准、国家标准、部颁标准、行业标准? 三、代码的设计方法 目前最常用的分类方法概括起来有两种,一种是线分类方法,一种是面分类方法,在实际应用中根据具体情况各有其不同的用途。 1、线分类方法 线分类方法是目前用得最多的一种方法,尤其是在手工处理的情况下它几乎成了唯一的方法。 线分类方法的主要出发点是:首先给定母项,母项下分若干子项,由对象的母项分大集合,由大集合确定小集合……,最后落实到具体对象。 线分类划分时要掌握两个原则:唯一性和不交叉性。 线分类法的特点: 结构清晰,容易识别和记忆,容易进行有规律的查找。 与传统方法相似,对手工系统有较好的适应性。 主要缺点是结构不灵活,柔性较差。 举例。分类的结果造成了一层套一层的线性关系。 2、面分类方法 与线分类法不同,主要从面角度来考虑分类。 面分类方法的特点是: 柔性好,面的增加、删除、修改都很容易。 可实现按任意组配面的信息检索,对机器处理有良好的适应性。 缺点是不易直观识别,不便于记忆。 举例。代码3212表示材料为钢的Φ1.0mm圆头的镀铬螺钉。  三、代码的种类 1、顺序码 以某种顺序形式编码。 例如。各种票据的编号,都是顺序码。 但信息系统的设计工作中,纯粹的顺序码是很少被使用的,它总是与其他形式结合使用。 2、数字码 即以纯数字符号形式编码。 数字码是在各类管理中最常用的一类编码形式。根据数据在编码中的排列关系,或代表对象的属性不同,可分为区间码和层次码。 区间码:将顺序码分成若干区段,每一区段代表部分编码对象。 层次码:在代码结构中,为实体的每个属性确定一位或几位编码,并排成一定的层次关系。 举例。我国目前使用的居民身份证就是采用一个15位的数字码,前6位表示地区编码,中间6位表示出生年月日,最后3位表示顺序号和其它状态(性别等)。 这种数字码属层次码。这种编码优点是易于校对,易于处理,缺点是不便记忆。 3、字符码 即以纯字符形式编码(英文、汉语拼音等)。 这类编码常见的有我们在程序设计中的字段名、变量名编码。 举例。在开发一个成本管理信息系统时,在数据库设计时,所有的表名均以C-开始,视图名用C-V-开始。例如产生各种材料汇总的视图:材料成本表C-CLCB,C-V-CLHZ。 这就是一个典型的纯字符码。这种编码优点是可辅助记忆,缺点是校对不易,不易反映分类的结构。 4、混合码 即以数字和字符混合形式编码。 混合码是在各类管理中最常用的另一类编码形式。这种编码的优点是易于识别,易于表现对象的系列性,缺点是不易校对。 例如GBxxxx表示国际标准的某类编码,IEEE802·X表示某类网络协议标准名称的编码。所有的汽车牌照编号,都是混合码。 为什么会出现代码输入错误? 四、代码的校验 1、录入代码时的可能错误: 识别错误:1/7,0/O,Z/2,D/O,S/5,…… 易位错误:12345/13245,…… 双易位错误:12345/13254,…… 随机错误。上述两种或两种以上的错误出现 2、避免代码录入出现错误的办法 在设计好的代码后,再增加一位,作为代码的组成部分。 增加的一位,即为校验位。使用中,没有特别性。 举例。xxxxx –设计好的代 码共5位 xxxxxx –增加校验位后共6位,使用时,需用6位xxxxxx 。 使用时,应录入包括校验位在内的完整代码,代码进入系统后,系统将取该代码校验位前的各位,按照确定代码校验位的算法进行计算,并与录入代码的最后一位(校验位)进行比较,如果想等,则录入代码正确,否则录入代码错误,进行重新录入。 3、校验位的确定步骤 设有一组代码为: C1C2C3C4…Ci 第一步:为设计好的代码的每一位Ci确定一个权数Pi(权数可为算术级数、几何级数或质数)。 第二步:求代码每一位Ci与其对应的权数Pi的成绩之和S S=C1*P1+C2*P2+……+Ci*Pi (i=1,2,……,n) n = ∑Ci*Pi (i=1,2,……,n) i=1 第三步:确定模M 第四步:取余R = SMOD(M) 第五步:校验位Ci+1 = R 最终代码为: C1C2C3C4…CiCi+1 使用时: C1C2C3C4…CiCi+1 举例。校验位的确定 原设计的一组代码为五位,如32456,确定权数为7,6,5,4,3 求代码每一位Ci与其对应的权数Pi的成绩之和S S= C1*P1+C2*P2+……+Ci*Pi (i=1,2,……,n)=3*7+2*6+4*5+5*4+6*3 =21+12+20+20+18=91 确定模M,M=11 取余R,R = SMOD(M) = 91MOD(11) = 3 校验位Ci+1 = R = 3 最终代码为: C1C2C3C4…CiCi+1 ,即324563 使用时为:324563 该组代码中的其他代码按此算法,分别求得校验位,构成新的代码。 混合码如何校验?    教学小结 代码是人为确定的。代码在管理信息系统中起着重要的作用,往往被用作主关键字。为了使代码更加合理,针对不同客观事物,提出了不同的代码设计方法。为了使系统具有更好的性能,一般尽可能采用国际、国家、部颁和行业标准。代码往往易于出错,因此,必须对所输入的代码进行校验。  学习指导 掌握代码的作用,了解代码的种类、设计方法和设计原则,了解代码校验位的作用和它的确定、校验步骤。  参阅教材 教材第11章第3节  网络资源 运用http://www.google.com/ http://www.baidu.com/ http://e.pku.edu.cn/ 等搜索引擎,以系统设计、代码设计等为关键字进行搜索。  作 业 第6章第4、5题  教学后记