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

下載本文檔

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

文檔簡介

1、沈陽航院設計用紙題目:用折半查找法猜籃球的價格一、課程設計時間201011第2學期第15周,共計1周,20學時。二、課程設計內容用C語言編寫軟件完成以下任務:用戶從鍵盤輸入籃球的價格(假設價格在1200元之間,并且為整數)讓計算器從1元開始用折半法猜測籃球的價格。若計算器的猜測價格偏高,用戶輸入“高”;若計算器的猜測價格偏低,用戶就輸入“低”;若計算器猜對了,則顯示“正確”。三、課程設計要求1 .程序質量:貫徹結構化的程序設計思想。用戶界面友好,功能明確,操作方便。用戶界面中的菜單至少應包括“輸入籃球價格”、“計算器開始猜測”、“退出”3項。代碼應適當縮進,并給出必要的注釋,以增強程序的可讀性

2、。2 .課程設計說明書:課程結束后,上交課程設計說明書和源程序。課程設計說明書的格式和內容參見提供的模板。四、指導教師和學生簽字指導教師:學生簽名:五、成績:六、教師評語:II沈陽航院設計用紙4一、需求分析二、設計要求目錄12三、主要界面截圖四、技術要點五、個人總結六、參考文獻七序8899源程沈陽航院設計用紙一、需求分析經過對程序設計題目的分析可知,整個程序大致分為三個模塊,其中每一個模塊對應一個函數,實現一個功能,他們的功能分別是:籃球價格獲取函數(get),出現目錄的輸出函數(men。,籃球價格猜測函數(guess),以及主函數(main)。1、籃球價格獲取函數主要實現程序最初運行時用戶對

3、籃球價格的設定(要求價格在1-200元之間,并且為整數,若超出范圍則提示重新輸入);2、目錄輸出函數在程序運行時輸出目錄,使用戶界面更加友好3、籃球價格猜測函數一實現的功能是讓計算器從1元開始用折半法猜測籃球的價格。若計算器的猜測價格偏高,用戶輸入“g”;若計算器的猜測價格偏低,用戶就輸入“d”;若計算器猜對了,則顯示“正確”。;i沈陽航院設計用紙12、設計分析(1)籃球價格獲取函數(get)定義變量初始化當輸入價格不在1-200元以內提示用戶輸入籃球價格輸入價格給變量price把price值返回給guess函數輸由“猜測正確”三、主要界面截圖JOJx*賞迎使月圻更靖京肆價格程序*:MifXK

4、WMMKW:WM-mT仁喻人/球價格,后午甯測3.量由哲子矗黃鼻*M13i,期履履M葡一具鵬用再一將鼻內神耳具看can元N內.反權 所有.勞 冒 5 寵 M UMM . M WtWMHWMKMOiM MM*200元之內.評且更求為整數八力自且我求為整數):.H exeJHJx*事梵*M11斐制*1堇邕M10*現加*箕迎使用寺尸豐注晴建球價格程序一孫玉就,算看列*算片第HMK仁喻人出球價格,.子午喃測力息出他聲瓦技所育.力冒必究弁缸280元之內.L許施氤前入籃外價格S00元之內.日且夏求汽整豌” 210 蚌且妥束為整數,:1、用套鍛寸啰i如果價格低,請輸入,果為15%箱測結是正確?胃鼻彳時WM

5、稠:M*lfW 晚-清土4韭-+口三 的W于 崎 汁四、技術要點本程序主要由兩個自定義函數和一個主函數組成,其中主函數以菜單的形式調用其他函數來實現要求的所有功能。在這些函數當中,添加數據函數、刪除數據函數和排序函數是程序中較為核心的部分,下面分別進行說明。1、籃球價格獲取函數get由于在題設中對籃球的價格進行了設定,所以必須在此函數中進行對被輸入的籃球價格作出判斷,并提示用戶重新輸入一個符合條件的價格,因此在此處用一個while循環進行價格的獲取,在最后將獲取的價格返回給籃球價格猜測函數guess。具體程序段如下:intget(void)/*定義int格式的籃球價格輸入函數*/intpric

6、e;while(price200)printf(請輸入籃球價格(200元之內,并且要求為整數):);scanf(%d,&price);return(price);2、目錄輸出函數該函數沒有具體的功能,只負責程序目錄的輸出:在被主函數調用后用一連串的printf函數進行輸出,形成一個良好的用戶界面。具體程序段如下:voidmenu()printf(”*歡迎使用折半法猜籃球價格程序printf(*n);printf(”*版權所有,仿冒必究*n);printf(n);printf(1.輸入籃球價格n);printf(2.開始猜測n);printf(3.退出程序n);printf(n);”*n);*3

7、、籃球價格猜測函數guess題目要求的籃球價格猜測的方法是折半法,即先用一個處于比較范圍中央的數值與被比較數值進行比較,由用戶對比較結果作出判斷,通過循環的多次比較、用戶判斷、程序自動賦值,最終找到與被比較數值相同的結果,在此函數中使用了strcmp函數對用戶輸入的判斷結果進行判斷后輸出提示以進行下一步用戶判斷。具體的程序段如下:voidguess(intplace)/*籃球價格猜測函數,參數為int類型的place*/intm,l=1,h=200;chars30=;while(m=(l+h)/2)!=place)printf(計算器猜測的價格是:dn,m);printf(如果價格高,請輸入“

8、g”;如果價格低,請輸入“d”n);fflush(stdin);if(strcmp(gets(s),g)=0)/*strcmp函數比較輸入的字符與字符g的大小,并給以判斷*/h=m-1;elseif(strcmp(s,d)=0)/*strcmp函數比較輸入的字符與字符d的大小,并給以判斷*/l=m+1;printf(計算器所猜的結果為d,猜測結果正確!n,m);五、個人總結通過20個學時的努力,我完成了這次的C語言程序設計任務。以往我們只進行單一功能、單一片段的程序編寫,任務簡單。而這次的任務給了我們一個全新的視角,讓我們進行一個全局性的“小”工程,從而完成一個多功能、各部分聯系緊密的功能性程

9、序體,實現了由部分到整體的飛躍,讓我獲益匪淺。六、參考文獻譚浩強.C程序設計.北京:清華大學出版社,2005七、源程序#include#include#include/*為exit函數所在的頭文件*/#include/*為getch函數所在的頭文件*/voidmenu();intget(void)/*定義int格式的籃球價格輸入函數*/intprice;while(price200)printf(請輸入籃球價格(200元之內,并且要求為整數):);scanf(%d,&price);return(price);voidmenu()printf(*歡迎使用折半法猜籃球價格程序*n,);printf

10、(n);printf(1.輸入籃球價格n);printf(2.開始猜測n);printf(3.退出程序n);printf(n);printf(*n);printf(”*版權所有,仿冒必究”*n);*voidguess(intplace)/*籃球價格彳#測函數,參數為int類型的place*/intm,l=1,h=200;chars30=;while(m=(l+h)/2)!=place)printf(計算器猜測的價格是:dn,m);printf(如果價格高,請輸入g;如果價格低,請輸入dn);fflush(stdin);if(strcmp(gets(s),g)=0)/*strcmp函數比較輸入的字符與字符g的大小,并給以判斷*/h=m-1;elseif(strcmp(s,d)=0)/*strcmp函數比較輸入的字符與字符d的大小,并給以判斷*/l=m+1;printf(計

溫馨提示

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

評論

0/150

提交評論