MIS 开发--第七章 之代码设计_第1页
MIS 开发--第七章 之代码设计_第2页
MIS 开发--第七章 之代码设计_第3页
MIS 开发--第七章 之代码设计_第4页
MIS 开发--第七章 之代码设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章第七章 管理信息系统的设计管理信息系统的设计 -代码设计代码设计v一、概念一、概念v二、代码的功能二、代码的功能v三、代码设计的原则v四、代码的种类v五、代码校验本章重点问题提示:v代码的种类代码的种类v代码的校验代码的校验一、概念一、概念vMIS中,每种实体(人、事、物、部门)都中,每种实体(人、事、物、部门)都必须有代码,以便计算机处理。必须有代码,以便计算机处理。http:/ 为了有效推动计算机应用,我国已制定了一系列为了有效推动计算机应用,我国已制定了一系列统一的标准编码应用于各种信息系统中。统一的标准编码应用于各种信息系统中。v 每一只上市证券均拥有各自的证券代码,证券每一只上

2、市证券均拥有各自的证券代码,证券与代码一一对应,且证券的代码一旦确定,就不再与代码一一对应,且证券的代码一旦确定,就不再改变。这主要是便于电脑识别,使用时也比较方便。改变。这主要是便于电脑识别,使用时也比较方便。v 在上海证券交易所上市的证券,根据上交所在上海证券交易所上市的证券,根据上交所证券编码实施方案证券编码实施方案,采用,采用6位数编制方法,前位数编制方法,前3位位数为区别证券品种,具体见下表所列:数为区别证券品种,具体见下表所列:001国债现货;国债现货;201国债回购;国债回购;110120企业债券;企业债券;129100可转换债券;可转换债券;310国债国债期货;期货;50055

3、0基金;基金;600A股股;700配股;配股;710转配股;转配股;701转转配股再配股;配股再配股;711转配股再转配股;转配股再转配股;720红利;红利;730新股申购;新股申购;735新基金申购;新基金申购;900B股;股;737新股配售。新股配售。 三、代码设计的原则在设计代码时要考虑以下几个方面:1.代码应同时满足用户需要和所使用的处理方法。2.代码必须唯一地区分开它所标识的数据项目。3.代码设计应允许环境的一定变化。代码的改变是一项需要几个月到几年时间并耗费很高的工作。4.代码结构必须能被组织中的各个用户所理解,能尽可能使代码简单、实用和富有含义。5.一个单独的处理业务可能要涉及到

4、信息系统中很多文件,或是一个文件可能有多个业务要处理,所以一个代码尽量要能使其具有各方面的含义以满足各业务的处理及查询要求。6.要考虑相应的标准化以降低操作人员在使用代码时发生混淆和失误的概率,即应注意以下几个问题:设计代码时不要使用那些形象相似的字符,如:字母O、Z、I、S、L和V容易与数字0、2、1、5和字母U搞混。避免代码之间使用空格。利用日期时间编码。当用一天的24小时编码时,要避免上午/下午的混淆。日期设计按年月日的顺序,如990918。7.一个代码的外部形式和长度应相同,如001199而不是1199。8.长度大于4个字符或5个数字的代码应分成比较小的段以便于人去记录和掌握(对于计算

5、机无所谓),如726456315。9.对要求精确度高的代码可采用加校验位的方法检验其录入或传送的正确性,校验位是在建立代码时就形成了,并且成为代码的一部分,它是由事先约定的算法确定的。当代码每次被录入或传送时,机器根据事先约定的算法对其进行正确性校验。四、代码种类四、代码种类(一)顺序码(一)顺序码(二)区间码(二)区间码(三)助记码(三)助记码(一)顺序码(一)顺序码顺序码顺序码又称系列码,它是一种用连续数字代又称系列码,它是一种用连续数字代表编码对象的码。表编码对象的码。v优点:优点:简单明了;简单明了;代码短;代码短;易扩充。易扩充。v缺点:缺点:没有逻辑基础,(本身不能说明任何信息的特

6、征,)不没有逻辑基础,(本身不能说明任何信息的特征,)不便记忆;不易于分类处理;增加编码只能排在最后;便记忆;不易于分类处理;增加编码只能排在最后;删除则造成空码。删除则造成空码。v适用:该编码除了序列作用外无太多意义,因此通适用:该编码除了序列作用外无太多意义,因此通常作为其他码分类中细分类的一种补充手段。常作为其他码分类中细分类的一种补充手段。(二)区间码(二)区间码区间码区间码把数据项分成若干组,每一区间代表把数据项分成若干组,每一区间代表一个组,码中数字的值和位置都代表一定意义一个组,码中数字的值和位置都代表一定意义区间码可以分为区间码可以分为层次码、十进制码、特层次码、十进制码、特征

