數(shù)據(jù)結(jié)構(gòu)實(shí)習(xí)報(bào)告
數(shù)據(jù)結(jié)構(gòu)實(shí)習(xí)報(bào)告范文
精選范文:數(shù)據(jù)結(jié)構(gòu)實(shí)習(xí)報(bào)告(共2篇)
一、需求分析1、 程序所實(shí)現(xiàn)的功能;2、 程序的輸入,包含輸入的數(shù)據(jù)格式和說(shuō)明;3、 程序的輸出,程序輸出的形式;4、 測(cè)試數(shù)據(jù),如果程序輸入的數(shù)據(jù)量比較大,需要給出測(cè)試數(shù)據(jù);5、 合作人及其分工二、設(shè)計(jì)說(shuō)明1、 主要的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)說(shuō)明;2、 程序的主要流程圖;3、 程序的主要模塊,要求對(duì)主要流程圖中出現(xiàn)的模塊進(jìn)行說(shuō)明4、 程序的主要函數(shù)及其偽代碼說(shuō)明 (不需要完整的代碼) ;5、 合作人設(shè)計(jì)分工三、上機(jī)結(jié)果及體會(huì)1、 合作人編碼分工2、 實(shí)際完成的情況說(shuō)明(完成的功能,支持的數(shù)據(jù)類型等);3、 程序的性能分析,包括時(shí)空分析;4、 上機(jī)過(guò)程中出現(xiàn)的問(wèn)題及其解決方案;5、 程序中可以改進(jìn)的地方說(shuō)明;6、 程序中可以擴(kuò)充的功能及設(shè)計(jì)實(shí)現(xiàn)假想;說(shuō)明:1、 如果程序比較大,可以將設(shè)計(jì)說(shuō)明分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩部分。概要設(shè)計(jì)主要負(fù)責(zé)程序的流程、模塊、抽象數(shù)據(jù)類型設(shè)計(jì);詳細(xì)設(shè)計(jì)負(fù)責(zé)程序的數(shù)據(jù)類型定義和主要函數(shù)的說(shuō)明。2、 設(shè)計(jì)說(shuō)明中,不需要寫出代碼或者模塊的詳細(xì)代碼,只需要寫出主要函數(shù)的偽代碼說(shuō)明。
(資料圖)
[數(shù)據(jù)結(jié)構(gòu)實(shí)習(xí)報(bào)告(共2篇)]
篇一:數(shù)據(jù)結(jié)構(gòu)實(shí)訓(xùn)報(bào)告
《數(shù)據(jù)結(jié)構(gòu)》
課程設(shè)計(jì)報(bào)告
題 目:
班 級(jí):
姓 名:
學(xué) 號(hào):
指導(dǎo)教師:
實(shí)現(xiàn)兩個(gè)鏈表的合并 ?08計(jì)管(2)班 ? 肖麗娜 ? ? ?20xx 年 6 月 17 日
目錄
一、 課程設(shè)計(jì)的性質(zhì)、目的及要求 ············································· 3
一、 課程設(shè)計(jì)性質(zhì) ···································································· 3
二、 設(shè)計(jì)目的 ············································································ 3
三、 設(shè)計(jì)要求 ············································································ 3
二、 任務(wù)描述 ················································································· 3
三、 軟件環(huán)境 ················································································· 4
四、 算法設(shè)計(jì)思想及流程圖 ························································· 4
一、 算法設(shè)計(jì)思想 ···································································· 4
二、 流程圖 ················································································ 5
五、 源代碼 ····················································································· 6
六、 運(yùn)行結(jié)果 ················································································· 9
七、 收獲及體會(huì) ··········································································· 10
一、 課程設(shè)計(jì)的.性質(zhì)、目的及要求
一、 課程設(shè)計(jì)性質(zhì)
性質(zhì):數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)是《數(shù)據(jù)結(jié)構(gòu)》課程的實(shí)踐環(huán)節(jié),也是我院各專業(yè)必修的計(jì)算機(jī)技術(shù)基礎(chǔ)課程之一。
二、 設(shè)計(jì)目的
目的:課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),學(xué)生將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來(lái),鍛煉學(xué)生分析、解決較復(fù)雜問(wèn)題的能力,本次課程設(shè)計(jì),也是為了鍛煉我們應(yīng)用編程語(yǔ)言的語(yǔ)法規(guī)則和已經(jīng)掌握的一些較為簡(jiǎn)單的算法,自己解決一個(gè)較簡(jiǎn)單的課題,初步積累編程經(jīng)驗(yàn)。提高學(xué)生獨(dú)立編寫大編程的能力。
三、 設(shè)計(jì)要求
計(jì)算機(jī)科學(xué)是一門研究數(shù)據(jù)表示和數(shù)據(jù)處理的科學(xué)。數(shù)據(jù)是計(jì)算機(jī)化的信息,是計(jì)算機(jī)可以直接處理的最基本和最重要的對(duì)象。無(wú)論是進(jìn)行科學(xué)計(jì)算,數(shù)據(jù)處理,過(guò)程控制,還是對(duì)文件的存儲(chǔ)和檢索及數(shù)據(jù)庫(kù)技術(shù)的應(yīng)用,都是對(duì)數(shù)據(jù)進(jìn)行加工處理的過(guò)程。
希望通過(guò)學(xué)習(xí)掌握程序設(shè)計(jì)的方法與編程技術(shù),我們能學(xué)會(huì)良好的程序設(shè)計(jì)風(fēng)格,為在計(jì)算機(jī)不同領(lǐng)域的應(yīng)用打下堅(jiān)實(shí)的基礎(chǔ)。希望通過(guò)本次的學(xué)習(xí),我們能利用計(jì)算機(jī)解決實(shí)際題。與此同時(shí),希望能通過(guò)此次的實(shí)訓(xùn)來(lái)提高我們的思維能力,促進(jìn)我們的綜合應(yīng)用能力和我們的專業(yè)素質(zhì)。
二、 任務(wù)描述
實(shí)現(xiàn)兩個(gè)鏈表的合并
基本功能要求:
1、建立兩個(gè)鏈表A和B,鏈表元素的個(gè)數(shù)沒(méi)別為m和n個(gè)。
2、假設(shè)元素分別為(x1,x2,···xm),和(y1,y2,···yn)。把他們合并成一個(gè)線性表C,使得:
當(dāng)m>=n時(shí),C=x1,y1,x2,y2,···xn,yn,···xm
當(dāng)n>m時(shí),C=y1,x1,y2,x2,···ym,xm,···,yn
輸出線性表C
3、用直接插入排序法對(duì)C進(jìn)行升序排序,生成表D,并輸出表A ,B ,C ,D。
三、 軟件環(huán)境
編輯工具:
Turbo C2.0
功能介紹:
Turbo C2.0是一個(gè)快捷、高效的編譯程序,同時(shí)還有一個(gè)易學(xué)、易用的集成開發(fā)環(huán)境。使用Turbo C2.0無(wú)需獨(dú)立地編輯、編譯和連接程序,就能建立并運(yùn)行C語(yǔ)言程序。因?yàn)檫@些功能都組合在Turbo 2.0的集成開發(fā)環(huán)境內(nèi),并且可以通過(guò)一個(gè)簡(jiǎn)單的主屏幕使用這些功能。
四、 算法設(shè)計(jì)思想及流程圖
一、 算法設(shè)計(jì)思想
1、 定義鏈表的結(jié)構(gòu)
[數(shù)據(jù)結(jié)構(gòu)實(shí)習(xí)報(bào)告(共2篇)]
typedef struct
{
int data[maxsize];
int top;
}list;
2、 創(chuàng)建鏈表A,B,C,D,由于這鏈表是自己創(chuàng)立的,我們首先要對(duì)他
們進(jìn)行申請(qǐng)存儲(chǔ)空間,首先我們就定義頭文件#include,用malloc(sizeof())函數(shù)來(lái)現(xiàn)實(shí),這是申請(qǐng)鏈表存儲(chǔ)空間的標(biāo)志.
3、 用指針top的移動(dòng)來(lái)實(shí)現(xiàn)對(duì)鏈表A,和B進(jìn)行數(shù)據(jù)的輸入輸出,再
進(jìn)行鏈表長(zhǎng)度的比較,在用直接插入法對(duì)A和B中的數(shù)據(jù)查到C中,當(dāng)m>=n的時(shí)候,先插A的元素,再插入B的元素
C->data[C->top]=A->data[j];
j=j+1;
C->top=C->top+1;
C->data[C->top]=B->data[k];
k=k+1;
C->top=C->top+1;
當(dāng)n>m的時(shí)候,先插B的元素,在插入A的元素
C->data[C->top]=B->data[j];
j=j+1;
C->top=C->top+1;
C->data[C->top]=A->data[k];
k=k+1;
C->top=C->top+1;
4、 用冒泡排序法對(duì)C中元素進(jìn)行排序生成表D,由于要進(jìn)行升序排序,
所以只需比較D->data[j]data[j-1],再輸出D->data[j],移動(dòng)指針D->top,每進(jìn)行一次輸出,指針就移動(dòng)一次D->top+1,直到C中元素都排序完,最后輸出D。
5、
打印鏈表A,B,C,D。
二、 流程圖
下頁(yè)
篇二:數(shù)據(jù)結(jié)構(gòu)實(shí)習(xí)報(bào)告
測(cè)繪與國(guó)土信息工程學(xué)院
實(shí)驗(yàn)態(tài)度:
實(shí)驗(yàn)成果:
實(shí)驗(yàn)報(bào)告:
《數(shù)據(jù)結(jié)構(gòu)》課程 實(shí)驗(yàn)報(bào)告 姓 名:
學(xué) 號(hào):
班 級(jí):
成 績(jī):
、認(rèn)真 2、良好 3、一般 4、不認(rèn)真 、優(yōu)秀 2、可信 3、一般 4、不真實(shí) 、清晰完整 2、比較完整 3、不清晰 ? 教師簽名:111
交報(bào)告日期:
20xx年 ?7 月 ?1日
目錄
實(shí)驗(yàn)一 線性表的鏈表實(shí)現(xiàn)類的設(shè)計(jì) ................................................................................. 4
實(shí)驗(yàn)二 順序棧的自定義類設(shè)計(jì) ......................................................................................... 8
實(shí)驗(yàn)三 字符串的操作類設(shè)計(jì) ........................................................................................... 12
實(shí)驗(yàn)四 樹和二叉樹的自定義類的設(shè)計(jì) ........................................................................... 19
實(shí)驗(yàn)五 圖的最短路徑算法設(shè)計(jì) ....................................................................................... 22
實(shí)驗(yàn)六 自定義類應(yīng)用綜合設(shè)計(jì) ....................................................................................... 27
實(shí)驗(yàn)一 線性表的鏈表實(shí)現(xiàn)類的設(shè)計(jì)
一、 需求分析
本次程序設(shè)計(jì)要求建立一個(gè)以鏈表為儲(chǔ)存方式的線性表,以及實(shí)現(xiàn)線性表所需求的各種功能。
對(duì)線性表的操作有:
(1)輸入形式為從鍵盤輸入,用戶根據(jù)界面的提示從鍵盤直接輸入所對(duì)應(yīng)的數(shù)即可。輸入的值要求為整數(shù)類型,用戶輸入其它類型的數(shù)據(jù)時(shí)(例如字符串)會(huì)產(chǎn)生不可預(yù)測(cè)的錯(cuò)誤。
(2)輸出的界面為DOS窗口,系統(tǒng)按照用戶輸入的數(shù)據(jù)類型,將會(huì)把相應(yīng)的輸出結(jié)果顯示到界面上。
(3)程序可以建立一個(gè)以鏈表形式儲(chǔ)存的線性表,對(duì)線性表可以進(jìn)行查找、刪除、插入、構(gòu)造、銷毀和獲取鏈表長(zhǎng)度的操作。
(4)以L1={0, 5, 9, 10, 12, 12, 17, 20, 24}構(gòu)造鏈表;找
到重復(fù)的
[數(shù)據(jù)結(jié)構(gòu)實(shí)習(xí)報(bào)告(共2篇)]
};
class List{
public:
List(){first = new LinkNode;} ? ? ?List(const int x){first = new LinkNode(x);} ? List(List&
L);
~List(){
MakeEmpty();
first;
}
LinkNode* Search(int x);
LinkNode* Locate(int i);
LinkNode* GetHead()const {return first;} ? int GetData(int i);
void DeleteRepeatedElem();
void Input();
void Display();
List&
operator = (List&
L);
private:
LinkNode* first;
};
List::List(List&
L)
{
int val;
LinkNode * srcPtr = L.GetHead();
LinkNode * desPtr = first = new LinkNode;
while(srcPtr->link != NULL){
val = srcPtr->link->data;
desPtr->link = new LinkNode(val);
desPtr = desPtr->link;
srcPtr = srcPtr->link;
}
desPtr->link = NULL;
}
三、 顯示詳細(xì)設(shè)計(jì)
int main(int argc, char *argv[])
{
List L1;
int d;
L1.Input();
L1.Display();
L1.DeleteRepeatedElem();
下頁(yè)
詞條內(nèi)容僅供參考,如果您需要解決具體問(wèn)題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。