数据结构课程设计题目
數據結構課程設計題目
基本要求:
1、每人 1 題,如果系統具有界面以及功能復雜,可以 2 人合作一題。
2、可以自擬題目,難度不低于給定題目,且自擬的題目需要經過老師審核通過。
3、要求實現一個界面美觀、功能完整、具有實用性的系統。
4、不限制編程語言,可以使用 C,C++,C#,JAVA 等。
5、每個題目給定的是基本要求,鼓勵進行功能擴展。
6、針對選定題目,查閱資料與文獻,進行問題分析、數據分析、數據結構設計、算法設計、
功能設計、界面設計、系統實現以及撰寫實驗報告。
重點敲黑板:課程設計的成績由以下幾部分共同構成:原創性、程序源碼完整且可運行情況、系
統功能完善程度、課程設計報告的撰寫規范性、參考文獻的合理性、算法的有效性分析以及答
辯情況等多個因素構成。
以下為可選題:
A 類:
1. 線性結構存儲和操作的動畫演示。
問題描述
線性結構是數據結構的基礎,在各類算法中都有著廣泛的應用。但是初學者對于線性結構各類操作后的
結構變化往往不能很好地進行想象和理解,從而影響對結構的使用。因此實現一個可視化程序對各類線性
結構的內部變換進行可視化展示,對于理解各類操作對應的結構變化是有必要的。
設計一個測試程序對線性結構的操作進行形象的動畫演示以及對應實際運行結果展示,獲得各類結構
對應操作下變化情況的直觀展示。
基本要求
操作;
代碼同步高亮的顯示;
功能要求
a. 界面要求可以進行交互,要求實現圖形界面而不是簡單的控制臺應用,界面要求美觀、布局合
理,符合用戶使用習慣。
b. 對于每種數據結構,可以在界面進行選擇,同時選擇采用順序或者鏈式存儲結構
c. 可視化系統(如窗體、web 網頁、App、微信小程序等)
a. 線性表:初始化、遍歷、任意指定位置插入、任意指定位置刪除、查找、任意指定位置修改、置
空;
b. 棧:初始化、銷毀棧、判斷???、取棧頂、清空棧、求棧長、進出棧、遍歷;
c. 隊列:初始化、銷毀隊、判斷隊空、清空隊、求隊長、得到隊頭、進出隊、遍歷;
對于操作中使用的數據,可以由電腦隨機生成或者是用戶自行在所設計界面中輸入數據可以生成
指定數據。
a. 對于上述所提的操作,要求對其內部結構進行動畫展示,動畫可以分步驟進行,可整體進行,
或者兩者間切換;
b. 偽代碼跟隨動畫進程顯示, 即對于所選擇的操作,要求在界面區域展示偽代碼,隨動畫進程高亮
顯示當前運行步驟所需的代碼。
- 插入元素
- 刪除元素
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
2. 二叉樹和樹的存儲與基本操作的動畫演示。
問題描述
樹結構在客觀世界中廣泛存在,如人類社會的族譜和各種社會組織機構都可用樹形象表示。在現代的數
字通信、數據壓縮、等價類問題處理方面,以及在計算機領域中編譯系統的語言結構描述,數據庫系統的信
息組織與檢索等方面。然而初學者對于樹結構操作的內部變化往往不能做到很清晰的想象與描述,從而影
響其使用,因此實現一個可視化程序對樹結構操作的內部變換進行可視化展示,對于理解各類操作對應的
結構變化是有必要的。
設計一個測試程序展示二叉樹和樹基本操作動畫演示以及對應實際運行結果展示。演示程序以交互形
式運行,并進行可視化展示。
基本要求
遍歷;
功能要求
a) 界面要求可以進行交互,要求實現圖形界面而不是簡單的控制臺應用,界面要求美觀、布局合
理,符合用戶使用習慣;
b) 對于每種操作,可以在界面進行選擇;
c) 可視化系統(如窗體、web 網頁、App、微信小程序等)
插入、刪除、查詢、先序遍歷、中序遍歷、后續遍歷、層次遍歷、求深度、求最大寬度、統計二叉
樹葉子結點個數、查找祖先結點;
對于操作中使用的數據,可以由電腦隨機生成或者是用戶自行在所設計界面中手動輸入;
a) 對于上述所提的操作,要求對其操作時內部結構變化進行動畫展示,動畫可以分步驟進行,可
整體進行,或者兩者間切換;
b) 偽代碼跟隨動畫進程顯示。即對于所選擇的操作,要求在界面區域展示偽代碼,隨動畫進程高
亮顯示當前運行步驟所需的代碼。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
3. 圖的存儲和基本操作的動畫演示。
問題描述
圖是一種復雜的非線性的數據結構。圖在實際生活中有很多例子,比如交通運輸網,地鐵網絡,社交網
絡,計算機中的狀態執行(自動機)等等都可以抽象成圖結構,因而掌握圖的創建和各種操作就顯得極為重
要。
要求可以設計一個測試程序,對帶權值的圖進行一些基本操作并進行動畫演示以及對應實際運行結果
展示。
基本要求
功能要求
a. 界面要求可以進行交互,要求實現圖形界面而不是簡單的控制臺應用,界面要求美觀、布局合
理,符合用戶使用習慣;
b. 對于每種操作,可以在界面進行選擇;
c. 可視化系統(如窗體、web 網頁、App、微信小程序等)
a. 用同一組數據創建鄰接矩陣、鄰接表存儲的有向圖和無向圖;
b. 分別對兩種圖插入點、插入邊、刪除點、刪除邊、深度遍歷、廣度遍歷、查找頂點;
c. 用 prim 算法和 kruskal 算法生成圖的最小生成樹;
d. 判斷圖是否是連通圖、查找指定兩點間的最短路徑。
對于操作中使用的數據,可以由電腦隨機生成或者是用戶自行在所設計界面中手動輸入;
a. 對于上述所提的操作,要求對其操作時內部結構變化進行動畫展示,動畫可以分步驟進行,可
整體進行,或者兩者間切換;
b. 偽代碼跟隨動畫進程顯示。即對于所選擇的操作,要求在界面區域展示偽代碼,隨動畫進程高
亮顯示當前運行步驟所需的代碼。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
4. 常用查找算法的動畫演示。
問題描述
在日常使用軟件的過程中,查找算法是一類會被經常使用到的算法,但是由于針對不同類型數據結構,
使用的查找算法也不相同。因此,通過以動畫的效果來將查找算法的步驟演示出來,可以加深同學們對于查
找算法的理解。
下面通過設計一個測試程序,對同一組數據不同數據結構進行查找,并將查找的過程通過動畫演示的方
式展示出來,顯示出關鍵字對比的次數及耗費的時間。
基本要求
功能要求
a. 界面要求可以進行交互,要求實現圖形界面而不是簡單的控制臺應用,界面要求美觀、布局合
理,符合用戶使用習慣
b. 對于每種查找算法,可以在界面進行選擇
c. 可視化系統(如窗體、web 網頁、App、微信小程序等)
順序查找、折半查找、二叉排序樹查找、二叉平衡樹查找、B-樹查找。
對于操作中使用的數據,可以由電腦隨機生成或者是用戶自行在所設計界面中從數據文件中讀取。
每次測試完畢顯示各種比較指標值的列表(包括執行時間、關鍵字對比次數、平均查找長度等),
用餅圖或條形圖進行表示,以便比較各種算法的優劣。
a. 對于上述所提的操作,要求對其內部結構進行動畫展示,動畫可以分步驟進行,可整體進行,
或者兩者間切換;
b. 偽代碼跟隨動畫進程顯示。即對于所選擇的操作,要求在界面區域展示偽代碼,隨動畫進程高
亮顯示當前運行步驟所需的代碼。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
5. 排序算法的動畫演示
問題描述
在數據結構教學內容中,排序算法是一類基礎且重要的算法。但是初學者往往不能從本質上把握各類排
序算法的內部原理,從而影響對算法的應用。因此實現一個可視化的程序對于理解排序算法就顯得比較重
要了。
下面可以設計一個測試程序比較幾種內部排序算法展示基本操作動畫演示以及對應實際運行結果展示,
獲得關鍵字比較次數和移動次數的直觀展示。
基本要求
做比較,再使用各種算法對其進行排序,記錄其排序時間,再匯總比較;
功能要求
a.界面要求可以進行交互,要求實現圖形界面而不是簡單的控制臺應用,界面要求美觀、布局合理,
符合用戶使用習慣。
b.對于每種排序方式,可以在界面進行選擇。
c.可視化系統(如窗體、web 網頁、App、微信小程序等)
圖 1 參考界面
冒泡排序、快速排序、簡單插入排序、希爾排序、簡單選擇排序與堆排序。
對于操作中使用的數據,可以由電腦隨機生成或者是用戶自行在所設計界面中輸入數據可以生成
指定數據。
每次測試完畢顯示各種比較指標值的列表(包括執行時間、關鍵字移動次數、交換次數等),用餅
圖或條形圖進行表示,以便比較各種排序的優劣。
a.對于上述所提的操作,要求對其內部結構進行動畫展示,動畫可以分步驟進行,可整體進行,或
者兩者間切換;
b.偽代碼跟隨動畫進程顯示。即對于所選擇的操作,要求在界面區域展示偽代碼,隨動畫進程高亮
顯示當前運行步驟所需的代碼。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
B 類:
1 圖像分割。
背景描述
圖像分割就是將圖像按照一定規則分成若干區域, 這些區域具有互不相交、 有一定意義、 連續的特征,
并且所有的區域能夠合成這幅圖像。為了分析分割后的某部分區域,圖像分割通常伴隨著圖像提取技術。
圖像分割后的各區域,同一區域中的那部分圖像具有相似的性質,不同區域中的圖像性質具有較大的差異
性。
經過多年的研究,發展圖像分割技術有了比較系統的理論和比較成熟的應用,在圖像分析以及圖像處理
領域取得了巨大的進步。根據現有的文獻分析,圖像分割早期方法主要有:閾值分割方法、區域分割方法、
邊緣分割方法等。這些分割方法由于原理簡單、易于實現,被稱為傳統的圖像分割方法。隨著圖像分割在不
同領域的應用,一些圖像分割不僅僅局限于考慮圖像像素點的灰度、顏色等屬性信息,人們在傳統圖像分割
的基礎上加入了圖像的內容信息(如圖像的特征相似性等),形成了基于內容的圖像分割。例如,將圖像分
割方法加入圖論的知識形成基于圖論的圖像分割方法,將具有相似特征的像素點進行聚類形成基于聚類的
圖像分割方法,將有監督機器學習技術加入圖像分割形成基于語義的分割等。
基于圖論的圖像分割方法憑借數學上成熟的圖論思想,得到較好的發展及應用。例如使用基于圖論中的
最小生成樹的圖像分割原理如下:
(1) 數據表示
像素點:由圖像的小方格組成的,這些小方塊都有一個明確的位置和被分配的色彩數值,小方格顏色和
位置就決定該圖像所呈現出來的樣子。
顏色值:常用的顏色空間有 RGB、HSV 等,RGB 是我們接觸最多的顏色空間,以 RGB 空間為例,由
三個通道表示一幅圖像,分別為紅色?,綠色(G)和藍色(B)。這三種顏色的不同組合可以形成幾乎所有的其
他顏色。
灰度值:指黑白圖像中點的顏色深度,范圍一般從 0 到 255,白色為 255,黑色為 0,故黑白圖片也稱
灰度圖像。
彩色圖像轉灰度圖像:公式為 Gray =0.2989R+0.5870G+0.1140*B。
(2) 模型構建
這種方法首先需要將圖像映射為帶權無向圖,把像素點視作節點,每相鄰兩個節點之間有一條帶權的
邊。因此,圖像分割問題可以看作是圖的頂點劃分問題。
然后需要對上述的邊進行權重的計算,用兩個頂點之間的相似度來表示邊的權重。計算公式如下:
𝑊(𝑖,𝑗) = exp(?
(𝐹𝑖 ? 𝐹𝑗)
2
𝜎
2
)
其中,Fi、Fj 表示像素點 i、j 的灰度值,σ
2 表示所有像素點灰度值的方差,根據 exp 函數的特性,所以
該權重的值處于[0,1]區間。
由式子可以看出,當相鄰兩個點的灰度值相差較小時,其邊對應的權重也就較大,而灰度值相差小意味
著這兩個點的相似度高,屬于同一塊區域。相反的,邊的權重小意味著兩個點屬于不同的區域。而要具體的
劃分兩個點是否屬于同一區域,就要確定一個閾值,若權重大于該閾值時,則兩點屬于同一區域,若權重小
于該閾值時,則兩點不屬于同一區域。
(3) 區域劃分原理
在最開始的時候,每個像素點都是相互獨立的,每個像素點都屬于一個區域。根據最小生成樹的原理,
在每次選擇一條權重大于閾值的邊之后,就會使得兩個頂點所在的兩個區域連通。在遍歷完所有邊之后,圖
中就會形成若干個最小生成樹,每一個最小生成樹連通的頂點都屬于同一個區域。
構建和劃分過程如下圖:
注:(c)中 MST 表示最小生成樹
除此之外,最后可能還有若干個點或者較小的區域存在。這些區域往往是噪聲點,需要將這些區域合并
到相鄰的大區域,或者在最開始的時候對圖像進行去噪處理。
分割結果示例如下圖所示:(左邊為原圖,右邊為分割圖)
要求
(1)輸入:圖像(例如教室場景圖);
(2)使用基于基于圖論、像素聚類和深度語義這三大類方法之一實現圖像分割;
(3)輸出:
展示原始圖像和分割結果圖,定義并展示分割指標判定分割好壞。
輸出算法分割每幅圖像的時間并分析該時間和圖像的分辨率以及分割的目標數量之間的關系。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
2. 公司銷售管理流程模擬。
背景描述
隨著信息產業的迅猛發展,互聯網以及各項相關技術日漸成熟,這些都推動了電子商務的發展,使人們
對這個新興產業有了一定地了解,也使電子商務在各個領域有了廣泛應用。近幾年來國內互聯網使用人數
的增加,利用 Internet 進行在線銷售已漸流行,市場份額也在迅速增長??蛻糇悴怀鰬艟涂梢苑奖?、便捷地
在公司銷售網站進行購物。
基于上述背景,請采用合適的數據表示方式模擬公司的銷售管理流程。
數據分析
本系統的目標是模擬設計公司銷售管理系統,以在線服裝銷售系統為例,其涉及的主要角色及對應數據
信息包括:
客戶:用戶必要信息,如客戶姓名、手機號、收貨地址等;
商品:商品必要信息,如商品編號、單價、商品類別、庫存等;
訂單:必要的訂單信息,如訂單號、收貨地址、訂單狀態等。
財務報表:必要的報表信息,如訂單號、利潤等。
請以某種特定的商品為例,分析其涉及的角色及對應數據,設計相應的數據結構。
注:所有數據存放在文件中。
需求分析
對于銷售公司來說,既要考慮到客戶的需求,又要簡單、快捷對銷售系統進行管理??紤]到用戶需求,
可以根據客戶的喜好推薦商品、投放廣告;對銷售系統進行管理,就要對商品、客戶和訂單信息進行管理,
同時對公司銷售數據進行統計,優化銷售系統。
功能分析
商品模塊:本模塊主要用來對銷售系統當中的商品進行管理。商品管理主要包括商品上下架、商品庫存
查詢、商品銷量統計等。
訂單模塊:本模塊主要用來對銷售系統當中的訂單進行管理,主要包括訂單查詢、訂單修改、訂單發貨、
訂單退換貨、開發票(財務報表)等。
客戶模塊:本模塊主要用來對銷售系統中客戶進行管理,主要包括客戶信息管理、下單等。
廣告及推薦模塊:客戶登錄系統后,若是新用戶,則推薦銷量高的商品及其廣告;若是老用戶,則基于
一些指標進行推薦,例如歷史訂單,收藏記錄等,分析客戶的歷史訂單及收藏進行類似商品推薦以及廣告投
放。
統計及優化模塊:統計財務報表,獲取利潤;定期分析銷售系統的所有訂單對銷售商品進行優化,例如
銷量高的商品可以適當漲價,銷量低的可以進行打折促銷,浮動調價,追求利潤最大化。
注:整個系統為可視化系統,如窗體、web 網頁、微信小程序、APP 等。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
3. 世界各國 GDP 和人口數量等數據的基本操作及可視化。
背景描述
GDP(國內生產總值),是一個國家(或地區)所有常住單位在一定時期內生產活動的最終成果。GDP
是核算體系中一個重要的綜合性統計指標,也是中國新國民經濟核算體系中的核心指標。它反映一國(或地
區)的經濟實力和市場規模。一個國家或地區的經濟究竟處于增長抑或衰退階段,從這個數字的變化便可以
觀察到。一般而言,GDP 公布的形式不外乎兩種,以總額和百分比率為計算單位。當 GDP 的增長數字處于
正數時,即顯示該地區經濟處于擴張階段;反之,如果處于負數,即表示該地區的經濟進入衰退時期。因此,
對往年 GDP 進行分析對未來的發展具有重要的指導意義。
基于上述背景,請搜索獲取自 2000 年以來中國、印度、美國、法國的 GDP、人口數量,完成相應的操
作。
數據分析
GDP 是受到各方面的影響的,可單純從第一、二、三產業查看各方面對 GDP 的貢獻,也可細分到各行
各業,如圖 1,2 所示。(圖 1,圖 2 來源于國家統計局)
圖 1
圖 2
需求分析
本系統的目標是搜集相關國家往年的 GDP 情況并以合適的形式顯示數據(如折線圖、餅圖等)并計算
相關指標(如 GDP 增速、人均 GDP、GDP 各項占比),然后通過分析影響 GDP 的各項指標及各行業對 GDP
的貢獻占比,對未來發展提出建設性意見,如通過預測下一年的 GDP 各行占比來調整行業結構;下一年政
府在各行業的投資占比等。
功能分析
輸入模塊:從文件或直接從網站上讀取相關信息;
輸出模塊:以多種形式保存結果(如以餅圖、柱狀圖、折線圖等顯示各行業對 GDP 的貢獻、根據相關數據
預測的結果等)。
顯示模塊:實現可視化系統(如窗體、web 網頁、App、微信小程序等多種形式),可參考圖 3(來源于國家
統計局)。
圖 3
預測模塊:使用數據計算參數(如 GDP 增長率、人均 GDP 等),并根據計算的參數對下一年的發展情況作
出預測(如下一年的 GDP、政府下一年在某一行業的支出等)
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
4. 運動會賽事管理模擬。
背景描述:
隨著計算機技術的飛速發展,計算機在信息管理中的應用的普及,利用計算機實現運動會賽事信息的管
理勢在必行。傳統賽制安排通常由組織方手工進行,而由于運動會比賽項目眾多而時間和場地均有限制,需
要合理的安排賽事編制,確保盡可能多的比賽同時進行且互不沖突。相較于人工,通過編程實現賽制安排在
速度上更快,且不容易出現因安排失誤而造成比賽沖突的問題。此外利用計算機對信息處理的優越性,更好
地管理運動員等信息。基于上述背景,請采用合適的數據表示方式設計一個面向大型運動會賽事管理系統。
數據分析:
姓名,主裁賽事或報名項目等必要信息。
要求(持續時間、上午下午等等)等。
體信息等。
需求分析:
用戶信息管理:賦予管理員修改用戶信息的權限。
賽事信息錄入:錄入全部比賽的基本信息以及舉辦要求,主要用于進行賽制安排,主要包括名稱、舉辦
地點、比賽所需時間等必要信息,此外可附加額外的約束條件,如裁判需求(數量及類型)、天氣需求
(可自行限定)、以及科學合理性(設置適當的休息時間)等。
比賽結果錄入:對已經結束的比賽進行成績錄入,其結果需反饋至各賽事總表以及運動員信息中。
賽事總表展示:展示全部比賽的具體時間安排以及各個比賽的參與運動員信息, 如圖 1.
裁判信息管理:如裁判的基本信息,主裁比賽信息等等。
運動員信息管理:如運動員信息基本信息,以及參與比賽及比賽結果等信息。信息一經錄入不可自行更
改,需聯系管理員方可修改。
功能分析:
用戶模塊:
運動員:注冊報名、發起修改(修改報名信息等)、比賽結果查詢等等。裁判:注冊,主裁比賽信
息,信息修改申請等等。
管理者模塊:
1、審批用戶申請(列如運動員信息修改申請等)
2、賽制安排【核心】:基于比賽舉辦要求和運動員信息對全部比賽進行合理的時間安排,以保證各
項比賽間場地和運動員時間等不發生沖突,并滿足賽事舉辦要求,并在此基礎上,盡可能地壓縮整
體時間,提高效率?!緟⒖寂耪n問題】
3、比賽結果錄入之后動態更新賽事總表等。
圖 1
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
5. 文章編輯系統(如 word)實現。
背景描述
隨著信息化的普及,越來越多的文章編輯系統應用在了資訊系統中。文章編輯系統是一種簡便快捷的對
于輸入的文章進行基本操作的方法。文章編輯系統如 Word,在很多方面都起到了相當大的作用。在企業工
作的文員以及幾乎所有人們在進行文字交流的時候都離不開 Word。Word 對于文字的編輯基本上包括對字
符(串)的查找、替換、刪除以及一些常用的數據匯總功能,如統計某一字符出現的次數、位置等。本題目
要求能夠實現 Word 軟件里面一些基礎的功能。
功能分析
總字;能夠對文章進行編輯(增刪查改);
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
6. 實現一個計算器,可以進行各種類型的運算。
背景描述
算術是數學最古老且最簡單的一個分支,幾乎被每個人使用著,從日常上簡單的算數到高深的科學及工
商業計算都會用到。從小學我們就學習了心算,列式計算等計算方法。計算器就是我們經常使用的一個算數
工具。而如何讓電腦讀懂我們輸入的表達式并進行計算,就是我們數據結構所要研究的內容了。
功能分析
過圖形化界面進行輸入。對包含加、減、乘、除、括號運算符指數函數、冪函數、三角函數、對數
函數等常見的運算式進行求解;在數據輸入完成后,如果需要放棄本次計算操作,可以利用程序中
設置好的按鍵進行清零,并為下一次運算作準備;在計算器程序運行中,輸入數據時如果遇到輸入
錯誤的情況,能夠能過退格鍵進行刪除,并且重新輸入正確的數據;
變化;
例:設有一元多項式 Am(x)和 Bn(x):
Am(x)=A0+A1x
1+A2x
2+A3x
3+… +Amx
m
Bn(x)=B0+B1x
1+B2x
2+B3x
3+… +Bnx
n
請實現求 M(x)= Am(x)+Bn(x)、M(x)= Am(x)-Bn(x)和 M(x)= Am(x)×Bn(x)。
要求結果 M(x)中無重復階項和無零系數項,并且輸出結果有升冪和降冪兩種排列情況。
加分模塊
1)實現 windows 中轉換器的各個功能模塊。
- 簡單表達式計算
- 復雜表達式計算
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
7. 網上購物流程模擬。
背景描述
近年來,隨著Internet的迅速崛起,互聯網已日益成為收集提供信息的最佳渠道并進入傳統的流通領域。
于是電子商務開始流行起來,一種全新的購物理念開始形成并逐步發展。網上購物是一種具有交互功能的
商業信息系統,向用戶提供靜態資源和動態資源。其中靜態資源是指固定的或長時間不發生變動的資源,如
店鋪的簡介、經營范圍等;動態資源是指隨時可能出現波動的資源,如商品的數目、報價等?;谏鲜鲑Y源,
商家和用戶可以很方便的傳遞信息,完成電子貿易和 EDI 貿易。
基于上述背景,請采用合適的數據表示方式模擬網上購物的流程。
數據分析
本系統的目標是模擬設計在線購物商城,以在線圖書商城為例,其涉及的主要角色及對應數據信息包括:
商家:商家必要信息,如商家簡介、主營范圍等等;
商品:商品必要信息,如商品編號、數量等等;
用戶:用戶必要信息、我的訂單、我的購物車等;
訂單:必要的訂單信息,如訂單詳情等。
請以某種特定的商品為例,分析其涉及的角色及對應數據,設計相應的數據結構。
注:所有數據存放在文件中。
需求分析
以在線圖書商城為例,商家可實現對商家信息、商品信息、用戶訂單信息的管理等;用戶可實現對用戶
信息、購物車信息、訂單信息的管理等;系統根據用戶角色、瀏覽記錄等實現商品的推薦等。
請以特定的商品為例,根據其在線購物流程,分析其具體需求。
功能分析
系統模塊:本模塊主要用來對商城系統當中的產品進行管理,主要包括,商家信息、商品上下架、用戶
訂單查看等等。商家信息,展示商家主營產品等;商品上下架,主要對產品進行缺貨通知與補貨;用戶訂單
查看,對于訂單信息中的產品進行配貨。
用戶模塊:本模塊主要用來對商城系統中用戶行為進行管理,主要包括,用戶注冊與登錄、添加購物車,
商品支付等等。非注冊用戶只可以瀏覽商品,必須先注冊才可以加入到購物車進行購買;用戶可以修改個人
資料,取消訂單、購物車管理。
推薦模塊:用戶登錄系統后,基于用戶的歷史購物記錄,瀏覽記錄等信息進行商品的推薦。例如,用戶
登陸成功后系統基于統計量進行商品推薦,并分析商品性質、標簽等內容,推薦相似商品到主頁面;用戶在
線后,系統收集用戶的瀏覽記錄,根據用戶的瀏覽商品情況,分析客戶感興趣的商品類別,將同類別相似的
商品置頂顯示。
注:整個系統為可視化系統,如窗體、web 網頁、微信小程序、APP 等。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
8. 九宮格游戲的設計與實現。
九宮格,一款數字游戲,起源于河圖洛書,與洛書是中國古代流傳下來的兩幅神秘圖案,歷來被認為是
河洛文化的濫觴,中華文明的源頭,被譽為"宇宙魔方"。九宮格游戲對人們的思維鍛煉有著極大的作用,從
古時起人們便意識到九宮的教育意義。千百年來影響巨大,在文學、影視中都曾出現過。九宮格最早叫“洛
書”,現在也叫“幻方” 。
益智類游戲是運用一定的邏輯關系或是數學思想,物理以及化學,也包括一些自己設定的原理來達到制
定任務的小游戲。更有趣的,需要適當考慮適合所有年齡的人。老年人通過動腦來活躍大腦,并從中得到相
應的樂園。能夠一舉兩得。
拼圖游戲不僅能增強思維能力,提高智力而且富含哲理,有助于修身養性。它既有簡單易學的特點,為
人民群眾喜聞樂見。
數據分析:
游戲包括界面,基本的控件,有文本框、選擇框、按鈕等。
用戶信息:用戶登錄需要的賬號和密碼,新用戶注冊用到的信息;對玩家信息的記錄、保存、讀取。
界面信息:圖片,九宮格規格;
交互信息:控制游戲的移動;
需求分析:
本游戲主要完成:整幅圖的現實,切換整幅圖片、隨機打亂圖片、開始游戲,結束游戲 ;可多用戶;
功能分析:
用戶登錄,進入游戲界面,有良好的功能可視化界面,有游戲規則介紹。例如有計時和分數的顯示,
游戲圖片替換和打亂圖片的按鍵,顯示游戲界面的圖像畫面,游戲玩家開始游戲、悔一步,重新開始的
按鍵。
游戲開始時,從準備好的圖片中,選擇想要拼的圖片,要有不同難度的圖片(可從相似度考慮);
可選擇重新開始;
選擇難度(1,2,3),根據難度將圖片分成 33, 55,6*6 的規格,設計算法,隨機打亂生成肯定
有成功結果的初始化狀態九宮格,要求有動態的打亂圖片的顯示過程(若產生的初始化九宮格無法
到達最終狀態,應該有提示 3 秒后自動刷新,重新生成);
動態顯示玩家本局的時間,可選擇限時挑戰;
用戶可以拖動模塊進行交換,直到拼出原圖像。
1)通過 w, s, a, d(或者上,下,左,右)進行平移操作,動態的展示每一步移動的結果。如果操
作違法,應不做該操作;
2)能夠刷新界面;
30 游戲過程中,允許選擇悔一步(不可后退多步,若用戶悔步>1,給出提示且不執行多次后退操
作)或者終止游戲(正常),繼續下一步;
可以提前結束游戲,若成功結束游戲,總分=時間分數+移動正確率(正確數/移動正確率)*100,將本
場的游戲時間加入到游戲記錄中,并按照排序顯示之前游戲的時間和該用戶信息。
上傳分數以及獲取排名,可以選擇刪除之前的成功記錄,但是不可以用戶隨意增加記錄。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
9. 迷宮游戲的設計與實現。
迷宮問題是解決從布置了許多障礙的通道中尋找出路的問題,即“避障尋徑”。避障尋徑問題被證明是一
類 NP 問題,一直以來都是計算機科學人工智能領域內的熱門話題,滲透于我們日常生產生活中的各個領
域,如無人機器偵查兵,無人駕駛運輸車,城市內的車輛自動導航等。
迷宮四周設為墻,并且設有一些無法通行的障礙。在沒有障礙的時候,每個點有四個可通方向,分別為
上、下、左、右。迷宮有一個入口,一個出口,需要求解一條(或者多條)從入口到出口的通路。
圖 1 迷宮地圖示意(黑色為障礙物,白色為可通行區域)
需求分析
迷宮求解游戲有以下的需求。首先,玩家需要進行身份驗證,當賬號與密碼正確后方可進入游戲;如果
沒有賬號可以注冊新的賬號;并且玩家可以對自己的賬號進行管理,比如可以更改密碼、設置昵稱、更換頭
像等。進入游戲后,可以根據玩家選擇難易度生成不同的迷宮;其次,該游戲可以記錄玩家行進的步驟并通
過直觀的方式(可視化)展示給玩家,允許玩家撤銷已走的路徑。另外能夠進行自動求解,給出最佳路徑;
同時給出“提示”功能,可以給玩家下一步應該走的路徑以及給出玩家已經走進死路的提示。然后,游戲可以
記錄玩家完成一局游戲的信息,包括游戲時間、求解時間、求解路徑、難易度等,可以對歷史戰績進行排序,
并且可以導入歷史數據進行復盤,復現該游戲。
數據分析
迷宮信息:包括障礙物、路徑等必要信息;
玩家信息:包括玩家基本信息,如賬號,密碼等;
游戲存檔模塊:對玩家游戲信息的記錄、保存、讀取。
功能分析
新設置個人信息,包括密碼、頭像等。注意要保證賬號的唯一性,不能出現多個相同的賬號;
義)。迷宮的選擇可以從本地的已有的文件中讀取,也可以按照難度自動生成,并保存至本地的游
戲題庫中,供玩家選擇。游戲還應該提供“自定義”功能,允許玩家自己創建迷宮、求解;
搜索算法、A*算法、蟻群算法等各類啟發式算法,從而完成自動求解問題;
當前狀態的下一步路徑的提示。最佳路徑通常是從入口到出口的步數最少,當然也可以是其他指
標,例如“方向轉換最少(轉彎次數最少)”等;
成的游戲,還應該能夠復盤,即重現每一步的行進過程以及當時玩家的狀態,包括用時、步數等。
(展現過程中出現的顏色錯誤是錄屏所致,非程序問題)
- 20*20的迷宮的動態展現
- 100*100的迷宮的動態展現
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
10. 哈夫曼編碼和解碼器的實現。
電子郵件是一種用電子手段提供信息交換的通信方式,是互聯網應用最廣的服務。電子郵件可以是文
字、圖像、聲音甚至是涂鴉文件等多種形式。同時,用戶可以得到大量免費的新聞、專題郵件,并實現輕
松的信息搜索。電子郵件的存在極大地方便了人與人之間的溝通和交流,促進了社會的發展。
為確保郵件的安全性,用戶可以設置強密碼登錄,防止被黑客輕易破解,涉及敏感數據的郵件一定要
進行加密,商務密郵采用高強度加密算法,對郵件正文、附件、圖片等數據進行加密后發送,實現數據在
傳輸中及郵件系統存儲中均以密文形式,非授權用戶無法解密郵件,即便郵箱被盜,不法分子也無法查
看、篡改和復制里面的內容。
需求分析
模擬郵箱加密郵件的過程,以郵件信息為基礎,發送方利用哈夫曼樹對郵件內容(英文字母、數字、
漢字)進行編碼,將碼本通過 RSA 加密并同編碼后的郵件信息發送給接收者,接受方對密文進行解密并
將郵件信息顯示在界面上。
數據分析
功能分析
a. 界面要求可以進行交互,要求實現圖形界面不是簡單的控制臺應用,界面要求美觀、布局合
理,符合用戶使用習慣。
b. 對每種操作,可以在界面上進行選擇,例如:路徑選擇、保存文件、對郵件進行加密和解密、
將原文、碼本和解密后的文本、哈夫曼樹顯示在界面上等。
c. 可視化系統(如窗體、web 網頁、App、微信小程序等)
a. 待加密文件保存為 document.txt
b. 對字符進行哈夫曼編碼,保存為二進制格式 code.dat
c. 解碼,保存為 decode.txt
d. 建立哈夫曼樹,保存為 HFM.txt
文件讀寫操作、構造哈夫曼樹、構造哈夫曼編碼和解碼、密鑰生成;
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
11. 以華北電力大學計算機系的學生培養方案為基礎,實現課程自動編排。
面對工作崗位的不斷變化,我國迫切需要通過培養學生的全面發展,來增強學生的綜合能力和素質。選
課制作為一種較為靈活的教育教學制度,是推行彈性學制的必要條件,選課制可在一定程度上增加大學生學
習自由度,提高其學習的積極性和主動性;激勵高校教師努力提升教學技能,增進教學效果,調動師生雙方"教
與學"的積極性。
大學的每學年含兩學期,每個專業開設的課程都是確定的,而且課程在開設時間的安排必須滿足先修關
系。每門課程的先修課程是確定的,每門課程恰好占一個學期,在給定課程類型(公共課、專業課、必修課、
選修課)、課程名稱、學分、先修條件以及約束條件:學期數和每學期學分上限,給出一個排課方案。
數據分析
課程信息:包括課程類型、不同課程對應的學分、課時等信息;
學生信息:包括學生基本信息,如:姓名、學號、班級、專業等;
排課方案信息:包括不同學生最終選課的結果信息。
需求分析
本軟件主要完成:根據不同的學年顯示可選擇的課程,若學生選擇了有先修課未學習的課程則提示錯誤
信息。若選課結束未滿足總學分要求則顯示提示信息。
功能分析
a. 界面要求可以進行交互,要求實現圖形界面而不是簡單的控制臺應用,界面要求美觀、布局合
理,符合用戶使用習慣。
b. 對于不同的選課結果,可以在界面上顯示課程類型、和相應的學分。
c. 可以查看不同學期的排課情況。
d. 可視化系統(如窗體、web 網頁、App、微信小程序等)
保存,例如:專業課、必修課之間存在先修關系,課程之間的關系不可出現循環結構。
課程,選修課學分不得低于總學分的 20%。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
12. 以某真實地區為數據源(自己選擇),模擬一個類似百度或者高德的交通圖導航系統。
背景描述:
伴隨人們的生活節奏加快,汽車的數量陡增,由此引發的交通擁擠問題也日益明顯。為此,世界各國都開始
投入人力物力對交通系統進行研究。面對擁堵的交通,一款智能的交通導航系統能在指導人們出行的同時,在
一定程度上也能緩解當前擁擠的交通現狀。為了深化同學們對圖的學習,本系統通過對基于時間依賴的最短
路徑查詢的研究,設計與實現高效的導航系統,為人們出行提供重要指導。
數據分析:
需求分析:
導航系統的基本功能有:實現地圖的模擬,向地圖中添加、刪除、修改、查找地點信息、路線信息,查
找起點和終點之間的最優路徑。
功能分析
a. 界面要求可以進行交互,要求實現圖形界面而不是簡單的控制臺應用,界面要求美觀、布局合理,
符合用戶使用習慣。
b. 界面可以體現出與用戶的交互過程。
c. 可視化系統(如窗體、web 網頁、App、微信小程序等),根據交通工具的選擇可視化交通路線。
徑標識出來。(交通工具:公交、地鐵、公交與地鐵混合乘坐)
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
13. 以太網布網及故障檢測模擬。
背景描述
某個以太網內有 n 臺計算機,由于搭建以太網時工作人員的疏忽,現在以太網內的連接形成了回路,我
們知道如果以太網形成回路那么數據將不停的在回路內傳輸,造成網絡卡的現象。因為連接計算機的網線
本身不同,所以有一些連線不是很暢通,我們用 w 表示計算機之間連接的暢通程度,w 值越小表示計算機
之間連接越通暢,w 為 0 表示無網線連接?,F在我們需要解決回路問題,我們將除去一些連線,使得網絡中
沒有回路,并且被除去網線的
?w
最大,請求出這個最大值。
數據分析
需求分析
功能分析
a. 界面要求可以進行交互,要求實現圖形界面而不是簡單的控制臺應用,界面要求美觀、布局合理,
符合用戶使用習慣。
b. 界面可以體現出與用戶的交互過程。
c. 可視化系統(如窗體、web 網頁、App、微信小程序等),根據交通工具的選擇可視化交通路線。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
14. 資源管理器的模擬。
背景描述
文件資源管理器是系統的資源管理工具,也是很多功能軟件的不可獲取的部分,我們可以用它查看本臺
電腦的所有資源,特別是它提供的樹形的文件系統結構,使我們能更清楚、更直觀地認識電腦的文件和文件
夾。另外,在資源管理器中還可以對文件進行各種操作,如:打開、復制、移動等。因此,一款好的資源管
理器能讓我們更有效的管理我們的文件資源。
功能分析
a. 界面要求可以進行交互,要求實現圖形界面而不是簡單的控制臺應用,界面要求美觀、布局合
理,符合用戶使用習慣。
b. 對于每種排序方式,可以在界面進行選擇。
c. 可視化系統(如窗體、web 網頁、App、微信小程序等)
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
15. 旅游線路優化。
背景描述
隨著我國居民生活水平的不斷提高,旅游已成為人們休閑度假的主要方式之一,成為生活的重要組成部
分。旅游業的不斷發展成熟,使得人們外出旅游變得十分方便,可不管是團隊游還是自助游,旅游線路都是
游客所考慮的重要因素,如何保證以最小的成本游玩所有心儀的景點是旅游出行前必須考慮的問題。
基于上述背景,以一個城市的真實旅游景點(或風景線路)為基礎,構建一套旅游線路圖。
問題定義
設某個城市或者某個區域共有 n 個景點(n≥10),每個旅游景點都和 m 個旅游景點(m≥2,m<n)有直接的
道路相通。以(𝑉𝑖
,𝑉𝑗
,d)的形式建立城市或某個區域的旅游景點圖。其中𝑉𝑖和𝑉𝑗表示兩個不同的景點,d 表示這
兩個景點之間的距離、時間、費用。
費用可以參考現實中的收費標準。距離要結合實際情況。由于不同交通工具的速度不一樣,根據所選擇
的交通工具給出運行速度,再結合距離計算時間。交通工具可以根據實際情況給出幾種選擇,并針對每種選
擇進行時間和費用的計算。
功能分析
中讀取景點圖。
時間、費用都要做最優路線的選擇)的旅游路線,所用的交通工具需結合實際情況進行選擇,該路線必
須經過所有的旅游景點(有的景點可以重復經過)。
最短路徑及距離、時間、費用。
分。
客的喜好選擇路徑(參考方法:通過重構旅游景點圖,突出游客的愛好自動篩選景點,對于其他景點可
以保留路徑(可以考慮作為中轉站),其他景點信息可以不保留。注意方法不唯一)根據該功能實現程度
加分。
功能實現程度加分。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
15. 設計一個北京市旅游景點導游程序
背景描述
北京是全國的政治中心、文化中心、國際交往中心,是世界著名古都和現代化國際城市。北京有著 3000
余年的建城史和 850 余年的建都史,是全球擁有世界文化遺產最多的城市,每年吸引著數以萬計游客的到
來。通過為游客提供北京市著名景點導游系統可以幫助游客提升旅游體驗,節約時間、金錢,有助于提升游
客的滿意度。
數據分析
1)著名景點:景點簡介、票價、開放時間、最大人流量、景區內重點游玩地區推薦等
2)路程信息:景點間距離、可以選擇的交通工具等
功能分析
戶的交互。
景點
薦。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
16. 查詢并構建“一帶一路”地圖
背景描述
2013 年國家相繼提出共同建設“絲綢之路經濟帶”和“21 世紀海上絲綢之路”,簡稱“一帶
一路”倡議。這一倡議一經提出引起國際社會的熱烈響應,已經成為最受歡迎的全球公共產品。隨著越來越
多的國家加入,以及開設的線路越來越多,企業可以擁有更多的貨運路線規劃。企業如何根據實際情況選擇
最優路線成為一個必不可少的問題。
數據分析
“一帶一路”不同國家的城市之間開設了不同的班列,如“義新歐”班列指的是從中國義烏出發,經新
疆阿拉山口口岸出境,途經哈薩克斯坦、俄羅斯、白俄羅斯、波蘭、德國、法國,抵達西班牙首都馬德里的
貨運班列。這條鐵路線全長 13052 公里,歷時 21 天,載貨量約 540 噸,貨物類型為工藝品、飲品、玩具。
1)班列信息:途徑國家,國家間的里程數、耗時,載貨量,貨物類型,運費等。
2)企業信息:企業名稱,企業經營的貨物類型,貨物重量,貨物到達國家,運費上限等。
需求分析
利用圖的數據結構構建“一帶一路”地圖,地圖可以實現增、刪、改功能,以及交通、經濟、物流等相
關信息的查詢和管理、物流線路優化功能,并根據實際情況來提供路線規劃等功能。
功能分析
戶的交互;
徑,即在滿足任務的時間要求下,盡可能的完成多個國家的配送。
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
17. 汽車悶蓋圖像表示與缺陷檢測
背景描述
在第四次工業革命的大背景下,結合《中國制造 2025》與《智能制造發展規劃(2016-2020 年)》,圍
繞國家 2025 年邁入世界制造業強國行列的發展目標,開展智能制造研究和產業化實踐,推動汽車制造業
持續健康發展,打造我國汽車制造業競爭新優勢。
作為汽車工業發展重要支撐的零部件產業,伴隨著汽車市場的增長快速擴張,產值規模超過 3 萬億。汽
車制造的質量和制造成本的高低在很大程度上由沖壓件制造工藝水平決定。通過分析生產線上產生的大量
數據,可以發掘出良品率的控制因素,優化工藝參數,從而降低生產成本,提高生產效率和產品質量。
在檢測汽車發動機零件質量時,需要對零件中的悶蓋進行表面缺陷檢測。不同悶蓋零件表面的缺陷表現
形式各不一樣,有黑點、破損、劃痕等類型,但這些缺陷區域與正常區域有明顯的灰度差異。現在要對一組
悶蓋表面圖像進行缺陷檢測及分割,需要尋找一個盡可能保證分割精度且分割速度快的方法來提高檢測效
率。下圖中有缺陷悶蓋的示意圖,紅色線條內即缺陷區域。
圖 1 悶蓋圖像
數據分析:
由于檢測區域為一張圖像,可以用圖像的分辨率劃分圖像平面為網格,每一格表示一個像素。本問題可
以抽象為求圖的分割區域問題,從圖中某一點開始,往領域找相近似的點。為了簡化這個問題,以像素層面
看圖像,每一個像素點看做是圖的頂點,頂點和頂點的連線是路徑,路徑上的權值是相鄰兩個頂點(像素點)
的灰度差,像素層面的圖像示意圖見下圖。根據上述分析得到數據和數據關系,問題的數據模型為圖。
需求分析:
求解的問題是從圖上某個未知頂點出發,貪心尋找相連接且路徑權值接近 0 的頂點的搜索問題。任意
一個頂點按水平、垂直和兩條對角線與其相鄰的網格中心有 8 個頂點,在尋優的過程中,需要多次查找某個
頂點的鄰接點,為了提高查找速度,選用圖的鄰接矩陣。
圖 2 圖像像素級示意圖
功能分析:
普利姆算法是求圖中最小生成樹,本問題初始化時每一個像素點都是一個頂點,然后逐漸合并得到一個
區域,確切地說是連接這個區域中的像素點的一個最小生成樹。如圖 2,圓點為頂點,線段為邊,合并黃色
頂點所生成的最小生成樹,對應的就是一個分割區域。圖中可能出現多個缺陷區域,同類型區域需要合并,
不同類型區域不需要合并,因此需對普利姆算法進行改進。
具體包括:
1)界面設計:設計一個簡潔美觀的交互界面,實現與用戶的基本交互;
2)圖像導入功能;
3)缺陷區域分割功能;
4)保存分割之后的圖像
源碼下載
鏈接:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
提取碼:1111
總結
以上是生活随笔為你收集整理的数据结构课程设计题目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微分方程数值解法(2)——椭圆型方程的有
- 下一篇: 工作118:封装一个带有对话框的butt