程序設(shè)計與軟件開發(fā)基礎(chǔ)_第1頁
程序設(shè)計與軟件開發(fā)基礎(chǔ)_第2頁
程序設(shè)計與軟件開發(fā)基礎(chǔ)_第3頁
程序設(shè)計與軟件開發(fā)基礎(chǔ)_第4頁
程序設(shè)計與軟件開發(fā)基礎(chǔ)_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

程序設(shè)計與軟件開發(fā)基礎(chǔ)教學(xué)目標了解計算機程序設(shè)計的一般過程了解算法與數(shù)據(jù)結(jié)構(gòu)的基本概念掌握面向過程和面向?qū)ο蟪绦蛟O(shè)計的基本思想授課內(nèi)容

指令、程序與軟件的概念程序設(shè)計的概念程序設(shè)計的過程算法的概念與算法的特性算法的表示方法數(shù)據(jù)結(jié)構(gòu)簡述面向過程的程序設(shè)計方法面向?qū)ο蟮某绦蛟O(shè)計方法問題的提出什么是指令、程序與軟件什么是程序及程序設(shè)計?計算機的工作原理……計算機存儲程序的工作原理指令、程序與軟件MEMORY程序、數(shù)據(jù)控制信號----------自動取指令、數(shù)據(jù)CPU解釋執(zhí)行指令----------送回結(jié)果指令與指令系統(tǒng):指令是CPU發(fā)布的用來指揮和控制計算機完成某種操作的命令。在計算機內(nèi)部,指令是以二進制的形式表示。一組不同指令的集合稱為指令系統(tǒng)。指令格式:操作碼地址碼計算機指令(instruction)指令類型:數(shù)據(jù)指令、數(shù)據(jù)傳送指令、程序控制指令、狀態(tài)管理指令

程序是一組按邏輯順序排列的指令集合。用以完成一個指定的完整任務(wù)。

程序程序=算法+數(shù)據(jù)結(jié)構(gòu)軟件:是程序以及開發(fā)、使用和維護程序所需的各種文檔。通常軟件包括四個部分:應(yīng)用程序:直接面向用戶,為解決各種特定問題而編寫的程序;系統(tǒng)程序:為應(yīng)用程序服務(wù)所編制的程序匯總,面向計算機硬件;面向用戶的文檔:如何使用和維護應(yīng)用程序的資料,如用戶手冊、操作手冊、維護手冊等;面向開發(fā)者的文檔:記載了應(yīng)用程序的設(shè)計和開發(fā)過程,以便進一步開發(fā)和修改;軟件:軟件是程序、文檔和數(shù)據(jù)的完整集合軟件的主體是程序,文檔是與程序有關(guān)的各種文字或圖形資料,數(shù)據(jù)是使程序能較好地處理信息的數(shù)據(jù)結(jié)構(gòu)。程序設(shè)計

程序設(shè)計是按解決某一實際問題的方法和步驟,將一系列的指令按邏輯關(guān)系組合在一起,并用計算機語言編寫、上機調(diào)試的過程。程序執(zhí)行方式

編制程序并將程序以文件的方式存放在磁盤上計算機按順序自動連續(xù)的分析執(zhí)行每一條命令“程序設(shè)計是具有一種知識背景的人為具有另一種知識背景的人進行的創(chuàng)造性勞動”。

程序設(shè)計是一種創(chuàng)造性的勞動設(shè)計過程是把實用知識影射到計算知識。設(shè)計是一個影射功能用戶操作約束例外器件組織結(jié)構(gòu)算法資源數(shù)據(jù)實用知識計算知識

“好的設(shè)計者應(yīng)具備深厚的應(yīng)用領(lǐng)域知識?!?/p>

關(guān)于設(shè)計的論述“層次結(jié)構(gòu)減少復(fù)雜度?!?/p>

關(guān)于設(shè)計的論述“有兩種方法來設(shè)計一個軟件。第一種方法是設(shè)計非常簡單的軟件以至于沒有明顯的不足。另一種方法是設(shè)計非常復(fù)雜的軟件也沒有明顯的不足?!?/p>

