用折半查找法猜籃球的價格.doc_第1頁
用折半查找法猜籃球的價格.doc_第2頁
用折半查找法猜籃球的價格.doc_第3頁
用折半查找法猜籃球的價格.doc_第4頁
用折半查找法猜籃球的價格.doc_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

沈 陽 航 空 工 業 學 院 課程設計 學 號 200604021081班 級 6402103姓 名 高健文指導教師 劉 成2007年 9 月 18 日沈陽航空工業學院課程設計任務書電子工程系 電子信息工程專業 6402103班 學號200604021081一課程設計題目:用折半查找法猜籃球的價格。二課程設計工作自2007年9月10日起至2007年9月14日止三程設計內容:用C語言編寫軟件完成以下任務:體要求如下:1 輸出菜單選項。2 從鍵盤輸入籃球價格(設價格在1200元之間,并且為整數)。3 讓計算機從1元開始用折半法猜測籃球價格。若計算機猜測的價格偏高,用戶輸入“高”,若計算機猜測價格偏低,用戶輸入“低”,若計算機猜對了,則顯示“正確”。四課程設計要求1程序質量 徹結構化的程序設計思想。 用戶界面友好,功能明確,操作方便。 戶界面中的菜單至少應包括“輸入籃球價格”,“計算器開始猜測”,“退出”3項。 碼應適當縮進,并給出必要的注釋,以增強程序的可讀性。2課程設計說明書:課程結束后,上交課程設計說明書和源程序。課程設計說明書的內容如下:課程設計任務書程序設計題目需求分析(分析題目的要求)程序框圖(總體框圖和各功能模塊框圖,使用傳統流程圖或框圖)核心技術的實現方法及程序源代碼及注釋個人總結參考資料指導教師:_學生簽名:_一 程序設計題目 2 二 題目分析 2 三 程序流程圖 5四 核心技術的實現方法及程序段 7五 個人總結 11六 參考文獻 12一程序設計題目1 輸出菜單選項。2 從鍵盤輸入籃球價格(設價格在1200元之間,并且為整數)。3 讓計算機從1元開始用折半法猜測籃球價格。若計算機猜測的價格偏高,用戶輸入“高”,若計算機猜測價格偏低,用戶輸入“低”,若計算機猜對了,則顯示“正確”。二題目分析1、顯示菜單函數 主要實現顯示程序設計的總體步驟和功能,還有接下來顯示的分步驟用來實現各個函數的具體功能,以便實現其它各自定義函數的作用。2 輸入籃球價格函數 是用戶給籃球的一個真實價格,為下一步計算機猜測籃球價格提供數據依據。3、猜測籃球價格函數 計算機 對籃球價格進行猜測,通過用戶輸入的“高”和“低”給計算機運用折半查找法提供大方向,進行多次循環,最終達到猜測出籃球真實價格的目的。除上面介紹的功能之外,程序還具有退出功能,可以在程序運行當中循環執行所有的功能,并根據需要終止程序的執行三程序流程圖1整體設計定義變量 int choice,value;將menuchoice()函數返回值賦給變量choice() choice!=3 choice= 1 是 否 輸入籃球 是 否價格 猜測籃球價格退出主函數2功能函數模塊框圖 (1)顯示菜單函數 輸入菜單選項給變量 ret 返回ret的值 定義變量初始化 fh asdfasdffsdfasdf(2)輸入籃球價格函數定義變量初始化當輸入價格不在1-200元以內提示用戶輸入籃球價格輸入價格給變量price把price值帶回(3)猜測籃球價格函數變量初始化mid=(low+high)/2;當賦給mid的值不等于真實價格時 輸入字符串判斷是否偏高否是把mid+1的值賦值給low變量把mid-1的值賦值給high 變量 四核心技術的實現方法及程序段本程序主要由一個主函數和三個自定義函數組成,其中主函數以菜單的形式調用其他函數來實現要求的所有功能。下面分別對各個自定義函數進行說明。1、顯示菜單函數定義整型的選擇變量,這是一個主菜單(MenuChoice(),數字變量(ret),輸入整型的ret值,并返回給主函數中的(choice= MenuChoice(),當返回的ret值等于3時,直接跳出當前函數。當ret值為1時,進入“輸入籃球價格”函數,當ret值為2時,進入“猜測籃球價格”函數。 這是一個菜單函數包含的:/*顯示菜單0*/int MenuChoice(void) int ret; printf(1 - 輸入籃球價格n2 - 計算器開始猜測n3 - 退出n); scanf(%d, &ret); return (ret);2、輸入籃球價格函數 用戶輸入一個價格,對這個PRICE進行討論。while (price 200) ,這是一個把價格限制在1200內的函數,如不在這個范圍內的話會輸出:Enter the price::直到輸入的在1-200之間才會進行運算。/*得到籃球的實際價格*/int GetPrice(void) int price; while (price 200) printf(Enter the price: ); scanf(%d, &price); return (price);3、猜測籃球價格函數定義了兩個整型變量,low,high.這分別是1,200。用折半法來運算: while (mid = (low + high) / 2) != price),如果猜測的比實際的高了。你就輸入HIGH,若低了你就輸入LOW, if (strcmp(gets(s), high) = 0) high = mid - 1; else if (strcmp(s, low) = 0) low = mid + 1; /*猜測籃球的價格*/void GuessPrice(int place) int mid, low = 1, high = 200; char s30 = ; while (mid = (low + high) / 2) != place) printf(The price is: %dn, mid);/*顯示計算機預計的價格*/ if (strcmp(gets(s), high) = 0)/*如果價格高,用戶就輸入high*/ high = mid - 1; else if (strcmp(s, low) = 0)/*如果價格低,用戶就輸入low*/ low = mid + 1; 五個人總結通過這次課設讓我對計算機的學習又有了新的認識。而且學習到了做人要有堅持不懈的精神。比如說起初在得到課設題目時,根本無從下手,不知道該從什么地方開始。后來在同學的幫助下,我漸漸的知道了程序的編制的總體思路,然后繼續努力研究,最終才設計出了我的程序。我懂得了如何在面對問題時去先看到問題的本質,如何在有很多不明白的時候去找到自己會的地方,從而一點點的理解,學會如何在一個問題,不知所措的時候,去問一問老師和同學,在老師的幫助和指導下,讓我學到了程序的單步運行,和監視斷點等方法來解決一些算法的錯誤,再運用對稱的方法和觀察法去查找語法錯誤。另外在本次實習中,我還深刻的體會到計算機方面的統一的重要性,因為在運行程序的過程中,我發現同一個程序在不同型號的計算機上運行卻得到不同的結果,這樣回給程序的編輯帶來很大麻煩,因此我深深的體會到在計算機方面統一的重要性。 在本次實習中,我用規定的時間把程序編完,并達到了題目的要求。而且還早要求的基礎上,進一步改進了程序,使程序的界面更加友好,更加滿足大眾的要求。這次課設讓我解決問題的能力提高了,不僅如此,還讓我們同學之間的友情變的更深了,因為一個個問題在討論中解決,

溫馨提示

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

評論

0/150

提交評論