版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-. z.學(xué)院學(xué)生課程設(shè)計(jì)論文題 目: 紙牌游戲 學(xué)生: 00000 學(xué) 號(hào):0 所在院(系): 數(shù)學(xué)與計(jì)算機(jī)學(xué)院 專 業(yè): 網(wǎng)絡(luò)工程 班 級(jí): 2012級(jí)1班 指導(dǎo)教 師: 世文 職稱: 教授 2014年 01月 03日學(xué)院教務(wù)處制-. z.學(xué)院本科學(xué)生課程設(shè)計(jì)任務(wù)書題目紙牌游戲1、課程設(shè)計(jì)的目的通過本課程設(shè)計(jì)教學(xué)所要到達(dá)的目的是:培養(yǎng)學(xué)生用學(xué)到的書本知識(shí)解決實(shí)際問題的能力;培養(yǎng)實(shí)際工作所需要的動(dòng)手能力;培養(yǎng)學(xué)生以科學(xué)理論和工程上能力的技術(shù),規(guī)地開發(fā)大型、復(fù)雜、高質(zhì)量的應(yīng)用軟件和系統(tǒng)軟件具有關(guān)鍵性作用;通過課程設(shè)計(jì)的實(shí)踐,學(xué)生可以在程序設(shè)計(jì)方法、上機(jī)操作等根本技能和科學(xué)作風(fēng)方面受到比擬系統(tǒng)和
2、嚴(yán)格的訓(xùn)練。2、課程設(shè)計(jì)的容和要求包括原始數(shù)據(jù)、技術(shù)要求、工作要求等任務(wù):編號(hào)為1-52牌,正面向上,從第2開場(chǎng),以2為基數(shù),是2的倍數(shù)的牌翻一次,直到最后一牌;然后,從第3開場(chǎng),以3為基數(shù),是3的倍數(shù)的牌翻一次,直到最后一牌;然后從第4開場(chǎng),以4為基數(shù),是4的倍數(shù)的牌翻一次,直到最后一牌;.再依次5的倍數(shù)的牌翻一次,6的,7的直到以52為基數(shù)的翻過,輸出:這時(shí)正面向上的牌有哪些?3、主要參考文獻(xiàn)1數(shù)據(jù)構(gòu)造C語言版,嚴(yán)蔚敏,清華大學(xué),20032數(shù)據(jù)構(gòu)造題集,嚴(yán)蔚敏,清華大學(xué),20053數(shù)據(jù)構(gòu)造C語言版,大有,高等教育,20044Data Structure with C+,William Fo
3、rdWilliam Topp,清華大學(xué),20034、課程設(shè)計(jì)工作進(jìn)度方案序號(hào)時(shí)間天容安排備注11分析設(shè)計(jì)準(zhǔn)備周一22編程調(diào)試階段周二至周三31編寫課程設(shè)計(jì)報(bào)告周四41考核周五總計(jì)5天指導(dǎo)教師簽字日期年 月 日教研室意見:年 月 日學(xué)生簽字: 承受任務(wù)時(shí)間: 年 月 日注:任務(wù)書由指導(dǎo)教師填寫。課程設(shè)計(jì)論文指導(dǎo)教師成績(jī)?cè)u(píng)定表題目名稱紙牌游戲評(píng)分工程分值得分評(píng)價(jià)涵工作表現(xiàn)20%01學(xué)習(xí)態(tài)度6遵守各項(xiàng)紀(jì)律,工作刻苦努力,具有良好的科學(xué)工作態(tài)度。02科學(xué)實(shí)踐、調(diào)研7通過實(shí)驗(yàn)、試驗(yàn)、查閱文獻(xiàn)、深入生產(chǎn)實(shí)踐等渠道獲取與課程設(shè)計(jì)有關(guān)的材料。03課題工作量7按期圓滿完成規(guī)定的任務(wù),工作量飽滿。能力水平35%0
4、4綜合運(yùn)用知識(shí)的能力10能運(yùn)用所學(xué)知識(shí)和技能去發(fā)現(xiàn)與解決實(shí)際問題,能正確處理實(shí)驗(yàn)數(shù)據(jù),能對(duì)課題進(jìn)展理論分析,得出有價(jià)值的結(jié)論。05應(yīng)用文獻(xiàn)的能力5能獨(dú)立查閱相關(guān)文獻(xiàn)和從事其他調(diào)研;能提出并較好地論述課題的實(shí)施方案;有收集、加工各種信息及獲取新知識(shí)的能力。06設(shè)計(jì)實(shí)驗(yàn)?zāi)芰?,方案的設(shè)計(jì)能力5能正確設(shè)計(jì)實(shí)驗(yàn)方案,獨(dú)立進(jìn)展裝置安裝、調(diào)試、操作等實(shí)驗(yàn)工作,數(shù)據(jù)正確、可靠;研究思路清晰、完整。07計(jì)算及計(jì)算機(jī)應(yīng)用能力5具有較強(qiáng)的數(shù)據(jù)運(yùn)算與處理能力;能運(yùn)用計(jì)算機(jī)進(jìn)展資料搜集、加工、處理和輔助設(shè)計(jì)等。08對(duì)計(jì)算或?qū)嶒?yàn)結(jié)果的分析能力綜合分析能力、技術(shù)經(jīng)濟(jì)分析能力10具有較強(qiáng)的數(shù)據(jù)收集、分析、處理、綜合的能力。成
5、果質(zhì)量45%09插圖或圖紙質(zhì)量、篇幅、設(shè)計(jì)論文規(guī)化程度5符合本專業(yè)相關(guān)規(guī)或規(guī)定要求;規(guī)化符合本文件第五條要求。10設(shè)計(jì)說明書論文質(zhì)量30綜述簡(jiǎn)練完整,有見解;立論正確,論述充分,結(jié)論嚴(yán)謹(jǐn)合理;實(shí)驗(yàn)正確,分析處理科學(xué)。11創(chuàng)新10對(duì)前人工作有改良或突破,或有獨(dú)特見解。成績(jī)指導(dǎo)教師評(píng)語指導(dǎo)教師簽名: 年月日-. z.摘 要 數(shù)據(jù)構(gòu)造課程是計(jì)算機(jī)專業(yè)中必修的核心課程之一,也是一門理論性很強(qiáng)的一門課程,同時(shí)也是一門鍛煉程序涉及能力的實(shí)踐課程,數(shù)據(jù)構(gòu)造成為計(jì)算機(jī)程序設(shè)計(jì)的重要理論技術(shù)根底,它不僅是計(jì)算機(jī)學(xué)科的核心課程,而且已成為其它理工專業(yè)的熱門選修課。主要包括線性表、樹和二叉樹以及圖等根本類型的數(shù)據(jù)構(gòu)
6、造。數(shù)據(jù)構(gòu)造是一門研究非數(shù)值計(jì)算的程序設(shè)計(jì)問題中計(jì)算機(jī)的操作對(duì)象以及它們之間的關(guān)系和運(yùn)算等的學(xué)科,包括數(shù)據(jù)的邏輯構(gòu)造、數(shù)據(jù)的存儲(chǔ)構(gòu)造和數(shù)據(jù)的運(yùn)算這三個(gè)方面的容,其中邏輯構(gòu)造可分為線性構(gòu)造和非線性構(gòu)造;存儲(chǔ)構(gòu)造可分為順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)兩類,圖則屬于邏輯構(gòu)造中的非線性構(gòu)造。廣度優(yōu)先搜索(BFS)用的隊(duì)列一步一步完成的,從而找到的是最短路徑。 紙牌游戲課程設(shè)計(jì)包括紙牌信息的建立、了解其翻拍的原理、并簡(jiǎn)明闡述翻牌的具體步驟與流程、最后輸出與打印翻牌結(jié)果,整個(gè)過程使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)各種根本抽象數(shù)據(jù)類型的邏輯構(gòu)造、存儲(chǔ)構(gòu)造和操作實(shí)現(xiàn)算法,以及它們?cè)诔绦蛑械氖褂梅椒?。掌握一般軟件設(shè)計(jì)的根本容和
7、設(shè)計(jì)方法,培養(yǎng)學(xué)生進(jìn)展規(guī)化軟件設(shè)計(jì)的能力。而且使學(xué)生掌握使用各種計(jì)算機(jī)資料和有關(guān)參考資料的方法,提高學(xué)生進(jìn)展程序設(shè)計(jì)的根本能力。關(guān)鍵詞:數(shù)據(jù)構(gòu)造,紙牌游戲,BFS,遍歷AbstractData structure course is one of required core curriculum in puter major, course is a very practical, is also an e*ercise program involves the ability to practice curriculum, has bee an important theoretical a
8、nd technical foundation of puter program design data structure, it is not only the core course of puter science, and has bee a hot elective course for other science majors. Mainly includes the basic data structure type linear table, tree and binary tree and graph of two. Data structure is a research
9、 of non puter program of numerical calculation design problems in operating the objects and their relationships and operations and other disciplines, including logic structure, storage structure and data operation data of the three aspects of content, the logical structure can be divided into linear
10、 and nonlinear structures; storage structure can be divided into sequential storage and chain store two, graph belongs to nonlinear structure in the logical structure. Breadth first search (BFS) with cohort pleted step by step, so as to find the shortest path. A card game Solitaire, curriculum desig
11、n includes information about its principle, and e*pounds the flop remake of the concrete steps and processes, the final output and print flop results, the whole process to enable students to understand and master the various basic abstract data type science class logical structure, storage structure
12、 and operation of the realization of algorithm, and their in the process of using the method. To master the basic content and the general design method of software design, training students ability of design software specification. And to make the students master the use of various puter data and me
13、thods for reference, to improve the students basic ability of program design.Key words:data structure, card games, BFS, traversal-. z.目錄TOC o 1-3 h u HYPERLINK l _Toc30664 摘 要 PAGEREF _Toc30664 I HYPERLINK l _Toc17123 Abstract PAGEREF _Toc17123 II HYPERLINK l _Toc15565 1 前言 PAGEREF _Toc15565 2 HYPER
14、LINK l _Toc4880 1.1 課題背景 PAGEREF _Toc4880 2 HYPERLINK l _Toc815 1.2 課程設(shè)計(jì)目的 PAGEREF _Toc815 2 HYPERLINK l _Toc23884 2 相關(guān)技術(shù)分析 PAGEREF _Toc23884 3 HYPERLINK l _Toc1525 2.1概要設(shè)計(jì) PAGEREF _Toc1525 3 HYPERLINK l _Toc3422 2.2設(shè)計(jì)原始數(shù)據(jù)的輸入及輸出格式 PAGEREF _Toc3422 4 HYPERLINK l _Toc27114 2.3算法流程圖 PAGEREF _Toc27114 6
15、 HYPERLINK l _Toc8408 3 設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc8408 7 HYPERLINK l _Toc10763 3.1 數(shù)據(jù)構(gòu)造PAGEREF _Toc10763 7 HYPERLINK l _Toc2414 3.2詳細(xì)設(shè)計(jì)和編碼 PAGEREF _Toc2414 7 HYPERLINK l _Toc11141 3.2.1 定義全局變量: PAGEREF _Toc11141 7 HYPERLINK l _Toc12526 3.2.1主要程序代碼與分析如下: PAGEREF _Toc12526 7 HYPERLINK l _Toc6231 3.3 上機(jī)調(diào)試過程 PA
16、GEREF _Toc6231 10 HYPERLINK l _Toc2850 5 測(cè)試結(jié)果及其分析 PAGEREF _Toc2850 11 HYPERLINK l _Toc18398 6 用戶使用說明 PAGEREF _Toc18398 18 HYPERLINK l _Toc25027 7 源代碼 PAGEREF _Toc25027 18 HYPERLINK l _Toc13690 結(jié)論 PAGEREF _Toc13690 19 HYPERLINK l _Toc24849 參考文獻(xiàn) PAGEREF _Toc24849 20 HYPERLINK l _Toc2370 附錄 PAGEREF _To
17、c2370 211 前言數(shù)據(jù)構(gòu)造是軟件工程專業(yè)的必修課之一,是一門綜合性的專業(yè)根底課。本課程較系統(tǒng)地介紹了軟件設(shè)計(jì)中常用的數(shù)據(jù)構(gòu)造以及相應(yīng)的實(shí)現(xiàn)算法,如線性表、棧、隊(duì)列、樹和二叉樹,圖、檢索和排序等,并對(duì)性能進(jìn)展分析和比擬,容非常豐富。1.1 課題背景數(shù)據(jù)構(gòu)造旨在使學(xué)生學(xué)會(huì)分析研究數(shù)據(jù)對(duì)象的特性,學(xué)會(huì)數(shù)據(jù)的組織方法,以便選擇適宜的數(shù)據(jù)邏輯構(gòu)造和存儲(chǔ)構(gòu)造,以及相應(yīng)的運(yùn)算,把現(xiàn)實(shí)世界中的問題轉(zhuǎn)化為計(jì)算機(jī)部的表示和處理,這是一個(gè)良好的程序設(shè)計(jì)技能訓(xùn)練的過程。數(shù)據(jù)構(gòu)造課程設(shè)計(jì)不僅可以幫助學(xué)生充分理解、穩(wěn)固所學(xué)的根本概念、原理和方法,更重要的是能夠針對(duì)實(shí)際問題來選擇數(shù)據(jù)構(gòu)造,設(shè)計(jì)相應(yīng)的存儲(chǔ)構(gòu)造并加以實(shí)現(xiàn)
18、,從而最終解決問題。結(jié)合數(shù)據(jù)構(gòu)造所學(xué)知識(shí),要求學(xué)生用C語言編程實(shí)現(xiàn)一個(gè)簡(jiǎn)單的紙牌游戲設(shè)計(jì)。1.2 課程設(shè)計(jì)目的1使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)各種根本抽象數(shù)據(jù)類型的邏輯構(gòu)造、存儲(chǔ)構(gòu)造和操作實(shí)現(xiàn)算法,以及它們?cè)诔绦蛑械氖褂梅椒ā?使學(xué)生掌握軟件設(shè)計(jì)的根本容和設(shè)計(jì)方法,并培養(yǎng)學(xué)生進(jìn)展規(guī)化軟件設(shè)計(jì)的能力。3 使學(xué)生掌握使用各種計(jì)算機(jī)資料和有關(guān)參考資料,提高學(xué)生進(jìn)展程序設(shè)計(jì)的根本能力。2 相關(guān)技術(shù)分析2.1概要設(shè)計(jì)按照題目的要求,首先,應(yīng)對(duì)52牌進(jìn)展編號(hào)并且保存它們的編號(hào)信息,編號(hào)的類型為整型,而對(duì)于這樣固定的數(shù)據(jù),使用整型數(shù)組是最好的,因此,我們需要在程序的開場(chǎng)定義一共整型的數(shù)組,同時(shí),為了方便對(duì)
19、翻轉(zhuǎn)過程的記錄,在定義記錄編號(hào)信息的同時(shí),定義一個(gè)與之相對(duì)應(yīng)的標(biāo)記數(shù)組,數(shù)組類型為整型。該程序的核心為一個(gè)嵌套的循環(huán),所以定義兩個(gè)變量i,j作為循環(huán)條件。接著開場(chǎng)對(duì)變量進(jìn)展初始化,首先是編號(hào)信息數(shù)組,使用for循環(huán)對(duì)數(shù)組進(jìn)展1到52的賦值,代表52紙牌,然后對(duì)標(biāo)記數(shù)組賦值,將數(shù)組的所有的值初始化為零,方便在接下來的循環(huán)中統(tǒng)計(jì)每牌的翻牌數(shù)。數(shù)據(jù)初始化完畢后,開場(chǎng)按照要求對(duì)紙牌進(jìn)展翻轉(zhuǎn),在嵌套循環(huán)中,定義了一個(gè)全局變量Flag,值為-1,負(fù)數(shù)定義為向下,正數(shù)定義為向上,這樣,翻轉(zhuǎn)一次,即乘以Flag,同時(shí),符合翻轉(zhuǎn)條件時(shí),標(biāo)記數(shù)組相應(yīng)的編號(hào)的紙牌翻牌次數(shù)+1。它都要來回的翻。如果它在屢次的翻牌后,
20、正面還向上了,則它就是要輸出的結(jié)果之一。 循環(huán)完畢后,編號(hào)數(shù)組中的數(shù)據(jù)已經(jīng)更新,因此對(duì)數(shù)組進(jìn)展掃描,大于零的即為正面向上的紙牌,輸出其編號(hào)即可,同時(shí),輸出標(biāo)記數(shù)組中的值,顯示每牌的翻牌記錄,方便觀察或者尋找規(guī)律。到此,整個(gè)題目完畢。2.2設(shè)計(jì)原始數(shù)據(jù)的輸入及輸出格式 原始數(shù)據(jù)要求輸入紙牌的根底編號(hào),編號(hào)的輸入為整型。輸出的是經(jīng)過規(guī)律翻轉(zhuǎn)后正面向上的紙牌的編號(hào)。輸入的數(shù)據(jù)信息如下:紙牌:1、2、3、51、52。問題直觀分析表:123456789101112123456789101112注:圖中表示翻轉(zhuǎn)一次。2.3算法流程圖2.1:算法設(shè)計(jì)圖開場(chǎng)設(shè)一個(gè)一維數(shù)組card52,并將所有變量賦初值為0,
21、表示牌正面朝上2=jj52j=kk52k%j=0翻牌,如果cardk-1為0,則變?yōu)?;如果為1,則變?yōu)?k+輸出card數(shù)組中正面朝上的牌的序號(hào)完畢j+3 設(shè)計(jì)與實(shí)現(xiàn)3.1 數(shù)據(jù)構(gòu)造 按照題目要求,整個(gè)主體包括一個(gè)嵌套的循環(huán),外循環(huán)控制從2開場(chǎng)每紙牌都作為基數(shù)進(jìn)展翻牌,循環(huán)控制對(duì)所有紙牌進(jìn)展判斷,如果是當(dāng)前循環(huán)中基數(shù)的倍數(shù),則對(duì)其進(jìn)展翻轉(zhuǎn)操作。具體代碼如下:for(i=2;i=52;i+)for(j=1;j=52;j+)if(j%i=0)dataj-1=dataj-1*Flag;3.2詳細(xì)設(shè)計(jì)和編碼3.2.1 定義全局變量:作為判斷紙牌是否向上的依據(jù),我們需要定義一個(gè)全局變量Flag=-1,
22、在循環(huán)中對(duì)所有紙牌進(jìn)展操作。3.2.1主要程序代碼與分析如下:#define Flag -1考慮到最后要判斷哪些紙牌是正面向上的,所以必須要有一共判斷條件,因此定義一個(gè)全局變量作為正反面的判斷條件。void main()int i,j,data52,flag52;char m;在程序開場(chǎng),建立了兩個(gè)數(shù)組,一個(gè)存放52牌的編號(hào),另外一個(gè)存放相應(yīng)編號(hào)的紙牌的翻牌記錄,便于后面對(duì)翻牌次數(shù)的輸出。for(i=1;i=52;i+)datai-1=i;通過for循環(huán),向數(shù)組中錄入1-52個(gè)數(shù),作為52牌的編號(hào),以便進(jìn)展接下來的操作flagi-1=0;將flag數(shù)組中的相應(yīng)編號(hào)紙牌的翻牌數(shù)初始化為0,在接下
23、來的循環(huán)中,需要對(duì)翻牌次數(shù)進(jìn)展統(tǒng)計(jì)。for(i=2;i=52;i+)嵌套循環(huán)的外循環(huán),保證基數(shù)的循環(huán)。for(j=1;j=52;j+)嵌套循環(huán)的循環(huán),對(duì)每紙牌進(jìn)展基數(shù)的倍數(shù)條件判斷if(j%i=0)dataj-1=dataj-1*Flag;flagj-1+;翻牌一次,則相應(yīng)的標(biāo)記數(shù)組中該編號(hào)的位置數(shù)值+1,即將翻牌次數(shù)記入flag數(shù)組中。printf(最后所有正面向上的牌有:);for(i=0;i0)該題目中將大于零的編號(hào)定義為正面向上的紙牌的編號(hào)printf(第%d牌 ,i+1);printf(n);以上為程序主要代碼的分析。在程序中,主要還包括功能界面,如下:printf(tn);prin
24、tf(tn);printf(t 歡送進(jìn)入紙牌游戲 n);printf(t 1.查看題目 n);printf(t 2.查看所有紙牌的翻牌次數(shù) n);printf(t 3.查看指定編號(hào)紙牌翻牌記錄 n);printf(t 4.查看最終正面向上的紙牌編號(hào) n);printf(t 5.制作人信息 n);printf(t 0.按0鍵完畢 n);printf(tn);printf(tn);同時(shí),整個(gè)功能實(shí)現(xiàn)由do-while語句和switch語句組合而成,do-while語句可以保證界面最少運(yùn)行一次,switch語句保證每個(gè)功能獨(dú)立實(shí)現(xiàn),通過choice的輸入來進(jìn)入不同的功能,同時(shí)在每個(gè)小的獨(dú)立功能,我都
25、添加了獨(dú)立判斷是否回到主菜單的語句,如下:printf(是否回到主菜單?(Y/N):);n=getchar();n=getchar();if(n=Y)break;else if(n=N)choice=0;else printf(*(提示:輸入錯(cuò)誤,默認(rèn)為繼續(xù)。)*n);整個(gè)do-while語句的完畢條件為:choice=0,所以如果用戶輸入為N,則直接將0賦值給choice,則符合循環(huán)完畢的條件,則直接完畢程序,如果輸入為Y,則break,繼續(xù)循環(huán),輸入錯(cuò)誤,沒有對(duì)choice任何的賦值操作,即不能滿足完畢條件,則無論輸入什么都默認(rèn)為繼續(xù),break后繼續(xù)循環(huán)。由于程序默認(rèn)的將回車操作通過ge
26、tchar()賦值給n,導(dǎo)致不能正常的實(shí)現(xiàn)下面的判斷,而直接顯示為輸入錯(cuò)誤,所以參加兩個(gè)n=getchar()語句,保證第二句能夠正確的實(shí)現(xiàn)功能,讓用戶自行輸入條件,進(jìn)展下一步的操作。在整個(gè)程序中,存在著大量的輸入判斷條件,如下:if(num52)printf(t輸入錯(cuò)誤!n);這兩句代碼就是對(duì)輸入的num值進(jìn)展判斷,由于紙牌序號(hào)為1-52,所以不在這個(gè)圍的值都為錯(cuò)誤值,需要有一個(gè)錯(cuò)誤信息的反應(yīng),所以需要對(duì)輸入的信息進(jìn)展判斷,然后通過不同的值對(duì)數(shù)據(jù)進(jìn)展相應(yīng)的操作,這對(duì)于程序的正確運(yùn)行,有著至關(guān)重要的作用。3.3 上機(jī)調(diào)試過程該程序任務(wù)相比照擬簡(jiǎn)單,思路較明確。在一開場(chǎng)編寫代碼的時(shí)候,在嵌套循環(huán)
27、中,外循環(huán)for的條件(i=2;i=52;i+),寫成i=1;i=52;i+,導(dǎo)致對(duì)每個(gè)紙牌的翻轉(zhuǎn)都多判斷了一次,按照一開場(chǎng)定義的大于零的編號(hào)數(shù)為正面向上的條件,最后輸出的結(jié)果正好相反,經(jīng)過修改調(diào)試后,問題解決。在每個(gè)case中參加獨(dú)立的判斷是否回到主菜單的語句,一開場(chǎng)getchar總是不能正確錄入,沒有輸入就直接運(yùn)行下一個(gè)語句,在參加控制語句后經(jīng)過調(diào)試發(fā)現(xiàn),程序把上一個(gè)輸入的回車直接默認(rèn)賦值給getchar(),導(dǎo)致沒有輸入,直接進(jìn)展下一個(gè)語句,后來使用了兩個(gè)連續(xù)的getchar()語句,第一個(gè)getchar()語句默認(rèn)為回車,但是后面一個(gè)getchar()語句可以正確的重新輸入判斷值,經(jīng)過
28、重新的調(diào)試,運(yùn)行正常,問題解決,但是希望能找到更完善的答案。在判斷是否繼續(xù)輸入紙牌編碼的功能中,同樣遇到了這個(gè)問題,按照一樣的解決方法解決。整個(gè)程序由一個(gè)大的do-while語句和switch語句組合實(shí)現(xiàn)界面的不同功能,do-while語句通過choice=0作為完畢的條件,在case 3中,有一個(gè)小的do-while語句實(shí)現(xiàn)紙牌編號(hào)的重復(fù)輸入,在整個(gè)程序中有很多信息的輸入,需要根據(jù)輸入的信息正確與否來反應(yīng)信息,否則會(huì)導(dǎo)致程序出錯(cuò),所以在調(diào)試的過程中參加了很多判斷條件,可以解決信息輸入錯(cuò)誤的情況,但是仍然存在輸入非整型值程序出錯(cuò)的問題,所以在輸入條件中參加提示信息,以保證信息類型輸入正確。5
29、測(cè)試結(jié)果及其分析1.測(cè)試結(jié)果如下列圖5.1-5.11;2結(jié)果分析以注釋的形式寫在圖的下方;圖5.1:MessageBo*制作的一個(gè)歡送提示5.2:紙牌游戲程序的主功能界面5.3:紙牌游戲程序功能1:查看題目5.4:紙牌游戲程序功能2:查看所有紙牌的翻牌次數(shù)5.4.1:續(xù)5.4第一章 題目與要求5.4.2:續(xù)5.45.5:紙牌游戲程序功能3:查看指定編號(hào)紙牌翻牌記錄5.6:紙牌游戲程序功能4:查看最終正面向上的紙牌編號(hào)5.7:紙牌游戲程序完畢畫面5.8:主界面輸入錯(cuò)誤提示5.9:功能3輸入錯(cuò)誤提示以及判斷是否需要繼續(xù)查詢紙牌編碼5.10:回主菜單判斷以及輸入錯(cuò)誤提示5.11:功能5輸出制作人信息
30、6 用戶使用說明用戶運(yùn)行程序,按操作提示進(jìn)展操作。程序運(yùn)行環(huán)境VC+6.0。7 源代碼見附錄結(jié)論 這個(gè)學(xué)期是我第一次接觸數(shù)據(jù)構(gòu)造,在完成設(shè)計(jì)的過程中,我遇到了一系列的問題,能明顯感覺到自己在很多方面的缺乏,但另一方面,問題是要分析解決的,找出問題以便為完善學(xué)習(xí)方案,改變學(xué)習(xí)容與方法提供實(shí)踐依據(jù)。所以在整個(gè)過程中,我不斷加深了對(duì)數(shù)據(jù)構(gòu)造的理解與一些程序?qū)憰鴷r(shí)要注意的事項(xiàng),體會(huì)了數(shù)據(jù)構(gòu)造這門課程在解決現(xiàn)實(shí)生活問題上的可行性,也更進(jìn)一步地激發(fā)了我的學(xué)習(xí)熱情。 做一個(gè)課程設(shè)計(jì)要注意很多方面,無論是格式,還是書寫的容和要表達(dá)的思想都得嚴(yán)格要求自己,所以做起來真的不算容易。本次課程設(shè)計(jì)涉及了很多知識(shí),由于
31、往日沒有學(xué)得很扎實(shí),對(duì)*些問題仍然比擬疑惑,所以要進(jìn)展充足的補(bǔ)習(xí)。期間,我翻閱了很多書籍,知識(shí)總是聯(lián)系很嚴(yán)密的,解決完這個(gè)問題又發(fā)現(xiàn)了新的問題,之后,為了解決新問題又發(fā)現(xiàn)了更多的問題,就這樣,我得等到一個(gè)一個(gè)把問題處理完。問題越多,明白的也就會(huì)越來越多,做一次課程設(shè)計(jì)就像從頭到尾做了一次系統(tǒng)的復(fù)習(xí),從根底到難點(diǎn),從輪廓到每個(gè)知識(shí)點(diǎn),數(shù)據(jù)構(gòu)造的研究容在我的腦海里就再也不像以前則模糊了。設(shè)計(jì)程序來解決現(xiàn)在存在的問題,把理論知識(shí)付諸于實(shí)踐,對(duì)于我們這些計(jì)算機(jī)專業(yè)的本科生來說,實(shí)際能力的培養(yǎng)至關(guān)重要,而這種實(shí)際能力的培養(yǎng)單靠課堂教學(xué)是遠(yuǎn)遠(yuǎn)不夠的,必須從課堂走向?qū)嵺`,這也是我們學(xué)習(xí)的目的。做完設(shè)計(jì),我已
32、深刻體會(huì)到了學(xué)習(xí)這門課程的重要性與必要性了,同時(shí),它留給我很多思考:學(xué)習(xí)是思考一個(gè)的過程,我們應(yīng)該主動(dòng)去想學(xué)習(xí)一門知識(shí)后怎么去運(yùn)用,而不是一味地被動(dòng)地承受。數(shù)據(jù)構(gòu)造及其算法在解決現(xiàn)實(shí)生活中的常見問題和書寫軟件設(shè)計(jì)方面上都有著重要的意義,我們應(yīng)該好好掌握它的相關(guān)知識(shí),在以后的學(xué)習(xí)過程中,更多的去學(xué)會(huì)如何運(yùn)用知識(shí)。參考文獻(xiàn)1.王昆侖、紅 數(shù)據(jù)構(gòu)造與算法 :中國(guó)鐵道2.寧國(guó)正 數(shù)據(jù)構(gòu)造C語言版 :東南大學(xué)3.嚴(yán)尉敏 數(shù)據(jù)構(gòu)造C語言版 :清華大學(xué)4.吳乃陵 C程序設(shè)計(jì) :高等教育5 譚浩強(qiáng),基溫,唐永炎編著. C語言程序設(shè)計(jì)教程. :高等教育,19926 譚浩強(qiáng)編著. C語言程序設(shè)計(jì). :清華大學(xué),
33、20077 嚴(yán)蔚敏,吳偉民編著. 數(shù)據(jù)構(gòu)造(C語言版). :清華大學(xué),20088 嚴(yán)蔚敏,吳偉民,米寧編著. 數(shù)據(jù)構(gòu)造題集C語言版:清華大學(xué),20089 愛民編著. 離散數(shù)學(xué). ;郵電大學(xué),2008附錄程序源代碼:#include#include#define Flag -1/定義一個(gè)全局變量作為正反面的判斷條件。void main()int i,j,data52,flag52,choice,num;/建立兩個(gè)數(shù)組,一個(gè)存放52牌的編號(hào),另外一個(gè)存放相應(yīng)編號(hào)的紙牌的翻牌記錄。char m,n;MessageBo*(NULL,歡送進(jìn)入紙牌游戲程序!,溫馨提示,MB_ICONASTERISK);/
34、添加了一個(gè)MessageBo*歡送對(duì)話框for(i=1;i=52;i+)datai-1=i;/錄入52牌的編號(hào)。 flagi-1=0;/將相應(yīng)編號(hào)紙牌的翻牌數(shù)初始化為0。for(i=2;i=52;i+)/外循環(huán),基數(shù)循環(huán)。for(j=1;j=52;j+)/循環(huán),基數(shù)倍數(shù)條件判斷。if(j%i=0)dataj-1=dataj-1*Flag;/將翻轉(zhuǎn)后的結(jié)果更新data中的數(shù)據(jù)。flagj-1+;/翻牌一次,即記入flag數(shù)組中。doprintf(tn);printf(tn);printf(t 歡送進(jìn)入紙牌游戲 n);printf(t 1.查看題目 n);printf(t 2.查看所有紙牌的翻牌次
35、數(shù) n);printf(t 3.查看指定編號(hào)紙牌翻牌記錄 n);printf(t 4.查看最終正面向上的紙牌編號(hào) n);printf(t 5.制作人信息 n);printf(t 0.按0鍵完畢 n);printf(tn);printf(tn);printf(請(qǐng)輸入您的選擇數(shù)字0-5:);/主界面scanf(%d,&choice);switch(choice)/通過switch語句進(jìn)展功能的選擇case 1:printf(題目n);printf(*n);printf(編號(hào)為1-52牌,正面向上,從第2開場(chǎng),以2為基數(shù),是2的倍數(shù)的牌翻一次,);printf(直到最后一牌;然后,從第3開場(chǎng),以3為
36、基數(shù),是3的倍數(shù)的牌翻一次,);printf(直到最后一牌;直到以52為基數(shù)的翻過,輸出:這時(shí)輸出正面向上的牌有哪些?n);printf(*);printf(n);printf(n);printf(是否回到主菜單?(Y/N):);/在每個(gè)獨(dú)立功能后添加了獨(dú)立的判斷語句,從而可以選擇性的回到主菜單。n=getchar();n=getchar();if(n=Y)break;else if(n=N)choice=0;/0作為整個(gè)界面的循環(huán)完畢條件,所以直接將choice=0,即可完畢循環(huán)。else printf(*(提示:輸入錯(cuò)誤,默認(rèn)為繼續(xù)。)*n); break;case 2:printf(以下為翻牌記錄:n);printf(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度婚姻解除協(xié)議談判策略與技巧詳解3篇
- 二零二五年度個(gè)人健康保險(xiǎn)產(chǎn)品定制合同
- 美容行業(yè)護(hù)膚技術(shù)培訓(xùn)總結(jié)
- 娛樂休閑行業(yè)推廣總結(jié)
- 二零二五年度個(gè)人快遞業(yè)務(wù)承包合同范本8篇
- 科創(chuàng)孵化器服務(wù)模式與運(yùn)營(yíng)模式
- 二零二五版庭院租賃合同包含庭院內(nèi)咖啡廳經(jīng)營(yíng)許可3篇
- 二零二五年度金融業(yè)務(wù)授權(quán)委托書模板與字號(hào)規(guī)范6篇
- 二零二五年度農(nóng)田租賃與農(nóng)業(yè)電商平臺(tái)合作協(xié)議4篇
- 二零二五年度設(shè)計(jì)公司股權(quán)轉(zhuǎn)讓與智慧城市建設(shè)合同3篇
- 混凝土試件臺(tái)賬
- 人員密集場(chǎng)所消防安全培訓(xùn)
- 液晶高壓芯片去保護(hù)方法
- 使用AVF血液透析患者的護(hù)理查房
- 拜太歲科儀文檔
- 2021年高考山東卷化學(xué)試題(含答案解析)
- 2020新譯林版高中英語選擇性必修一重點(diǎn)短語歸納小結(jié)
- GB/T 19668.7-2022信息技術(shù)服務(wù)監(jiān)理第7部分:監(jiān)理工作量度量要求
- 品管圈活動(dòng)提高氧氣霧化吸入注意事項(xiàng)知曉率
- 連續(xù)鑄軋機(jī)的工作原理及各主要參數(shù)
評(píng)論
0/150
提交評(píng)論