資料結構課程設計紙牌遊戲

2022-05-20 15:07:08 字數 2618 閱讀 6206

攀枝花學院

學生課程設計(**)

題目紙牌遊戲

學生姓名: 李瓏學號:200810801029

所在院(系): 計算機學院

專業: 電腦科學與技術

班級08級2班

指導教師: 李艷華職稱: 助教

2023年 12月 27日

攀枝花學院教務處制

攀枝花學院本科學生課程設計任務書

課程設計(**)指導教師成績評定表

摘要資料結構課程是計算機專業中必修的核心課程之一,也是一門理論性很強的一門課程,同時也是一門鍛鍊程式涉及能力的實踐課程,此次課程設計從資料結構的基本特點出發,結合資料結構中經常涉及到的指標、陣列以及鍊錶迴圈結構等。

紙牌遊戲課程設計包括紙牌資訊的建立、了解其翻拍的原理、並簡明闡述翻牌的具體步驟與流程、最後輸出與列印翻牌結果,整個過程使學生進一步理解和掌握課堂上所學各種基本抽象資料型別的邏輯結構、儲存結構和操作實現演算法,以及它們在程式中的使用方法。掌握一般軟體設計的基本內容和設計方法,培養學生進行規範化軟體設計的能力。而且使學生掌握使用各種計算機資料和有關參考資料的方法,提高學生進行程式設計的基本能力。

關鍵詞資料結構,紙牌遊戲,c語言,**

目錄摘要

第一章題目與要求1

1.1 問題提出1

1.2 涉及知識點1

1.3 功能要求1

第二章功能設計2

2.1 演算法設計2

2. 2流程圖3

第三章程式**設計4

第四章程式測試與結果分析7

程式除錯情況7

程式結果分析7

第五章總結8

參考文獻9

附錄:程式清單10

第一章題目與要求

1.1 問題提出

「資料結構」旨在使學生學會分析研究資料物件的特性,學會資料的組織方法,以便選擇合適的資料邏輯結構和儲存結構,以及相應的運算,把現實世界中的問題轉化為計算機內部的表示和處理,這是乙個良好的程式設計技能訓練的過程。「資料結構」課程設計不僅可以幫助學生充分理解、鞏固所學的基本概念、原理和方法,更重要的是能夠針對實際問題來選擇資料結構,設計相應的儲存結構並加以實現,從而最終解決問題。結合資料結構所學知識,要求學生用c語言程式設計實現乙個簡單的紙牌遊戲設計。

紙牌遊戲程式通過測試,能夠正常執行,任務:編號為1-52張牌,正面向上,從第2張開始,以2為基數,是2的倍數的牌翻一次,直到最後一張牌;然後,從第3張開始,以3為基數,是3的倍數的牌翻一次,直到最後一張牌;然後…從第4張開始,以4為基數,是4的倍數的牌翻一次, 直到最後一張牌;...再依次5的倍數的牌翻一次,6的,7的直到以52為基數的翻過,輸出:

這時正面向上的牌有哪些?

輸出的紙牌號為:

1 4 9 16 25 36 49

1.2 涉及的知識點

結構、陣列、迴圈、函式、分支、指標

1.3 功能要求

紙牌遊戲基本內容具體要求包擴:

(1)建立紙牌資訊完成對編號為1-52張牌編碼,假定正面向上;

(2)從第2張開始,以2為基數,是2的倍數的牌翻一次,直到最後一張牌;

(3)然後,從第3張開始,以3為基數,是3的倍數的牌翻一次,直到最後一張牌;

(4)然後從第4張開始,以4為基數,是4的倍數的牌翻一次, 直到最後一張牌,再依次5的倍數的牌翻一次,6的,7的直到以52為基數的翻過,

(5)輸出。

第二章功能設計

2.1 演算法設計

1. 程式設計內容功能實現分析

當每個號碼每次遇到是某個數的倍數時,都會相應的翻一次,這樣,每張牌會翻的次數就各不一樣,可能很多次,也可能只有一兩次,結果就只是要輸出在經過各個不同次數的翻牌後,正面向上的牌都有哪幾個。

舉例說明一下,比如24,第一次它是2的倍數時要從正面翻到背面,當進行到3時,就又要從背面翻回來,而到4時還要在翻,同理呢,到6.8.12…它都要來回的翻。

如果它在多次的翻牌後,正面還向上了,那麼它就是要輸出的結果之一。

2. 程式設計內容功能實現與列印

用#define opposite(i) i = i?0:1這個巨集將牌的狀態標誌求反,也即為翻牌操作。

將所有的牌建立乙個陣列,運用for的迴圈巢狀執行以下操作:把52張牌初始化成正面朝上、控制基數和翻牌次數,判斷最終的紙牌朝向並列印出結果,具體實現演算法參看詳細設計。

2.2 程式流程圖

第三章程式**設計

首先需要巨集定義,可以隨便修改它的範圍,定義可以修改的初始化陣列p_int[max],用1表示正面向下,0表示反面向下;

void cscanf(int p_int[max]) max最大取52

其次第二部分包擴計算2到52的約數個數,規定奇數為反面向上,偶數字正面向上

void cdivisor(int p_int[max])

}輸出部分,即奇數字為反面的值為1表示正面向上的牌,並輸出其值

void cprintf(int p_int[max]) }

主函式部分,首先要有分配記憶體,函式主體部分呼叫cdivisor(p_card);

void main ()

{ int *p_card;

p_card=(int*) malloc((max+1)*sizeof(int));

cscanf(p_card);

cdivisor(p_card);

資料結構課程設計

指導書山東建築大學 電腦科學與技術學院 二 六年十二月 課程設計基本情況 課程名稱 資料結構課程設計 相關課程 c語言程式設計 visual c 程式設計 資料結構 適合專業 電腦科學與技術 網路工程 軟體工程 設計週數 2周 學分 2學分 開課學期 第4學期 開課單位 電腦科學與技術學院 一 課程...

資料結構課程設計

總結報告 專業軟體工程 班級軟體1007 學號 20103540 姓名 日期 2012.9.17 東北大學軟體學院 第一章需求分析 問題定義 實現乙個網上拍賣系統,根據需求描述和附加的框架 完成乙個網上拍賣系統。分析 整個系統執行於windows平台,是基於b s結構的商業應用程式,程式為使用者提供...

資料結構課程設計

環境與測繪學院 1 c 物件導向程式設計基礎 實驗簡介 學會用演算法語言c 描述抽象資料型別。理解資料結構的組成分為兩部分,第一部分是資料集 資料元素 第二部分是在此資料集上的操作。從物件導向的觀點看,這兩部分代表了物件的屬性和方法。掌握用c 描述資料結構的基本方法,即通過建立類來描述抽象資料型別。...