2019-02-22 计算机二级公共基础知识之程序设计基础

参考资料:高教版《全国计算机等级考试二级教程——C语言程序设计》

程序设计方法与风格

就程序设计方法和技术的发展而言,主要经过了结构化程序设计面向对象程序设计阶段。

一般来讲,程序设计风格是指编写程序时所表现出的特点习惯逻辑思路。程序设计风格是很重要的,因为程序设计风格会深刻地影响软件的质量和可维护性。可以认为,著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。

要形成良好的程序设计风格,主要应注重考虑以下因素:

源程序文档化

  • 符号的命名:符号的命名应具有一定的实际含义。
  • 程序注释:正确的注释能够帮助读者理解程序。注释一般分为序言性注释功能性注释
  • 视觉组织:为了使程序结构一目了然,可以在程序中使用空格、空行、缩进等技巧使程序层次清晰。

数据说明的方法

  • 数据说明的次序规范化:鉴于程序理解、阅读和维护的需要,使数据说明次序固定,可以使数据的属性容易查找,也有利于测试、排错和维护。
  • 说明语句中变量安排有序化:当一个语句说明多个变量时,变量按照字母顺序排序为好。
  • 使用注释来说明复杂的数据结构

语句的结构

  • 在一行内只写一条语句。
  • 程序编写应优先考虑清晰性。
  • 除非对效率有特殊要求,程序编写要做到清晰第一,效率第二。
  • 首先要保证程序正确,然后才要求提高速度。
  • 避免使用临时变量而使程序的可读性下降。
  • 避免不必要的转移。
  • 尽可能使用库函数。
  • 避免采用复杂的条件语句。
  • 尽量减少使用“否定”条件的语句。
  • 数据结构要有利于程序的简化。
  • 要模块化,使模块功能尽可能单一化。
  • 利用信息隐蔽,确保每一个模块的独立性。
  • 从数据出发去构造程序。
  • 不要修补不好的程序,要重新编写。

输入和输出

输入和输出方式和格式应尽可能方便用户的使用。

  • 对所有的输入数据都要检验数据的合法性。
  • 检查输入项的各种重要组合的合理性。
  • 输入格式要简单,以使得输入的步骤和操作尽可能简单。
  • 输入数据时,应允许使用自由格式。
  • 应允许缺省值。
  • 输入一批数据时,最好使用输入结束标志。
  • 在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示输入的请求,同时在数据输入过程中和输入结束时,应在屏幕上给出状态信息。
  • 当程序设计语言对输入格式有严格要求时,应保持输入格式与输入语句的一致性;给所有的输出加注释,并设计输出报表格式。

结构化程序设计

结构化程序设计的原则

结构化程序设计方法的主要原则可以概括为自顶向下逐步求精模块化限制使用goto语句

自顶向下

程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。

逐步求精

对复杂的问题,应设计一些子目标作过渡,逐步细化。

模块化

把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。

限制使用goto语句

结构化程序的基本结构与特点

  • 顺序结构
  • 选择结构
  • 循环结构

按结构化程序设计方法设计出来的程序基友明显的优点:

  1. 程序易于理解、使用和维护。
  2. 提高了编程工作的效率。

结构化程序设计原则和方法使用

  • 使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑。
  • 选用的控制结构只准许有一个入口和一个出口。
  • 程序语句组成容易识别的块,每块只有一个入口和一个出口。
  • 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现。
  • 语言中所没有的控制结构,应该采用前后一致的方法来模拟。
  • 严格控制goto语句的使用。

面向对象的程序设计

关于面向对象方法

面向对象方法的本质,就是主张从客观世界固有的事物出发来构造系统,提倡人类在现实生活中常用的思维方法来认认识、理解和描述客观事物,强调最终建立的系统能够映射问题域。

面向对象方法主要有以下优点:

  • 与人类习惯思维方法一致。
  • 稳定性好。
  • 可重用性好。
  • 易于开发大型软件产品。
  • 可维护性好。

面向对象方法的基本概念

对象

对象是面向对象方法中最基本的概念。

对象可以用来表示客观世界中的任何实体,也就是说,应用领域中有意义的、与所要解决的问题有关系的任何事物都可以作为对象,它既可以是具体的物理实体的抽象,也可以是人为的概念,或者是任何有明确边界和意义的东西。

总之,对象是对问题域中某个实体的抽象,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。

对象可以做的操作表示它的动态行为,在面向对象分析和面向对象设计中,通常把对象的操作也称为方法服务

属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改变。

操作描述了对象执行的功能,若通过消息传递,还可以为其他对象使用。

对象有如下一些基本特点:

  1. 标识唯一性:对象是可区分的,并且由对象的内在本质来区分。
  2. 分类性:可以将具有相同属性的对象抽象成类。
  3. 多态性:同一个操作可以是不同对象的行为。
  4. 封装性:从外面看只能看到对象的外部特征,对象的内部状态只能由其自身改变。
  5. 模块独立性好:对象内部各种元素彼此结合得很紧密,内聚性强。

类和实例

将属性、操作相似的对象归为。类是对象的抽象,它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例

类是关于对象性质的描述,它同对象一样,包括一组数据属性和在数据上的一组合法操作。

消息

对象间的相互合作需要一个机制协助进行,这样的机制称为消息

消息是一个实例与另一个实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它同意了数据流和控制流。

通常,一个消息由三部分组成:

  1. 接受消息的对象的名称;
  2. 消息标识符(也称消息名);
  3. 零个或多个参数。

继承

继承是使用已有的类定义作为基础建立新类的定义技术。已有的类可当作基类来引用,则新类相应地可当作派生类来引用。

广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。

面向对象软件技术的许多强有力的功能和突出的优点,都来源于把类组成一个层次结构的系统:一个类的上层可以有父类,下层可以有子类。这种层次结构系统的一个重要性质是继承性,一个类直接继承其父类的描述(数据和操作)或特性,子类自动地共享基类中定义的数据和方法。

继承分为单重继承多重继承。单重继承是指一个类只允许有一个父类,多重继承是指一个类允许有多个父类。

多态性

对象根据所接收的消息而做出动作,同样的消息被不同的对象接收时可导致完全不同的行为,该现象称为多态性

在面向对象的软件技术中,多态性是指子类对象可以像父类对象那样使用,同样的消息既可以发送给父类对象也可以发送给子类对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容

  • 1、算法的概念 (1)概念:是指解题方案的准确而完整的描述。 【考题1】在计算机中,算法是指() A查询方法B加工...
    成都小菜阅读 1,581评论 0 15
  • 算法 算法基本特征 算法:指解题方案的准确而完整的描述(≠程序 ≠计算方法) 算法四个特点:可行性 确定性 有穷性...
    arima阅读 8,651评论 3 32
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,103评论 1 32
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,380评论 0 4
  • 他问我这些数据是从哪里得来的,我说都是公开的,我们只是将其汇总,并从一个独特的角度进行了审视。 这里提到公开的数据...
    Ipencil_49fd阅读 284评论 0 0