版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 系统实现系统实现 - -编码编码 程序编码的目的程序编码的目的 结构化程序设计的原则结构化程序设计的原则 自顶向下,逐步细化的程序方法自顶向下,逐步细化的程序方法 程序复杂度的度量程序复杂度的度量 程序效率程序效率 人机交互程序设计人机交互程序设计 2021-7-29 编码的目的编码的目的 是使用选定的程序设计语言,把模块的过程是使用选定的程序设计语言,把模块的过程 性描述翻译为用该语言书写的源程序(源代码)性描述翻译为用该语言书写的源程序(源代码) 模块的过程性描述模块的过程性描述 ( (不可执行的不可执行的) ) 源程序源程序 ( (可执行的可执行的) ) 编码编码 6.1
2、6.1 编码的目的编码的目的 2021-7-29 清晰性清晰性效率效率 开发开发 时间时间 程序程序输出输出内存数内存数语句数语句数 程序可读性最佳程序可读性最佳 输出可读性最佳输出可读性最佳 占内存最小占内存最小 语句数最少语句数最少 开发时间最短开发时间最短 1-2 1-2 4 5 3 2 1 4 3 3 3 5 1 2 4 3 5 2 1 4 4 2-3 5 2-3 1 编码要求编码要求 结果结果 名次名次 评判项目评判项目 Winberg Winberg 的程序实验结果的程序实验结果 2021-7-29 结构化程序设计是一种设计程序的技术,它采用结构化程序设计是一种设计程序的技术,它采
3、用 “自顶向下,逐步细化自顶向下,逐步细化”的设计方法和单入口的设计方法和单入口( (Single entry)Single entry) 单出口(单出口(Single exitSingle exit)的控制结构。的控制结构。 这种控制结构包括有:这种控制结构包括有: 顺序、选择和循环。顺序、选择和循环。 6.2 6.2 结构化程序设计结构化程序设计 (Structured ProgrammingStructured Programming) 2021-7-29 for(a=1,b=1;a=100,a+) for(a=1,b=1;a=20) if (b=20) break; break; if
4、 (b%3=1) if (b%3=1) b+=3; b+=3; continue; continue; b-=5; b-=5; a=20 b%3=1 b+=3 a+ b-=5 T F F T a=0,b=1 单入口单入口 单出口单出口 2021-7-29 AB A,B,C BCAC 打印B FT F T T F 打印C打印A If (A.LT.B) goto 120 If (B.LT.C) goto 110 100 write(6,*) C goto 140 110 write(6,*) B goto 140 120 If(A.LT.C) goto 130 goto 100 130 write
5、(6,*) A 140 continue - - 单入口多出口结构单入口多出口结构 M2 2021-7-29 无节制地使用了无节制地使用了GOTOGOTO语句所产生的程序流程语句所产生的程序流程 M 2021-7-29 一、结构化程序设计的原则一、结构化程序设计的原则 1 1、使用语言中的顺序、选择、重复等有限的基本控制、使用语言中的顺序、选择、重复等有限的基本控制 结构表示程序结构表示程序 2 2、选用的控制结构只准许有一个入口和一个出口、选用的控制结构只准许有一个入口和一个出口 3 3、程序语句组成容易识别的块(、程序语句组成容易识别的块(BlockBlock), ,每块只有一个每块只有一
6、个 入口和一个出口入口和一个出口 4 4、复杂结构应该用基本控制结构进行组合嵌套来实现、复杂结构应该用基本控制结构进行组合嵌套来实现 5 5、严格控制、严格控制GOTOGOTO语句语句 2021-7-29 F0=F(a); F1=F(b); if(F0*F1=0) X0=a; X1=b; for(i=1;i=n;i+) Xm=(X0+X1)/2; Fm=F(Xm); if(abs(Fm)eps|abs(X1-X0)0) X0=Xm; F0=Fm; else X1=Xm; finish: printf(“%dn”,Xm); 2021-7-29 Begin (F0*F1)0 X0=Xm X1=Xm
7、 F0=Fm T T Xm F TF F F0=F(a) F1=F(b) 1 1 End 2 2 i=n i Q=abs(Fm)eps|abs(X1-X0)eps) 2021-7-29 F0=F(a); F1=F(b); if(F0*F1=0) X0=a; X1=b; i=1; finish=0; while(i=n Fm=F(Xm); if(abs(Fm)eps|abs(X1-X0)0) X0=Xm; F0=Fm; else X1=Xm; i+; printf(“%dn”,Xm); 2021-7-29 二、程序设计自顶向下,逐步求精二、程序设计自顶向下,逐步求精 1 1、程序设计是一个由粗到
8、细的、程序设计是一个由粗到细的 “ “渐进渐进” ” 的过程的过程 2 2、程序设计不仅包括对控制结构的设计,也包括对数据结构的设计。、程序设计不仅包括对控制结构的设计,也包括对数据结构的设计。 二者都要一步一步地细化。二者都要一步一步地细化。 采用逐步细化方法采用逐步细化方法 设计程序的步骤设计程序的步骤 列出问题的初步解列出问题的初步解 分解主要问题分解主要问题 继续细化继续细化 利用图形工具或伪代码利用图形工具或伪代码 描述程序的详细逻辑描述程序的详细逻辑 2021-7-29 用逐步细化方法设计一个程序,其功能为用逐步细化方法设计一个程序,其功能为 “从一组数中找出最大的数从一组数中找出
9、最大的数 ” ” 第一步:列出问题的初步解第一步:列出问题的初步解 1:输入一组数:输入一组数 2:找出其中最大的数:找出其中最大的数 3:输出最大的数:输出最大的数 2021-7-29 第二步:分解主要问题第二步:分解主要问题 2.1:首先读入一个数并设其为最大的数:首先读入一个数并设其为最大的数 2.2:将该数逐次与其它数进行比较:将该数逐次与其它数进行比较 2.3:若有大于该数的则将其保存:若有大于该数的则将其保存 2021-7-29 第三步:确定数据结构第三步:确定数据结构 3.1:定义一数组:定义一数组 A 3.2:max=A(1) 3.3:从:从A(2)至至A(n)开始比较开始比较
10、 3.4:若当前数大于:若当前数大于max, 则令:则令:max=A(I) 2021-7-29 第四步:用第四步:用PDLPDL描述描述 input array A set max=A(1) DO for I=2 to N IF maxA(I) Set max=A(I) ENDIF ENDDO print max 2021-7-29 三、程序复杂性的度量三、程序复杂性的度量 程序复杂性主要是指模块内部程序的复杂性。它程序复杂性主要是指模块内部程序的复杂性。它 直直 接关系到软件开发费用的多少,开发周期的长短和接关系到软件开发费用的多少,开发周期的长短和 软件软件 和软件内部潜伏错误的多少。同时
11、它也是软件可和软件内部潜伏错误的多少。同时它也是软件可 理解性理解性 的另一种度量。的另一种度量。 2021-7-29 它可以用来计算任何一个程序的复杂性;它可以用来计算任何一个程序的复杂性; 对于不合理的程序,例如对于长度动态增长的程序,对于不合理的程序,例如对于长度动态增长的程序, 或者对于原则上无法排错的程序,不应当使用它进行或者对于原则上无法排错的程序,不应当使用它进行 复杂性计算;复杂性计算; 如果程序中指令条数、附加存储量、计算时间增多,如果程序中指令条数、附加存储量、计算时间增多, 不会减少程序的复杂性。不会减少程序的复杂性。 为了度量程序复杂性,要求复杂性度量应满足以下假设:为
12、了度量程序复杂性,要求复杂性度量应满足以下假设: 2021-7-29 如果设每行代码的出错率为每如果设每行代码的出错率为每100100行源程序中可能的错误行源程序中可能的错误 数目。例如,每行代码的出错率为数目。例如,每行代码的出错率为 1% 1%,也就是说,每,也就是说,每 100 100 行行 源程序中就可能有一个错误。源程序中就可能有一个错误。 1 1、代码行度量法代码行度量法 :统计程序中的源代码的行数统计程序中的源代码的行数 较小的程序较小的程序 - - 1.3%1.3%1.8%/1.8%/行行 较大的程序较大的程序 - - 2.7%2.7%3.2%/3.2%/行行 2021-7-2
13、9 该方法是利用程序模块的程序图中环路的个数,来该方法是利用程序模块的程序图中环路的个数,来 计算程序的复杂性的。为此,该方法也称为环路复杂度计算程序的复杂性的。为此,该方法也称为环路复杂度 计算法。计算法。 2 2、McCabe McCabe 度量法度量法 :利用程序的控制流来度量程序的复杂性利用程序的控制流来度量程序的复杂性 它是一种退化了的程序流程图。即它是一种退化了的程序流程图。即: :把程序把程序 流程图中每个处理符号都退化成一个流程图中每个处理符号都退化成一个结点结点, 而原来流程图中的流程线,则变成连接不同而原来流程图中的流程线,则变成连接不同 结点的结点的有向弧。有向弧。 20
14、21-7-29 (1)(1)程序图符号程序图符号 2021-7-29 2021-7-29 T C1 C2 CAB ED (2)(2)从流程图导出程序图从流程图导出程序图 A 开始 C1 BC ED 结束 C2 T F 2021-7-29 (3)(3)环路复杂性的计算方法环路复杂性的计算方法 V(G)=m-n+p 说明:说明: V(G) 是有向图是有向图G中环路数;中环路数; m: 为图为图G中弧数;中弧数; n: 为图为图G中节点数;中节点数; p: 为图为图G中强连通分量个数中强连通分量个数; A B C D E F G H K L I McCabe 的环路复的环路复 杂性度量值为杂性度量值
15、为 3 2021-7-29 请将右侧给出的请将右侧给出的 程序流程图转换程序流程图转换 为程序图并计算为程序图并计算 其环路值。其环路值。 a=20 b%3=1 b+=3 a+ b-=5 T F F T a=0,b=1 2021-7-29 程序的环路复杂度则取决于程序控制流的复杂度,也就程序的环路复杂度则取决于程序控制流的复杂度,也就 是取决于程序结构的复杂程度。当程序内分支或循环个数增是取决于程序结构的复杂程度。当程序内分支或循环个数增 加时,则相应地环域复杂度也随之增加。因此,它是对测试加时,则相应地环域复杂度也随之增加。因此,它是对测试 难度的一种定量度量,也能对软件最终的可靠性给出某种
16、预难度的一种定量度量,也能对软件最终的可靠性给出某种预 测。测。 (4)(4)、环路复杂度的用途环路复杂度的用途 2021-7-29 请用程序流程图描述下列问题的算法,再将其请用程序流程图描述下列问题的算法,再将其 转换为程序图并计算其环路值。转换为程序图并计算其环路值。 请定义一个数组请定义一个数组 ,要求找出数组中最大数和最小,要求找出数组中最大数和最小 数,并把最大数和数,并把最大数和 中的数对调、最小数和中的数对调、最小数和 中的数对调。中的数对调。 2021-7-29 请画出下列伪代码程序的流程图、程请画出下列伪代码程序的流程图、程 序图并计算它的环路复杂度。序图并计算它的环路复杂度
17、。 LOOP : Do While Z0 A=A+1 IF A10 THEN X=A ELSE Y=Z END IF IF Y0 THEN PRINT G E LSE PRINT K END IF STOP 2021-7-29 四、程序效率四、程序效率 程序效率是指程序的执行程序效率是指程序的执行速度速度及程序占用及程序占用 的的存储空间存储空间。程序编码是最后提高运行速度和。程序编码是最后提高运行速度和 节省存储机会,因此在此阶段不能不考虑程序节省存储机会,因此在此阶段不能不考虑程序 的效率。的效率。 2021-7-29 1 1、算法对效率的影响、算法对效率的影响 源程序的效率与详细设计阶段
18、确定的算法的效率源程序的效率与详细设计阶段确定的算法的效率 有着直接的关系。当我们把详细设计翻译并转换成源有着直接的关系。当我们把详细设计翻译并转换成源 代码之后,那么算法效率就会反映为程序的执行速度代码之后,那么算法效率就会反映为程序的执行速度 和存储容量的要求和存储容量的要求 2021-7-29 (1 1)在编程序前,尽可能化简有关的算术表达式和逻辑表达式)在编程序前,尽可能化简有关的算术表达式和逻辑表达式 (2 2)仔细检查算法中的嵌套的循环,尽可能将某些语句或表达)仔细检查算法中的嵌套的循环,尽可能将某些语句或表达 式移到循环外面式移到循环外面 (3 3)尽量避免使用多维数组)尽量避免
19、使用多维数组 (4 4)尽量避免使用指针和复杂的表)尽量避免使用指针和复杂的表 (5 5)不要混淆数据类型,避免在表达式中出现类型混杂)不要混淆数据类型,避免在表达式中出现类型混杂 (6 6)尽量采用整数算术表达式和布尔表达式)尽量采用整数算术表达式和布尔表达式 (7 7)选用等效的高效率算法)选用等效的高效率算法 转换过程中的指导原则是:转换过程中的指导原则是: 2021-7-29 请设计求解下列问题的算法请设计求解下列问题的算法 2021-7-29 main() int i,j; float sum; sum=0.0; for(i=1;i=20;i+) for(j=1;j=3;j+) su
20、m=sum+(i+1)*(i+1)*(j+2); printf(“sum=%dn”,sum); (i+1) (j+2) 20 3 i=1 j=1 内循环次数内循环次数 2020X4=80 X4=80 外循环次数外循环次数 2121 总循环次数总循环次数 101 2021-7-29 main() int i,j; float sum; sum=0.0; for (j=1;j=3;j+) for (i=1;i=20;i+) sum=sum+(i+1)*(i+1)*(j+2); printf(“sum=%dn”,sum); 应把变化范围大的循环变量放在内层。应把变化范围大的循环变量放在内层。 内循环
21、次数内循环次数 3 3X21=63X21=63 外循环次数外循环次数 4 4 总循环次数总循环次数 6767 2021-7-29 main() int i,j; float sum; sum=0.0; for (j=1;j=3;j+) for (i=1;i=20;i+) sum=sum+(i+1)*(i+1)*(j+2); printf(“sum=%dn”,sum); j+2 j+2 共计执行了共计执行了 3X20=60次次 2021-7-29 main() int i,j; float sum; sum=0.0; for (j=1;j=3;j+) k=j+2; for (i=1;i=20;i
22、+) sum=sum+(i+1)*(i+1)*k; printf(“sum=%dn”,sum); j+2 j+2 共计执行了共计执行了 3次次 减少了减少了57次次 应尽量把与循环变量无关的运算移到循环外去。应尽量把与循环变量无关的运算移到循环外去。 2021-7-29 main() int i,j; float sum; sum=0.0; for (j=1;j=3;j+) k=j+2; for (i=1;i=20;i+) sum=sum+(i+1)*(i+1)*k; printf(“sum=%dn”,sum); i+1 i+1 共计执行了共计执行了 60X60=120次次 2021-7-29
23、 main() int i,j; float sum; sum=0.0; for (j=1;j=3;j+) k=j+2; for (i=1;i=20;i+) m=i+1; sum=sum+m*m*k; printf(“sum=%dn”,sum); i+1 i+1 共计执行了共计执行了 60次次 2021-7-29 从键盘输入从键盘输入 10 10个整数,要求按由小到大个整数,要求按由小到大 的顺序将它们输出。的顺序将它们输出。 请采用请采用比较交换法比较交换法和和选择法选择法对上述对上述1010条数据进行条数据进行 排序,然后分别对这两种方法进行比较,并从程序排序,然后分别对这两种方法进行比较
24、,并从程序 的运行效率的角度对两个程序进行比较。的运行效率的角度对两个程序进行比较。 2021-7-29 main() int a10,i,j,t; for(i=0;i10;i+) scanf(“%d”, for(i=0;i9;i+) for(j=i+1;j10;j+) if(ajai) t=aj; aj=ai;ai=t; for(i=0;i10;i+) printf(“%2d”, ai); 2021-7-29 for(i=0;i9;i+) k=i ; for(j=i+1;j10;j+) if(ajak) k=j; if(kj) t=aj;aj=ak;ak=t; 2021-7-29 五、程序设
25、计风格五、程序设计风格 Coding styleCoding style 1 1、保持控制流的直线性、保持控制流的直线性 (1)(1)、对多入口和多出口的控制结构、对多入口和多出口的控制结构 要作适当的处理要作适当的处理 If C1 then goto 30 10 S2 20 If C2 then goto 40 goto 10 30 S1 goto 20 40 Sn C1 S1S2 C2 Sn T T 多入口循环结构多入口循环结构 2021-7-29 If C1 then S1 else S2 While (not C2) do S2 C1 S1 C2 Sn T T S2 S2 改进后的循环
26、结构改进后的循环结构 重复环节法重复环节法 2021-7-29 10 if (not C1) then goto 20 if (not C2) then goto 30 S1 goto 10 20 S2 30 Sn 多出口循环结构多出口循环结构 C1 S2 T T C2 S1 2021-7-29 while (C1 and C2) do S1 If (not( C1) then S2 Sn 经过处理后的单出口循环结构经过处理后的单出口循环结构 C1 and C2 S2 T C1 S1 Sn T 逻辑分析法逻辑分析法 2021-7-29 while (C1) do S1 If C2 then g
27、oto 10; else S2 10 Sn EXIT:=0 while (C1 and (not EXIT) do S1 If then EXIT:=1; else S2 10 Sn 标志变量法标志变量法 标志变量标志变量 break Exit do Exit for 2021-7-29 if (N=0) then if (N能被能被2整除)整除)then print “正偶数正偶数” else print “负数负数” 导致二义性的导致二义性的 then-if then-if 结构结构 (2)(2)、避免使用模糊或费解的结构、避免使用模糊或费解的结构 if (N0) S1=S1+C1; if
28、 (S11000) goto label; label: S2=a+b; 2021-7-29 goto goto的目的地最好在同一的目的地最好在同一 控制结构内部,或者离本结构控制结构内部,或者离本结构 出口相近的地方。出口相近的地方。 10 IF(.NOT. C) GOTO 20 S GOTO 10 20 CONTINUE while(C1) do Begin S1 if C2 then goto 10 End 10 Sn 2021-7-29 第七章第七章 用户界面设计用户界面设计 在计算机应用中,用户与计算机都要以适当的形式把消在计算机应用中,用户与计算机都要以适当的形式把消 息传递给对方
29、,称为人息传递给对方,称为人- - 机交互:机交互:(HumanComputer Interface) (HumanComputer Interface) 交互是通过界面进行的。这种界面既存在于用户与计算机交互是通过界面进行的。这种界面既存在于用户与计算机 硬件之间,也存在于用户与一切软件(包括系统软件与应用软硬件之间,也存在于用户与一切软件(包括系统软件与应用软 件)之间,件)之间, 所以现在常把所以现在常把“用户界面用户界面”简称为简称为 “ “HCIHCI” 用户界面设计分析用户界面设计分析 用户界面人物用户界面人物 界面设计基本类型界面设计基本类型 数据输入界面的设计数据输入界面的设计
30、 数据输出界面的设计数据输出界面的设计 2021-7-29 7.1 7.1 用户界面设计分析用户界面设计分析 用户特性分析用户特性分析 用户工作分析用户工作分析 记录用户有关系统的概念和术语记录用户有关系统的概念和术语 确定界面类型确定界面类型 2021-7-29 外行型 用户特性分析用户特性分析 用户特性分析的目的是:用户特性分析的目的是: 了解所有用户的技能和经验,以便能预测他们对不同了解所有用户的技能和经验,以便能预测他们对不同 的界面设计会做出社么反映,并针对用户的能力来设计或的界面设计会做出社么反映,并针对用户的能力来设计或 更改界面。更改界面。 用户类型用户类型 初学型熟练型 专家
31、型 2021-7-29 系统的系统的功能分解功能分解,可以用,可以用数据流图数据流图和和数据词典数据词典来描述。其来描述。其 中,每一个加工相当于一个功能,也就是一个任务。任务可以中,每一个加工相当于一个功能,也就是一个任务。任务可以 由一组动作构成,它规定了为实现该任务所必须的一系列活动由一组动作构成,它规定了为实现该任务所必须的一系列活动 任务的任务的 细节,细节,可以使用可以使用结构化英语来表达。结构化英语来表达。 它描述了动它描述了动 作完成的序列以及在完成动作时的所有例外情况作完成的序列以及在完成动作时的所有例外情况。 用户工作分析用户工作分析 用户工作分析,也称为任务分析。它是系统
32、内部活动的用户工作分析,也称为任务分析。它是系统内部活动的 分解。用户工作分析与需求分析中结构化分析的方法类分解。用户工作分析与需求分析中结构化分析的方法类 似,是采用自顶向下,逐步进行似,是采用自顶向下,逐步进行功能分解功能分解。 2021-7-29 TASK: loan books DO WHILE borrowers request reader_ID check reader_ID IF reader_ID invalid pass to membership_check ELSE continue ENDIF DO WHILE book_requests enter book_mar
33、k on borroer_slip write reader_ID on borrwer_slip stamp book with return_date remove book_in_library_tag END WHILE END WHILE 关于图书馆借阅图书活动的描述关于图书馆借阅图书活动的描述 2021-7-29 任务和工作设计的目的在于任务和工作设计的目的在于创造用户的创造用户的 工作环境工作环境。通常,任务应组织得与人的。通常,任务应组织得与人的 能力相适应。既不能完全由非常复杂的能力相适应。既不能完全由非常复杂的 步骤组成,也不能太过简单而使操作者步骤组成,也不能太过简单而使
34、操作者 感到厌烦。感到厌烦。 7.2 7.2 用户界面任务用户界面任务 2021-7-29 7.3 7.3 界面设计的基本类型界面设计的基本类型 如果从用户与计算机交互的角度来看,用户界面设如果从用户与计算机交互的角度来看,用户界面设 计的类型主要有问题描述语言、数据表格、图形与图表、计的类型主要有问题描述语言、数据表格、图形与图表、 菜单、对话以及窗口等。菜单、对话以及窗口等。 使用的难易程度使用的难易程度 学习的难易程度学习的难易程度 操作速度操作速度复杂程度复杂程度 控控 制制 开发的难易程度开发的难易程度 类型类型 2021-7-29 用户承担需用户承担需 要创造、判断和要创造、判断和
35、 探索的任务。探索的任务。 重复检查、重复检查、 计算和数据处计算和数据处 理的任务。理的任务。 任务分配任务分配 2021-7-29 菜单也称选单,是由系统预先设置好的,显菜单也称选单,是由系统预先设置好的,显 示于屏幕上的一组或几组可供用户选用的命令。示于屏幕上的一组或几组可供用户选用的命令。 菜单菜单 (1 1)按照显示的形象或样式来分类)按照显示的形象或样式来分类 正文菜单正文菜单 2021-7-29 教务信息管理系统教务信息管理系统 0 - 0 - 结束系统运行结束系统运行 1 - 1 - 学籍管理子系统学籍管理子系统 2 - 2 - 教学管理子系统教学管理子系统 3 - 3 - 教
36、材管理子系统教材管理子系统 4 - 4 - 实验室管理子系统实验室管理子系统 请键入选择的功能序号请键入选择的功能序号(0(04):4): 3 3 - 教学管理子系统 教务信息管理系统教务信息管理系统 A - A - 结束系统运行结束系统运行 B - B - 学籍管理子系统学籍管理子系统 C - C - 教学管理子系统教学管理子系统 D - D - 教材管理子系统教材管理子系统 E - E - 实验室管理子系统实验室管理子系统 请选择功能字符请选择功能字符( (A AE):E): 正文菜单举例正文菜单举例 2021-7-29 图标菜单图标菜单 2021-7-29 正文和图标混合菜单正文和图标混
37、合菜单 2021-7-29 (2 2)按屏幕位置和操作风格来分类)按屏幕位置和操作风格来分类 固定位置菜单固定位置菜单 浮动位置菜单浮动位置菜单 下拉式菜单下拉式菜单 嵌入式菜单嵌入式菜单 2021-7-29 固定位置菜单 2021-7-29 浮动位置菜单 浮动式菜单浮动式菜单 2021-7-29 下拉式菜单 2021-7-29 在用户界面中,加入丰富多彩的,将能够更形在用户界面中,加入丰富多彩的,将能够更形 象地为用户提供有用的信息而达到可视化的目的。象地为用户提供有用的信息而达到可视化的目的。 其主要的处理有图象的隐蔽和再现、屏幕滚动和图其主要的处理有图象的隐蔽和再现、屏幕滚动和图 标显示
38、等。标显示等。 图象图象 图象的隐蔽和再现图象的隐蔽和再现 屏幕的滚动屏幕的滚动 2021-7-29 图象的隐蔽和再现图象的隐蔽和再现 2021-7-29 内存缓冲区内存缓冲区 老缓冲区老缓冲区 新缓冲区新缓冲区 2021-7-29 屏幕的滚动屏幕的滚动 垂直滚动条垂直滚动条 水平滚动条水平滚动条 2021-7-29 对话,也称为对话框,只系统必要时显示于对话,也称为对话框,只系统必要时显示于 屏幕上一个矩形区域内的图形和正文信息。通过屏幕上一个矩形区域内的图形和正文信息。通过 对话可以实现用户和系统之间的通信。对话可以实现用户和系统之间的通信。 对话对话 2021-7-29 必须问答式对话框
39、必须问答式对话框 2021-7-29 无须问答式对话框无须问答式对话框 无需回答式对话框。这类对话在屏幕上的出现,无需回答式对话框。这类对话在屏幕上的出现, 仅仅是为了告诉用户一些参考信息,不需要用户回答。仅仅是为了告诉用户一些参考信息,不需要用户回答。 因此,用户可以不理睬它,继续做原来的工作。因此,用户可以不理睬它,继续做原来的工作。 2021-7-29 警告式对话框警告式对话框 2021-7-29 设置一个或一批标准的对话以函数过程调用的方式设置一个或一批标准的对话以函数过程调用的方式 直接提供给用户来使用。这类对话框有的是直接提供给用户来使用。这类对话框有的是一问一答一问一答的,的,
40、有的是多问多答的。它们的显示格式、问题段和回答段有的是多问多答的。它们的显示格式、问题段和回答段 的安排,以及用户回答的选择范围都是系统实现设置好的安排,以及用户回答的选择范围都是系统实现设置好 的,使用者不能随意改动的。的,使用者不能随意改动的。 这类对话称为标准对话。这类对话称为标准对话。 对话框的实现方式对话框的实现方式(1)(1) 2021-7-29 标准对话框标准对话框 2021-7-29 系统为不同类型的对话设置一组数据结构和一批系统为不同类型的对话设置一组数据结构和一批 。 用户可以将根据他们的需要来自行设计对话,用户可以将根据他们的需要来自行设计对话, 象这类对话则称为象这类对
41、话则称为“ “ ”当然这就需要事先设当然这就需要事先设 置好一批可以直接提供给用户使用的工具函数。置好一批可以直接提供给用户使用的工具函数。 对话框的实现方式对话框的实现方式(2)(2) 2021-7-29 窗口是指屏幕上的一个矩形区域,在图形学中叫窗口是指屏幕上的一个矩形区域,在图形学中叫 做视图区做视图区 ( (Viewport)Viewport)。 用户可以通过窗口显示、观察用户可以通过窗口显示、观察 其工作领域内的全部或一部分内容,并可以对所显示其工作领域内的全部或一部分内容,并可以对所显示 的内容进行各种系统预先定好的正文和图形操作。的内容进行各种系统预先定好的正文和图形操作。 窗口
42、窗口 2021-7-29 习惯上我们把窗口视为习惯上我们把窗口视为相对地,显示器就相对地,显示器就 称为物理屏幕。采用滚动条技术,通过窗口能够看到的称为物理屏幕。采用滚动条技术,通过窗口能够看到的 用户空间,比物理屏幕显示的内容要多得多而另一方面用户空间,比物理屏幕显示的内容要多得多而另一方面 ,在同一物理屏幕上又可以设置多个窗口各个窗口可以,在同一物理屏幕上又可以设置多个窗口各个窗口可以 由不同的系统或系统成分分别使用。如果在同一个屏幕由不同的系统或系统成分分别使用。如果在同一个屏幕 上有若干个窗口上有若干个窗口 这些窗口可以相重叠在一起,这些窗口可以相重叠在一起, 也可以也可以 在水平方向
43、并列地排列。在水平方向并列地排列。 2021-7-29 代码编代码编 辑窗口辑窗口 事件过程列表框事件过程列表框对象列表窗口对象列表窗口 窗口界面示例之一窗口界面示例之一 2021-7-29 图标区图标区 窗口窗口 控制区控制区 用户工 作区 垂直垂直 滚动区滚动区 窗口界面示例之二窗口界面示例之二 标题区标题区 标题区标题区 标题区标题区 水平水平 滚动区滚动区 菜单区菜单区 2021-7-29 7.4 7.4 数据输入界面的设计数据输入界面的设计 数据输入是指所有供计算机处理的数据数据输入是指所有供计算机处理的数据 的输入的输入 。数据输入界面是系统的一个重要的。数据输入界面是系统的一个重
44、要的 组成部分,它组成部分,它 占用用户的极大部分使用时间。占用用户的极大部分使用时间。 一个好的数据输入一个好的数据输入 界面应尽可能方便而有效界面应尽可能方便而有效 地进行数据输入。地进行数据输入。 2021-7-29 数据输入规则数据输入规则 在软件设计的范围内,可在软件设计的范围内,可 以通过以下以通过以下方法方法来减少用来减少用 户户输入的工作量。输入的工作量。 对共同的输入内容设置对共同的输入内容设置 默认值默认值 ( (缺省值缺省值) )。 使用代码或缩写使用代码或缩写 自动填入已输入过的内容自动填入已输入过的内容 或需要重复输入的内容。或需要重复输入的内容。 如果输入内容是来自
45、一个如果输入内容是来自一个 有限的备选集,则可以采有限的备选集,则可以采 用用列表选择列表选择。 2021-7-29 数据输入对话设计应遵循以下几项原则数据输入对话设计应遵循以下几项原则 在软件设计的范围内,可以通在软件设计的范围内,可以通 过以下方法来减少用户输入的过以下方法来减少用户输入的 工作量。工作量。 1 1、确认输入、确认输入 2 2、交互动作、交互动作 3 3、确认删除、确认删除 4 4、提供反馈、提供反馈 5 5、提示输入范围、提示输入范围 2021-7-29 1 1、以表格形式对数据进行录入、以表格形式对数据进行录入 2021-7-29 请设计一个数据录入用户界面 要求: 1
46、、内容自选 2、应具有重复录入功能 3、具有数据检测功能 4、界面清晰 2021-7-29 2 2、以菜单形式对数据进行录入、以菜单形式对数据进行录入 如果数据从一个确定的可供选择的清单中选取输入,如果数据从一个确定的可供选择的清单中选取输入, 则可用菜单方式其方法是把所有的选择项都显示在屏幕则可用菜单方式其方法是把所有的选择项都显示在屏幕 上,用户只需要输入代表各项的数字代码就可选择所需上,用户只需要输入代表各项的数字代码就可选择所需 数据。数据。 2021-7-29 时令水果蔬菜销售时令水果蔬菜销售 订单号码订单号码 1024 1024 输入订单输入订单 日期日期 11/05/00 11/
47、05/00 输入水果号码,选择所需数量或输入蔬菜号码,选择所需数量输入水果号码,选择所需数量或输入蔬菜号码,选择所需数量 1 - 苹果苹果 2 - 香蕉香蕉 3 - 鸭梨鸭梨 4 - 菠萝菠萝 5 - 橘子橘子 6 - 葡萄葡萄 请您选择请您选择 选择数量选择数量( (可利用鼠标单击可利用鼠标单击) ) 500克克 1000克克 1500克克 2000克克 本次订购本次订购克克 油菜油菜 克克 苹果苹果 请输入另一项(若输入请输入另一项(若输入0 0为结束订购)为结束订购) 菜单数据录入示例之一菜单数据录入示例之一 7 - 土豆 10 - 菜花 8 - 韭菜 11 - 油菜 9 - 辣椒 12
48、 - 白菜 2021-7-29 3 3、其它数据输入的方法、其它数据输入的方法 关键词数据输入关键词数据输入 条形码条形码 声音数据输入声音数据输入 光学标记光学标记/ /识别识别 2021-7-29 7.5 7.5 输出界面的设计输出界面的设计 数据输出界面包括屏幕查询、文件浏数据输出界面包括屏幕查询、文件浏 览、图形显示和报告等。览、图形显示和报告等。 2021-7-29 数据输出的规则数据输出的规则 只显示必需的数据,与用户需求无直接关只显示必需的数据,与用户需求无直接关 系的一律省略系的一律省略 显示出的数据,应与用户所执行的任务有关显示出的数据,应与用户所执行的任务有关 同一时刻使用
49、的数据应显示在一起同一时刻使用的数据应显示在一起 每一屏所显示数据的数量,包括标题栏等,每一屏所显示数据的数量,包括标题栏等, 最好不要超过整个屏幕面积的最好不要超过整个屏幕面积的 30% 30% 2021-7-29 字符数据的显示字符数据的显示 字符数据的画面显示主要是屏幕布局和数据内容安排字符数据的画面显示主要是屏幕布局和数据内容安排 格式。显示的内容可以是单纯的正文,也可以是表格和目格式。显示的内容可以是单纯的正文,也可以是表格和目 录,而更多的是二者的综合录,而更多的是二者的综合 2021-7-29 若输出的是英文正文,应避免连续使用大写字母,若输出的是英文正文,应避免连续使用大写字母
50、, 因为大写字母的阅读速度要低于大、小写因为大写字母的阅读速度要低于大、小写 混合的文体。混合的文体。 而且大写字母应使用印刷体,且一而且大写字母应使用印刷体,且一 般为般为强调强调而使用。而使用。 纯正文的显示纯正文的显示 2021-7-29 列表和表格列表和表格 姓名姓名数学数学物理物理英语英语化学化学总分总分 夏丹夏丹8989878798989999 秋雨秋雨9898767697976767 冬雪冬雪7878888887878787 2021-7-29 由于图形从数据集合中概括出来某些特性并且具有由于图形从数据集合中概括出来某些特性并且具有 “直观直观”的优点,因此对于识别和分析处理结果
51、更为有的优点,因此对于识别和分析处理结果更为有 效,为了做好图形显示效,为了做好图形显示 必须仔细地选择图形类型和进行必须仔细地选择图形类型和进行 布局设计布局设计 以图形方式显示以图形方式显示 2021-7-29 直方图直方图 2021-7-29 饼图饼图 2021-7-29 折线图折线图 102 交互设计方法交互设计方法 o 角色设计角色设计 o 目标设计目标设计 o 任务设计任务设计 o 人性化设计人性化设计 103 1. 1.角色设计角色设计 o 能设计一种款式的皮鞋来满足成年女性的需能设计一种款式的皮鞋来满足成年女性的需 要吗?要吗? 需要虚构潜在的用户并为他们设计软件产品,这些虚需
52、要虚构潜在的用户并为他们设计软件产品,这些虚 构的用户就是构的用户就是“角色角色”,是交互设计的必要基础。,是交互设计的必要基础。 软件的角色设计就是精确描述我们的用户以及用户希软件的角色设计就是精确描述我们的用户以及用户希 望达到的目标。望达到的目标。 分别为分别为年青女孩、年轻妈妈、老年妇女年青女孩、年轻妈妈、老年妇女设计。设计。 104 必须赋予角色严格而精确的定义必须赋予角色严格而精确的定义 o 角色是虚拟的,但是合理的人群。角色是虚拟的,但是合理的人群。 必须只为一类人设计。角色目标的范围越必须只为一类人设计。角色目标的范围越 大,迷失方向的可能性也越大。大,迷失方向的可能性也越大。
53、 时尚、个性大时尚、个性大 方、实用方、实用 舒适、安全舒适、安全 角色必须有限定。限定出这角色必须有限定。限定出这5050的目标人群,然后尽的目标人群,然后尽 力让他们力让他们100100地喜欢它。地喜欢它。 给角色起名字,给角色起名字,还可以有其他细节。还可以有其他细节。否则很容易跟否则很容易跟 有弹性的用户混为一谈有弹性的用户混为一谈 。 不要把精确定义的分类用户和真正的人混淆不要把精确定义的分类用户和真正的人混淆 。 特定性特定性 105 设计师和程序员都需要角色设计师和程序员都需要角色 o 角色作为设计师和程序员的交流工具角色作为设计师和程序员的交流工具 ,使程,使程 序员序员忘掉笼
54、统的忘掉笼统的“用户用户”一词一词 。 应用角色以前:应用角色以前: 程序员程序员:“如果用户需要把这个打印出来如果用户需要把这个打印出来 怎么办?怎么办?” 经理经理:“我认为他们不会在第一版就需要我认为他们不会在第一版就需要 增加打印功能。增加打印功能。” 程序员程序员:“但是也许有人会希望要打印功但是也许有人会希望要打印功 能。能。” 经理经理:“当然有这种可能,但是我们不能当然有这种可能,但是我们不能 推迟到第二版再增加打印功能吗?推迟到第二版再增加打印功能吗?” 应用角色以后:应用角色以后: 程序员程序员:“如果用户需要把这个打印如果用户需要把这个打印 出来怎么办?出来怎么办?” 交
55、互视设计师交互视设计师:“罗丽对打印功能可罗丽对打印功能可 不感兴趣。不感兴趣。” 程序员程序员:“但是也许有人可能需要打但是也许有人可能需要打 印功能。印功能。” 交互视设计师交互视设计师:“我们是为罗丽设计,我们是为罗丽设计, 而不是某些人。而不是某些人。” 106 长期坚持应用角色后:长期坚持应用角色后: 快乐的程序员快乐的程序员:“罗丽是否需要打印功能?罗丽是否需要打印功能?” 高兴的交互设计师高兴的交互设计师:“她不需要。张辉可能每一季度她不需要。张辉可能每一季度 需要打印报表。需要打印报表。” 快乐的程序员快乐的程序员:“如果这样,我们就可以节省时间和如果这样,我们就可以节省时间和
56、 精力,不去设计那种麻烦的打印功能,而去使用现在精力,不去设计那种麻烦的打印功能,而去使用现在 的商业打印软件包。的商业打印软件包。” 高兴的经理高兴的经理:“这样就可以节省两周的时间这样就可以节省两周的时间了。了。” 现在大家讨论,很容易取得一致意见。因为角现在大家讨论,很容易取得一致意见。因为角 色设计帮助程序员统一了思想,充分理解最终用户的色设计帮助程序员统一了思想,充分理解最终用户的 需要了。需要了。 107 2. 2.目标设计目标设计 o 目标与角色是不可分割的目标与角色是不可分割的 ,角色决定着需角色决定着需 要达到的目标,而这些目标则反映出角色要达到的目标,而这些目标则反映出角色
57、 的意义的意义。 目标很容易与任务混淆起来目标很容易与任务混淆起来, ,怎样区分?怎样区分? 目标的内涵非常丰富,涉及到用户个人目标、公目标的内涵非常丰富,涉及到用户个人目标、公 司目标、以及一些虚假的目标,在这些目标中,司目标、以及一些虚假的目标,在这些目标中, 我们该如何选择对待我们该如何选择对待? ? 108 针对目标进行设计,而不是针对任务针对目标进行设计,而不是针对任务 o 目标是一个终结条件,然而任务是达到目标必需的一目标是一个终结条件,然而任务是达到目标必需的一 个中间进程个中间进程 。 区别很简单:任务会随着技术的变化而变化,但目标却区别很简单:任务会随着技术的变化而变化,但目
58、标却 具有相当稳定的性质。目标与任务有时甚至是迥然不同具有相当稳定的性质。目标与任务有时甚至是迥然不同 的。的。 所以针对任务的设计并不总能适合目标,而针对目标的设所以针对任务的设计并不总能适合目标,而针对目标的设 计是总能适应任务的计是总能适应任务的 。 和平和平 :战争:战争/ /谈判谈判 教师教学评估系统教师教学评估系统 发现不正确的需求发现不正确的需求 学生考核 督导听课 抽查试卷 提高教师水平一流大学一流大学 109 交互设计必须满足个人目标交互设计必须满足个人目标 o 让用户达到他们的实际目标时,还不能妨碍或侵犯他让用户达到他们的实际目标时,还不能妨碍或侵犯他 们的个人目标。个人目
59、标是简单的、普遍的、也是属们的个人目标。个人目标是简单的、普遍的、也是属 于个人的于个人的 。 伤害用户个人目标的设计,无论其他目标实现得有多好,也伤害用户个人目标的设计,无论其他目标实现得有多好,也 一样会失败。一样会失败。 灯灯 满足个人目标同时,也必须满足公司目标。通常把满足个人目标同时,也必须满足公司目标。通常把 公司目标当成保健目标公司目标当成保健目标。 不要把一些新技术同目标混淆起来。采用新技术是软件公司不要把一些新技术同目标混淆起来。采用新技术是软件公司 的任务,但他从来不是用户的目标。的任务,但他从来不是用户的目标。 110 3.3.任务设计任务设计 o 任务是对使用软件产品的
60、角色为达到某个目标任务是对使用软件产品的角色为达到某个目标 而进行的简洁描述,也称脚本设计而进行的简洁描述,也称脚本设计。 日常使用型脚本:包含用户要完成的,而且是最频繁完成的动作日常使用型脚本:包含用户要完成的,而且是最频繁完成的动作。 必须精心设计必须精心设计。 必需使用型脚本必需使用型脚本:包括所有必须要完成的动作,但却不是频繁完包括所有必须要完成的动作,但却不是频繁完 成的工作成的工作。也必须好好设计也必须好好设计。 边缘情况脚本边缘情况脚本:所需的交互被简约地设计,并被放到界面的不重所需的交互被简约地设计,并被放到界面的不重 要位置要位置。简约的设计。简约的设计。 任务是需求分析阶段
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026甘肃兰州市七里河区第二实验幼儿园招聘1人笔试备考试题及答案解析
- 2026广东江门市农业控股集团有限公司招聘4人笔试模拟试题及答案解析
- 生物必修2《遗传与进化》DNA分子的双螺旋结构模型第1课时教学设计
- 2026广东深圳市罗湖区清泉幼儿园教研员招聘1人笔试模拟试题及答案解析
- 2026北京第四实验学校第一批招聘60人考试参考题库及答案解析
- 2026年中国电信宁夏分公司校园招聘考试模拟试题及答案解析
- 劳动版教学设计-2025-2026学年中职中职专业课汽车制造与维修类66 装备制造大类
- 人教B版 (2019)必修 第二册6.1.3 向量的减法教案设计
- 拟胆碱药教学设计中职专业课-药理学基础-药剂-医药卫生大类
- 劳动项目五 利用废旧雨伞制作购物袋教学设计小学劳动六年级下册人教版《劳动教育》
- 钢结构防腐防火涂装施工方案
- 《基于故障树的飞机液压系统典型故障的排故方案优化分析》13000字(论文)
- 安徽省2024年中考化学真题(含答案)
- 第十五届全国交通运输行业“极智杯”公路收费及监控员职业技能大赛考试题库-上(单选题部分)
- 基础护理学-第十一章-排泄试题及答案
- (高清版)AQ 2036-2011 金属非金属地下矿山通信联络系统建设规范
- 船舶与海上技术 液化天然气燃料船舶加注规范
- 物控部绩效考核办法培训课件
- 钢平台铺板计算excel(可当计算书)
- 冷鲜肉猪肉白条分割技术详细结构图及产品部位介绍和用途
- DB51T 1628 -2013小(微)型农田水利工程施工质量检验与评定规程
评论
0/150
提交评论