A. 編寫計算機程序有幾種常用的方法
編寫程序是一項系統而繁瑣的工作,它不僅需要程序設計人員具有一定的功底,更需要有良好的編程習慣和風格。良好的編程習慣和風格不僅可以使程序代碼更易於讀懂和修改,更重要的是,它可以使程序的結構更加合理,有助於提高程序的執行效率。下面是我在程序設計中總結的一些經驗,供大家參考。
設計順序
在我們剛開始學習程序設計的時候,要編寫一個程序,總是先進行一番構思,然後就一邊寫代碼一邊調試。這種方法一般只適用於非常小的程序,根據工程的特點,如果對所有程序都還按這種方法進行設計,是不合理的。
其實,設計程序就像我們蓋高樓大廈,首先要設計圖紙,然後動工。所以,對於個人編寫程序來說,應遵循以下步驟:
1、問題分析:對我們要使用程序設計手段去解決的問題進行系統地分析,了解程序是做什麼的,要達到一種什麼樣的效果等。
2、結構設計:也就是對程序的整體框架進行設計,設計出我們需要使用的模塊等等,並畫出流程圖。
3、用戶界面設計:在此,我們要設計出用於與用戶交互的輸入輸出界面。
4、代碼設計:在這個步驟中,我們要進行代碼的編寫。
5、調試:對程序中正在發生或可能發生的各種錯誤進行處理。
6、維護:通俗地說,維護就是對程序進行升級,對原有錯誤進行修改。
對於以上幾個步驟,我想大多數人會認為代碼設計最為重要,但如果程序的結構尚未清楚,我們在編寫代碼的時候就會發生混亂,一個程序性能的好壞,主要還是取決於它的結構是否合理。因此,在程序設計中,我們要盡可能注意這一點,這樣才能使我們的程序更加完善。
設計環境
一個良好的編程環境可以使我們在編寫程序時,不至於造成各種資源的紊亂,還可以避免資源的丟失。建議大家要在放源程序的目錄下建立「Programs」文件夾;然後再以你要編寫的程序名和版本為名建立一個文件夾,用於存放整個源程序以及各種資源;最後,分別建立幾個文件夾,「Documents」:用於存放程序文檔,包括流程圖等;「Resource」:用於存放圖片,聲音,影片等資源;「Debug」:用於存放調試的程序。「Release」:用於存放最終釋放的程序。
例如:我們要製作一個英語學習,名為「English」,版本為1.0,那麼我們的編程環境中應存在以下文件夾:
[DRIVE]:\\…\\Programs\\English1\\Debug\\
[DRIVE]:\\…\\Programs\\English1\\Documents\\
[DRIVE]:\\…\\Programs\\English1\\Resource\\
[DRIVE]:\\…\\Programs\\English1\\Release\\
另外,最好再建立一個專門的文件夾,用於存放各種模塊,以便能實現代碼的重用,這樣,我們就不用在每次寫程序時,都重寫所有的模塊,編程速度會有很大的提高。
設計技巧
代碼如果寫得很亂,程序便不易被閱讀與修改,所以,在編寫代碼時要注意以下幾點:
(1)注釋:寫注釋雖然要佔用一定的時間,但在閱讀和修改代碼時卻會節省很多的時間。所以,建議大家在定義一個函數時,在函數的第一行寫出函數的作用,再用一行解釋函數的參數,並在每個變數的定義語句後注釋出其作用。
(2)變數和函數的命名:每個程序都會使用很多的變數和函數,如果隨意命名變數與函數,每次使用時還得在變數或函數的定義語句處查出它的數據類型及名稱,而且隨意命名還會造成變數與函數重復定義。
建議大家使用匈牙利命名法,方法是:每個變數或函數的開頭都以其數據類型的縮寫命名,然後再加上代表這個變數或函數的作用的英文單詞簡寫共同組成變數或函數的名稱。例如:要定義用於計數的整型變數count,其定義語句為C\\C++:int icount; Basic:Dim icount as Integer。以這種方法定義,不僅可以有效地避免變數與函數的混亂與重復定義,還可以保證數據類型的匹配。
(3)控制項命名:如果在Windows下編程,你有可能會大量地使用控制項,如果不對控制項名嚴加管理,會造成很大程度的混亂,因此,建議在給控制項命名時,以控制項類型縮寫再加上代表這個控制項作用的英文單詞的簡寫共同組成此控制項的名稱。例如:你要命名一個按鈕控制項,作用是進行刪除操作,那麼控制項名可以命名為cmdDel。
並不是每個人都能成為頂級程序員,但我們都在程序員之路上不斷進步,追求更完美、更專業化的程序。不妨好好改造一下你的程序,你會從中感受到很多好處。
B. 程序設計基本方法
程序設計基本方法有面向過程的方法和面向對象的方法。
面向過程的方法:面向過程(ProcereOriented)是一種以過程為中心的編程思想。這些都是以什麼正在發生為主要目標進行編程,不同於面向對象的是誰在受影響。與面向對象明顯的不同就是封裝、繼承、類。 面向過程的設計方法是一種線性過程,按照智能交通內部信息轉化、傳遞的關系,以數據為中心,自上而下地逐步細化進行系統功能的分解與設計,最終設計出滿足用戶需求的物理模型。面向過程的設計方法主要使用數據流圖、數據流描述表、系統結構圖、框架流描述表、實體關系圖等對智能交通系統體系結構加以描述。面向過程常見的編程語言為c語言。
面向對象方法:面向對象(Object Oriented,OO)是軟體開發方法。面向對象的概念和應用已超越了程序設計和軟體開發,擴展到如資料庫系統、互動式界面、應用結構、應用平台、分布式系統、網路管理結構、CAD技術、人工智慧等領域。面向對象是一種對現實世界理解和抽象的方法,是計算機編程技術發展到一定階段後的產物。面向對象是專指在程序設計中採用封裝、繼承、抽象等設計方法。可是,這個定義顯然不能再適合現在情況。面向對象的思想已經涉及到軟體開發的各個方面。常見的面向對象語言有java,c++,python,c#等。
C. 目前常用的兩種程序設計方法是
A、結構化程序設計和面向對象程序設計。
結構化程序設計(structured programming)是進行以模塊功能和處理過程設計為主的詳細設計的基本原則。結構化程序設計是過程式程序設計的一個子集,它對寫入的程序使用邏輯結構,使得理解和修改更有效更容易。
而面向對象程序設計(Object Oriented Programming)作為一種新方法卜缺,其本質是以建立模型體現出來的抽象思維過程和面向對象的方法。
(3)總結程序設計的方法擴展閱讀:
結構化程序設計的原則:
結構化程序設計採用自頂向下、逐步求精的設計方法,各個模塊通過「順序、選擇、循環」的控制結構進行連接,並且只有一個入口、一個出口。
結構化程序設計的原則可表示為:程序=(演算法)+(數據結構)。
演算法是一個獨立的整體,數據結構(包含數據類型與數據)也是一個獨立的整體。兩者分開設計,以演算法(函數或過程)為主。
隨著計算機技術的發展,軟體工程師越來越注重型談辯於系統整體關系的表述,於是出現了數據模型技術(把數據結構與演算法看做一個獨立功能模塊),這便是面向對象程序設計的雛形。
D. 程序設計的兩種方法是什麼
程序設計方法學(Programming Methodology)有兩種含義: 一種是以程序設計方法為研究對象的學科,它不僅研究各種具體的方法,而且著重研究各種具體方法的共性,涉及規范的全局性方法,以及這些方法的顯示背景和理論基礎;另外一種含義是針對某一領域或某一領域的一類特定
程序設計方法學(Programming Methodology)有兩種含義:
一種是以程序設計方法為研究對象的學科,它不僅研究各種具體的方法,而且著重研究各種具體方法的共性,涉及規范的全局性方法,以及這些方法的顯示背景和理論基礎;另外一種含義是針對某一領域或某一領域的一類特定問題,所用的一整套特定程序設計方法所構成的體系。
作為一門學科(第一種含義),程序設計方法學可對程序設計人員選用具體的程序設計方法起指導作用,而具體的程序設計方法對程序設計工作的質量以及所設計出大程序的質量影響巨大。因此,對程序設計方法學的研究是非常重要的。
作為一套完整特定的程序設計方法所構成的體系(第二種含義),如邏輯式程序設計方法學、函數式程序設計方法學、對象式程序設計方法學等。它們有各自的利弊得失,與具體領域、具體問題以及具體環境相關。
兩種含義之間的關系是:第二種含義是第一種含義的基礎,第一種含義是在第二種含義的基礎上的總結、提高,並上升到原理、原則和理論的高度。這兩種含義的程序設計方法學都非常重要。
E. 結構化程序設計原則
結構化程序設計原則主要有四個原則:
1.自頂向下:程序設計時,應先考慮總體,後考慮細節;先考慮全局目標,後考慮局部目標。不要一開始就過多追求眾多的細節,先從最上層總目標開始設計,逐步使問題具體化。
2.逐步求精:對復雜問題,應設計一些子目標作為過渡,逐步細化。
3.模塊化:一個復雜問題,肯定是由若干稍簡單的問題構成。模塊化是把程序要解決的總目標分解為子目標,再進一步分解為具體的小目標,把每一個小目標稱為一個模塊。
4.限制使用goto語句
結構化程序設計方法的起源來自對GOTO語句的認識和爭論。肯定的結論是:在塊和進程的非正常出口處往往需要用GOTO語句,使用GOTO語句會使程序執行效率較高;在合成程序目標時,GOTO語句往往是有用的,如返回語句用GOTO。
否定的結論是:GOTO語句是有害的,是造成程序混亂的禍根,程序的質量與GOTO語句的數量呈反比,應該在所有高級程序設計語言中取消GOTO語句。取消GOTO語句後,程序易於理解、易於排錯、容易維護,容易進行正確性證明。作為爭論的結論,1974年Knuth發表了令人信服的總結,並取消了GOTO語句。
(5)總結程序設計的方法擴展閱讀:
結構化程序,是以模塊化設計為中心,將待開發的軟體系統劃分為若干個相互獨立的模塊。
結構化程序設計由迪克斯特拉(E.W.dijkstra)在1969年提出,是以模塊化設計為中心,將待開發的軟體系統劃分為若干個相互獨立的模塊,這樣使完成每一個模塊的工作變單純而明確,為設計一些較大的軟體打下了良好的基礎。
由於模塊相互獨立,因此在設計其中一個模塊時,不會受到其它模塊的牽連,因而可將原來較為復雜的問題化簡為一系列簡單模塊的設計。模塊的獨立性還為擴充已有的系統、建立新系統帶來了不少的方便,因為我們可以充分利用現有的模塊作積木式的擴展。