




已閱讀5頁,還剩46頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第10章程序設計基礎,本章教學目的:,了解程序設計的基本概念、思想和方法,為今后更好地學習程序設計語言打好基礎。,本章教學內容:,程序設計語言概述2.程序:程序的類型及程序的執行方式。3.軟件工程:目前軟件開發和維護的方法。4.軟件生命周期:軟件開發的具體步驟。,10.1程序設計語言概述,任何以計算機為處理工具的任務都是對處理對象和處理規則的完整描述,稱為程序。軟件是程序、數據及相關文檔的集合,是用戶與硬件之間的接口。,機器語言是計算機硬件系統能唯一識別并執行的語言,計算機指令。計算機指令是硬件唯一能識別的、實現計算機基本功能的二進制編碼,是指揮計算機工作的基本命令。指令:計算機指令是計算機執行命令的最小功能單位,是指揮計算機工作的命令,是軟件與硬件的接口。,一般來說,指令由操作碼和操作數兩部分組成:操作碼用于指明操作,不同指令具有不同的操作碼。操作數可以是要操作的數據(稱為立即數),也可以是存放操作數的內存單元地址或寄存器地址等。,2.指令系統,指令系統:一臺計算機中全部指令的集合構成指令系統。一臺計算機的指令系統決定了它的基本性能,現代計算機一般都有幾十條到上百條指令。,早期計算機,從簡化計算機硬件結構和降低成本考慮,指令系統都比較簡單,指令條數少、功能弱。為增加計算機功能及縮小指令系統與高級程序設計語言之間的差異,人們研制了復雜指令系統計算機(CISC,ComplexInstructionSetComputer)。CISC計算機指令條數多達二三百條,能直接處理多種數據類型。,RISC,ReducedInstructionSetComputer,指令系統具有指令少、功能簡單、指令執行時間短等特點,RISC成為計算機設計的主流。,10.1.2匯編語言,匯編語言:指令由英文單詞或縮寫構成,用符號和十進制數代替機器語言中的二進制編碼,便于人們記憶和書寫。,101110000000100000000000000001010000011100000000,以計算A=8+7為例:,機器語言為:,匯編語言為:,MOVAX,8ADDAX,7,;將8存入累加器A中;7與累加器A中的內容相加,;結果仍存放在A中,計算機程序設計語言總體上可以分為低級語言和高級語言兩大類,低級語言是指機器語言和匯編語言;低級語言的低級并不是說語言的功能性差,而是指與計算機硬件密切相關,編寫程序難度較大。機器語言和匯編語言都與計算機類型有關;匯編語言一般用于編制系統軟件和過程控制軟件,10.1.3結構化程序設計語言,結構化程序設計語言:脫離具體計算機硬件結構的程序設計語言。程序設計的核心是數據結構和算法;通過數據結構定義數據的存儲形式;通過算法研究如何用快捷、高效的方法來組織解決問題的具體過程。,20世紀50年代后期,出現了許多脫離具體計算機硬件結構的程序設計語言,人們稱之為高級程序設計語言。例如Basic、FORTRAN、Pascal等。例如,計算A=8+7并輸出結果的BASIC語言程序段如下:A=8+7PrintA,結構化程序設計語言將注意力從機器轉移到問題本身,它致力于用計算機能理解的邏輯來描述解決問題的具體方法和步驟。面向過程的程序設計的核心是數據結構和算法。通過數據結構定義數據的存儲形式;通過算法研究如何用快捷、高效的方法來組織解決問題的具體過程。,1.結構化程序設計語言的基本特征:,程序內部結構化:程序由順序、選擇(分支)和重復(循環)3種結構組成。程序模塊化:一個大程序由若干個功能獨立的、相互關聯的程序模塊(子程序、函數等)組成。程序模塊之間通過調用關系完成程序的整體功能。可移植性好:即為一類計算機設計的程序,經少量改動后可以在另一類計算機上運行。與低級語言相比,結構化程序具有較好的移植性。,具有代表性的結構化程序設計語言:,FORTRAN語言:是FormulaTranslator的縮寫,在工程、數學和科學研究上是使用最廣泛的語言,尤其是在科學計算中發揮著極其重要的作用。Pascal語言:作為一門實用程序設計語言和教學工具,Pascal語言在高校計算機軟件教學中一直處于主導地位。C語言:適合于系統描述,可以用于編寫系統和應用軟件。,10.1.4面向對象的程序設計語言,ObjectOrientedProgramming,OOP早在20世紀60年代在實驗室中就提出了面向對象方法,最早的面向對象軟件是1966年開發的Simula它首次提出模擬人類思維方式,將數據和相關操作集成在一起。使得數據和處理數據的方法融為一體,更方便處理現實世界中復雜的事物。,面向對象的程序設計語言:,對象:是程序中最基本的運行實體,一個程序由若干個對象組成,各個對象既相互獨立,又通過消息相互聯系。類:是具有相同特征對象的抽象,是創建對象的模板,2.可視化程序設計,在可視化程序設計中,屬性、事件和方法是用于控制和管理對象的3個要素。屬性:用于描述對象的特征。事件:是對象響應某種操作時的一種反映機制,是響應某種操作的程序代碼入口。方法:一種子程序,調用時依附于對象,運行時執行相關的操作,也稱之為對象函數。,具有代表性的面向對象程序設計語言:,C+語言:在C語言基礎上增加了面向對象的支持,基本兼容C語言程序。其特點是既支持結構化程序設計方法,又支持面向對象程序設計方法,因此,也稱之為混合型語言。Delphi語言:是在Pascal基礎上開發出來的可視化程序設計語言,是真正的面向對象編程語言,執行效率高,具有強大的數據庫管理功能,是開發中小型數據庫軟件的理想編程工具。Java語言:Java也是一種跨平臺的程序設計語言,適合開發基于網絡、多媒體、與平臺無關的應用程序,應用程序可以在網絡上傳輸,并可以運行在任何計算機上。,網頁設計語言:,通過網絡瀏覽器瀏覽的網頁可分為動態網頁、靜態網頁兩種。標記語言主要用于設計靜態網頁,利用標記標注信息的類型和位置。腳本語言是介于HTML和編程語言之間的一種語言,主要用于設計動態網頁。,在計算機中,通常將結構化程序設計語言和面向對象程序設計語言統稱為高級程序設計語言,簡稱高級語言。,10.2程序,任何以計算機為處理工具的任務都是對處理對象和規則的完整描述,這種描述稱為程序。程序是用計算機語言設計的,為完成某一任務、按一定順序編排的指令序列。要使程序起作用,必須將其裝入到內存中執行,程序的實際工作過程稱為執行或運行。,在屏幕上顯示字符串“HelloWorld”,DSEGSEGMENTSTRINGDBHelloWorld,0DH,OAH,$;定義緩沖區DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXLEADX,STRINGMOVAH,09HINT21HMOVAH,4CHINT21HCSEGENDSENDSTART,【例81】計算階乘的C語言程序JSJC.C。Longfun(Intx)/*函數fun,用來計算x的階乘*/LongResult=1;/*result是變量,用來保存計算結果*/IntI;/*i為循環控制變量*/For(i=2;i10)/*判斷輸入數據范圍*/Printf(“Datamustbewteen1and10.n”);/*數據超界,提示合理范圍*/Continue;/*回到循環開始位置,繼續判斷循環條件*/s=fun(i);/*調用函數fun計算i階乘,結果存于變量s中*/Printf(%d!=%ldn,I,s);/*在屏幕上輸出計算結果*/圖8.1.1程序JSJC運行過程,DimaAsIntegerDimbAsIntegerPrivateSubCommand1_Click()k=InStr(a,Text2,Text1)Ifk0ThenCommand1.Caption=查找下一個a=k+Len(Text1)Text2.SetFocusText2.SelStart=k-1Text2.SelLength=Len(Text1)b=b+1ElseMsgBox查找完畢!共找到&b&個&Text1Command1.Caption=查找“a=1EndIfPrintkEndSub,根據程序所處軟件的開發階段或運行方式的不同,程序主要有源程序、可執行程序和動態鏈接庫3種類型。人們將利用程序設計語言設計的內容稱為源程序。將保存這些內容的文件稱為源程序文件。,可執行程序是由源程序翻譯(編譯)生成的、真實的機器語言程序。在Windows中,最常用的可執行程序文件擴展名為EXE和COM。,動態鏈接庫是由源程序生成的機器語言程序的另一種形式,主要作為可執行程序的輔助文件,不能獨立運行。主要作用:(1)提供應用程序接口(API),User32.dll(2)程序動態加載,源程序的翻譯方式:,編譯方式:通過程序設計語言提供的編譯或生成工具,系統自動對整個源程序逐句進行詞法分析、語法分析和機器語言指令翻譯。解釋方式:在程序設計語言環境中直接運行源程序,在執行每條語句前,系統先分析語句的詞法和語法,若語句正確,則生成并執行機器語言指令,直到程序運行結束。,10.3軟件工程基礎,軟件工程是將系統的、規范的、可度量的方法應用于軟件開發和維護整體過程的一門科學,用數學、計算機科學和管理科學的原理,借助傳統工程科學的原則和方法創建與維護軟件,從而達到提高軟件質量、降低軟件成本的目的。軟件工程學出現的目的是為緩解軟件危機。,軟件工程的誕生背景,程序設計時代:程序設計語言是機器語言和匯編語言,這個階段被稱為程序設計時代。軟件開發主要是個體手工勞動,完全依賴程序設計者的個人技能,不重視程序設計方法。,程序系統時代:高級程序設計語言出現后,提出了結構化程序設計的方法,并成為軟件開發的主要工具,稱此階段為程序系統時代。,供需矛盾;開發成本和時間失控;質量難以保障;維護困難。,主要表現:,軟件危機是泛指在計算機軟件的開發和維護過程中所遇到的一系列嚴重問題。,軟件工程主要包括軟件開發技術和軟件工程管理。,軟件工程是一門交叉科學,包含方法、工具和過程3個要素。,軟件工程包括三個要素:方法、工具和過程。1.方法:完成軟件工程項目的技術手段,它支持項目計劃和估算、系統和軟件需求分析、軟件設計、編碼、測試和維護。2.工具:支持軟件的開發和管理,支持各種軟件文檔的生成。人們將用于軟件開發的軟、硬件工具和軟件工程數據庫集成在一起,建立了集成軟件工程環境;3.過程:支持軟件開發各個環節的控制、管理。,軟件工程的基本目標是付出較低的開發成本,達到要求的軟件功能;按時完成開發任務,及時交付使用;開發出來的軟件具有良好的穩定性、可靠性、適應性和可操作性,易于移植和維護。,在軟件開發過程中,必須遵循抽象性、信息隱藏性、模塊化、局部化、一致性、完整性和可驗證性等原則。,10.4軟件生命周期,軟件產品從形成概念開始,經過開發、使用和維護,直到最后退役的全過程稱為軟件的生命周期。,在“計算機軟件開發規范”的國家標準中,將軟件生存周期劃分為可行性研究、需求分析、概要設計、詳細設計、代碼實現、軟件測試、使用與維護7個階段,在每個階段中都明確規定了任務、實施方法、步驟和完成標志等,并要求產生相關的文檔。,軟件定義階段:,1.可行性研究:也稱軟件計劃或策劃階段。此階段主要對待開發系統涉及到的經費、軟/硬件技術、效益和法律等方面的問題進行可行性論證,制定系統開發任務的實施計劃。,2.需求分析:需求是用戶對目標軟件系統在功能、行為、性能和約束等方面的要求或期望。需求分析是對應用問題及其環境的理解與分析,為應用問題涉及的事物、功能及系統行為建立模型,將需求精確化和完整化,最終形成需求規格說明書。,需求分析的主要工作:,獲取資料資料分析形成需求規格說明書需求評審,軟件開發階段:,3.概要設計:也稱結構設計或總體設計,根據需求確定軟件和數據的總體框架。,數據結構設計:也稱數據對象設計,主要任務是依據需求分析的數據模型,結合程序中涉及的算法,設計數據文件的邏輯結構。軟件結構設計:按自頂向下、逐步求精和模塊化的設計原則,將一個軟件分解和規劃成若干個模塊,確定各模塊之間的關聯信息。概要文檔:概要設計說明書、數據結構或數據庫設計說明書和軟件集成調試計劃等。,4.詳細設計:主要任務是設計軟件功能結構圖中每個最低層模塊的局部算法和數據結構,確定每個模塊調用和數據傳輸接口。,描述算法的常用工具有偽代碼(ProcedureDesignLanguage,PDL)、程序流程圖和NS圖等,設計成果是詳細設計說明書。,5.編碼實現:需要選擇一種程序設計語言,進入程序設計階段。通常利用菜單或窗口結合工具欄設計軟件功能結構圖的總體框架,依據詳細設計中的算法和數據結構設計每個功能模塊的程序代碼,設計成果是源程序。,6.軟件測試:是對需求規格說明書、概要設計說明書及程序代碼等內容的最后復審。,軟件質量保證貫穿于軟件開發的整個過程,其中關鍵步驟是軟件測試;軟件測試目的是在軟件產品交付使用之前盡可能發現潛在的錯誤;軟件測試主要檢測和更正語義和功能錯誤。,軟件測試的方法:,靜態測試:不需要運行軟件,由人工直接進行閱讀和檢查源程序,包括代碼檢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學年寬城滿族自治縣三年級數學第一學期期末統考試題含解析
- 2025-2026學年甘肅省張掖市肅南裕固族自治縣數學三上期末考試模擬試題含解析
- 2025-2026學年噶爾縣三年級數學第一學期期末檢測試題含解析
- 2025-2026學年呈貢縣三上數學期末達標測試試題含解析
- 2024年遼寧省鞍山市立山區三年級數學第一學期期末質量跟蹤監視模擬試題含解析
- 2024年江蘇省南通市實小集團共同體三年級數學第一學期期末考試試題含解析
- 行政管理專科語文應試試題及答案
- 2025年主管護師考試預測趨勢試題及答案
- 行政管理專業經典文獻試題及答案
- 曲藝與地方文化的融合試題及答案
- 2025年保密教育線上培訓考試試題及答案
- 2025年海南會考試題及答案地理
- JJG 693-2011可燃氣體檢測報警器
- 中外政治思想史-形成性測試三-國開(HB)-參考資料
- 建設工程施工現場生活區設置和管理導則
- 實用美學第九講飲食美學課件
- DBT29-295-2021 600MPa級高強鋼筋混凝土結構技術標準
- 乳腺癌患者生命質量測定量表FACT
- ISO17025:2017檢測和校準實驗室能力的通用要求( 中英對照版)
- Q∕GDW 12157-2021 應急培訓演練基地建設與評價規范
- 胃鏡操作規范課件
評論
0/150
提交評論