![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計模板(DOC)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/4c6cf4a8-36fd-4990-9a0d-8d9933b26bc8/4c6cf4a8-36fd-4990-9a0d-8d9933b26bc81.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計模板(DOC)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/4c6cf4a8-36fd-4990-9a0d-8d9933b26bc8/4c6cf4a8-36fd-4990-9a0d-8d9933b26bc82.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計模板(DOC)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/12/4c6cf4a8-36fd-4990-9a0d-8d9933b26bc8/4c6cf4a8-36fd-4990-9a0d-8d9933b26bc83.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計報告題 目:學(xué) 院:專業(yè)班級:學(xué)生姓名:指導(dǎo)教師:2016年06月2 9日目錄一、課程設(shè)計目的 二、課程設(shè)計步驟 三、課程設(shè)計內(nèi)容 四、課程設(shè)計報告 五、提交材料 3.3.5.錯. 誤 !未定義書簽。6.7.六、考核方式與評分標(biāo)準(zhǔn)七、參考文獻(xiàn)9.附錄 1 齊齊哈爾大學(xué)軟件工程系課程設(shè)計說明書(報告)撰寫規(guī)范 10、課程設(shè)計目的及要求數(shù)據(jù)結(jié)構(gòu)與算法分析 課程設(shè)計培養(yǎng)計算機(jī)專業(yè)的學(xué)生的算法程序設(shè)計能 力。通過上機(jī)實驗,可以培養(yǎng)學(xué)生程序設(shè)計的方法和技巧,提高學(xué)生編制清晰、 合理、可讀性好的系統(tǒng)程序的能力, 加深對數(shù)據(jù)結(jié)構(gòu)課程和算法的理解。 使學(xué)生 更好地掌握數(shù)據(jù)結(jié)構(gòu)的基本概念、
2、基本原理、及基本算法 ,具有分析算法、設(shè)計 算法、構(gòu)造和開發(fā)較復(fù)雜算法的基本能力。要求學(xué)生能綜合運(yùn)用 數(shù)據(jù)結(jié)構(gòu)與算法分析 的相關(guān)知識, 培養(yǎng)學(xué)生上機(jī)解 決一些與實際應(yīng)用結(jié)合緊密的、 規(guī)模較大的問題的能力, 通過分析、設(shè)計、編碼、 調(diào)試等各環(huán)節(jié)的訓(xùn)練, 使學(xué)生深刻理解、 牢固掌握數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計技術(shù), 掌 握分析實際問題的能力并提高 C 語言編程技巧,培養(yǎng)良好的編程風(fēng)格。課程設(shè)計要求獨(dú)立完成, 題目自選(參考題目見三,也可自擬) ,但需要老 師確認(rèn)(6 月 16 日前定題) ,一人一題,要求程序有能采用交互式工作方式的界 面進(jìn)行功能的選擇 , 只能用文件存儲數(shù)據(jù)和處理數(shù)據(jù)不能使用數(shù)據(jù)庫。要求在
3、教 學(xué)周的第 18 周前完成。課程設(shè)計步驟隨著計算機(jī)性能的提高,它所面臨的軟件開發(fā)的復(fù)雜度也日趨增加。然而, 編制一個 10000行的程序的難度絕不僅僅是一個 5000行的程序的兩倍,因此軟件 開發(fā)需要系統(tǒng)的方法。一種常用的軟件開發(fā)方法,是將軟件開發(fā)過程分為 分析、 設(shè)計、實現(xiàn)和維護(hù) 四個階段。雖然數(shù)據(jù)結(jié)構(gòu)課程中的課程設(shè)計的復(fù)雜度遠(yuǎn)不如 (從 實際問題中提出來的 )一個“真正的”軟件,但為了培養(yǎng)一個軟件工作者所應(yīng)具 備的科學(xué)工作的方法和作風(fēng),完成課程設(shè)計的應(yīng)有如下的 5個步驟:1. 問題分析和任務(wù)定義 通常,課程設(shè)計題目的陳述比較簡潔,或者說是有模棱兩可的含義。因此, 在進(jìn)行設(shè)計之前, 首先應(yīng)
4、該充分地分析和理解問題, 明確問題要求做什么, 限制 條件是什么。注意:本步驟強(qiáng)調(diào)的是做什么,而不是怎么做。對問題的描述應(yīng)避 開算法和所涉及的數(shù)據(jù)類型,而是對所需完 成的任務(wù)作出明確的回答。例如: 輸入數(shù)據(jù)的類型、 值的范圍以及輸入的形式; 輸出數(shù)據(jù)的類型、 值的范圍及輸出 的形式;若是會話式的輸入,則結(jié)束標(biāo)志是什么,是否接受非法的輸入,對非法 輸入的回答方式是什么等等。 這一步還應(yīng)該為調(diào)試程序準(zhǔn)備好測試數(shù)據(jù), 包括合 法的輸入數(shù)據(jù)和非法形式輸入的數(shù)據(jù)。2. 數(shù)據(jù)類型和系統(tǒng)設(shè)計在設(shè)計這一步驟中需分 邏輯設(shè)計和詳細(xì)設(shè)計 兩步實現(xiàn)。邏輯設(shè)計指的是, 對 問題描述中涉及的操作對象定義相應(yīng)的數(shù)據(jù)類型,
5、 并按照以數(shù)據(jù)結(jié)構(gòu)為中心的原 則劃分模塊, 定義主程序模塊和各抽象數(shù)據(jù)類型; 詳細(xì)設(shè)計則為定義相應(yīng)的存儲 結(jié)構(gòu)并寫出各過程和函數(shù)的偽碼算法。 在這個過程中, 要綜合考慮系統(tǒng)功能, 使 得系統(tǒng)結(jié)構(gòu)清晰、 合理、簡單和易于調(diào)試, 抽象數(shù)據(jù)類型的實現(xiàn)盡可能做到數(shù)據(jù) 封裝,基本操作的規(guī)格說明盡可能明確具體。 作為邏輯設(shè)計的結(jié)果, 應(yīng)寫出每個 抽象數(shù)據(jù)類型的定義 (包括數(shù)據(jù)結(jié)構(gòu)的描述和每個基本操作的規(guī)格說明 ),各個主 要模塊的算法, 并畫出模塊之間的調(diào)用關(guān)系圖。 詳細(xì)設(shè)汁的結(jié)果是對數(shù)據(jù)結(jié)構(gòu)和 基本操作的規(guī)格說明作出進(jìn)一步的求精, 寫出數(shù)據(jù)存儲結(jié)構(gòu)的類型定義, 按照算 法書寫規(guī)范用類C語言寫出過程或函數(shù)
6、形式的算法框架。在求精的過程中,應(yīng)盡 量避免陷入語言細(xì)節(jié),不必過早表述輔助數(shù)據(jù)結(jié)構(gòu)和局部變量。3. 編碼實現(xiàn)和靜態(tài)檢查 編碼是把詳細(xì)設(shè)計的結(jié)果進(jìn)一步求精為程序設(shè)計語言程序。 程序的每行不要 超過60個字符。每個過程 (函數(shù))體,即不計首部和規(guī)格說明部分,一般不要超過 40行。最長不得超過 60 行,否則應(yīng)該分割成較小的過程 (函數(shù))。要控制語句連 續(xù)嵌套的深度。 如何編寫程序才能較快地完成調(diào)試是特別要注意的問題。 對于編 程很熟練的讀者,如果基于詳細(xì)設(shè)計的偽碼算法就能直接在鍵盤上輸入程序的 話,則可以不必用筆在紙上寫出編碼, 而將這一步的工作放在上機(jī)準(zhǔn)備之后進(jìn)行, 即在上機(jī)調(diào)試之前直接用鍵盤輸
7、入。 然而,不管你是否寫出編碼的程序, 在上機(jī) 之前,認(rèn)真的靜態(tài)檢查卻是必不可少的。 多數(shù)初學(xué)者在編好程序后處于以下兩種 狀態(tài)之一:一種是對自己的 “精心作品 ”的正確性確信不疑; 另一種是認(rèn)為上機(jī)前 的任務(wù)已經(jīng)完成,糾查錯誤是上機(jī)的工作。這兩種態(tài)度是極為有害的。事實上, 非訓(xùn)練有素的程序設(shè)計者編寫的程序長度超過 50 行時,極少不含有除語法錯誤 以外的錯誤。 上機(jī)動態(tài)調(diào)試決不能代替靜態(tài)檢查, 否則調(diào)試效率將是極低的。 靜 態(tài)檢查主要有兩種方法,一是用一組測試數(shù)據(jù)手工執(zhí)行程序 (通常應(yīng)先分模塊檢 查);二是通過閱讀或給別人講解自己的程序而深入全面地理解程序邏輯,在這 個過程中再加入一些注解和斷
8、言。 如果程序中邏輯概念清楚, 后者將比前者有效。4. 上機(jī)準(zhǔn)備和上機(jī)調(diào)試 上機(jī)準(zhǔn)備包括以下幾個方面:(1)高級語言文本 (體現(xiàn)與編譯程序用戶手冊 )的擴(kuò)充和限制。例如,有些 C 編譯程序限制 for 語句的循環(huán)控制變量為局部簡單變量等。(2)如果用C語言,要特別注意平時慣用的類C語言與標(biāo)準(zhǔn)C語言之間的細(xì)微 差別。(3)熟悉機(jī)器的操作系統(tǒng)和語言集成環(huán)境的用戶手冊,尤其是最常用的命令 操作,以便順利進(jìn)行上機(jī)的基本活動。(4)掌握調(diào)試工具, 考慮調(diào)試方案, 設(shè)計測試數(shù)據(jù)并手工得出正確結(jié)果。 “磨 刀不誤砍柴工 ”。計算機(jī)各專業(yè)的學(xué)生應(yīng)該能夠熟練運(yùn)用高級語言的程序調(diào)試器 DEBUG調(diào)試程序。上機(jī)調(diào)試
9、程序時要帶一本高級語言教材或手冊。調(diào)試最好分 模塊進(jìn)行, 自底向上, 即先調(diào)試低層過程或函數(shù)。 必要時可以另寫一個調(diào)用驅(qū)動 程序。這種表面上麻煩的工作實際上可以大大降低調(diào)試所面臨的復(fù)雜性, 提高調(diào) 試工作效率。在調(diào)試過程中可以不斷借助 DEBUG的各種功能,提高調(diào)試效率。 調(diào)試中遇到的各種異?,F(xiàn)象往往是預(yù)料不到的, 此時不應(yīng)“苦思具想”,而應(yīng)動手 確定疑點, 通過修改程序來證實它或繞過它。 調(diào)試正確后, 認(rèn)真整理源程序及其 注釋,印出帶有完整注釋的且格式良好的源程序清單和結(jié)果。5. 總結(jié)和整理實習(xí)報告 注意:在實踐中,有時候可能想檢驗自己的想法,這時可以上機(jī)嘗試一下, 看看自己的思路是否可行。
10、三、課程設(shè)計內(nèi)容參考題目:1 二叉樹的應(yīng)用哈夫曼樹(電文的編碼和譯碼)2 運(yùn)動會分?jǐn)?shù)統(tǒng)計3 學(xué)生成績管理系統(tǒng)4 簡易客房管理系統(tǒng)5 其他類型管理系統(tǒng)的題目 人事檔案管理系統(tǒng)圖書管理系統(tǒng)進(jìn)銷存貨物管理系統(tǒng) 職工工資管理系統(tǒng)6. 稀疏矩陣運(yùn)算器7. 長整數(shù)的四則運(yùn)算8. 校園導(dǎo)游咨詢10停車場管理11其余題目:(必須事先 得到指導(dǎo)老師允許 )程序經(jīng)常需要輸入輸出, 所以可以在考慮采用什么樣的數(shù)據(jù)結(jié)構(gòu)時, 考慮如 何進(jìn)行數(shù)據(jù)的輸入和輸出,可以把輸入和輸出分別實現(xiàn)為一個函數(shù)。實現(xiàn)了輸 入輸出功能,也為以后程序的調(diào)試和測試帶來方便。四、課程設(shè)計報告課程設(shè)計報告統(tǒng)一用A4紙打印,并裝訂成冊,封面格式參見所
11、附文檔,正文 格式要求參見附錄 1。課程設(shè)計報告內(nèi)容具體要求如下:1. 課程設(shè)計實驗報告內(nèi)容總體要求1)給出問題分析過程根據(jù)自身對課程的掌握程度, 充分分析和理解問題的設(shè)計要求, 給出較為明 確、簡潔的設(shè)計思路。2)給出數(shù)據(jù)結(jié)構(gòu)描述根據(jù)要解決的問題, 考慮各種可能的數(shù)據(jù)結(jié)構(gòu)類型, 從中選擇一種較為有效 的方法,并寫出采用的數(shù)據(jù)結(jié)構(gòu)描述及其功用。3)給出相應(yīng)算法設(shè)計根據(jù)問題分析的結(jié)果, 并確立好所選的數(shù)據(jù)結(jié)構(gòu)描述, 然后寫出合理的算法 設(shè)計過程,特別要注意所使用函數(shù)間的調(diào)用與被調(diào)用關(guān)系。4)給出詳細(xì)程序清單根據(jù)算法的內(nèi)容,用計算機(jī)語言(如C語言)編寫完整的程序,并將程序在 機(jī)器上反復(fù)調(diào)試, 直到
12、結(jié)果正確為止, 程序要求附上詳細(xì)注解。 特別要注意算法 與程序的區(qū)別以及上下層模塊間的接口處理。5)給出程序運(yùn)行結(jié)果利用典型的測試用例, 將數(shù)據(jù)輸入到程序執(zhí)行過程中去, 記下執(zhí)行過程中屏 幕顯示情況與相應(yīng)結(jié)果。2. 具體內(nèi)容要求:報告包括以下 7個內(nèi)容:1)以無歧義的陳述說明程序設(shè)計的任務(wù),強(qiáng)調(diào)的是程序要做什么?并明確 規(guī)定:(1)輸入的形式和輸入值的范圍;(2)輸出的形式;(3)程序所能達(dá)到的功能;(4)測試數(shù)據(jù):包括正確的輸入及其輸出結(jié)果和含有錯誤的輸入及其輸出結(jié) 果。2)概要設(shè)計 說明本程序中用到的所有抽象數(shù)據(jù)類型的定義、 主程序的流程以及各程序模 塊之間的層次 (調(diào)用 )關(guān)系。3)詳細(xì)
13、設(shè)計 實現(xiàn)概要設(shè)計中定義的所有數(shù)據(jù)類型, 對每個操作只需要寫出偽碼算法; 對 主程序和其他模塊也都需要寫出偽碼算法 (偽碼算法達(dá)到的詳細(xì)程度建議為:按 照偽碼算法可以在計算機(jī)鍵盤直接輸入高級程序設(shè)計語言程序 );畫出函數(shù)和過 程的調(diào)用關(guān)系圖。4)調(diào)試分析內(nèi)容包括:(1)調(diào)試過程中遇到的問題是如何解決的以及對設(shè)計與實現(xiàn)的回顧討論和 分析;(2)算法的時空分析 (包括基本操作和其他算法的時間復(fù)雜度和空間復(fù)雜度 的分析 )(3)改進(jìn)設(shè)想;(4)經(jīng)驗和體會等。5)用戶使用說明 說明如何使用你編寫的程序,詳細(xì)列出每一步的操作步驟。6)測試結(jié)果列出你的測試結(jié)果, 包括輸入和輸出。 這里的測試數(shù)據(jù)應(yīng)該完整和
14、嚴(yán)格, 最 好多于需求分析中所列。7)附錄 帶注釋的源程序,如果提交程序,可以只列出程序文件名的清單。五、提交材料課程設(shè)計完成后的下一周的周一上午,也就是 2012年 6月 28-29日,提交 如下資料并答辯:1 課程設(shè)計報告。課程設(shè)計報告總體上主要包括以下幾個部分:1)封面2)考核方式與評分標(biāo)準(zhǔn) (見六 )3)目錄4)課程設(shè)計報告正文5)使用說明2.完整的軟件系統(tǒng)最終必須向指導(dǎo)老師提交完整的程序源代碼(.C和.cpp以及.h為后綴的文件)、數(shù)據(jù)文件以及使用說明文件等。源代碼文件要特別注意編程規(guī)范、代碼風(fēng)格,關(guān)鍵 代碼需有合理的注釋,不含任何無用代碼;數(shù)據(jù)文件內(nèi)要求有一定數(shù)量的“真實” 數(shù)據(jù)(
15、如對于記錄文件,需要有 8 條以上記錄); 使用說明文件的第一行,需要給 出設(shè)計者的學(xué)號、姓名,后面為其它說明。課程設(shè)計項目源代碼和相關(guān)數(shù)據(jù), 放到一個目錄下, 目錄名以學(xué)號加姓名方式命名。六、考核方式與評分標(biāo)準(zhǔn)(下頁單獨(dú)打印)綜合實踐1評分表班級姓名指導(dǎo)教師題目評分標(biāo)準(zhǔn)評分標(biāo)準(zhǔn)分?jǐn)?shù)權(quán)重評分的依據(jù)得分AC選題10選題符合大綱要求,題目較新穎,工作量大選題基本符合大綱要 求,工作量適中工作態(tài)度10態(tài)度端正,能主動認(rèn)真 完成各個環(huán)節(jié)的工作, 不遲到早退,出勤好。能夠完成各環(huán)節(jié)基本 工作,出勤較好。存儲結(jié)構(gòu)、算 法描述20能正確選擇存儲結(jié)構(gòu), 定義準(zhǔn)確,算法流程圖 或類C語言描述的算 法準(zhǔn)確無誤能正
16、確選擇存儲結(jié)構(gòu), 算法流程圖或類C語 言描述的算法基本準(zhǔn) 確獨(dú)立解決問題 的能力10具有獨(dú)立分析、解決問 題能力,有一定的創(chuàng)造 性,能夠獨(dú)立完成軟件 的設(shè)計與調(diào)試工作,程 序結(jié)構(gòu)清晰,邏輯嚴(yán) 謹(jǐn),功能完善。有一定的分析、解決冋 題能力。能夠在老師指 導(dǎo)下完成軟件的設(shè)計 與調(diào)試工作,程序功能 較完善。答辨問題回答20能準(zhǔn)確回答老師提出的問題能基本準(zhǔn)確回答老師 提出的問題程序運(yùn)行情況10程序運(yùn)行正確、界面清 晰,測試數(shù)據(jù)設(shè)計合 理。程序運(yùn)行正確、界面較 清晰,能給出合適的測 試數(shù)據(jù)。綜合實踐報告20格式規(guī)范,層次清晰, 設(shè)計思想明確,解決問 題方法合理,體會深 刻。格式較規(guī)范,設(shè)計思想 基本明確,
17、解決問題方 法較合理??偡种笇?dǎo)教師(簽字):注:介于A和C之間為B級,低于C為D級和E級。按各項指標(biāo)打分后,總分 在90100為優(yōu),8089為良,7079為中,6069為及格,60分以下不及格。七、參考文獻(xiàn)1 嚴(yán)蔚敏,吳偉民數(shù)據(jù)結(jié)構(gòu)(C語言版)北京:清華大學(xué)出版社,1997.42 嚴(yán)蔚敏 , 吳偉民 , 米寧. 數(shù)據(jù)結(jié)構(gòu)題集( C 語言版) . 北京: 清華大學(xué)出版社 ,1999.2附錄 1 齊齊哈爾大學(xué)數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計說明書(報告)撰寫規(guī)范(一)正文:漢字應(yīng)采用簡化漢字總表規(guī)定的簡化字,并嚴(yán)格執(zhí)行漢 字的規(guī)范。 所有文字字面清晰, 不得涂改。要求文字通順, 語言流暢, 無錯別字, 不得使用
18、鉛筆書寫。正文內(nèi)容層次序號為:1、1.1、。 正文內(nèi)容一般為:1 、選題背景: 說明本課題應(yīng)解決的主要問題及應(yīng)達(dá)到的技術(shù)要求;簡述本設(shè)計 的指導(dǎo)思想。2、方案論證: 說明設(shè)計原理并進(jìn)行方案選擇,闡明為什么要選擇這個設(shè)計方案 以及所采用方案的特點。3、過程(設(shè)計或?qū)嶒灒┱撌?:對設(shè)計工作的詳細(xì)表述。要求層次分明、表達(dá)確 切。4、結(jié)果分析 :對研究過程中所獲得的主要的數(shù)據(jù)、現(xiàn)象進(jìn)行定性或定量分析, 得出結(jié)論和推論。5、結(jié)論或總結(jié) :對整個研究工作進(jìn)行歸納和綜合。(二)表格說明書(報告)的表格可以統(tǒng)一編序 (如:表 15),也可以逐章單獨(dú)編序 (如: 表 2.5 ),采用哪種方式應(yīng)和插圖及公式的編序
19、方式統(tǒng)一。表序必須連續(xù),不得 重復(fù)或跳躍。表格的結(jié)構(gòu)應(yīng)簡潔。表格中各欄都應(yīng)標(biāo)注量和相應(yīng)的單位。 表格內(nèi)數(shù)字須上下對齊, 相鄰欄內(nèi)的 數(shù)值相同時,不能用同上 、同左和其它類似用詞,應(yīng)一一重新標(biāo)注。表序和表題置于表格上方中間位置, 無表題的表序置于表格的左上方或右上 方(同一篇論文位置應(yīng)一致) 。(三)圖插圖要精選。圖序可以連續(xù)編序(如 圖 52),也可以逐章單獨(dú)編序(如 圖 6.8 ),采用哪種方式應(yīng)與表格、公式的編序方式統(tǒng)一,圖序必須連續(xù),不得重復(fù) 或跳躍。僅有一圖時,在圖題前加附圖字樣。課程設(shè)計中的插圖以及圖中文字符號應(yīng)打印,無法打印時一律用鋼筆繪制和標(biāo)出標(biāo)出由若干個分圖組成的插圖,分圖用
20、a,b,c,圖序和圖題置于圖下方中間位置。(四)公式 說明書中重要的或者后文中須重新提及的公式應(yīng)注序號并加圓括號, 序號一 律用阿拉伯?dāng)?shù)字連續(xù)編序(如: (45)或逐章編序(如( 6.10 ),序號排在版面 右側(cè),且距右邊距離相等。公式與序號之間不加虛線。(五)數(shù)字用法 公歷世紀(jì)、年代、年、月、日、時間和各種計數(shù)、計量,均用阿拉伯?dāng)?shù)字。年份不能簡寫,如 1999 年不能寫成 99 年。數(shù)值的有效數(shù)字應(yīng)全部寫出,如: 0.50:2.00 不能寫作 0.5:2 。(六)軟件 軟件流程圖和原程序清單要按軟件文檔格式附在說明書 (報告) 后面,特殊 情況可在成績評定時展示,不附在說明書(報告)內(nèi)。(七
21、)工程圖按國標(biāo)規(guī)定裝訂圖幅小于或等于 3#圖幅時應(yīng)裝訂在說明書(報告)內(nèi),大于3#圖幅時按國標(biāo)規(guī)定單獨(dú)裝訂作為附圖。(八)計量單位的定義和使用方法按國家計量局規(guī)定執(zhí)行。(九)排版與封面要求1、排版用 word 排版,具體格式如下:版面要求:頁邊距:上 2.5cm,下2.5cm,左3cm,右2.5cm;字 體:正文宋體、小四,章節(jié)標(biāo)題宋體、小三;行 距:固定值 20;頁 碼:居中、底部。2、封面附錄 2 Visual C+ 6.0 簡介考慮到目前大多數(shù)初學(xué)者使用的都是PC機(jī)和Windows操作系統(tǒng),我們以 Visual C+作為推薦的C+編譯器。1. Visual C+集成開發(fā)環(huán)境Visual
22、C+軟件包包含了許多獨(dú)立的組件,如編輯器、編譯器、調(diào)試器,以及各種各樣為開發(fā)Windows環(huán)境下的C/C+程序而設(shè)計的工具。其中最重要的是一個名為DeveloperStudio的集成開發(fā)環(huán)境。Developer Studio把所有的Visual C+工具結(jié)合在一起, 集成為一個 由窗口、對話框、菜單、工具欄、快捷鍵及宏組成的和諧系統(tǒng),通過該集成環(huán)境,程序員可 以觀察和控制整個開發(fā)進(jìn)程。1顯示了一個典型的Developer Studio主窗口。它分為幾個部分:窗口頂部是菜單和工具欄,左面的一個子窗口是工作區(qū)窗口,工作區(qū)的右面是編輯子窗口。最下面是輸出子窗口。值得注意的是,上述各種部件,包括子窗口
23、、菜單欄和工具欄的位置不是一成不變的,可以根據(jù)個人的喜好重新安排。圖 1 典型的 Developer Studio 窗口(1)菜單和工具欄Developer Studio中有一個 Menu Bar (菜單欄,通常??吭陂_發(fā)環(huán)境窗口的頂部),其中的菜單項有 File (文件處理)、Edit (編輯功能)、View (查看)、Insert (插入)、Project (項目管理)、Built (編譯)、Tools (工具)、Window (窗口)和 Help (幫助)等,分別對 應(yīng)一個下拉子菜單。除菜單欄外,開發(fā)環(huán)境中還有幾個工具欄,一般均放在開發(fā)環(huán)境的頂部,菜單欄的下方,如Standard (標(biāo)準(zhǔn)
24、工具欄,用于文件管理、編輯和查看等),Wizard Bar (向?qū)Чぞ邫冢┖虰uild Min iBar (建立工具欄,用于編譯、連接等)。工具欄上有常用命令的圖標(biāo)。一般來說, 工具欄上的命令在菜單中均有對應(yīng)選項,但工具欄使用更方便, 只要用鼠標(biāo)左鍵點擊工具欄中的相應(yīng)圖標(biāo)即可調(diào)用相應(yīng)的功能。開發(fā)環(huán)境的各種菜單欄和工具欄均為停靠式,可以用鼠標(biāo)拖動改變它們的位置,除此之外,Developer Studio的所有部分幾乎都可響應(yīng)鼠標(biāo)右鍵單擊而彈出一個上下文相關(guān)菜單。 甚至當(dāng)Developer Studio沒有打開窗口時,在空白區(qū)右擊鼠標(biāo)也會彈出一個菜單,其中含有 使窗口可見和調(diào)整工具欄是否可見的命令
25、。在工具欄上除標(biāo)題欄外的任何地方右擊鼠標(biāo),同樣可以彈出菜單。在使用集成環(huán)境工作時試一試鼠標(biāo)右鍵,還會發(fā)現(xiàn)許多其他的快捷方式。(2)Developer Studio 窗口除了各種對話框外,Developer Studio顯示兩種類型的窗口,即文檔窗口和??看翱?。文檔窗口是一般的帶邊框子窗口,其中含有源代碼文本或圖形文檔。Window子菜單中列出了在屏幕上以平鋪方式還是以層疊方式顯示文檔窗口的命令。所有其他的Developer Studio窗口,包括工具欄和菜單欄,都是??渴酱翱?。開發(fā)環(huán)境有兩個主要的??看?口Workspace (工作區(qū))窗口和 Output (輸出)窗口。另外還有一個Debug
26、ger (調(diào)試器)??看翱?,只在調(diào)試過程中顯示。圖2新建一個項目??看翱诳梢怨潭ㄔ?Developer Studio用戶區(qū)的頂端、底端或側(cè)面,或者浮動在屏幕上 任何地方。??看翱冢徽撌歉又幕蚴枪潭ㄖ?,總是出現(xiàn)在文檔窗口的上面。這樣, 就保證了當(dāng)焦點從一個窗口移到另一個時,浮動的工具欄一直都是可見的。但這也意味著, 文檔窗口偶爾會看起來像消失了似的。例如,如果正在文本編輯器中編輯源代碼,此時打開一個占據(jù)整個Developer Studio用戶區(qū)的??看翱?,源代碼文檔就會消失,它隱藏在新窗口 之下。解決方法是要么關(guān)了覆蓋的窗口,要么把它拖到不擋眼的地方去。(3)菜單選項、快捷鍵和工具欄De
27、veloper Studio的許多功能都有不只一種調(diào)用方法。例如,執(zhí)行一個編譯、連接成功 的可執(zhí)行文件,既可通過選擇菜單選項Build/Execute.exe完成,也可以直接使用快捷鍵Ctrl+F5,還可以用鼠標(biāo)點擊 Build MiniBar (編譯工具欄)上的相應(yīng)圖標(biāo)來完成。一般來說, 越是常用的功能,可以調(diào)用的方法越多、越方便。(4)用Developer Studio編寫和調(diào)試簡單 C+程序在Visual C+中,C+的程序是存放到以后綴名為.CPP的文件中,系統(tǒng)是通過Projects(工程項目)來管理這些文件的。 所以要編寫和運(yùn)行 C+程序,首先必須建立一個 Projects。下面以一
28、個簡單的例子來說明如何在Visual集成開發(fā)環(huán)境編寫和調(diào)試簡單C+程序的步驟:(1)首先運(yùn)行并打開 Developer Studio系統(tǒng),選擇菜單選項中的Projects選項卡。從卡中選擇 Win 32 Con sole Applicati on (Win 32 控制臺應(yīng)用程序)。(2) 為應(yīng)用項目取一個名字,填寫在選項卡右上方的Project Name (項目名稱)處,并檢查下面的Location (位置)中列出的路徑是否正確。注意使下面的單選框選擇Create NewWorkspace (即要建立新工作區(qū)),然后按下0K按鈕。如圖2。(3) 這時會出現(xiàn) Application Wizard
29、 (應(yīng)用程序生成向?qū)В?,提問要生成的項目類型?選擇An Empty Project (空項目),按下Finish (結(jié)束)鍵,會彈出一個窗口,顯示新項目的 有關(guān)信息。檢查無誤后按 OK按鈕。如圖3及4pcoNEatam.* EmprcaHKata BpfArMwi.* N mr1 arill literulllW |Jl4*IA圖3確定項目類型g I CUM圖4項目相關(guān)信息(4)這時屏上會顯示一個空項目,并生成一個工作區(qū)文件(后綴為.DSW)。再次選擇File菜單的New選項,并選擇 Files選項卡。從卡中選擇 C+ Source源程序)。(5) 為程序取一個名字 (可與項目名相同,也可以
30、不同)填寫在選項卡右邊的 File處, 然后按下OK按鈕。如圖5圖5建立文件(6)這時開發(fā)環(huán)境右側(cè)的文件編輯窗口中出現(xiàn)了一個空文件,在此可以鍵入源程序代 碼。如圖6(7)程序輸入后,應(yīng)仔細(xì)檢查一遍,然后就可以編譯了。(8) 選擇菜單選項 Build/Compile gravitation.cpp (其中g(shù)ravitation為文件名)編譯源 程序。稍候片刻,會在Output窗口(通常在屏幕下方)中顯示編譯結(jié)果,如出錯信息等(編 譯錯誤的處理在下一節(jié)介紹)。如果程序正確,編譯結(jié)果會生成一個目標(biāo)文件(后綴為.OBJ)。(9)目標(biāo)文件還需通過連接才能生成可執(zhí)行文件。選擇菜單選項Build/Build
31、gravitation.exe連接目標(biāo)文件。結(jié)果顯示在Output窗口中。連接的結(jié)果為可執(zhí)行文件(后綴為.exe)。以上兩步也可以并為一步,即直接使用菜單選項Build/Build gravitation.exe 。-* 圖6代碼的編輯界面生成的可執(zhí)行文件可以單獨(dú)運(yùn)行,也可以在開發(fā)環(huán)境中直接運(yùn)行,后一種方法在程序需要反復(fù)調(diào)試時更加方便。在集成開發(fā)環(huán)境中直接運(yùn)行程序的方法是選用菜單選項 Build/Excute.exe。程序運(yùn)行結(jié)果如圖7圖7程序運(yùn)行結(jié)果2. Visual C+幫助功能MSDN (Microsoft Developer Network)是使用 Microsoft 開發(fā)工具或是以
32、Windows 和 In ternet為開發(fā)平臺的開發(fā)人員的基本參考資料。通過MSDN所提供的Help資料,可以對Visuan C+和Windows的工作機(jī)制有更全面的了解,可以幫助解決開發(fā)者遇到的大多數(shù)問 題。由于MSDN庫為包括 Visual C+在內(nèi)的所有的 Visual studio 6.0開發(fā)環(huán)境工具提供在線幫助,所以它在系統(tǒng)中作為一個應(yīng)用程序獨(dú)立運(yùn)行,并沒有同任何單個開發(fā)環(huán)境結(jié)合在一起。要從 Visual C+中訪問 MSDN,種方法是從 Visual C+的Help菜單中選擇 Contents、 Search或Index命令,另一種方法是在 Visual C+開發(fā)環(huán)境中直接按下F
33、1鍵,系統(tǒng)都會自動運(yùn)行MSDN幫助程序。MSDN界面分為三個窗格,頂端的窗格包含有工具欄。左側(cè)的窗格包含有各種信息定位方法,通過單擊列表中的主題,即可瀏覽或查找所需的各種信息;右側(cè)的窗格則顯示所選擇的主題的具體內(nèi)容,這些內(nèi)容是以超文本形式存在的,其中的相關(guān)內(nèi)容可以通過超文本鏈接連接到其他的相關(guān)主題。圖8 MSDN界面左邊窗口中有四個選項卡:目錄、索引、搜索和書簽,用于提供四種不同的在線幫助瀏覽方式。(1) 目錄。單擊目錄選項卡可瀏覽主題的標(biāo)題。該目錄是依照標(biāo)題和副標(biāo)題的排列方 式形成一個包含了 MSDN中所有可用信息的可擴(kuò)充目錄表。雙擊列表中的標(biāo)題,就可在 MSDN窗口的右欄中打開該文章。(2
34、) 索弓|。單擊索引選項卡可查看索引項的列表,然后可通過該欄左邊的滾動條翻閱整個索引列表。也可通過在對話框頂部的編輯框中鍵人關(guān)鍵字來完成查找功能。找到所要的索引條目后雙擊,如果該條目僅對應(yīng)一篇文章,MSDN就會立刻在其窗口右欄顯示其內(nèi)容;否則會出現(xiàn)已找到的主題對話框,其中列出了該條目可能指向的所有文章,這時可通過雙擊列表中所需要主題,打開相應(yīng)的一篇文章。(3) 搜索。單擊搜索選項卡可查找到包含在某個主題中的所有詞組或短語。它是一個全文本搜索引擎,允許尋找包含指定詞或短語的主題。和MSDN的索引選項比起來,全文本搜索所能覆蓋范圍更寬,它可以提供更多的文章以供選擇。(4) 書簽。單擊書簽選項卡可創(chuàng)
35、建或訪問書簽的列表。用戶只需簡單地標(biāo)記書簽中的某些主題,即可重新訪問它們。3. Developer Studio 文本編輯器Developer Studio提供了一個優(yōu)秀的程序文本編輯器,它使應(yīng)用程序的編輯修改和調(diào)試工作混為一體,非常方便。該文本編輯器不僅可編輯程序文本,還可編輯一般的文本文件和HTML Page。啟動文本編輯器非常簡單,只要建立一個新文本文件,或打開一個已存在的文本文件, 文本編輯器就會自動出現(xiàn)。在文本編輯器中,用一閃爍的短豎線表示編輯位置,通過鍵盤輸入的文字在此位置插入 文本。用鼠標(biāo)左鍵點擊文本中的某個字符可以改變編輯位置。文本編輯器的基本操作包括:T :光標(biāo)向后移動一個字
36、符。J:光標(biāo)向前移動一個字符。T:光標(biāo)向上移動一行。J:光標(biāo)向下移動一行。Home :光標(biāo)移動到行首。End:光標(biāo)移動到行尾。Ctrl+Home: 光標(biāo)移動到文件頭。Ctrl+End: 光標(biāo)移動到文件尾。PgUp :光標(biāo)向上滾動一屏。PgDn: 光標(biāo)向下滾動一屏。Ctrl+Y :刪除行。Del :刪除光標(biāo)右邊字符。Backspace:刪除光標(biāo)左邊字符。 Ins:插入/改寫方式切換。Developer Studio 的 Edit 子菜單還提供了一批高級編輯功能,大致可分為以下幾類:(1)Un do和Redo,用于反悔對文本文件所做的修改(2)剪貼Cut、復(fù)制Copy、粘貼Paste和刪除Dele
37、te( 3)查找 Find 和替換 Replace( 4)書簽( 5)高級選項( 6)斷點設(shè)置( 7)編程指導(dǎo)信息4 Developer Studio 文件處理功能Developer Studio 提供了很完整的文件處理功能,可處理程序文本文件、項目文件、 WORD 文檔和 EXCEL 文檔等。Developer Studio 的 File 子菜單共有 14 項,分為 6 組,組與組之間用橫線隔開。第 1 組用于建立、打開和關(guān)閉文件處理的對象,包括項目、文件、工作區(qū)和其他文檔:(1)建立新對象(New,快捷鍵為CTRL+N )。選擇該菜單項,可打開一個有若干卡 片的對話框,各卡片的內(nèi)容分別為:
38、項目(Projects):用于建立項目。 項目即要開發(fā)的應(yīng)用程序,Developer Studio可用于開發(fā)各種類型的應(yīng)用程序,如控制臺應(yīng)用程序( Win32 Console Application )、 32 位 Windows 應(yīng)用程序( Win32 Application )和 MFC 應(yīng)用向?qū)С绦颍?MFC AppWizard )等。對于不同類 型的項目,建立的具體文件也不同。文件(Files):用于建立各種文件,包括源程序文件( Source File,文件名后綴為cpp )、 頭文件(Header File,文件名后綴為 h)、文本文件(Text File,文件名后綴為txt )、
39、位圖文 件(Bitmap File,文件名后綴為 bmp)等。工作區(qū)(Workspaces):每個正在開發(fā)的項目要占用一個工作區(qū)。一般來說,在建立項 目的同時即為其建立了工作區(qū)。但也可用本選項建立一個空的工作區(qū)。其他文檔(Other Documents):用于建立一些文檔文件,女口 MS Excel工作表,MS Excel圖表, MS PowerPoint 演示文稿和 MS Word 排版文檔等。(2) 打開已有對象(Open,快捷鍵為 CTRL+O )。用于打開一個已存在的項目文 件或文檔。選擇該菜單項,會彈出一個文件路徑對話框,用于確定要打開的內(nèi)容。(3) 關(guān)閉文件(Close)。用于關(guān)閉
40、當(dāng)前打開并激活的文件。第 2 組用于處理工作區(qū)。包括:(1) 打開工作區(qū)(Open Workspace)。用于一個已存在的工作區(qū)。工作區(qū)的有關(guān)參數(shù)(包括應(yīng)用程序的結(jié)構(gòu)體系,特別是其類、資源、文件和幫助信息等的參數(shù))存放在后綴名為 dsw 和 mdp 的文件中。(2) 保存工作區(qū)(Save Workspace) o用于保存當(dāng)前打開的工作區(qū)文件。(3) 關(guān)閉工作區(qū)(Close Workspace) o用于關(guān)閉當(dāng)前打開的工作區(qū)文件。第 3 組用于處理當(dāng)前文件,包括:(1) 保存文件(Save,快捷鍵為CTRL+S )。用于保存當(dāng)前正在使用的文件。(2) 另存文件(Save As)。將當(dāng)前文件換一個名
41、字保存,原來的文件內(nèi)容不變。(3) 保存所有文件(Save All)。保存當(dāng)前打開的所有文件。第 4 組用于打印當(dāng)前文件,包括:(1) 頁面設(shè)置(Page Setup)。設(shè)置打印頁面格式,為打印當(dāng)前文件作準(zhǔn)備。(2) 打印當(dāng)前文件(Print 快捷鍵為CTRL+P )。用于打印當(dāng)前文件。第 5 組用于快速打開或切換文件和工作區(qū)。包括:(1) 最近使用過的文件 (Recent Files)。用于直接打開最近幾次在Developer Studio中 使用過的文件,可在彈出的下級菜單中直接選取。(2) 最近使用過的工作區(qū)( Recent Workspaces) o用于直接打開最近幾次在Develop
42、er Studio 中打開過的工作區(qū),可在彈出的下級菜單中直接選取。最后 1 組只有一個菜單項:(1)退出Developer Studio ( Exit )。選擇該菜單項可以關(guān)閉當(dāng)前打開的所有對象,包括 項目、工作區(qū)和文件等,退出 Developer Studio ,返回 Windows 操作系統(tǒng)界面。5Visual C+ 程序的編譯、連接和運(yùn)行用于編譯、連接和運(yùn)行應(yīng)用程序的功能集中在創(chuàng)建(Build )子菜單中,但其中多數(shù)功能也可通過快捷鍵和工具條調(diào)用。Developer Studio 的 Build 子菜單共有 11 項,分為 4 組,組與組之間用橫線隔開。 第1組包括編譯、連接等功能:編
43、譯當(dāng)前項目(Compile,快捷鍵為 Ctrl+F7 )。用于將源程序編譯為目標(biāo)代碼。編譯結(jié) 果及編譯錯誤信息在輸出窗口( Output) 顯示。編譯、連接當(dāng)前項目(Build,快捷鍵為 F7)。在對當(dāng)前項目的源程序編譯之后,還進(jìn) 行連接( Link )操作,即將目標(biāo)代碼與系統(tǒng)或用戶類庫連接并生成可執(zhí)行的程序(或動態(tài)連 接庫 .DLL 等)。重新編譯、連接當(dāng)前項目(Rebuild All )。功能與Build基本相同,只是無論是否修改 過,對所有文件都重新進(jìn)行編譯和連接工作。以批處理方式編譯、連接當(dāng)前項目(Batch Build )。功能與Build基本相同,只是同時產(chǎn)生調(diào)試版和發(fā)行版執(zhí)行程序
44、。清除臨時文件(Clean)。用于清除上一次編譯、連接時產(chǎn)生的臨時文件和輸出文件,以整理程序目錄。第2組用于調(diào)試程序, 包括開始調(diào)試(Start Debug)和遠(yuǎn)程調(diào)試鏈接 (Debugger Remote Connect)。第3組用于執(zhí)行當(dāng)前項目的可執(zhí)行程序(Execute,快捷鍵為Ctrl+F5 )。第 4 組用于設(shè)置編譯和連接工作的參數(shù)。包括:設(shè)置項目的版本類型(Set Active Configuration)。Developer Studio生成的可執(zhí)行文件有兩種版本,一種是調(diào)試版本( Win32 Debug) ,內(nèi)含調(diào)試代碼,體積稍大,主要在編程調(diào) 試過程中使用。另一種是發(fā)放版本(
45、Win32 Release),其中不包含調(diào)試代碼,體積小,用于在程序調(diào)試結(jié)束后提交用戶。管理項目版本( Configuration 。)。用于管理項目的調(diào)試版本和發(fā)放版本。Profile 。設(shè)置、 Profile 程序和顯示 Profile 數(shù)據(jù)。6查看和修改編譯、連接錯誤剛編寫好的程序含有錯誤是正常的, 即使是熟練的專業(yè)程序員也很難一次就編寫出完全 沒有錯誤的源程序來。 實際上, 重要的不是程序中是否有錯誤, 而是怎樣將這些錯誤找出來 并改正之。一般來說,一段源程序從輸入編輯到通過編譯,往往要重復(fù)若干次編譯-修改 -再編譯的過程。如果在編譯的過程中發(fā)現(xiàn)了錯誤,則進(jìn)入編輯查錯狀態(tài)。這時在屏幕下
46、方的Output窗口中會顯示出錯誤的類型、錯誤發(fā)生的位置以及錯誤的原因。錯誤信息的格式為:(行) : 錯誤有兩種,一種是 Error,表示這是一個嚴(yán)重錯誤,非改不可。另一種是Warning ,表示源程序這里有可能是錯誤的, 也有可能不是錯誤,編譯程序自己也拿不準(zhǔn)。一般來說,如 果只出現(xiàn)警告信息, 還是可以繼續(xù)連接、 運(yùn)行程序, 建議在出現(xiàn)編譯警告時最好還是仔細(xì)檢 查一下,設(shè)法消除引起警告的原因。錯誤發(fā)生的位置包括源程序的路徑和文件名以及錯誤所在行。必需說明的是C+編譯程序的 “智力 ”并不十分高,雖然能夠查出錯誤, 但對錯誤的說明可能并不十分準(zhǔn)確,而且一 個實際錯誤往往會引出若干條錯誤說明,
47、使人不容易摸清到底錯在什么地方。 錯誤的原因其 實可能很簡單, 例如少寫了一個括號、 分號或拼錯了一個單詞, 都可能引起一連串的錯誤提 示。真正的錯誤之處也可能在此之前的某個語句。 而且指出的錯誤條數(shù)可能偏多, 常常是由 于一處出錯而引發(fā)了一系列錯誤提示信息。用鼠標(biāo)雙擊一條錯誤信息可使文本編輯器作出反應(yīng), 其左框上顯示一個箭頭指出對應(yīng)的 出錯語句,以便修改源程序。在連接階段也可能出現(xiàn)一些錯誤提示。 與編譯錯誤提示信息不同的是連接錯誤不指出錯 誤發(fā)生的詳細(xì)位置, 這是因為連接的對象是目標(biāo)程序, 和源程序格式有很大差別, 不易確定 錯誤的準(zhǔn)確位置。 連接階段出現(xiàn)的錯誤一般比較少, 大多數(shù)是因為在程
48、序中調(diào)用了某個函數(shù), 而連接程序卻找不到該函數(shù)的定義。 這時最有可能的是函數(shù)名字拼寫錯誤。 另外, 如果程序 的規(guī)模較大, 需要分為若干個源程序文件分別編譯然后連接, 則也可能出現(xiàn)全局變量重復(fù)定 義或找不到等錯誤現(xiàn)象。在找到連接錯誤的原因并改正以后, 一定要重新編譯后才能再次連接。 否則, 雖然源程 序已經(jīng)修改, 但進(jìn)行連接的目標(biāo)程序還是以前有錯誤的目標(biāo)程序, 再次連接仍然會產(chǎn)生同樣 的錯誤。7運(yùn)行錯誤的判斷與調(diào)試通常所說的運(yùn)行錯誤有兩種 , 一種是邏輯錯誤 , 即程序的實際運(yùn)行結(jié)果和編程者對程序 結(jié)果的期望不符 ; 另一種仍是程序設(shè)計上的錯誤 , 但是躲過了編譯程序和連接程序的檢查 , 通常
49、表現(xiàn)為突然死機(jī)、自行熱啟動或者輸出信息混亂。相對于編譯和連接錯誤來說 ,運(yùn)行錯誤的查找和判斷更為困難。編譯和連接錯誤可以由編譯程序和連接程序檢查,而運(yùn)行錯誤就不同了 ,很少或根本沒有提示信息,只能靠程序員的經(jīng)驗來判斷錯誤的性質(zhì)和位置。下面簡單地介紹一些常見運(yùn)行錯誤的調(diào)試方法。邏輯錯誤:一種邏輯錯誤是由于在設(shè)計程序的算法時考慮欠周引起的,例如對邊界和極端條件未作處理等。例如以下循環(huán) :while(co unt)count = count 1;程序員的構(gòu)思是進(jìn)行 count次循環(huán)。但是,如果count中原來的值為負(fù)數(shù)時,此循環(huán)就成 了一個死循環(huán)”而導(dǎo)致無法停機(jī),顯然是錯誤的。但是編譯程序無法查出這
50、類錯誤,只有到了程序運(yùn)行之后才有可能發(fā)現(xiàn)。再如,在利用海倫公式計算三角型面積時,首先應(yīng)該確認(rèn)給出的三條邊長確實可以構(gòu)成一個三角形,否則計算結(jié)果是沒有意義的;而在編寫求解一般實系數(shù)一元二次方程的程序時,必須在程序中設(shè)計處理復(fù)根情況的程序段,以免對負(fù)數(shù)求平方根。另一種常見的邏輯錯誤是由于程序輸入時的打字錯誤造成的,例如將判斷條件中的“ =誤輸入為“”將相等判斷“=誤輸入為賦值號 “=等。含有這類錯誤的程序在運(yùn)行時出 現(xiàn)的現(xiàn)象多種多樣,而且通常很難與錯誤的原因聯(lián)系起來。數(shù)組下標(biāo)越界錯誤:即使用了并不存在的數(shù)組元素。例如有程序段int a5;for(i nt i=1; i=5; i+)ai = 0;由
51、于5并不存在,而上述程序段試圖將數(shù)據(jù)存放到一個并不存在的數(shù)組元素中,這會 引起包括死機(jī)在內(nèi)的嚴(yán)重運(yùn)行錯誤。類似錯誤還有指針和動態(tài)存儲分配引起的一些運(yùn)行錯 誤。&基本調(diào)試手段程序的基本調(diào)試手段有以下幾種:標(biāo)準(zhǔn)數(shù)據(jù)檢驗、程序跟蹤、邊界檢查和簡化循環(huán)次數(shù) 等。標(biāo)準(zhǔn)數(shù)據(jù)檢驗:在程序編譯、連接通過以后,就進(jìn)入了運(yùn)行調(diào)試階段。運(yùn)行調(diào)試的第一 步就是用若干組已知結(jié)果的標(biāo)準(zhǔn)數(shù)據(jù)對程序進(jìn)行檢驗。標(biāo)準(zhǔn)數(shù)據(jù)的選擇非常重要,一是要有代表性,接近實際數(shù)據(jù);二是要比較簡潔,容易對其結(jié)果的正確性進(jìn)行分析。另外,對重要的臨界數(shù)據(jù)也必須進(jìn)行檢驗。程序跟蹤:對于比較復(fù)雜的大型程序來說,上述標(biāo)準(zhǔn)數(shù)據(jù)檢驗一次就完全通過的可能性很小。
52、通常程序中總是存在許多各種各樣的錯誤,還需要對程序進(jìn)行細(xì)致的調(diào)試工作。程序跟蹤則是最重要的調(diào)試手段。程序跟蹤的基本原理是讓程序一句一句地執(zhí)行,通過觀察和分析程序執(zhí)行的過程中數(shù)據(jù)和程序執(zhí)行流程的變化來查找錯誤。就Visual C+而言,程序跟蹤可以采用兩種方法,一種是直接利用Developer Studio中的分步執(zhí)行、斷點設(shè)置、變量內(nèi)容顯示等功能對程序進(jìn)行跟蹤,這種方法在后面的編程與調(diào)試部分介紹;另一種是傳統(tǒng)的方法,通過在程序中直接設(shè)置斷點、打印重要變量內(nèi)容等來掌握程序的運(yùn)行情況。例如,可以 在程序中的關(guān)鍵部位插入這樣的代碼段:/調(diào)試代碼段cout 100 endl;cout Variable
53、 count =“ count “, x =“ x nd S um =“ sum e_getch ( ) ;/ 調(diào)試代碼段結(jié)束其中的變量可以根據(jù)程序的實際情況進(jìn)行設(shè)計。使用 _getch ( ) 函數(shù)的目的是要程序在 執(zhí)行到這一行時暫時停下來 , 從而可以看清楚調(diào)試代碼段所顯示的信息, 然后選擇是否讓程 序繼續(xù)執(zhí)行,該函數(shù)的原型在頭文件 conio.h 中。如果到這一斷點時尚未發(fā)現(xiàn)錯誤 , 則可以 按下任何一個鍵讓程序繼續(xù)運(yùn)行到下一個斷點 ; 否則可以使用組合鍵 Ctrl+Break 鍵來中斷程 序, 再使用編輯器對程序進(jìn)行修改。在程序中的所有的問題都解決了之后 , 再將程序中所有 的調(diào)試代碼段統(tǒng)統(tǒng)刪去。邊界檢查 : 在設(shè)計檢查用的數(shù)據(jù)時 , 要重點檢查邊界和特殊情況。例如 , 對于循環(huán) : while(count a b c;這樣的程序時,為了突出測試該段程序?qū)δ辰M輸入數(shù)據(jù)(如a = 1, b = 2, c= 3 )的響應(yī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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代家居裝飾風(fēng)格與心理健康關(guān)系探討
- 構(gòu)建以服務(wù)功能為導(dǎo)向的綠色生態(tài)環(huán)境教育體系
- 生物醫(yī)藥與健康產(chǎn)業(yè)的投資潛力研究
- 現(xiàn)代化技術(shù)與醫(yī)療中心的高層建筑設(shè)計思考
- 生態(tài)城市建設(shè)中環(huán)境科學(xué)的應(yīng)用研究
- Unit 5 We're family Period 3 (說課稿)-2024-2025學(xué)年外研版(三起)(2024)英語三年級上冊
- 2024-2025學(xué)年高中生物 第四部分 淺嘗現(xiàn)代生物技術(shù)說課稿 浙科版選修1
- 2024-2025學(xué)年高中物理 第四章 電磁感應(yīng) 5 電磁感應(yīng)現(xiàn)象的兩類情況(1)說課稿 新人教版選修3-2
- 9古代科技 耀我中華-獨(dú)領(lǐng)風(fēng)騷的古代技術(shù)創(chuàng)造(說課稿)2023-2024學(xué)年統(tǒng)編版道德與法治五年級上冊
- 26 手術(shù)臺就是陣地 說課稿-2024-2025學(xué)年統(tǒng)編版語文三年級上冊001
- 2025版茅臺酒出口業(yè)務(wù)代理及銷售合同模板4篇
- 2025年N1叉車司機(jī)考試試題(附答案)
- 《醫(yī)院財務(wù)分析報告》課件
- 2024年考研政治試題及答案
- 2024-2025學(xué)年人教版數(shù)學(xué)六年級上冊 期末綜合卷(含答案)
- 天津市部分區(qū)2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 2025年初級社會工作者綜合能力全國考試題庫(含答案)
- 2024年濰坊護(hù)理職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 《鉗工基本知識》課件
- 第八期:風(fēng)電典型事故案例剖析(二)
- DB63T 2357-2024 ?;烦簝薨踩芾硪?guī)范
評論
0/150
提交評論