7、码等。征码等。实例:中国公民身份证实例:中国公民身份证v1-2:所在省市:所在省市v3-4:所在地区:所在地区v5-6:所在县区:所在县区v7-10:年:年v11-12:月:月1.层次码:按照对象类别的不同从属层次,将代码的层次码:按照对象类别的不同从属层次,将代码的各数字位分成若干区间,每个区间分别规定不同的含各数字位分成若干区间,每个区间分别规定不同的含义义。(规则:左端为高层次代码,右端为低层次代码)。(规则:左端为高层次代码,右端为低层次代码)我国现行使用公民身份证号码有两种尊循两个国家标准,GB 11643-1989和GB 11643-1999。GB 11643-1989中规定的是1

8、5位身份证号码:排列顺序从左至右依次为:六位数字地址码,六位数字出生日期码,三位数字顺序码,其中出生日期码不包含世纪数。GB 11643-1999中规定的是18位身份证号码:公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 其中顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。身份证系统不为人熟知的编码规则身份证系统不为人熟知的编码规则v我国的身份证认证系统一共我国的身份证认证系统一共18位,全部采用数字编位,全

9、部采用数字编码。其中第码。其中第17位表示在前位表示在前16位数字完全相同时,某位数字完全相同时,某个公民的顺序号,男性用奇数表示,女性用偶数表个公民的顺序号,男性用奇数表示,女性用偶数表示。如果前面示。如果前面16位数字均相同的同性别公民超过位数字均相同的同性别公民超过5人,则可以人,则可以“进位进位”到到16位。位。v如:有如:有6个女性公民前个女性公民前16位数字均相同,并假设第位数字均相同,并假设第16位是位是7,则这些女性公民的末两位编号分别为,则这些女性公民的末两位编号分别为70,72,74,76,78 ,?。,?。某学生的代码某学生的代码2002 102 4 22代码层次代码层次

10、第一层代码第一层代码第二层代码第二层代码第三层代码第三层代码第四层代码第四层代码代码内容代码内容2002102422代码区间意代码区间意义义入学年份入学年份所在院系所在院系所在班级所在班级学生流水号学生流水号2.十进制码:将整体分成若干层,每划分一层用一个小数点隔十进制码:将整体分成若干层,每划分一层用一个小数点隔开,然后在把每一层在分成若干层,可以不断地划分。开,然后在把每一层在分成若干层,可以不断地划分。v1 第一章第一章v1.1v1.1.1v1.1.2v1.2v2. 第二章第二章3.特征码:特征码的各类别层次间没有隶属关系,而特征码:特征码的各类别层次间没有隶属关系,而是代表了编码对象的

11、不同特征方面。是代表了编码对象的不同特征方面。某职工代码某职工代码“1322”1322”。 在行政岗位上的工作经验不满在行政岗位上的工作经验不满5 5年,工资水平在年,工资水平在20002000元以上,具有硕元以上,具有硕士学历。士学历。代码层次代码层次第一层代码第一层代码第二层代码第二层代码第三层代码第三层代码第四层代码第四层代码代码内容代码内容1 5年以下年以下1 市场销售市场销售12000元以元以下下1本科及以本科及以下下2 5年以上年以上2技术支持技术支持3 行政管理行政管理22000元以元以上上2硕士硕士3博士博士代码区间意代码区间意义义工作经验年工作经验年份份所在岗位性所在岗位性质

12、质工资水平工资水平学历水平学历水平v优点:优点:分类基准明确,分类基准明确,码中的数字(或字母)与位置代表一定的意义,码中的数字(或字母)与位置代表一定的意义,因而检索、分类或排序都很方便;因而检索、分类或排序都很方便;v缺点:缺点:有时造成代码过长。有时造成代码过长。(三)助记码(三)助记码v助忆码用文字、数字或文字数字结合起来描助忆码用文字、数字或文字数字结合起来描述,其特点是,可以通过联想帮助记忆。述,其特点是,可以通过联想帮助记忆。v例:例:用用TV-C-20代表代表20英寸彩色电视机;英寸彩色电视机;v会计系统的摘要编码:会计系统的摘要编码:YSZK应收账款应收账款医药采购系统中的助

13、记码医药采购系统中的助记码vbjh v优缺点:助忆码适用于数据项数目较少的情优缺点:助忆码适用于数据项数目较少的情况况(一般少于一般少于50个个),否则可能引起联想出错。,否则可能引起联想出错。此外,太长的助忆码占用计算机容量太多,此外,太长的助忆码占用计算机容量太多,也不宜采用。也不宜采用。五、代码结构中的校验位五、代码结构中的校验位(一)代码校验的重要性(一)代码校验的重要性v代码作为计算机的重要输入内容之一,其正代码作为计算机的重要输入内容之一,其正确性直接影响到整个处理工作的质量。特别确性直接影响到整个处理工作的质量。特别是人们重复抄写代码和将它通过人手输入计是人们重复抄写代码和将它通

14、过人手输入计算机时,发生错误的可能性更大。算机时,发生错误的可能性更大。常见的输入错误常见的输入错误v校验位可以发现以下各种错误校验位可以发现以下各种错误:抄写错误,例如抄写错误,例如l写成写成7;易位错误,例如易位错误,例如1234写成写成1324;双易错误,例如双易错误,例如26913写成写成21963;随机错误,包括以上两种或三种综合性错误随机错误,包括以上两种或三种综合性错误或其他错误。或其他错误。(二)设置代码校验位(二)设置代码校验位 代码由数字或字符组成,输入时易出错,为确保输入正确代码,在代码结构中多加上一位校验位,用来检查代码正确性。校验位是通过对代码各位的数字进行某种数学方

