从一个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主函數,從整體的角度出發,不考慮細節。在編寫主函數的時候可能會想到編寫一些自定義函數來實現程序,但是不要考慮這些函數是如何實現的,只需要將這些函數聲明并在主函數中直接調用即可。待主函數編寫完成,程序的整體就設計完成了。 第二,從細節考慮,實現自定義函數。編寫自定義函數的時候就如同編寫主函數一樣,如果在自定義函數中還要使用某些自定義函數直接調用并聲明,然后編寫完自定義函數后再定義函數即可。通過這個打印日歷的程序,我領悟了“逐步求精”的思想。這就如果一個樹一樣,不是二叉樹,是多叉樹。?先從整體的角度考慮如何實現程序,不考慮細節;然后依次從“樹根”滋生出細節;最后形成一個茂盛的“樹”,從而實現整個程序。
這一思想使我領悟了很多,我想以后構架實訓中的系統時,寫文檔時都可以采用這一思想了。
轉載于:https://www.cnblogs.com/iPeterRex/archive/2008/09/15/1291017.html
總結
以上是生活随笔為你收集整理的从一个C程序学“逐步求精”的分析方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习官方示例 - SysUtils.En
- 下一篇: 几个 ASP.NET 小技巧