資料結構課程設計報告 模版

2022-10-19 05:03:04 字數 2598 閱讀 3693

攀枝花學院

學生課程設計(**)

題目學生姓名

學號所在院(系): 數學與計算機學院

專業: 電腦科學與技術專業

班級:2011級電腦科學與技術1班

指導教師: 蔣斌職稱: 講師

2023年12月 19 日

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

注:任務書由指導教

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

本次課程設計是利用資料結構的知識編寫乙個能夠實現學生配對的問題的軟體,以達到在每一首歌曲中能夠有學生配對來進行舞蹈表演。為了實現這乙個功能我們用利用已學的知識進行編寫程式。

通過學習資料結構課程和c語言的知識,主要利用資料結構的佇列和c語言知識來實現軟體的功能。

主要是把男女生分別放在兩個佇列中,要涉及到佇列的判斷和迴圈等演算法。判斷佇列的滿和空的知識來完成。

關鍵字:學生搭配問題,資料結構,佇列,c語言,軟體,功能

目錄摘要 iii

1.方案設計 2

1.1問題描述 2

1.2需求分析 2

1.3執行環境 2

1.4概要設計 3

2.演算法設計 4

2.1演算法設計思想 4

2.2演算法設計的對應方式 4

2.3演算法設計流程圖 5

3.詳細設計 6

3.1設計思想 6

3.2設計關鍵演算法 6

4.除錯分析 8

4.1、測試及結果 8

5.總結 10

參考文獻 11

程式清單 12

一班有m個女生,有n個男生(m不等於n),現要開乙個舞會. 男女生分別編號坐在舞池的兩邊的椅子上.

每曲開始時,依次從男生和女生中各出一人配對跳舞, 本曲沒成功配對者坐著等待下一曲找舞伴.

請設計一系統模擬動態地顯示出上述過程,要求如下:

1) 輸出每曲配對情況

2) 計算出任何乙個男生(編號為x)和任意女生(編號為y),在第k曲配對跳舞的情況.至少求出k的兩個值。

核心問題:迴圈佇列的應用

資料模型(邏輯結構):迴圈佇列(兩個),將男生、女生兩組人分別存放,以後實現迴圈配對輸出。

儲存結構:迴圈鍊錶

核心演算法:迴圈佇列的入隊,出隊,判隊滿,判隊空。

輸入資料:男生人數、女生人數,歌曲數量

輸出資料:每一首歌曲**時,男生和女生搭配情況(輸出編號)

當要查詢的男女搭配時輸出歌曲編號,和他們搭配的總次數。

通過以上分析,該程式具有可行性。

硬體開發環境:pc機

軟體開發環境:vc++ 6.0

作業系統環境window xp

整個設計的流程圖

圖1.1

佇列(queue)是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表。

迴圈佇列是在佇列的順序儲存結構中,除了用乙組位址連續的儲存單元依次存放從佇列頭到佇列尾的元素外,尚需附設兩個指標front和rear分別指示佇列頭元素和佇列尾元素的位置。

迴圈佇列(兩個),將男生、女生兩組人分別存放,以實現迴圈配對輸出。迴圈佇列的入隊,出隊,判隊滿,判隊空。

(1) 要模擬動態地顯示出現題目中所要求的迴圈,我們要先建立兩個迴圈佇列sqqueue和sqqueue2。

(2) 將男生、女生兩組人分別存入這兩個佇列。以實現他們的迴圈配對輸出,這是迴圈佇列固有的特性。

(3) 利用迴圈佇列的特性,將男女生分別進行入佇列和出佇列操作,且實現搭配輸出。

(4) 迴圈佇列的長度分別設為男女生的個數即可。

(5) 在計算機終端輸出的結果是:根據要求輸出男生女生搭配情況。

假如有3個男生2個女生的配對方式

圖 2圖 3

建立鏈式迴圈佇列來分別儲存男生和女生,然後呼叫入隊出隊函式實現迴圈佇列的配對輸出。為了充分利用向量空間,克服上述儲存結構上溢現象的方法是將向量空間想象為乙個首尾相接的圓環,儲存在其中成為迴圈佇列。再迴圈佇列中進行入隊、出隊操作時,頭指標仍要加1,向前移動。

只不過當頭指標指向上界時其加1操作變為指向下界,這樣就可以通過出隊再入隊來實現男生女生的迴圈搭配了。

(1)關鍵演算法之一:初始化佇列

void initq(linkqueue &q)

(2)關鍵演算法之二:入隊函式

void enqueue(linkqueue &q,int num)//入隊函式

(3)關鍵演算法之三:出隊函式

void dequeue(linkqueue &q, int &num)//出隊函式

(4)關鍵演算法之四:輸出第i首曲子時女隊的情況

void printf(linkqueue &f,int i) //輸出第i首曲子時女隊的情況

p=>next;

while(

printf("%d \n",p->num);

}1. 測試輸入資料:男女生的個數曲子數

圖42.要查詢學生的編號:

圖 53.輸出結果為:每首曲子男女生搭配的情況

程式執行介面如下:

圖 6

通過一周的學習和實踐,解決實際問題(學生搭配問題),讓我對迴圈佇列有了更深的了解,對資料結構產生了濃厚的興趣,同時也讓我提高了解決實際問題的能力。

資料結構課程設計模版 家譜

課程設計名稱 資料結構 系學生姓名 班級學號 成績指導教師 開課時間學年學期 一 設計題目 家譜的設計與實現 樹,查詢 二 主要內容 家譜的設計主要是實現對家庭成員資訊的建立 查詢 插入 修改 刪除等功能。可。基本功能如下 1 家譜祖先資料的錄入 樹的根結點 2 家庭成員的新增 即新增某一人的兒女,...

資料結構課程設計報告

交通諮詢系統設計 不用輸入程式語句,也不用那個截圖 不用太著急,報告周五之前給我就行了 列印和壓縮包都要哈!對了,這段文字記得刪掉啊嘿嘿 題目名稱交通諮詢系統設計 院 系 管理學院 課程名稱資料結構課程設計 班級資訊 10 2 學生姓名呂德麗 指導教師李長雲 目錄一 需求分析及選題要求 3 1 問題...

資料結構課程設計報告

課程設計報告 課程名稱資料結構 課題名稱生死者遊戲 專業資訊管理與資訊系統 班級學號 姓名指導教師 2011 年 1 月 20 日 湖南工程學院 課程設計任務書 課程名稱資料結構 課題生死者遊戲 專業班級 學生姓名 學號指導老師 審批任務書下達日期 2011 年 1 月 3 日 任務完成日期 201...