數(shù)據(jù)結(jié)構(gòu)課程設(shè)計模板.doc_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計模板.doc_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計模板.doc_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計模板.doc_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計模板.doc_第5頁
免費預(yù)覽已結(jié)束,剩余21頁可下載查看

下載本文檔

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

文檔簡介

數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計報告題 目: 學(xué) 院: 專業(yè)班級: 學(xué)生姓名: 指導(dǎo)教師: 2016 年06 月2 9日目 錄一、課程設(shè)計目的3二、課程設(shè)計步驟3三、課程設(shè)計內(nèi)容4四、課程設(shè)計報告6五、提交材料6六、考核方式與評分標(biāo)準(zhǔn)7七、參考文獻(xiàn)8附錄1 齊齊哈爾大學(xué)軟件工程系課程設(shè)計說明書(報告)撰寫規(guī)范926一、課程設(shè)計目的及要求數(shù)據(jù)結(jié)構(gòu)與算法分析課程設(shè)計培養(yǎng)計算機專業(yè)的學(xué)生的算法程序設(shè)計能力。通過上機實驗,可以培養(yǎng)學(xué)生程序設(shè)計的方法和技巧,提高學(xué)生編制清晰、合理、可讀性好的系統(tǒng)程序的能力,加深對數(shù)據(jù)結(jié)構(gòu)課程和算法的理解。使學(xué)生更好地掌握數(shù)據(jù)結(jié)構(gòu)的基本概念、基本原理、及基本算法,具有分析算法、設(shè)計算法、構(gòu)造和開發(fā)較復(fù)雜算法的基本能力。要求學(xué)生能綜合運用數(shù)據(jù)結(jié)構(gòu)與算法分析的相關(guān)知識,培養(yǎng)學(xué)生上機解決一些與實際應(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è)計要求獨立完成, 題目自選(參考題目見三,也可自擬),但需要老師確認(rèn)(6月16日前定題),一人一題,要求程序有能采用交互式工作方式的界面進(jìn)行功能的選擇,只能用文件存儲數(shù)據(jù)和處理數(shù)據(jù)不能使用數(shù)據(jù)庫。要求在教學(xué)周的第18周前完成。二、課程設(shè)計步驟 隨著計算機性能的提高,它所面臨的軟件開發(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)該充分地分析和理解問題,明確問題要求做什么,限制條件是什么。注意:本步驟強調(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ù)類型,并按照以數(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ù)形式的算法框架。在求精的過程中,應(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è)計的偽碼算法就能直接在鍵盤上輸入程序的話,則可以不必用筆在紙上寫出編碼,而將這一步的工作放在上機準(zhǔn)備之后進(jìn)行,即在上機調(diào)試之前直接用鍵盤輸入。然而,不管你是否寫出編碼的程序,在上機之前,認(rèn)真的靜態(tài)檢查卻是必不可少的。多數(shù)初學(xué)者在編好程序后處于以下兩種狀態(tài)之一:一種是對自己的“精心作品”的正確性確信不疑;另一種是認(rèn)為上機前的任務(wù)已經(jīng)完成,糾查錯誤是上機的工作。這兩種態(tài)度是極為有害的。事實上,非訓(xùn)練有素的程序設(shè)計者編寫的程序長度超過50 行時,極少不含有除語法錯誤以外的錯誤。上機動態(tài)調(diào)試決不能代替靜態(tài)檢查,否則調(diào)試效率將是極低的。靜態(tài)檢查主要有兩種方法,一是用一組測試數(shù)據(jù)手工執(zhí)行程序(通常應(yīng)先分模塊檢查);二是通過閱讀或給別人講解自己的程序而深入全面地理解程序邏輯,在這個過程中再加入一些注解和斷言。如果程序中邏輯概念清楚,后者將比前者有效。4. 上機準(zhǔn)備和上機調(diào)試上機準(zhǔn)備包括以下幾個方面:(1) 高級語言文本(體現(xiàn)與編譯程序用戶手冊)的擴充和限制。例如,有些C編譯程序限制for語句的循環(huán)控制變量為局部簡單變量等。(2) 如果用C語言,要特別注意平時慣用的類C語言與標(biāo)準(zhǔn)C語言之間的細(xì)微差別。(3) 熟悉機器的操作系統(tǒng)和語言集成環(huán)境的用戶手冊,尤其是最常用的命令操作,以便順利進(jìn)行上機的基本活動。(4) 掌握調(diào)試工具,考慮調(diào)試方案,設(shè)計測試數(shù)據(jù)并手工得出正確結(jié)果?!澳サ恫徽`砍柴工”。計算機各專業(yè)的學(xué)生應(yīng)該能夠熟練運用高級語言的程序調(diào)試器DEBUG調(diào)試程序。上機調(diào)試程序時要帶一本高級語言教材或手冊。調(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í)報告注意:在實踐中,有時候可能想檢驗自己的想法,這時可以上機嘗試一下,看看自己的思路是否可行。三、課程設(shè)計內(nèi)容參考題目:1 二叉樹的應(yīng)用哈夫曼樹(電文的編碼和譯碼)2 運動會分?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. 稀疏矩陣運算器7. 長整數(shù)的四則運算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紙打印,并裝訂成冊,封面格式參見所附文檔,正文格式要求參見附錄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)容,用計算機語言(如C語言)編寫完整的程序,并將程序在機器上反復(fù)調(diào)試,直到結(jié)果正確為止,程序要求附上詳細(xì)注解。特別要注意算法與程序的區(qū)別以及上下層模塊間的接口處理。5)給出程序運行結(jié)果利用典型的測試用例,將數(shù)據(jù)輸入到程序執(zhí)行過程中去,記下執(zhí)行過程中屏幕顯示情況與相應(yīng)結(jié)果。2. 具體內(nèi)容要求:報告包括以下7個內(nèi)容:1)以無歧義的陳述說明程序設(shè)計的任務(wù),強調(diào)的是程序要做什么?并明確規(guī)定:(1) 輸入的形式和輸入值的范圍;(2) 輸出的形式;(3) 程序所能達(dá)到的功能;(4) 測試數(shù)據(jù):包括正確的輸入及其輸出結(jié)果和含有錯誤的輸入及其輸出結(jié)果。2)概要設(shè)計說明本程序中用到的所有抽象數(shù)據(jù)類型的定義、主程序的流程以及各程序模塊之間的層次(調(diào)用)關(guān)系。3)詳細(xì)設(shè)計實現(xiàn)概要設(shè)計中定義的所有數(shù)據(jù)類型,對每個操作只需要寫出偽碼算法;對主程序和其他模塊也都需要寫出偽碼算法(偽碼算法達(dá)到的詳細(xì)程度建議為:按照偽碼算法可以在計算機鍵盤直接輸入高級程序設(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)該完整和嚴(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ù)(如對于記錄文件,需要有8條以上記錄); 使用說明文件的第一行,需要給出設(shè)計者的學(xué)號、姓名,后面為其它說明。 課程設(shè)計項目源代碼和相關(guān)數(shù)據(jù),放到一個目錄下,目錄名以學(xué)號加姓名方式命名。六、考核方式與評分標(biāo)準(zhǔn)(下頁單獨打?。?綜合實踐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)確無誤能正確選擇存儲結(jié)構(gòu),算法流程圖或類C語言描述的算法基本準(zhǔn)確獨立解決問題的能力10具有獨立分析、解決問題能力,有一定的創(chuàng)造性,能夠獨立完成軟件的設(shè)計與調(diào)試工作,程序結(jié)構(gòu)清晰,邏輯嚴(yán)謹(jǐn),功能完善。有一定的分析、解決問題能力。能夠在老師指導(dǎo)下完成軟件的設(shè)計與調(diào)試工作,程序功能較完善。答辨問題回答20能準(zhǔn)確回答老師提出的問題能基本準(zhǔn)確回答老師提出的問題程序運行情況10程序運行正確、界面清晰,測試數(shù)據(jù)設(shè)計合理。程序運行正確、界面較清晰,能給出合適的測試數(shù)據(jù)。綜合實踐報告20格式規(guī)范,層次清晰,設(shè)計思想明確,解決問題方法合理,體會深刻。格式較規(guī)范,設(shè)計思想基本明確,解決問題方法較合理??偡种笇?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ī)范。所有文字字面清晰,不得涂改。要求文字通順,語言流暢,無錯別字,不得使用鉛筆書寫。正文內(nèi)容層次序號為:1、1.1、1.1.1。正文內(nèi)容一般為:1、 選題背景:說明本課題應(yīng)解決的主要問題及應(yīng)達(dá)到的技術(shù)要求;簡述本設(shè)計的指導(dǎo)思想。2、 方案論證:說明設(shè)計原理并進(jìn)行方案選擇,闡明為什么要選擇這個設(shè)計方案以及所采用方案的特點。3、 過程(設(shè)計或?qū)嶒灒┱撌觯簩υO(shè)計工作的詳細(xì)表述。要求層次分明、表達(dá)確切。4、 結(jié)果分析:對研究過程中所獲得的主要的數(shù)據(jù)、現(xiàn)象進(jìn)行定性或定量分析,得出結(jié)論和推論。5、 結(jié)論或總結(jié):對整個研究工作進(jìn)行歸納和綜合。(二)表格說明書(報告)的表格可以統(tǒng)一編序(如:表15),也可以逐章單獨編序(如:表2.5),采用哪種方式應(yīng)和插圖及公式的編序方式統(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),也可以逐章單獨編序(如 圖6.8),采用哪種方式應(yīng)與表格、公式的編序方式統(tǒng)一,圖序必須連續(xù),不得重復(fù)或跳躍。僅有一圖時,在圖題前加附圖字樣。課程設(shè)計中的插圖以及圖中文字符號應(yīng)打印,無法打印時一律用鋼筆繪制和標(biāo)出。由若干個分圖組成的插圖,分圖用a,b,c,標(biāo)出。圖序和圖題置于圖下方中間位置。(四)公式 說明書中重要的或者后文中須重新提及的公式應(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)。(七)工程圖按國標(biāo)規(guī)定裝訂 圖幅小于或等于3#圖幅時應(yīng)裝訂在說明書(報告)內(nèi),大于3#圖幅時按國標(biāo)規(guī)定單獨裝訂作為附圖。(八)計量單位的定義和使用方法按國家計量局規(guī)定執(zhí)行。(九)排版與封面要求1、排版用word排版,具體格式如下:版面要求:頁邊距:上2.5cm,下2.5cm,左3cm,右2.5cm;字 體:正文宋體、小四,章節(jié)標(biāo)題宋體、小三;行 距:固定值20;頁 碼:居中、底部。2、封面附錄2 Visual C+ 6.0簡介考慮到目前大多數(shù)初學(xué)者使用的都是PC機和Windows操作系統(tǒng),我們以Visual C+作為推薦的C+編譯器。1Visual C+集成開發(fā)環(huán)境Visual C+軟件包包含了許多獨立的組件,如編輯器、編譯器、調(diào)試器,以及各種各樣為開發(fā)Windows環(huán)境下的C/C+程序而設(shè)計的工具。其中最重要的是一個名為Developer Studio的集成開發(fā)環(huán)境。Developer Studio把所有的Visual C+工具結(jié)合在一起,集成為一個由窗口、對話框、菜單、工具欄、快捷鍵及宏組成的和諧系統(tǒng),通過該集成環(huán)境,程序員可以觀察和控制整個開發(fā)進(jìn)程。1顯示了一個典型的Developer Studio主窗口。它分為幾個部分:窗口頂部是菜單和工具欄,左面的一個子窗口是工作區(qū)窗口,工作區(qū)的右面是編輯子窗口。最下面是輸出子窗口。值得注意的是,上述各種部件,包括子窗口、菜單欄和工具欄的位置不是一成不變的,可以根據(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)工具欄,用于文件管理、編輯和查看等),Wizard Bar(向?qū)Чぞ邫冢┖虰uild MiniBar(建立工具欄,用于編譯、連接等)。工具欄上有常用命令的圖標(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)整工具欄是否可見的命令。在工具欄上除標(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(輸出)窗口。另外還有一個Debugger(調(diào)試器)停靠窗口,只在調(diào)試過程中顯示。圖2 新建一個項目??看翱诳梢怨潭ㄔ贒eveloper Studio用戶區(qū)的頂端、底端或側(cè)面,或者浮動在屏幕上任何地方。停靠窗口,不論是浮動著的或是固定著的,總是出現(xiàn)在文檔窗口的上面。這樣,就保證了當(dāng)焦點從一個窗口移到另一個時,浮動的工具欄一直都是可見的。但這也意味著,文檔窗口偶爾會看起來像消失了似的。例如,如果正在文本編輯器中編輯源代碼,此時打開一個占據(jù)整個Developer Studio用戶區(qū)的停靠窗口,源代碼文檔就會消失,它隱藏在新窗口之下。解決方法是要么關(guān)了覆蓋的窗口,要么把它拖到不擋眼的地方去。(3)菜單選項、快捷鍵和工具欄Developer 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(工程項目)來管理這些文件的。所以要編寫和運行C+程序,首先必須建立一個Projects。下面以一個簡單的例子來說明如何在Visual 集成開發(fā)環(huán)境編寫和調(diào)試簡單C+程序的步驟:(1)首先運行并打開Developer Studio系統(tǒng),選擇菜單選項File/New中的Projects選項卡。從卡中選擇Win32 Console Application(Win32控制臺應(yīng)用程序)。(2)為應(yīng)用項目取一個名字,填寫在選項卡右上方的Project Name(項目名稱)處,并檢查下面的Location(位置)中列出的路徑是否正確。注意使下面的單選框選擇Create New Workspace(即要建立新工作區(qū)),然后按下OK按鈕。如圖2。(3)這時會出現(xiàn)Application Wizard(應(yīng)用程序生成向?qū)В?,提問要生成的項目類型。選擇An Empty Project(空項目),按下Finish(結(jié)束)鍵,會彈出一個窗口,顯示新項目的有關(guān)信息。檢查無誤后按OK按鈕。如圖3及4 圖3 確定項目類型 圖4 項目相關(guān)信息(4)這時屏上會顯示一個空項目,并生成一個工作區(qū)文件(后綴為.DSW)。再次選擇File菜單的New選項,并選擇Files選項卡。從卡中選擇C+ Source File(C+源程序)。(5)為程序取一個名字(可與項目名相同,也可以不同)填寫在選項卡右邊的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 gravitation.exe連接目標(biāo)文件。結(jié)果顯示在Output窗口中。連接的結(jié)果為可執(zhí)行文件(后綴為. exe)。以上兩步也可以并為一步,即直接使用菜單選項Build/Build gravitation.exe。圖6 代碼的編輯界面生成的可執(zhí)行文件可以單獨運行,也可以在開發(fā)環(huán)境中直接運行,后一種方法在程序需要反復(fù)調(diào)試時更加方便。在集成開發(fā)環(huán)境中直接運行程序的方法是選用菜單選項Build/Excute.exe。程序運行結(jié)果如圖7圖7 程序運行結(jié)果2Visual C+幫助功能MSDN (Microsoft Developer Network) 是使用 Microsoft 開發(fā)工具或是以 Windows 和 Internet 為開發(fā)平臺的開發(fā)人員的基本參考資料。通過MSDN所提供的Help資料,可以對Visuan C+和Windows的工作機制有更全面的了解,可以幫助解決開發(fā)者遇到的大多數(shù)問題。由于MSDN庫為包括Visual C+在內(nèi)的所有的Visual studio 6.0開發(fā)環(huán)境工具提供在線幫助,所以它在系統(tǒng)中作為一個應(yīng)用程序獨立運行,并沒有同任何單個開發(fā)環(huán)境結(jié)合在一起。要從Visual C+中訪問 MSDN,一種方法是從Visual C+的Help菜單中選擇 Contents、Search或Index命令,另一種方法是在Visual C+開發(fā)環(huán)境中直接按下 F1鍵,系統(tǒng)都會自動運行 MSDN幫助程序。MSDN界面分為三個窗格,頂端的窗格包含有工具欄。左側(cè)的窗格包含有各種信息定位方法,通過單擊列表中的主題,即可瀏覽或查找所需的各種信息;右側(cè)的窗格則顯示所選擇的主題的具體內(nèi)容,這些內(nèi)容是以超文本形式存在的,其中的相關(guān)內(nèi)容可以通過超文本鏈接連接到其他的相關(guān)主題。圖8 MSDN界面左邊窗口中有四個選項卡:目錄、索引、搜索和書簽,用于提供四種不同的在線幫助瀏覽方式。(1)目錄。單擊目錄選項卡可瀏覽主題的標(biāo)題。該目錄是依照標(biāo)題和副標(biāo)題的排列方式形成一個包含了 MSDN中所有可用信息的可擴充目錄表。雙擊列表中的標(biāo)題,就可在MSDN窗口的右欄中打開該文章。(2)索引。單擊索引選項卡可查看索引項的列表,然后可通過該欄左邊的滾動條翻閱整個索引列表。也可通過在對話框頂部的編輯框中鍵人關(guān)鍵字來完成查找功能。找到所要的索引條目后雙擊,如果該條目僅對應(yīng)一篇文章,MSDN就會立刻在其窗口右欄顯示其內(nèi)容;否則會出現(xiàn)已找到的主題對話框,其中列出了該條目可能指向的所有文章,這時可通過雙擊列表中所需要主題,打開相應(yīng)的一篇文章。(3)搜索。單擊搜索選項卡可查找到包含在某個主題中的所有詞組或短語。它是一個全文本搜索引擎,允許尋找包含指定詞或短語的主題。和MSDN的索引選項比起來,全文本搜索所能覆蓋范圍更寬,它可以提供更多的文章以供選擇。(4)書簽。單擊書簽選項卡可創(chuàng)建或訪問書簽的列表。用戶只需簡單地標(biāo)記書簽中的某些主題,即可重新訪問它們。3Developer Studio文本編輯器Developer Studio提供了一個優(yōu)秀的程序文本編輯器,它使應(yīng)用程序的編輯修改和調(diào)試工作混為一體,非常方便。該文本編輯器不僅可編輯程序文本,還可編輯一般的文本文件和HTML Page。啟動文本編輯器非常簡單,只要建立一個新文本文件,或打開一個已存在的文本文件,文本編輯器就會自動出現(xiàn)。在文本編輯器中,用一閃爍的短豎線表示編輯位置,通過鍵盤輸入的文字在此位置插入文本。用鼠標(biāo)左鍵點擊文本中的某個字符可以改變編輯位置。文本編輯器的基本操作包括:l :光標(biāo)向后移動一個字符。l :光標(biāo)向前移動一個字符。l :光標(biāo)向上移動一行。l :光標(biāo)向下移動一行。l Home:光標(biāo)移動到行首。l End:光標(biāo)移動到行尾。l Ctrl+Home: 光標(biāo)移動到文件頭。l Ctrl+End: 光標(biāo)移動到文件尾。l PgUp:光標(biāo)向上滾動一屏。l PgDn: 光標(biāo)向下滾動一屏。l Ctrl+Y:刪除行。l Del:刪除光標(biāo)右邊字符。l Backspace:刪除光標(biāo)左邊字符。l Ins:插入/改寫方式切換。Developer Studio的Edit子菜單還提供了一批高級編輯功能,大致可分為以下幾類:(1)Undo和Redo,用于反悔對文本文件所做的修改(2)剪貼Cut、復(fù)制Copy、粘貼Paste和刪除Delete(3)查找Find和替換Replace(4)書簽(5)高級選項(6)斷點設(shè)置(7)編程指導(dǎo)信息4Developer Studio文件處理功能Developer Studio提供了很完整的文件處理功能,可處理程序文本文件、項目文件、WORD文檔和EXCEL文檔等。Developer Studio的File子菜單共有14項,分為6組,組與組之間用橫線隔開。第1組用于建立、打開和關(guān)閉文件處理的對象,包括項目、文件、工作區(qū)和其他文檔:(1)建立新對象(New,快捷鍵為CTRL+N)。選擇該菜單項,可打開一個有若干卡片的對話框,各卡片的內(nèi)容分別為:項目(Projects):用于建立項目。項目即要開發(fā)的應(yīng)用程序,Developer Studio可用于開發(fā)各種類型的應(yīng)用程序,如控制臺應(yīng)用程序(Win32 Console Application)、32位Windows應(yīng)用程序(Win32 Application)和MFC應(yīng)用向?qū)С绦颍∕FC AppWizard)等。對于不同類型的項目,建立的具體文件也不同。文件(Files):用于建立各種文件,包括源程序文件(Source File,文件名后綴為cpp)、頭文件(Header File,文件名后綴為h)、文本文件(Text File,文件名后綴為txt)、位圖文件(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)閉當(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)。用于保存當(dāng)前打開的工作區(qū)文件。(3)關(guān)閉工作區(qū)(Close Workspace)。用于關(guān)閉當(dāng)前打開的工作區(qū)文件。第3組用于處理當(dāng)前文件,包括:(1)保存文件(Save,快捷鍵為CTRL+S)。用于保存當(dāng)前正在使用的文件。(2)另存文件(Save As)。將當(dāng)前文件換一個名字保存,原來的文件內(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)。用于直接打開最近幾次在Developer Studio中打開過的工作區(qū),可在彈出的下級菜單中直接選取。最后1組只有一個菜單項:(1)退出Developer Studio(Exit)。選擇該菜單項可以關(guān)閉當(dāng)前打開的所有對象,包括項目、工作區(qū)和文件等,退出Developer Studio,返回Windows操作系統(tǒng)界面。5Visual C+程序的編譯、連接和運行用于編譯、連接和運行應(yīng)用程序的功能集中在創(chuàng)建(Build)子菜單中,但其中多數(shù)功能也可通過快捷鍵和工具條調(diào)用。Developer Studio的Build子菜單共有11項,分為4組,組與組之間用橫線隔開。第1組包括編譯、連接等功能:編譯當(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)。功能與基本相同,只是無論是否修改過,對所有文件都重新進(jìn)行編譯和連接工作。以批處理方式編譯、連接當(dāng)前項目(Batch Build)。功能與基本相同,只是同時產(chǎn)生調(diào)試版和發(fā)行版執(zhí)行程序。清除臨時文件( 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ā)放版本(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)。這時在屏幕下方的Output窗口中會顯示出錯誤的類型、錯誤發(fā)生的位置以及錯誤的原因。錯誤信息的格式為:(行): 錯誤有兩種,一種是Error,表示這是一個嚴(yán)重錯誤,非改不可。另一種是Warning,表示源程序這里有可能是錯誤的,也有可能不是錯誤,編譯程序自己也拿不準(zhǔn)。一般來說,如果只出現(xiàn)警告信息,還是可以繼續(xù)連接、運行程序,建議在出現(xiàn)編譯警告時最好還是仔細(xì)檢查一下,設(shè)法消除引起警告的原因。錯誤發(fā)生的位置包括源程序的路徑和文件名以及錯誤所在行。必需說明的是+編譯程序的“智力”并不十分高,雖然能夠查出錯誤,但對錯誤的說明可能并不十分準(zhǔn)確,而且一個實際錯誤往往會引出若干條錯誤說明,使人不容易摸清到底錯在什么地方。錯誤的原因其實可能很簡單,例如少寫了一個括號、分號或拼錯了一個單詞,都可能引起一連串的錯誤提示。真正的錯誤之處也可能在此之前的某個語句。而且指出的錯誤條數(shù)可能偏多,常常是由于一處出錯而引發(fā)了一系列錯誤提示信息。用鼠標(biāo)雙擊一條錯誤信息可使文本編輯器作出反應(yīng),其左框上顯示一個箭頭指出對應(yīng)的出錯語句,以便修改源程序。在連接階段也可能出現(xiàn)一些錯誤提示。與編譯錯誤提示信息不同的是連接錯誤不指出錯誤發(fā)生的詳細(xì)位置,這是因為連接的對象是目標(biāo)程序,和源程序格式有很大差別,不易確定錯誤的準(zhǔn)確位置。連接階段出現(xiàn)的錯誤一般比較少,大多數(shù)是因為在程序中調(diào)用了某個函數(shù),而連接程序卻找不到該函數(shù)的定義。這時最有可能的是函數(shù)名字拼寫錯誤。另外,如果程序的規(guī)模較大,需要分為若干個源程序文件分別編譯然后連接,則也可能出現(xiàn)全局變量重復(fù)定義或找不到等錯誤現(xiàn)象。在找到連接錯誤的原因并改正以后,一定要重新編譯后才能再次連接。否則,雖然源程序已經(jīng)修改,但進(jìn)行連接的目標(biāo)程序還是以前有錯誤的目標(biāo)程序,再次連接仍然會產(chǎn)生同樣的錯誤。7運行錯誤的判斷與調(diào)試通常所說的運行錯誤有兩種, 一種是邏輯錯誤, 即程序的實際運行結(jié)果和編程者對程序結(jié)果的期望不符; 另一種仍是程序設(shè)計上的錯誤, 但是躲過了編譯程序和連接程序的檢查, 通常表現(xiàn)為突然死機、自行熱啟動或者輸出信息混亂。相對于編譯和連接錯誤來說, 運行錯誤的查找和判斷更為困難。編譯和連接錯誤可以由編譯程序和連接程序檢查, 而運行錯誤就不同了, 很少或根本沒有提示信息, 只能靠程序員的經(jīng)驗來判斷錯誤的性質(zhì)和位置。下面簡單地介紹一些常見運行錯誤的調(diào)試方法。邏輯錯誤: 一種邏輯錯誤是由于在設(shè)計程序的算法時考慮欠周引起的, 例如對邊界和極端條件未作處理等。例如以下循環(huán):while(count) count = count-1;程序員的構(gòu)思是進(jìn)行count次循環(huán)。但是, 如果count中原來的值為負(fù)數(shù)時, 此循環(huán)就成了一個“死循環(huán)”而導(dǎo)致無法停機, 顯然是錯誤的。但是編譯程序無法查出這類錯誤, 只有到了程序運行之后才有可能發(fā)現(xiàn)。再如, 在利用海倫公式計算三角型面積時, 首先應(yīng)該確認(rèn)給出的三條邊長確實可以構(gòu)成一個三角形, 否則計算結(jié)果是沒有意義的; 而在編寫求解一般實系數(shù)一元二次方程的程序時, 必須在程序中設(shè)計處理復(fù)根情況的程序段, 以免對負(fù)數(shù)求平方根。另一種常見的邏輯錯誤是由于程序輸入時的打字錯誤造成的, 例如將判斷條件中的“=”誤輸入為“”, 將相等判斷“=”誤輸入為賦值號“=”等。含有這類錯誤的程序在運行時出現(xiàn)的現(xiàn)象多種多樣, 而且通常很難與錯誤的原因聯(lián)系起來。數(shù)組下標(biāo)越界錯誤:即使用了并不存在的數(shù)組元素。例如有程序段int a5;for(int i=1; i=5; i+)ai = 0;由于5并不存在,而上述程序段試圖將數(shù)據(jù)存放到一個并不存在的數(shù)組元素中,這會引起包括死機在內(nèi)的嚴(yán)重運行錯誤。類似錯誤還有指針和動態(tài)存儲分配引起的一些運行錯誤。8基本調(diào)試手段程序的基本調(diào)試手段有以下幾種: 標(biāo)準(zhǔn)數(shù)據(jù)檢驗、程序跟蹤、邊界檢查和簡化循環(huán)次數(shù)等。標(biāo)準(zhǔn)數(shù)據(jù)檢驗: 在程序編譯、連接通過以后, 就進(jìn)入了運行調(diào)試階段。運行調(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ù)檢驗一次就完全通過的可能性很小。通常程序中總是存在許多各種各樣的錯誤,還需要對程序進(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)容等來掌握程序的運行情況。例如,可以在程序中的關(guān)鍵部位插入這樣的代碼段:/ 調(diào)試代碼段cout 100 endl;cout Variable count = “ count “, x = “ x “, sum = “ sum endl;_getch ( ) ;/ 調(diào)試代碼段結(jié)束其中的變量可以根據(jù)程序的實際情況進(jìn)行設(shè)計。使用_getch ( ) 函數(shù)的目的是要程序在執(zhí)行到這一行時暫時停下來, 從而可以看清楚調(diào)試代碼段所顯示的信息,然后選擇是否讓程序繼續(xù)執(zhí)行,該函數(shù)的原型在頭文件conio.h中。如果到這一斷點時尚未發(fā)現(xiàn)錯誤, 則可以按下任何一個鍵讓程序繼續(xù)運行到下一個斷點; 否則可以使用組合鍵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)情況, 同時避免每次輸入數(shù)據(jù)的麻煩, 可以利用注解號將上述程序段落改為:/ cin a b c;a = 1;b = 2;c = 3;. .這樣在調(diào)試程序時就不必每次停下來等待輸入數(shù)據(jù)了, 可以直接使用步進(jìn)、跟蹤或設(shè)置斷點等手段調(diào)試這段程序。等到程序中的所有錯誤全部修正以后, 再恢復(fù)被修改的內(nèi)容(即注解中的內(nèi)容)即可。10條件編譯條件編譯是編譯預(yù)處理命令的一種,用于對源程序的內(nèi)容進(jìn)行選擇性編譯。例如, 在調(diào)試程序期間, 常常希望記錄輸出一些調(diào)試用的信息, 而在調(diào)試完成后, 就不再需要這些輸出信息了。要解決這個問題,一種辦法是逐一從源程序中刪去這些輸出這些調(diào)試信息的程序段落, 或者將這些程序段落用注釋標(biāo)記括起來。顯然這樣很不方便。另一種方法就是使用編譯預(yù)處理中的條件編譯命令。條件編譯命令的格式為:#if #elif . .#elif #else#endif條件編譯中所使用的條件只能是由常數(shù)構(gòu)成的表達(dá)式。如果該常數(shù)表達(dá)式的值不為0, 就表示條件成立, 否則表示條件不成立。一般情況下, 在#if中都是使用由#define指令產(chǎn)生的符號常數(shù)進(jìn)行測試。編譯預(yù)處理命令的一個常見的用途是將調(diào)試代碼插入應(yīng)用程序中。程序員可以定義一個叫做DEBUG的符號常數(shù),

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論