1、第第5章章 系统设计系统设计System Design章节结构章节结构5.1 系统设计概述系统设计概述5.2 信息系统设计策略信息系统设计策略-结构图结构图5.3 系统设计的原则系统设计的原则5.4 系统设计的策略系统设计的策略5.5 编码设计编码设计5.6 数据库设计数据库设计5.7 输入输入/输出及人机界面设计输出及人机界面设计5.8 系统设计说明书系统设计说明书5.9 系统设计实例系统设计实例25.6 编码设计(代码设计)编码设计(代码设计)代码是用来表征客观事物的一个或代码是用来表征客观事物的一个或一组有序的一组有序的符号符号,它应易于计算机和人识别与处理。,它应易于计算机和人识别与处
2、理。编码就是用字母、数字或其组合来代表事物。编码就是用字母、数字或其组合来代表事物。代码的作用:代码的作用:鉴别功能鉴别功能标识分类对象标识分类对象信息代码化,便于计算机进行识别、分类、排序和信息代码化,便于计算机进行识别、分类、排序和统计统计利用代码可以节省计算机的存储空间,提高运算速利用代码可以节省计算机的存储空间,提高运算速度度利用代码可以提高系统的可靠性利用代码可以提高系统的可靠性35.6.1代码的种类代码的种类代码代码非含义码非含义码含义码含义码有序码有序码随机码随机码校验码校验码对照码对照码缩略码缩略码助记码助记码缩略码缩略码字母顺序码字母顺序码区间码区间码年代码年代码层次码层次码
3、十进制码十进制码特征码特征码P218 图图5.35 代码的种类代码的种类41.有序码(顺序码)有序码(顺序码)将顺序的自然数或字母赋予分类对象。将顺序的自然数或字母赋予分类对象。有序码例:人的性别代码(有序码例:人的性别代码(GB2261-80)1-男男2-女女各系代码等等各系代码等等编码编码对象对象仓库仓库1仓库仓库2仓库仓库3仓库仓库4仓库仓库5仓库仓库6编码编码0102030405065代码的表示形式(编码方式)代码的表示形式(编码方式)(1)数字顺序编码)数字顺序编码(2)数字分组顺序编码)数字分组顺序编码(3)字符编码)字符编码(4)组合编码)组合编码6(1)数字顺序编码)数字顺序编
4、码这是最简单的编码形式,一般适用于被编码对这是最简单的编码形式,一般适用于被编码对象数目较少的情况。象数目较少的情况。例如,某企业管理信息系统中,对例如,某企业管理信息系统中,对6个物资仓库个物资仓库的编码可采用如下的数字顺序码。的编码可采用如下的数字顺序码。编码编码对象对象仓库仓库1仓库仓库2仓库仓库3仓库仓库4仓库仓库5仓库仓库6编码编码0102030405067(2)数字分组顺序编码)数字分组顺序编码当编码对象具有两层(或以上)的分类时,可当编码对象具有两层(或以上)的分类时,可采用数字分组(段)顺序码。采用数字分组(段)顺序码。如如6个仓库中的帐本的编码可采用如下的数字分个仓库中的帐本
5、的编码可采用如下的数字分组顺序码。组顺序码。8(3)字符编码)字符编码数字编码虽然结构简单,但也存在不容易识别数字编码虽然结构简单,但也存在不容易识别和记忆的缺点。为了容易识别和记忆,可采用字符和记忆的缺点。为了容易识别和记忆,可采用字符编码。编码。如我们可对企业的如我们可对企业的6个仓库采用下面的字符编码。个仓库采用下面的字符编码。9(4)组合编码)组合编码编码对象具有两层(或以上)的分类时,我们编码对象具有两层(或以上)的分类时,我们可采用数字和字符的组合编码方式使编码对某层分可采用数字和字符的组合编码方式使编码对某层分类的记忆和识别更直观和容易。类的记忆和识别更直观和容易。如前述如前述6
6、个仓库中的帐本的编码可采用如下的组个仓库中的帐本的编码可采用如下的组合编码。合编码。102.区间码区间码按编码对象的特点把代码分成按编码对象的特点把代码分成若干区段若干区段,每一,每一个区段表示编码对象的一个类别。例如邮政编码、个区段表示编码对象的一个类别。例如邮政编码、国际电话号码国际电话号码,身份证号码等,身份证号码等。23-06-010086-551-1234567区间码进一步分为区间码进一步分为层次码、十进制码、特征码层次码、十进制码、特征码。11(1)区间码之层次码)区间码之层次码按分类对象的从属层次关系作为排列顺序的一按分类对象的从属层次关系作为排列顺序的一种代码。种代码。国民经济
7、行业分类和代码(国民经济行业分类和代码(GB4754-84)采用三)采用三层的层次码。三层分别代表大类、中类、小类。层的层次码。三层分别代表大类、中类、小类。第一层(大类)第一层(大类)XXX第二层(中类)第二层(中类)第三层(小类)第三层(小类)12(2)区间码之十进制码)区间码之十进制码十进制码中每一位数字代表一类,一般用于图十进制码中每一位数字代表一类,一般用于图书分类。书分类。500 自然科学自然科学510 数学数学520 天文学天文学 620 工程和技术科学工程和技术科学621 机械和电气工程机械和电气工程621.1 蒸汽动力工程蒸汽动力工程621.2 水利机械水利机械13(3)区间
8、码之特征码)区间码之特征码在码的结构中,为多个属性各规定一个位置,在码的结构中,为多个属性各规定一个位置,从而表示某一编码对象的不同方面特征。从而表示某一编码对象的不同方面特征。如某一男装的编码为如某一男装的编码为M38-2W1。143.助记码助记码用可以帮助记忆的字母或数字来表用可以帮助记忆的字母或数字来表示编码对象,将编码对象的名称、规格示编码对象,将编码对象的名称、规格等作为代码的一部分。等作为代码的一部分。TV-B-12 TV-C-20 20寸彩色电视机寸彩色电视机154.缩略码缩略码把人们习惯使用的缩写字直接用于把人们习惯使用的缩写字直接用于代码,代码,是助记码的特例是助记码的特例。
9、Cm、Kg等等165.校验码及其生成过程、代码校验方法校验码及其生成过程、代码校验方法校验码校验码=校验位校验位自检码自检码=原代码(代码本体)原代码(代码本体)+校验码校验码校验码的校验码的一种一种生成过程:生成过程:对原代码的每一位加权求和对原代码的每一位加权求和设原代码为设原代码为C1C2Cn,权因子为,权因子为P1P2Pn,加权求得:加权求得:S=C1P1+C2P2+CnPn权因子可以取自然数权因子可以取自然数1,2,3,几何级数,几何级数2,4,8,16,32,质数,质数2,3,5,7,11、等。等。17校验码的生成过程校验码的生成过程 用用加权加权和除以模得余数和除以模得余数R=S
10、 mod M其中,其中,R表示余数,表示余数,M表示模数,可表示模数,可取取M=10,11等。等。模减去余数模减去余数或者直接取余数或者直接取余数得校验码得校验码,附加在原代码后。附加在原代码后。Cn+1=M-R 或或R18校验码的生成过程例校验码的生成过程例原代码:原代码:123456权因子:权因子:173173模:模:10加权和:加权和:S=11+2733415763=81余数:余数:R=81 mod 10=1校验码:校验码:10-1=9自检码:自检码:自检码自检码=原代码(代码本体)原代码(代码本体)+校验码校验码19习题习题1:计算校验码:计算校验码原代码:原代码:12345权因子:权
11、因子:65432模:模:11加权和:加权和:S=16+25344352=50余数:余数:R=50 mod 11=6校验码:校验码:11-6=5自检码:自检码:12345520习题习题2:计算:计算18位身份证号的校验码位身份证号的校验码老的身份证号是老的身份证号是15位,新的身份证号为位,新的身份证号为18位。位。关于身份证第关于身份证第18位是怎么计算的,原理如下:位是怎么计算的,原理如下:根据国家标准根据国家标准 GB 11643-1999中有关公民身份号中有关公民身份号码的规定,公民身份号码是码的规定,公民身份号码是特征特征组合码,组合码,由由17位数位数字本体码和字本体码和1个数字校验
12、码组成个数字校验码组成。排列顺序从左至右排列顺序从左至右依次为:依次为:6位数字地址码,位数字地址码,8位数字出生日期码,位数字出生日期码,3位位数字顺序码和数字顺序码和1位数字校验码。位数字校验码。地址码地址码表示编码对象常住户口所在县(市、旗、表示编码对象常住户口所在县(市、旗、区)的行政区划代码。区)的行政区划代码。21计算计算18位身份证号的校验码(续位身份证号的校验码(续1)生日期码生日期码编码对象出生的年、月、日,其中年编码对象出生的年、月、日,其中年份用份用4位数字表示,年、月、日之间不用分隔符。例位数字表示,年、月、日之间不用分隔符。例如:如:1981年年05月月11日就用日就
13、用19810511表示。表示。顺序码顺序码为同一地址码所标识的区域范围内,对为同一地址码所标识的区域范围内,对同年同月同日出生的人员编定的顺序号。其中第同年同月同日出生的人员编定的顺序号。其中第17位位奇数分给男性,偶数分给女性。奇数分给男性,偶数分给女性。校验码校验码(第(第18位)是根据前面位)是根据前面17位数字码,按位数字码,按照照ISO 7064:1983.MOD 11-2计算出来的。计算出来的。22计算计算18位身份证号的校验码(续位身份证号的校验码(续2)第第18位数字的计算方法为:位数字的计算方法为:原代码:原代码:身份证号前身份证号前17位。位。权因子:权因子:7-9-10-
14、5-8-4-2-1-6-3-7-9-10-5-8-4-2模:模:11加权和:加权和:身份证号前身份证号前17位数字和对应权因子相乘再位数字和对应权因子相乘再求和求和S余数:余数:R=S mod 11,R只可能有只可能有0-1-2-3-4-5-6-7-8-9-10这这11个取值个取值校验码:校验码:按规定(按规定(ISO 7064:1983.MOD 11-2)不同)不同R对应校验码取值分别为对应校验码取值分别为1-0-X-9-8-7-6-5-4-3-2(直接取余数(直接取余数得校验码得校验码)23计算计算18位身份证号的校验码(续位身份证号的校验码(续3)可见若余数是可见若余数是2,就会在身份证
15、末位,就会在身份证末位出现罗马数字的出现罗马数字的X。若余数是。若余数是10,身份证,身份证的最后一位号码就是的最后一位号码就是2。试计算自己的身份证校验码是否与试计算自己的身份证校验码是否与实际情况相符。实际情况相符。24用校验码检查代码的过程用校验码检查代码的过程使用校验码是使用校验码是输入设计输入设计环节的环节的输入校验方式输入校验方式之之一,是前述校验码一,是前述校验码生成过程的逆向过程生成过程的逆向过程。当自检码当自检码C1C2CnCn+1(其中(其中Cn+1为校验码)输为校验码)输入计算机后,对入计算机后,对C1C2Cn分别乘以原来的权,分别乘以原来的权,Cn+1乘以乘以1,把它们
16、相加后所得的和除以模。若余数为,把它们相加后所得的和除以模。若余数为0,则该代码,则该代码一般来说一般来说是正确的,否则输入有错。是正确的,否则输入有错。(原代码与权乘积之和校验码)(原代码与权乘积之和校验码)模整数模整数25用校验码检查代码例用校验码检查代码例设输入的代码设输入的代码(含校验码含校验码)为为55787,其中,其中7为校验值,对每一位乘以它的原来的权为校验值,对每一位乘以它的原来的权1234,校验位乘的权为,校验位乘的权为1。用所得的加权和。用所得的加权和被模被模9除,若余数为零,则代码除,若余数为零,则代码一般一般是正确是正确的,否则就是输入有错。上述代码显然有错,的,否则就
17、是输入有错。上述代码显然有错,因为其加权和除以模的余数不为零。因为其加权和除以模的余数不为零。75/9=8.326不一般的情况不一般的情况原编码原编码:1234569(正正)或或2415569(误误)权因子权因子:173173模模:10余数余数:90/10=9.0100/10=10.0结论结论:本例两种编码检验结果均为本例两种编码检验结果均为0,检验失,检验失效。效。27用校验码检查组合编码的处理方法用校验码检查组合编码的处理方法一般情况下,校验码是对数字代码一般情况下,校验码是对数字代码进行检验。在使用校验码对组合编码进进行检验。在使用校验码对组合编码进行检查时,将行检查时,将AZ跟随跟随0
18、9顺序变为:顺序变为:A=10B=11Z=3528 低可靠低可靠性系统性系统数字代码数字代码字母数字代码字母数字代码模:模:10权:权:7,3,1,7,3,1基本检错率基本检错率:90%一般一般可靠性可靠性系统系统模:模:11权:权:*基本检错率基本检错率:90.909%模:模:37权:权:*基本检错率基本检错率:9797.297%高可靠高可靠性系统性系统模:模:97权:权:*基本检错率基本检错率:98.969%模:模:523权:权:*基本检错率基本检错率:99.808%*为摆动的等差级数:权从为摆动的等差级数:权从1、2、3递增到低于模的一半,然后再从递增到低于模的一半,然后再从模减模减1,
19、递减至高于模的一半;按此规律进行重复。例如:模是,递减至高于模的一半;按此规律进行重复。例如:模是11,则,则权为权为1、2、3、4、5、10、9、8、7、6、1、2、3、.不不同同权权和和模模的的检检错错率率(检检错错效效率率)不同权和模的检错率(检错效率)不同权和模的检错率(检错效率)模模权权抄写错抄写错检错率检错率易位错易位错检错率检错率隔位隔位易位错易位错检错率检错率随机错随机错检错率检错率1010101111111,2,1,2,1,21,3,1,3,1,37,6,5,4,3,29,8,7,4,3,21,3,7,1,3,77,6,5,4,3,2100%100%87%95%100%100
20、%98%89%100%100%89%100%0%-89%-100%-90%-305.6.2编码设计的原则编码设计的原则唯一性唯一性通过编码可唯一地确定编码对象,这是编码在通过编码可唯一地确定编码对象,这是编码在数据管理中最基本的作用。数据管理中最基本的作用。合理性合理性代码结构应与相应的分类体系相对应。代码结构应与相应的分类体系相对应。可扩充性和稳定性可扩充性和稳定性应留有充分的余地,以备将来不断扩充的需要。应留有充分的余地,以备将来不断扩充的需要。简单性简单性代码结构尽量简单,并注意避免形似符号。代码结构尽量简单,并注意避免形似符号。31编码设计的原则(续编码设计的原则(续1)适用性适用性代
21、码尽可能反映对象的特点,以帮助记忆,便代码尽可能反映对象的特点,以帮助记忆,便于填写。于填写。规范性规范性国家有关编码标准是代码设计的重要依据,已国家有关编码标准是代码设计的重要依据,已有的标准必须遵循。在一个代码体系中,代码结构、有的标准必须遵循。在一个代码体系中,代码结构、类型、编写格式必须统一。类型、编写格式必须统一。易于修改性易于修改性标准化与通用性标准化与通用性尽量尽量采用相应采用相应国际或国内国际或国内标准,标准,系统系统内部使用内部使用的代码需要的代码需要统一统一。32编码设计的原则(续编码设计的原则(续2)要尽量采用不易出错的代码结构要尽量采用不易出错的代码结构如:字母如:字母
22、-字母字母-数字数字(WW3)字母字母-数字数字-字母字母(W2W)当代码长于当代码长于4个字母或个字母或5个数字时应分成小段个数字时应分成小段如:如:J2LV9-JXYQ6-J344K-QLYTH-8RG2W若已知代码的位数为若已知代码的位数为P位,每一位上可用字符数为位,每一位上可用字符数为Si,则可以组成代码的总数为:,则可以组成代码的总数为:355.6.3编码设计的步骤编码设计的步骤(1)确定代码对象)确定代码对象(2)考查是否已有标准代码)考查是否已有标准代码(3)根据代码的使用范围、使用时间,)根据代码的使用范围、使用时间,根据实际情况选择代码的种类与类型根据实际情况选择代码的种类
23、与类型(4)考虑检错功能)考虑检错功能(5)编写代码表)编写代码表36P224 表表5.6 编写代码表编写代码表根据系统分析阶段对系统的详细调查结果,根据系统分析阶段对系统的详细调查结果,编制代码表并对做详细说明。编制代码表并对做详细说明。编码对编码对象象使用范使用范围围使用使用期限期限建建议议使用的使用的编码编码方法方法学生学号整个系统长期合成码课程编码整个系统长期区间码教师编号整个系统长期合成码教室编号整个系统长期合成码学生学号学生学号:年:年级编级编号号2位位+专业编专业编号号2位位+班班级编级编号号1位位+顺顺序号序号2位位37编码设计和使用经验编码设计和使用经验依据经验,编码的设计和
24、使用一般依据经验,编码的设计和使用一般遵循如下方法:遵循如下方法:设计时:分段设计设计时:分段设计使用时:用户标携带使用时:用户标携带+前台输入前台输入+后后台组合台组合38编码设计和使用例编码设计和使用例某钢厂产品编码为某钢厂产品编码为7段,段,12位分组数字码。位分组数字码。如如20#普沸通用大型工字钢的编码为普沸通用大型工字钢的编码为421032011101,其结构为:,其结构为:大类码大类码小类码小类码规格码规格码材质码材质码用途码用途码421032011101细材细材 型材型材大型大型 工字钢工字钢20#普沸普沸通用通用39此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!