軟件設(shè)計的妙語程序設(shè)計的一般過程計算機可以做任何事情;只要能把實際問題抽象、制作為計算機可求解的程序。計算機求解問題的步驟:實際問題求解編制問題問題模型算法程序?qū)崿F(xiàn)需求分析設(shè)計程序編碼程序調(diào)試需求分析問題:統(tǒng)計大學(xué)中一個班級的學(xué)生的考試成績,并選出優(yōu)秀學(xué)生多少科目的成績?優(yōu)秀的定義(總分?平均分?第一名?前五名?)數(shù)據(jù)如何錄入?如何輸出?這是初學(xué)者認為最簡單而在實際工程中最難的工作。在軟件工程中被稱作“需求分析”算法設(shè)計

前因后果:需求分析確定了未來程序的輸入、處理、輸出(IPO,即Input,Process,Output);算法(Algorithm)是對解決問題步驟的描述;算法不能被計算機理解、執(zhí)行。算法示例步驟1:輸入全部學(xué)生姓名、學(xué)號、英語成績、計算機基礎(chǔ)成績;步驟2:對各個學(xué)生成績求合計;步驟3:按合計對學(xué)生進行排序;步驟4:取排序的學(xué)生列表中第一個學(xué)生;步驟5:該學(xué)生有不及格嗎?沒有,則打印姓名并結(jié)束;有不及格,則取下一個學(xué)生并重復(fù)步驟5

。程序編碼要點如何用語句表達思想(算法)?(初級)了解語句、語法(高級)熟悉語言提供的功能、你需要做的工作不同語言提供的功能、性能有較大差距如何組織程序代碼開始點執(zhí)行過程(子程序拆分、調(diào)用)結(jié)束點程序測試

語法錯誤邏輯錯誤調(diào)試程序的煩惱……?

程序員約翰在調(diào)試程序過程中遇到了麻煩……程序設(shè)計的基本過程需求分析設(shè)計程序編碼程序測試根據(jù)需要,建立求解問題的數(shù)學(xué)模型。寫出說明書。程序的模塊化設(shè)計,寫出程序的邏輯結(jié)構(gòu)。寫出詳細的操作步驟選擇某種程序設(shè)計語言,編寫源程序的過程。將程序代碼輸入到計算機中并運行,找出程序的錯誤并修改?;卮饐栴}簡述計算機的基本工作原理?程序設(shè)計的過程包括了哪幾個階段?什么程序?它包含哪兩個要素?什么是軟件?它與程序有什么區(qū)別?結(jié)構(gòu)化程序設(shè)計思想結(jié)構(gòu)化程序設(shè)計支持“自頂向下,逐步求精”的程序設(shè)計方法?!白皂斚蛳隆?/p>

是將復(fù)雜、大的問題劃分為小問題,找出問題的關(guān)鍵、重點所在,然后用精確的思維定性、定量地去描述問題?!爸鸩角缶?/p>

是將現(xiàn)實世界的問題經(jīng)抽象轉(zhuǎn)化為邏輯空間或求解空間的問題。復(fù)雜問題經(jīng)抽象化處理變?yōu)橄鄬Ρ容^簡單的問題。經(jīng)若干步抽象(精化)處理,最后到求解域中只是比較簡單的編程問題。三種基本程序結(jié)構(gòu)

按照結(jié)構(gòu)化程序設(shè)計的觀點,任何算法功能都可以通過由程序模塊組成的三種基本程序結(jié)構(gòu)的組合:順序結(jié)構(gòu):程序是按程序語句或模塊在執(zhí)行流中的順序逐個執(zhí)行。選擇結(jié)構(gòu):程序是按設(shè)定的條件實現(xiàn)程序執(zhí)行流的多路分支。循環(huán)結(jié)構(gòu):程序是按給定的條件重復(fù)地執(zhí)行指定的程序段或模塊。結(jié)論:理論上已經(jīng)證明,用三種基本程序結(jié)構(gòu)可以實現(xiàn)任何復(fù)雜的算法。程序的三種基本結(jié)構(gòu)1.順序結(jié)構(gòu)AB2.分支結(jié)構(gòu)PABPANYYN3.循環(huán)結(jié)構(gòu)分支結(jié)構(gòu)(之一)一路分支語句格式:

