




已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第13章24點撲克牌游戲 前面學習了C語言各方面的知識 本章通過經(jīng)典游戲 24點撲克牌 的設(shè)計與實現(xiàn)來提高讀者的學習興趣 能夠?qū)ο嚓P(guān)知識有較強的綜合運用能力 編寫程序?qū)崿F(xiàn)的 24點撲克牌 游戲 就是利用計算機模擬隨機發(fā)給用戶4個數(shù) 用戶盡量將這4個數(shù)利用加減乘除四則運算最后得到24 本章講述的知識點包括 將中綴表達式轉(zhuǎn)換為后綴表達式的算法的實現(xiàn) 對后綴表達式的求值算法的實現(xiàn) 棧的概念及其基本操作 隨機數(shù)產(chǎn)生的算法的實現(xiàn) 13 1游戲描述 24點撲克牌游戲 是一個很多人從小到大都在玩的游戲 作為老少皆宜的大眾游戲 很多人都將它作為孩子學習數(shù)學和開發(fā)智力的工具 最初是幾個人使用一副撲克牌來玩此游戲 基本的游戲規(guī)則是 隨便從一副撲克牌中拿出四張牌 參與游戲的人將這四張撲克牌上的數(shù)字 其中J算11 Q算12 K算13 用加 減 乘 除 四則運算 包括括號 將四個數(shù)組成一個表達式 使表達式的結(jié)果為24 看誰算得最快 誰就贏了 使用計算機模擬該游戲 就是隨機產(chǎn)生4個1 13之間的整數(shù) 由用戶輸入它們組合后的表達式 計算機計算該表達式的值 判斷是否為24 13 2游戲解析 知道了游戲的基本規(guī)則 下面開始分析設(shè)計了 大家都知道 我們直接通過鍵盤輸入算術(shù)表達式 計算機系統(tǒng)是不會給我們算出表達式的結(jié)果的 那么 如何計算出表達式的值呢 經(jīng)過分析 實現(xiàn)這個游戲有兩個關(guān)鍵點 一個是如何處理用戶輸入的表達式 以便為計算表達式的值作準備 另外一個就是對表達式如何求值 13 2 1處理用戶輸入得表達式 現(xiàn)在 將我們平時輸入的表達式稱為中綴表達式 而計算機存儲一般都是后綴表達式 所以 我們要將用戶輸入的中綴表達式轉(zhuǎn)換為后綴表達式后存儲 1 算術(shù)表達式的形式2 將中綴表達式轉(zhuǎn)換為后綴表達式 13 2 2對后綴表達式求值 由于后綴表達式中沒有括號 不需判別優(yōu)先級 計算嚴格從左向右進行 故計算一個后綴表達式要比計算機一個中綴表達式簡單得多 在我們的程序中就是對轉(zhuǎn)換成的后綴表達式進行計算 這樣比較方便 對后綴表達式進行求值計算的算法思想是 1 建立一個棧 STACK類型 2 從左到右讀后綴表達式 讀到數(shù)字就將它轉(zhuǎn)換為數(shù)值壓入棧中 讀到運算符則從棧中依次彈出兩個數(shù)分別到num2和num1 然后以 num1運算符num2 的形式計算出結(jié)果 再將結(jié)果壓加棧中 3 如果后綴表達式未讀完 就重復上面過程 2 直到讀到結(jié)束符 0 為止 最后輸出棧頂?shù)臄?shù)值則為最后表達式的結(jié)果 13 3兩個重要函數(shù)的實現(xiàn) 通過前面的分析 那么下面如何具體的用C語言實現(xiàn)將中綴表達式轉(zhuǎn)換為后綴表達式的和對后綴表達式進行求值計算的這兩個函數(shù)呢 13 4 24點撲克牌游戲 的實現(xiàn) 兩個重要算法實現(xiàn)了 那么 24點撲克牌游戲 的實現(xiàn)基本就沒有太大問題了 但是為了更好的體現(xiàn)游戲并實現(xiàn)其功能 還要有幾部分輔助的函數(shù) 13 4 1棧的基本操作函數(shù)的實現(xiàn) 在代碼13 1和代碼13 2中 大量的用到了棧的相關(guān)操作 所以還要在程序中編寫相應的函數(shù)來實現(xiàn)棧的操作 由于棧的操作都是在一端進行 所以本程序?qū)崿F(xiàn)棧的存儲使用了動態(tài)存儲的鏈表形式 我們可以將鏈表的表頭作為棧頂 這樣不但可以利用鏈表頭指針就可以很方便實現(xiàn)棧的操作 還有利于空間的合理分配 棧的基本操作主要有判斷棧是否為空 入棧 出棧 讀取棧頂元素的值和讀取棧頂元素的值并出棧 13 4 2隨機發(fā)四張撲克牌函數(shù)的實現(xiàn) 游戲的玩法在實際中是隨便發(fā)四張撲克牌 根據(jù)這四張牌上的數(shù)進行加減乘除運算結(jié)果湊成24 我們編寫的程序要模擬發(fā)牌的過程 這如何解決 很簡單 只需要要計算機隨機產(chǎn)生四個1 13之間 撲克牌上的數(shù)是1 13之間 的整數(shù)即可 在C語言中 使用random函數(shù)就可產(chǎn)生一個隨機數(shù) 13 4 3檢查輸入表達式的正確性函數(shù)的實現(xiàn) 由于對用戶輸入的表達式有特殊的要求 在每個數(shù)字結(jié)束后要加一個 也為了程序的完整性和安全性 在程序中編寫了檢查用戶輸入的表達式是否符合要求的函數(shù) 13 4 4main函數(shù)的實現(xiàn) main函數(shù)主要完成的事情就是理清思路 將前面分析設(shè)計的函數(shù)有機的組織在一起 實現(xiàn)真正的 24點撲克牌 游戲 13 5小結(jié) 本程序中 最主要是實現(xiàn)了中綴表達式轉(zhuǎn)換成后綴表達式和后綴表達式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學陽光食堂管理制度
- 公司網(wǎng)銷部門管理制度
- 屠宰企業(yè)檢驗管理制度
- 健身行業(yè)人員管理制度
- 公司裝卸搬運管理制度
- 完善內(nèi)部存貨管理制度
- 公園志愿服務(wù)管理制度
- 壓鑄生產(chǎn)安全管理制度
- 危險設(shè)備安全管理制度
- 傣族基地日常管理制度
- DB32T 4536-2023環(huán)境水質(zhì)(地表水)自動監(jiān)測站運行維護技術(shù)規(guī)范
- 易制毒化學品安全管理培訓
- 湖北省10kV及以下配電網(wǎng)設(shè)施配置技術(shù)規(guī)范
- 精選國企面試真題100例
- 長安大學輔導員考試題庫
- 質(zhì)量工程師工作簡歷
- 氣瓶的使用操作規(guī)程
- 西藏自治區(qū)2021年小升初數(shù)學考試真題與答案解析
- 深圳初中英語7、8、9 年級單詞表匯總
- 辦公區(qū)域節(jié)約能源管理規(guī)定辦公室節(jié)能降耗管理辦法及考核(5篇)
- 《三毛流浪記》作者簡介張樂平
評論
0/150
提交評論