设计程序时应采纳的原则,(55) 在设计程序时,应采纳的原则之一是______。 A. 程序结构应有助于读者理解 B. 不限制goto语句的使用 C

2021-01-21 15:13:58 字数 5994 阅读 3473

1楼:清风or朗月

你想想什么叫原则

限制goto语句的使用 这是对的,但是不是程序设计要采纳的原则,这只是你要注意的一个地方,还有很多你要注意的地方,如:递归调用的层次不能太深,否则就会出现错误(内存不够等)

2楼:匿名用户

因为使用goto不助于理解程序的结构,选项a包含了b

(55) 在设计程序时,应采纳的原则之一是______。 a. 程序结构应有助于读者理解 b. 不限制goto语句的使用 c

3楼:匿名用户

(55)[答案]a

[考点]程序设计基础

[评析]

前面的题中已解释过,二级的各种程序设计语言教程都会对结构化程序设有一定的介绍,比如goto语句的限制使用,基本上每本书上都会提到。

其中a,即易读性比程序的效率更显得重要,这是结构化程序设计原则提倡的,也是我们进行开发时非常重要的一点。

设计程序时应遵循哪些原则

4楼:小p孩

正确性.正确性是判断程序质量的首要标准.所谓正确性是指程序本身具备且只具备程序设计规格说明书中所列举的全部功能.

可靠性.可靠性是指程序在多次反复使用过程中不失败的概率. 简明性.

简明性的目标是要求程序简明易读. 有效性.程序在计算机上运行需要使用一定数量的计算机资源,如cpu的时间,存储器的存储空间.

有效性就是要在一定的软硬件条件下,反映出程序的综合效率. 可维护性.程序的维护可分为校正性维护,适应性维护和完善性维护.

一个软件的可维护性直接关系到程序的可用性,因此应特别予以关注. 可移植性.程序主要与其所完成的任务有关,但也与它的运行环境有着一定的联系.

软件的开发应尽可能远离机器的特征,以提高它的可移植程度.例如,用高级语言编写程序就比用汇编语言编写程序的可移植性好.

计算机二级笔试选择题(习题2)

5楼:匿名用户

笔试全真模拟试题(2)

一、选择题

(1) 已知一棵二叉树前序遍历和中序遍历分别为abdegcfh和dbgeachf,则该二叉树的后序遍历为(a)。

a)gedhfbca b)dgebhfca c)abcdefgh d)acbfedhg

(2) 树是结点的集合,它的根结点数目是(c)。

a)有且只有1 b)1或多于1 c)0或1 d)至少2

(3)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是(b)。

a)e3,e1,e4,e2 b)e2,e 4,e3,e1 c)e3,e4,e1,e2

d)任意顺序

(4)在设计程序时,应采纳的原则之一是(d)。

a)不限制goto语句的使用 b)减少或取消注解行

c)程序越短越好 d)程序结构应有助于读者理解

(5) 程序设计程序时应采纳的原则之一是(c)。

a)对象成分蘖节 b)变量成分 c)语句成分 d)传输成分

(6)下列素叙述中,不属于软件需求规格说明书的作用的是(c)。

a)便于用户,开发人员进行理解和交流

b)反映出用忘掉问题的结构,可以作为软件开发工作的基础和依据

c)作为确认测试和验收的依据

d)便于开发人员进行需求分析

(7) 下列不属于软件工程的3个要素的是(a)。

a)工具 b)过程 c)方法 d)环境

(8) 单个用户使用的数据视图的描述称为(c)。

a)外模式 b)概念模式 c)内模式 d)存储模式

(9) 将e—r图转换到关系模式时,实体与联系都可以表示成(a)。

a)属性 b)关系 c)键 d)域

(10) sql语言又称为(d)。

a)结构化定义语言 b)结构化控制语言 c)结构化查询语言 d)结构化操纵语言

完成良好的软件设计应遵循哪些原则

6楼:匿名用户

具体来说,真是几篇纸也讲不完,但从我的经验来说。当然是我的个人认为最为重要的地方。