if(表達式)語句序列

兩路分支語句格式:

if(表達式)語句序列1else

語句序列2條件?成立不成立語句序列條件?語句序列1成立不成立語句序列2語句序列可以是一個語句,也可以是復(fù)合語句結(jié)構(gòu)。示例示例選擇結(jié)構(gòu)之二多路(開關(guān))選擇語句語句格式:

switch(整數(shù)表達式)

{case數(shù)值1:語句序列1;

…...case數(shù)值n:語句序列n;

[default:

語句序列n+1;]}

計算整型表達式值=?語句序列1…….語句序列2語句序列n示例循環(huán)結(jié)構(gòu)當型循環(huán)語句格式:

while(表達式)

[{]

語句序列

[}]直到型循環(huán)語句格式:

do{

語句序列

}while(表達式);循環(huán)體循環(huán)體條件?語句序列成立不成立語句序列不成立成立條件?示例示例程序設(shè)計概述算法與流程圖算法是解決某一實際問題的步驟和方法流程圖是一種用圖形、文字和連線來表示解決題的思路和方法的圖算法與流程圖算法的特性確定性:每個操作無二義性;有窮性:操作步驟是有限的;有輸入:0個或多個輸入有輸出:通過一系列操作應(yīng)得出正確結(jié)果

用自然語言表示算法(如前例)用流程圖表示算法用偽代碼表示算法(P228)算法的表示方法算法的表示方法

用自然語言表示算法

用自然語言描述算法,通俗易懂(如前例統(tǒng)計優(yōu)秀學(xué)生),除了特別簡單的問題,一般不用自然語言表示算法。算法的表示方法用流程圖(Flowchat)(框圖)表示算法流程圖是用各種幾何圖形框來表示算法的操作及邏輯結(jié)構(gòu),形象直觀,易于理解。

美國國家標準化協(xié)會(ANSI)規(guī)定的常用流程圖符號及用法。ANSI流程圖符號

起止框:表示程序的開始和結(jié)束輸入/輸出框:表示數(shù)據(jù)的輸入輸出操作

處理框:表示對數(shù)據(jù)進行處理決策框:表示根據(jù)條件決定程序走向連接符號:表示圖標之間相互連接關(guān)系箭頭:表示程序流向M<=6?L=L0+M*2.5輸出M、L結(jié)束L=L0+M*2輸入L0、MYN程序設(shè)計概述例:計算一周歲以內(nèi)小兒的標準身長時有以下兩個計算公式:

1~6月L=L0+M*2.5(cm)7~12月

L=L0+M*2(cm)計算1+2+3+…+100。

求和運算在算法設(shè)計中稱為“累加”。

結(jié)束從該例子中可看出,算法中每個步驟的含義清楚,步驟執(zhí)行的次數(shù)確定。1、求100以內(nèi)偶數(shù)之和??刹捎貌煌椒?/p>

2、計算1*2*3*…*100。需注意的關(guān)鍵?

求乘積運算在算法設(shè)計中稱為“累乘”。

思考:畫出如下流程圖:N-S結(jié)構(gòu)化流程圖:只有三類基本的圖形符號,分別對應(yīng)于程序算法中的三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。N-S圖中沒有流程線,算法流向總體上是從上至下,順序執(zhí)行。N-S圖的特點是:功能域(特別是控制結(jié)構(gòu)的作用域)明確;不允許任意的轉(zhuǎn)移控制;容易確定局部和全局數(shù)據(jù)的作用范圍;嵌套關(guān)系清晰,容易表示模塊的層次結(jié)構(gòu)。算法的表示方法A第一任務(wù)B第二任務(wù)

順序結(jié)構(gòu)N-S圖的圖形符號條件P假真BA

