中北大學
資料結構
課程設計說明書
2023年12月20日
1 設計目的
《資料結構》課程主要介紹最常用的資料結構,闡明各種資料結構內在的邏輯關係,討論其在計算機中的儲存表示,以及在其上進行各種運算時的實現演算法,並對演算法的效率進行簡單的分析和討論。進行資料結構課程設計要達到以下目的:
1)了解並掌握資料結構與演算法的設計方法,具備初步的獨立分析和設計能力;
2) 初步掌握軟體開發過程的問題分析、系統設計、程式編碼、測試等基本方法和技能;
3) 提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;
4) 訓練用系統的觀點和軟體開發一般規範進行軟體開發,培養軟體工作者所應具備的科學的工作方法和作風。
2. 設計內容和要求
設計內容:
(1) 設定專業開設課程(不少於30門,可參考本專業課程計畫),及課程之間的依賴關係(如離散數學應在資料結構之前開設)。
(2) 制定課程安排計畫,並滿足各學期課程數目大致相同。
設計要求:
(1) 符合課題要求,實現相應功能;
(2) 要求介面友好美觀,操作方便易行;
(3) 注意程式的實用性、安全性;
3.本設計所採用的資料結構
鄰接表儲存圖結構,拓撲排序實現課程的先修依賴關係
4.功能模組詳細設計
4.1 詳細設計思想
1.程式主要包括五個模組
1)、圖的鄰接表的儲存表示,即結構體的定義
typedef char vertextype[max_name];
typedef struct arcnode
arcnode鍊錶結點
typedef struct鏈結表
vnode, adjlist[max_vertex_num頭結點
typedef struct
algraph;
2)、利用前插法,建立圖的鄰接鍊錶
printf("請輸入下列課程的先修課程(無先修課程輸入0結束後也輸入0)\n");
for (k=0;k< // 構造表結點鍊錶,
3)、輸出圖的頂點和邊
printf("%d個頂點",
for (i = 0;i <
printf("%4s",
printf(" \n%d條弧邊:\n",
for (i = 0;i <
4)、通過棧實現拓撲排序
findindegree(g, indegree對各頂點求入度
initstack(s初始化棧
for (i = 0;i < //建零入度頂點棧s
if (!indegree[i]) push(s, i); // 入度為0者進棧
count = 0對輸出頂點計數
while (!stackempty(s))
if (count <
else printf( " 為乙個拓撲序列");
printf("\n");
return ok
return error
依次將入度為0的頂點存入indegree中
對每個頂點求入度,並存入陣列indegree[i]中(i=0…n)
初始化棧stack,counter=0
對以i號頂點為尾弧的每個鄰接點的入度減1,並將入度減1後為零的頂點號壓入棧中,輸出i,計數器加1(counter++)
推出棧頂的乙個元素(入度為零的頂點號)至i,輸出i,計數器加1(counter++)
依次將入度為0的頂點存入indegree中
5)、解決問題
根據學分上限決定出每學期應學課程,其中temp中儲存的是經過拓撲排序後的課程先後順序
int q=1,z=0;
while (q <= totalterms)
例如輸出如下結果:
4.2 核心**
#include<>
#include<>
#include<>
#include<>
#define true 1
包裝結構課程設計說明書
精緻小葡萄酒 包裝設計說明書 目錄一 設計背景及思路2 二 產品定位及特性2 三 品牌設計2 四 裝潢設計2 五 包裝結構設計4 六 材料分析5 七 總結6 八 附錄7 本包裝以葡萄酒為物件進行設計,設計包括形象創意 結構設計和裝潢等幾個方面,具體內容如下 一 設計背景及思路 經市場調查,葡萄酒包裝...
資料庫課程設計說明書
課程設計名稱 資料庫系統概論 課程設計題目 學生選課系統 學院名稱 資訊工程學院 專業 電腦科學與技術班級 100451 學號 10045127 姓名 張冲 評分教師 胡建明付崢 20 13 年 1 月 6 日 一 需求分析 作為資料庫課程設計題目,鑑於設計時間有限,我們不追求大而全,只是把學生選課...
課程設計說明書
指導教師 2014年12月22日 目錄第1章可調直流穩壓電源的製作與除錯 2 1.1 設計任務 2 1.1.1 設計目的 2 1.1.2 設計要求及技術指標 2 1.2 總體設計方案 2 1.2.1 直流穩壓電源的基本原理 2 1.3系統分析與設計 3 1.3.1 整流 濾波電路 3 1.3.2 電...