15、法计算得出,代码输入后,机器通过程序运用同样数学方法对代码各位数字进行计算,计算的值与输入的校验位进行比较,验证输入代码的正确性。教师代码教师代码-114055为确保不发生错误采用代码校验为确保不发生错误采用代码校验法后法后114055 ?比如比如 (114055 1)一时疏忽,误输为一时疏忽,误输为114005 1(实际(实际114005 被校验计算后被校验计算后 得得数为数为3, 也就说输入也就说输入1140053系系统才不报错。)统才不报错。)(三)代码的校验位的计算(三)代码的校验位的计算校验位的计算方法:将代码的每一位乘以相应的权数,得各位积;求各位的乘积之和;用模除以和,求出余数;

16、以模减余数之差(或直接取余数)作为校验码。简介简介-模数加权法模数加权法 确定校验位的方法和步骤:确定校验位的方法和步骤:将代码(Ci)各位乘以权因子(Pi),求出各位的积: C1P1,C2P2,.CnPn求出加权和:S=C1P1+C2P2+.+CnPn以称为模的常数 M 除和,求出余数R 即:R=S mod M把模 M 减去余数 R 作为校验位, J=M-R ( 当J为10、11、12时,其校验位码为A、B、C) (P P)权因子的选取权因子的选取: : 几何级数,如几何级数,如 1 1,2 2,4 4,8 8,1616,3232, 算术级数,如算术级数,如 1, 21, 2,3 3,4 4

17、,5 5,6 6,7 7, 质数,质数, 如如 1 1,3 3,5 5,7 7,1111,1313,1717, 有规律的数,如有规律的数,如 1 1,3 3,7 7,1 1,3 3,7 7, (M)M)模的选取模的选取: : 可取可取 1010,1111,1313等等例举例举例子:原代码1238,权因子为质数法,模M=10 , 以 J=M R 为校验码,设计出其校验码。原编码:原编码:1 2 3 8 权因子:权因子:11 7 5 3 S=11+14+15+24=64R= S MOD M = 64 MOD 10 =4J = M R=10-4=6(校验位)(校验位)原代码加校验码:原代码加校验码:

18、1 2 3 8 6范例:范例:身份证校验位的产生身份证校验位的产生 第二代身份证号码第十八位数字的计算方法为:第二代身份证号码第十八位数字的计算方法为: 一一. 将前面的身份证号码将前面的身份证号码17位数分别乘以不同的系数。从第位数分别乘以不同的系数。从第一位到第十七位的系数分别为:一位到第十七位的系数分别为:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 二二. 将这将这17位数字和系数相乘的结果相加。位数字和系数相乘的结果相加。 三三. 用加出来和除以用加出来和除以11,看余数是多少?,看余数是多少? 四四. 余数只可能有余数只可能有0 1 2 3 4 5 6 7

19、 8 9 10这这11个数字。其分别个数字。其分别对应的最后一位身份证的号码为对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2。 五五. 通过上面得知如果余数是通过上面得知如果余数是2,就会在身份证的第,就会在身份证的第18位数字位数字上出现罗马数字的上出现罗马数字的。如果余数是。如果余数是10,身份证的最后一位号,身份证的最后一位号码就是码就是2。 代码校验的用途代码校验的用途 -以身份证为例以身份证为例v例如:某男性的身份证例如:某男性的身份证号码是号码我们要看看这个身份证我们要看看这个身份证是不是合法的身份证。是不是合法的身份

20、证。 信息系统利用设计的程序进行校验信息系统利用设计的程序进行校验(以下是系统自动模拟的验证过程)(以下是系统自动模拟的验证过程)v首先:前首先:前17位的乘积和是位的乘积和是189 然后:用然后:用189除以除以11得出的结果是得出的结果是17 + 2/11,也就是说余数是,也就是说余数是2。 最后:通过对应规则就可以知道余数最后:通过对应规则就可以知道余数2对应对应的数字是的数字是x。v所以,这是一个合格的身份证号码。所以,这是一个合格的身份证号码。 身份证系统校验程序设计身份证系统校验程序设计所需代码函数如下:Function IDCheck(e)IDCheck = truearrVer

21、ifyCode = Split(1,0,x,9,8,7,6,5,4,3,2, ,)Wi = Split(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2, ,)Checker = Split(1,9,8,7,6,5,4,3,2,1,1, ,)If Len(e) 18 ThenIDCheck= 身份证号共有 15 码或18位IDCheck = FalseExit FunctionEnd IfDim AiIf Len(e) = 18 ThenAi = Mid(e, 1, 17)ElseIf Len(e) = 15 ThenAi = eAi = Left(Ai, 6) & 19 & Mid(Ai, 7, 9)End IfIf Not IsNumeric(Ai) ThenIDCheck= 身份证除最后一位外,必须为数字!IDCheck = FalseExit FunctionEnd IfDim strYear, strMonth, strDaystrYear = CI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论