選擇結(jié)構(gòu)當條件P為真循環(huán)體A循環(huán)體A直到條件P為真當型循環(huán)結(jié)構(gòu)直到型循環(huán)結(jié)構(gòu)算法的表示方法偽代碼(Pseudocode)SUM=0FORI=1TON循環(huán)求累加和SUM=SUM+I輸出SUM書寫自由,容易修改,還可使用自然語言,但不如圖形工具直觀,有時控制結(jié)構(gòu)的范圍在閱讀是不好確定數(shù)據(jù)結(jié)構(gòu)概述

任何算法都是建立在相應(yīng)的數(shù)據(jù)結(jié)構(gòu)之上的。在程序設(shè)計中,算法的設(shè)計與實現(xiàn),依賴于數(shù)據(jù)的邏輯結(jié)構(gòu)與存儲結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)的選擇直接決定了程序的質(zhì)量。在程序設(shè)計中,線性表是一種最基本、最常用的數(shù)據(jù)結(jié)構(gòu),而樹和圖則是兩種復(fù)雜的非線性數(shù)據(jù)結(jié)構(gòu)。面向?qū)ο蟪绦蛟O(shè)計

基本思想基本過程主要特點ObjectOrientedProgramming面向?qū)ο蟮幕靖拍睢懊嫦驅(qū)ο蟆昂喎Q為“OO”。這是目前計算機業(yè)界使用的高頻詞?!癘O”代表著一種新的思維方式,代表著一種新的程序設(shè)計方法的潮流。什么是OO方法?什么是OOP?為什么要選擇OO方法?面向?qū)ο蟪绦蛟O(shè)計基本思想面向過程的程序設(shè)計(StructureProgramming)以功能為中心,采用函數(shù)來描述(動詞)傳統(tǒng)的程序設(shè)計方法,出發(fā)點是“怎樣做(How)?”。面向?qū)ο蟪绦蛟O(shè)計(OOP)面向?qū)ο蟪绦蛟O(shè)計方法認為,客觀世界是由各種各樣的實體組成的,這些實體就是面向?qū)ο蠓椒ㄖ械膶ο?。消息是向某對象請求服?wù)的一種表達方式對象之間的交互通過發(fā)送消息來實現(xiàn)。消息包括:目標對象,請求的方法,參數(shù)什么是面向?qū)ο蠓椒嫦驅(qū)ο螅∣O)方法的出發(fā)點是:“是什么(What)?”?,F(xiàn)實世界是由物質(zhì)組成的,人認識事物的規(guī)律:首先是認識問題域(Domain),它“是什么?”,再去認識事物的本質(zhì)?!皩ο蟆北憩F(xiàn)現(xiàn)實世界中的某個具體的事物。

傳統(tǒng)程序設(shè)計方法存在的問題生產(chǎn)率提高的幅度遠不能滿足需要軟件重用程度很低軟件維護困難軟件不能真正滿足用戶的需要設(shè)計方法主觀隨意性很大結(jié)構(gòu)化方法采用“自頂向下,逐步求精”進行分解。但因開發(fā)人員的經(jīng)驗、知識背景對問題認識的不同,而造成分解的隨意性。即使是對同一個系統(tǒng),不同的人可能分解出不同的軟件結(jié)構(gòu)。更加自然當系統(tǒng)不斷地演化時,內(nèi)部的功能會變化,但是對象本質(zhì)不變面向?qū)ο蟮南到y(tǒng)更容易維護面向?qū)ο蠓治龇◤娬{(diào)對象間定義良好的界面為什么選擇面向?qū)ο蠓治龇??OO方法的主要優(yōu)點與人類習(xí)慣的思維方法一致穩(wěn)定性好可重用性好可維護性好與人類習(xí)慣的思維方法一致人的認識過程是從一般到特殊的漸進思維過程,是從“是什么?”開始,認識事物及其本質(zhì)規(guī)律,主觀隨意性受到限制。而傳統(tǒng)方法是從“怎樣

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論