`
superwulei
  • 浏览: 106299 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

从一个C程序学“逐步求精”的分析方法

阅读更多

大学最后一年了,C、C++、VB、VB.NET、Java、C#等等几乎什么语言都被老师教过一遍了,但是在学校里面什么语言老师都不会给你讲的很深。这些语言虽然都是学校设置的课程,但上了这么多年大学了,我觉得老师讲的这些语言基本上都是大同小异。老师讲每一种语言都是讲它的数据类型、三种控制语句(顺序、分支和循环)、函数;像面向对象的语言中还会给你讲讲类、对象、继承、多态。其实我倒是觉得大学开两门编程语言课就够了,一门是面向过程的C语言,一门是面向对象的Java或者C#。将那么多语言真的是浪费时间,倒不如用这些时间深入的讲一讲这些语言,比如C语言的各种类库以及图形编程、面向对象开发中的设计模式等等。

最近在看《The Art and Sience of C》的中文版,我都已经是大学即将毕业的学生了,真是觉得有些晚。不过现在开始加倍努力,一个月看完这本书,好好研究一下面向过程编程语言的真谛。之所以这样做是因为我个人认为,在面向OOD的类方法设计中许多还会用到面向过程的设计方法,还有许多抽象方法都来源于面向过程的设计思想,因此面向过程的设计方法是面向对象设计方法的基础,只有扎扎实实的牢固这个基础我才能更好的编写出高性能的C#代码。

废话少说,切入正题。用了一周的时间,我已经看到了第5章“函数”,这其中有一个重点是掌握“逐步求精”的设计方法。原来在《How to Program C》中文版中也曾学习过这一方法,大学的时候老师也将了,但是那个时候都是用文字描述的方法来实现“自顶而下,逐步求精”的,但我那个时候怎么也无法掌握着一个方法。在学校里,每一次上实训课我就特别讨厌画数据流图(要从顶层画到一层),因为我无法掌握“逐步求精”的设计思想,因此我从不认为自己画的数据流图是正确的。然而,《The Art and Sience of C》书中却不是使用文字描述来实现“逐步求精”的分析的,书中巧妙的使用一个打印日历的程序讲述了如何实现“逐步求精”的方法。

 

 

  • 首先,编写main主函数,从整体的角度出发,不考虑细节。在编写主函数的时候可能会想到编写一些自定义函数来实现程序,但是不要考虑这些函数是如何实现的,只需要将这些函数声明并在主函数中直接调用即可。待主函数编写完成,程序的整体就设计完成了。
  • 第二,从细节考虑,实现自定义函数。编写自定义函数的时候就如同编写主函数一样,如果在自定义函数中还要使用某些自定义函数直接调用并声明,然后编写完自定义函数后再定义函数即可。通过这个打印日历的程序,我领悟了“逐步求精”的思想。这就如果一个树一样,不是二叉树,是多叉树。 

先从整体的角度考虑如何实现程序,不考虑细节;然后依次从“树根”滋生出细节;最后形成一个茂盛的“树”,从而实现整个程序。

这一思想使我领悟了很多,我想以后构架实训中的系统时,写文档时都可以采用这一思想了。

分享到:
评论

相关推荐

    常用程序设计方法.pptx

    采用自顶向下,逐步求精的程序设计方法在需求分析,概要设计中,都采用了 2.使用三种基本控制结构构造任何程序都可以由顺序、选择、重复三种基本控制结构构造。 a.用顺序方式对过程分解,确定各部分的执行顺序。 b....

    一个Pascal(杨辉)三角形的C语言26种方式实现合集

    Pascal三角形在中国又称为杨辉三角形,它是C语言中常用的一个教学案例,常常用于训练和巩固循环、循环嵌套、二维数组等知识要点。但多数Pascal三角形教学案例中,仅是计算Pascal三角形结果并将其直接输出。训练的...

    数据结构分析报告.doc

    银行自动取款系统 一、目的 根据所学知识,编写指定题目的C语言程序,并规范地完成课程设计报告。通过课程 设计,加深对《C语言程序设计》课程所学知识的理解,熟练掌握和巩固C语言的基本知识 和语法规范,包括:...

    语言程序设计课后习题答案

    结构化程序设计由于采用了模块分解与功能抽象,自顶向下、分而治之的方法,从而有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。 虽然结构化程序设计方法具有很多的优点,...

    软件设计-C--程序设计实验2-c--简单程序设计.doc

    (8)熟练运用逐步求精方法完成综合应用算法设计与实现(多分支结构、循环 结构、循环分支相互嵌套); (9)培养良好的编程风格。(对象命名见名知意遵循匈牙利规则、缩排风格、 注释要求20%以上) (10)了解面向...

    windows环境下32位汇编语言程序设计

    本书尝试从编写应用程序的角度,从“Hello,World”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过70多个从简单到复杂的例子,逐步深入Win32汇编编程的方方面面。笔者从事汇编编程已经有十几...

    二级C语言公共基础知识

    (7) 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、______和限制使用goto语句。 答:模块化 (8) 软件的调试方法主要有:强行排错法、______和原因排除法。 答:回溯法 (9) 数据库系统的三级模式分别...

    C++实现图形管理.zip

    综合利用上述知识,学习设计并编写面向对象的C++简单应用程序,培养解决复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。 学会编制结构清晰、风格良好、数据结构适当的C++语言程序,从而具备利用...

    成绩统计系统C课程设计.docx

    培养解决复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。 成绩统计系统C课程设计全文共9页,当前为第2页。 学会编制结构清晰、风格良好、数据结构适当的C++语言程序,从而具备利用计算机编程...

    计算机二级C语言考试题预测

    (41) 在下列选项中,哪个不是一个算法一般应该具有的基本特征(C) A. 确定性 B. 可行性 C. 无穷性 D. 拥有足够的情报 (42) 希尔排序法属于哪一种类型的排序法(B) A.交换类排序法 B.插入类排序法 C.选择类排序法 D.建...

    软件工程-理论与实践(许家珆)习题答案

    B) 图形工具能够极好地概括描述一个系统的信息,比文字叙述能够更好地表达重 要的细节 C) 图形能够更加直观地描述目标系统,便于用户理解和交流,有利于开发者与用 户之间达成一致的需求 D) 图形比文字描述简单、...

    1软件工程习题及答案.doc

    结构设计是一种应用最广泛的系统设计方法,是以 为基础、自顶向下、逐步求精和模块化的过程。 A、数据流 B、数据流图 C、数据库 D、数据结构 A4. 概要设计的结果是提供一份 。 A、模块说明书 B、框图 C、程序 D、...

    软件工程习题及答案.docx

    结构设计是一种应用最广泛的系统设计方法,是以 为基础、自顶向下、逐步求精和模块化的过程。 A、数据流 B、数据流图 C、数据库 D、数据结构 A4. 概要设计的结果是提供一份 。 A、模块说明书 B、框图 C、程序 D、...

    2005-2009软件设计师历年真题

     •软件设计(分析与集成、逐步求精、抽象、信息隐蔽)  •软件设计方法(结构化设计方法、Jackson方法、Warnier方法、面向对象设计方法)  •程序设计(结构化程序设计、面向对象程序设计)  • 软件测试的原则...

    计算机二级公共基础知识

    从线性表的第一个元素开始,依次将线性表中的元素与被查找的元素相比较,若相等则表示查找成功;若线性表中所有的元素都与被查找元素进行了比较但都不相等,则表示查找失败。 例如,在一维数组[21,46,24,99,57,...

    软件工程试卷和答案解析

    N套软件工程试卷,大部分有答案 计算机学院软件工程试题B答案 一、 选择题 1、C 2、A 3、D 4、C 5...答:(1)自顶向下、逐步求精的程序设计方法(2分)(2)使用3种基本控制结构、单入口、单出口来构造程序。(3分)

    JSTL详细标签库介绍

    ------------异常处理程序<BR><BR>12.5一个异常处理的简单实例:除数为0<BR><BR>需求:使用一个小应用程序,完成两数相除的计算<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>分析:我们使用有顶向下,逐步求精的方法:...

Global site tag (gtag.js) - Google Analytics