一、大量的注释(当然**极为简单已经表明意思的除外)

二、要求有良好的客户体验。

下面是我从网络摘抄:(希望对你能有所帮助)

设计模式遵循的一般原则:

1.开-闭原则(open-closed principle, ocp):一个软件实体应当对扩发,对修改关闭.

说的是,再设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展.换言之,应当可以在不必修改源**的情况下改变这个模块的行为,在保持系统一定稳定性的基础上,对系统进行扩展。这是面向对象设计(ood)的基石,也是最重要的原则。

2.里氏代换原则(liskov substitution principle,常缩写为.lsp)

(1).由barbar liskov(芭芭拉.里氏)提出,是继承复用的基石。

(2).严格表达:如果每一个类型为t1的对象o1,都有类型为t2的对象o2,使得以t1定义的所有程序p在所有的对象o1都代换称o2时,程序p的行为没有变化,那么类型t2是类型t1的子类型.

换言之,一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出基类对象和子类对象的区别.只有衍生类可以替换基类,软件单位的功能才能不受影响,基类才能真正被复用,而衍生类也能够在基类的基础上增加新功能。

(3).反过来的代换不成立

(4).《墨子.小取》中说:"白马,马也; 乘白马,乘马也.骊马(黑马),马也;乘骊马,乘马也."

(5).该类西方著名的例程为:正方形是否是长方形的子类(答案是"否")。类似的还有椭圆和圆的关系。

(6).应当尽量从抽象类继承,而不从具体类继承,一般而言,如果有两个具体类a,b有继承关系,那么一个最简单的修改方案是建立一个抽象类c,然后让类a和b成为抽象类c的子类.即如果有一个由继承关系形成的登记结构的话,那么在等级结构的树形图上面所有的树叶节点都应当是具体类;而所有的树枝节点都应当是抽象类或者接口.

(7)."基于契约设计(design by constract),简称dbc"这项技术对liskov代换原则提供了支持.该项技术bertrand meyer伯特兰做过详细的介绍:

使用dbc,类的编写者显式地规定针对该类的契约.客户**的编写者可以通过该契约获悉可以依赖的行为方式.契约是通过每个方法声明的前置条件(preconditions)和后置条件(postconditions)来指定的.

要使一个方法得以执行,前置条件必须为真.执行完毕后,该方法要保证后置条件为真.就是说,在重新声明派生类中的例程(routine)时,只能使用相等或者更弱的前置条件来替换原始的前置条件,只能使用相等或者更强的后置条件来替换原始的后置条件.

3.依赖倒置原则(dependence inversion principle),要求客户端依赖于抽象耦合.

(1)表述:抽象不应当依赖于细节,细节应当依赖于抽象.(program to an inte***ce, not an implementaction)

(2)表述二:针对接口编程的意思是说,应当使用接口和抽象类进行变量的类型声明,参量的类型声明,方法的返还类型声明,以及数据类型的转换等.不要针对实现编程的意思就是说,不应当使用具体类进行变量的类型声明,参量类型声明,方法的返还类型声明,以及数据类型的转换等.

要保证做到这一点,一个具体的类应等只实现接口和抽象类中声明过的方法,而不应当给出多余的方法.

只要一个被引用的对象存在抽象类型,就应当在任何引用此对象的地方使用抽象类型,包括参量的类型声明,方法返还类型的声明,属性变量的类型声明等.

(3)接口与抽象的区别就在于抽象类可以提供某些方法的部分实现,而接口则不可以,这也大概是抽象类唯一的优点.如果向一个抽象类加入一个新的具体方法,那么所有的子类型一下子就都得到得到了这个新的具体方法,而接口做不到这一点.如果向一个接口加入了一个新的方法的话,所有实现这个接口的类就全部不能通过编译了,因为它们都没有实现这个新声明的方法.

这显然是接口的一个缺点.

(4)一个抽象类的实现只能由这个抽象类的子类给出,也就是说,这个实现处在抽象类所定义出的继承的登记结构中,而由于一般语言都限制一个类只能从最多一个超类继承,因此将抽象作为类型定义工具的效能大打折扣.

