資料結構
課程設計報告
2023年6月27日
一、需求分析
1、根據課程之間的依賴關係制定課程安排計畫,輸入課程數及課程之間的關係。將課程和先修關係構成乙個有向圖,以圖中頂點表示課程,弧表示先修關係。
2、本程式的目的是為了給使用者提供乙個符合要求的課程安排計畫,根據使用者設定的課程資訊制定課程安排計畫。
二、概要設計
1、抽象資料型別圖的定義如下:
(1)圖
adt graph
vr=基本操作p:
locatevex(algraph g,vertextype u)
初始條件: 圖g存在,u和g中頂點有相同特徵
操作結果: 若g中存在頂點u,則返回該頂點在圖中位置;否則返回-1
creategraph(algraph &g)
操作結果:構造圖g
display(algraph g)
初始條件:圖g存在
操作結果:輸出圖的鄰接矩陣
findindegree(algraph g, int indegree)
初始條件:圖g存在
操作結果:求各頂點的度數
int topologicalorder(algraph g,adjlist r,struct name name)
初始條件:圖g存在
操作結果:輸出g頂點的拓撲排序結果
(2)棧
adt stack
資料關係:r1=
基本操作:
initstack(sqstack &s)
操作結果:構造乙個空棧s
stackempty(sqstack s)
初始條件:棧s已存在
操作結果:若棧s為空棧,則返回ture,否則返回false
push(sqstack &s, int x)
初始條件:棧s已存在
操作結果:插入新的元素x作為棧頂元素
pop(sqstack &s, int &x)
初始條件:棧s已經存在而且非空
操作結果:刪除s的棧頂元素,並用x返回其值
}adt stack
2、主程式
void main()
,,,,,,,,,,,};
printf教學計畫編制問題n" );
printf( "請以課件9-2上課程先序圖為例輸入學期總數:");
scanf("%d",&totalofterms);
getchar();
printf("請輸入學期的學分上限(8或9):");
scanf("%d",&maxscores);
getchar();
creategraph(g);
display(g);
topologicalorder(g,r,name);
}三、詳細設計
1.1頂點、邊和圖型別
typedef struct ar**ode
ar**ode;
typedef char vertextype[maxofname];
typedef struct鏈結表
vnode, adjlist[max_ver頭結點
typedef struct
algraph;
int totalofterms學期總數
int maxscores學分上限
1.2圖的基本操作設定為:
int locatevex(algraph g, vertextype u);
//查詢圖中某個頂點位置
int creategraph(algraph &g
//採用鄰接表儲存結構儲存圖g
void display(algraph g
// 輸出圖g的鄰接矩陣
void findindegree(algraph g, int indegree
//求圖g中每個頂點的入度,並儲存在indegree陣列中
int topologicalorder(algraph g,adjlist r,struct name name)
//將課程排序後並決定出每學期所學課程,輸出圖g的資訊
void cmpofstr(vertextype str,struct name name,int n)
//讓c1~c12分別與12門課程對應起來
1.3其中部分操作偽**如下:
int locatevex(algraph g, vertextype u)/* 查詢圖中某個頂點位置 */
int creategraph(algraph &g採用鄰接表儲存結構*/
printf("請輸入%d個課程的學分值:",g.vexnum);
for (i = 0;i < g.vexnum;++i)
printf("請輸入下列課程的先修課程(無先修課程輸入0 結束後也輸入0)\n");
for (h=0;h
return 1;
}void display(algraph g輸出圖g的資訊*/
{ printf("有向圖\n");
printf("%d個頂點", g.vexnum);
教學計畫編制問題
define infeasible 1 typedef int status status是函式的型別,其值是函式結果狀態 如ok等 typedef int boolean boolean是布林型別,其值是true或false define max name 10 頂點字串的最大長度 define ...
教學計畫編制問題
實習報告 一 需求分析 1.在大學的某個專業中選取幾個課程作為頂點,通過各門課的先修關係來構建個圖,該圖用鄰接表來儲存,鄰接表的頭結點儲存每門課的資訊.2.本程式的目的是為使用者編排課程,根據使用者輸入的資訊來編排出每學期要學的課程.3.測試資料 學期總數 6 學分上限 9 該專業共開設12門課,課...
申請編制報告
精選范文 申請編制報告 共2篇 資金申請報告編制要點 一 專案的背景和必要性國內外現狀和技術發展趨勢,對產業發展的作用與影響,產業關聯度分析,市場分析 二 專案承擔單位的基本情況和財務狀況包括所有制性質 主營業務 近三年來的銷售收入 利潤 稅金 固定資產 資產負債率 銀行信用等級 專案負責人基本情況...