反过来,看接口,就会发现任何一个实现了一个接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现任意多个接口.

(5)从**重构的角度上讲,将一个单独的具体类重构成一个接口的实现是很容易的,只需要声明一个接口,并将重要的方法添加到接口声明中,然后在具体类定义语句中加上保留字以继承于该接口就行了.

而作为一个已有的具体类添加一个抽象类作为抽象类型不那么容易,因为这个具体类有可能已经有一个超类.这样一来,这个新定义的抽象类只好继续向上移动,变成这个超类的超类,如此循环,最后这个新的抽象类必定处于整个类型等级结构的最上端,从而使登记结构中的所有成员都会受到影响.

(6)接口是定义混合类型的理想工具,所为混合类型,就是在一个类的主类型之外的次要类型.一个混合类型表明一个类不仅仅具有某个主类型的行为,而且具有其他的次要行为.

(7)联合使用接口和抽象类:

由于抽象类具有提供缺省实现的优点,而接口具有其他所有优点,所以联合使用两者就是一个很好的选择.

首先,声明类型的工作仍然接口承担的,但是同时给出的还有一个抽象类,为这个接口给出一个缺省实现.其他同属于这个抽象类型的具体类可以选择实现这个接口,也可以选择继承自这个抽象类.如果一个具体类直接实现这个接口的话,它就必须自行实现所有的接口;相反,如果它继承自抽象类的话,它可以省去一些不必要的的方法,因为它可以从抽象类中自动得到这些方法的缺省实现;如果需要向接口加入一个新的方法的话,那么只要同时向这个抽象类加入这个方法的一个具体实现就可以了,因为所有继承自这个抽象类的子类都会从这个抽象类得到这个具体方法.

这其实就是缺省适配器模式(defaule adapter).

(8)什么是高层策略呢?它是应用背后的抽象,是那些不随具体细节的改变而改变的真理. 它是系统内部的系统____隐喻.

4.接口隔离原则(inte***ce segregation principle, isp)

(1)一个类对另外一个类的依赖是建立在最小的接口上。

(2)使用多个专门的接口比使用单一的总接口要好.根据客户需要的不同,而为不同的客户端提供不同的服务是一种应当得到鼓励的做法.就像"看人下菜碟"一样,要看客人是谁,再提供不同档次的饭菜.

(3)胖接口会导致他们的客户程序之间产生不正常的并且有害的耦合关系.当一个客户程序要求该胖接口进行一个改动时,会影响到所有其他的客户程序.因此客户程序应该仅仅依赖他们实际需要调用的方法.

5.合成/聚合复用原则(***posite/aggregate reuse principle,carp)

在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过这些向对象的委派达到复用已有功能的目的.这个设计原则有另一个简短的表述:要尽量使用合成/聚合,尽量不要使用继承.

6.迪米特法则(law of demeter lod)又叫做最少知识原则(least knowledge principle,lkp),就是说,一个对象应当对其他对象有尽可能少的了了解.

迪米特法则最初是用来作为面向对象的系统设计风格的一种法则,与1987年秋天由ian holland在美国东北大学为一个叫做迪米特(demeter)的项目设计提出的,因此叫做迪米特法则[lieb89][lieb86].这条法则实际上是很多著名系统,比如火星登陆软件系统,木星的欧罗巴卫星轨道飞船的软件系统的指导设计原则.

没有任何一个其他的oo设计原则象迪米特法则这样有如此之多的表述方式,如下几种:

(1)只与你直接的朋友们通信(only talk to your immediate friends)

(2)不要跟"陌生人"说话(don't talk to strangers)

(3)每一个软件单位对其他的单位都只有最少的知识,而且局限于那些本单位密切相关的软件单位.

就是说,如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中的一个类需要调用另一个类的某一个方法的话,可以通过第三者**这个调用。

7.单一职责原则(****** responsibility pinciple srp)

就一个类而言,应该仅有一个引起它变化的原因,如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责.应该把多于的指责分离出去,分别再创建一些类来完成每一个职责.