亚洲色影视在线播放_国产一区+欧美+综合_久久精品少妇视频_制服丝袜国产网站

報(bào)告

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告

時(shí)間:2024-11-22 14:29:08 報(bào)告 我要投稿

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告

  在經(jīng)濟(jì)發(fā)展迅速的今天,報(bào)告的使用成為日常生活的常態(tài),要注意報(bào)告在寫作時(shí)具有一定的格式。那么,報(bào)告到底怎么寫才合適呢?下面是小編整理的數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告,希望能夠幫助到大家。

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告1

  一、設(shè)計(jì)的背景和目的

  隨著社會(huì)信息化和網(wǎng)絡(luò)技術(shù)的發(fā)展,數(shù)據(jù)結(jié)構(gòu)成為了計(jì)算機(jī)專業(yè)學(xué)生必修的課程之一。而數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì)是檢驗(yàn)學(xué)生理解數(shù)據(jù)結(jié)構(gòu)的重要手段之一。本次實(shí)驗(yàn)旨在讓學(xué)生通過實(shí)踐,掌握線性表、棧、隊(duì)列、樹等數(shù)據(jù)結(jié)構(gòu)的基本操作和應(yīng)用。

  二、設(shè)計(jì)的內(nèi)容

  本次實(shí)驗(yàn)分為四部分,分別為線性表、棧、隊(duì)列和樹。每個(gè)部分分別包括以下內(nèi)容:

  1. 線性表

  設(shè)計(jì)一個(gè)線性表,支持插入、刪除、查找、遍歷、求表長度等基本操作,并設(shè)計(jì)一個(gè)簡單的應(yīng)用程序,模擬學(xué)生成績的管理。

  2. 棧

  設(shè)計(jì)一個(gè)棧,支持進(jìn)棧、出棧、判斷棧是否為空、求棧長度等基本操作,并設(shè)計(jì)一個(gè)簡單的應(yīng)用程序,模擬計(jì)算器實(shí)現(xiàn)加減乘除的運(yùn)算。

  3. 隊(duì)列

  設(shè)計(jì)一個(gè)隊(duì)列,支持進(jìn)隊(duì)、出隊(duì)、判斷隊(duì)列是否為空、求隊(duì)列長度等基本操作,并設(shè)計(jì)一個(gè)簡單的應(yīng)用程序,實(shí)現(xiàn)圖的廣度優(yōu)先搜索算法。

  4. 樹

  設(shè)計(jì)一個(gè)二叉樹,支持插入、刪除、查找、遍歷等基本操作,并設(shè)計(jì)一個(gè)應(yīng)用程序,實(shí)現(xiàn)哈夫曼編碼。

  三、設(shè)計(jì)的實(shí)現(xiàn)

  本次實(shí)驗(yàn)采用C語言實(shí)現(xiàn),使用了鏈表和數(shù)組兩種數(shù)據(jù)結(jié)構(gòu)作為存儲(chǔ)方式。

  1. 線性表

  線性表的'實(shí)現(xiàn)采用鏈表作為存儲(chǔ)結(jié)構(gòu),由于鏈表可以動(dòng)態(tài)分配內(nèi)存,因此可以方便地實(shí)現(xiàn)插入和刪除操作。學(xué)生成績的管理程序中,可以通過插入、刪除、遍歷等操作實(shí)現(xiàn)對學(xué)生成績的增刪查改。

  2. 棧

  棧的實(shí)現(xiàn)采用數(shù)組作為存儲(chǔ)結(jié)構(gòu),數(shù)組大小為100,可以通過定義棧頂指針實(shí)現(xiàn)入棧和出棧操作。計(jì)算器程序中,通過將中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式,再通過棧的出棧和進(jìn)棧操作,實(shí)現(xiàn)加減乘除的運(yùn)算。

  3. 隊(duì)列

  隊(duì)列的實(shí)現(xiàn)采用循環(huán)隊(duì)列作為存儲(chǔ)結(jié)構(gòu),隊(duì)列大小為100,可以通過定義隊(duì)頭和隊(duì)尾指針實(shí)現(xiàn)出隊(duì)和入隊(duì)操作。實(shí)現(xiàn)圖的廣度優(yōu)先搜索算法中,每次將隊(duì)頭出隊(duì),并將與隊(duì)頭相鄰的點(diǎn)入隊(duì),直到隊(duì)列為空。

  4. 樹

  樹的實(shí)現(xiàn)采用二叉鏈表作為存儲(chǔ)結(jié)構(gòu),每個(gè)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)包括節(jié)點(diǎn)值、左右子節(jié)點(diǎn)指針和父節(jié)點(diǎn)指針。哈夫曼編碼程序中,先通過輸入一組字符及其出現(xiàn)頻率,構(gòu)建哈夫曼樹,再通過遍歷哈夫曼樹,生成哈夫曼編碼。

  四、實(shí)驗(yàn)結(jié)果

  本次實(shí)驗(yàn)的四個(gè)部分均已順利完成,所有程序均已經(jīng)通過測試。通過實(shí)踐,學(xué)生們對線性表、棧、隊(duì)列、樹等數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)操作和應(yīng)用有了更深入的理解和掌握。此舉有助于提高學(xué)生的程序設(shè)計(jì)水平和數(shù)據(jù)結(jié)構(gòu)的應(yīng)用能力。

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告2

  1 引言

  產(chǎn)品質(zhì)量監(jiān)督檢驗(yàn)機(jī)構(gòu)(以下簡稱檢驗(yàn)機(jī)構(gòu))的基本任務(wù)是依據(jù)技術(shù)標(biāo)準(zhǔn),對產(chǎn)品進(jìn)行檢測,出據(jù)科學(xué)、公正、準(zhǔn)確的檢驗(yàn)報(bào)告[1]。檢驗(yàn)機(jī)構(gòu)的一系列管理措施都是圍繞著這一中心而展開的。檢驗(yàn)機(jī)構(gòu)在監(jiān)督檢驗(yàn)、委托檢驗(yàn)、第三方仲裁檢驗(yàn)、流通領(lǐng)域中打擊假冒偽劣產(chǎn)品檢驗(yàn)等[2]為提高產(chǎn)品質(zhì)量、保護(hù)消費(fèi)者的合法權(quán)益、打擊假冒偽劣產(chǎn)品、促進(jìn)市場有序競爭,為政府部門提供決策依據(jù)先進(jìn)都起到了很大作用。下面就本系統(tǒng)的工作實(shí)際粗略地提出關(guān)于檢驗(yàn)機(jī)構(gòu)如何提高工作效率的一些看法,以供同行交流參考。

  2 提高工作效率的措施

  2.1 標(biāo)準(zhǔn)管理

  標(biāo)準(zhǔn)是檢驗(yàn)產(chǎn)品的技術(shù)依據(jù)。根據(jù)GB/T 27025 [3]的要求,檢驗(yàn)機(jī)構(gòu)要保證所使用的標(biāo)準(zhǔn)是現(xiàn)行有效的。如果檢驗(yàn)依據(jù)使用錯(cuò)誤,可能會(huì)導(dǎo)致檢測結(jié)果錯(cuò)誤,或檢驗(yàn)結(jié)論判斷錯(cuò)誤,從而引發(fā)檢測爭議。要做到檢測中所使用的標(biāo)準(zhǔn)現(xiàn)行有效就必須充分利用網(wǎng)絡(luò),通過標(biāo)準(zhǔn)信息網(wǎng)及時(shí)查閱并下載相關(guān)標(biāo)準(zhǔn)更新的信息。檢測機(jī)構(gòu)應(yīng)設(shè)有專職或兼職標(biāo)準(zhǔn)化工作人員,負(fù)責(zé)使用標(biāo)準(zhǔn)的檢索、更新并建立標(biāo)準(zhǔn)數(shù)據(jù)庫及數(shù)據(jù)庫的日常維護(hù)。標(biāo)準(zhǔn)數(shù)據(jù)庫設(shè)有如下信息:標(biāo)準(zhǔn)名稱、標(biāo)準(zhǔn)編號(hào)、日期、實(shí)施日期、部門、以及作廢、更新、替換信息等內(nèi)容。檢驗(yàn)機(jī)構(gòu)內(nèi)部建立局域網(wǎng),實(shí)現(xiàn)內(nèi)部聯(lián)網(wǎng),方便各部門人員及時(shí)查閱標(biāo)準(zhǔn)信息。為了保證數(shù)據(jù)庫運(yùn)行準(zhǔn)確無誤,應(yīng)設(shè)置標(biāo)準(zhǔn)更改權(quán)限,規(guī)定只有標(biāo)準(zhǔn)化負(fù)責(zé)人員才有權(quán)對標(biāo)準(zhǔn)信息進(jìn)行寫入。其他人員只能查詢和讀取,不能隨意更改。檢驗(yàn)機(jī)構(gòu)還應(yīng)規(guī)定出具報(bào)告中引用的標(biāo)準(zhǔn)必須從標(biāo)準(zhǔn)數(shù)據(jù)庫中調(diào)用。

  2.2 原始記錄格式規(guī)范化

  檢驗(yàn)原始記錄是出具檢驗(yàn)報(bào)告的依據(jù)。因此檢驗(yàn)機(jī)構(gòu)必須重視原始記錄工作,如果將檢測報(bào)告被看作是檢驗(yàn)機(jī)構(gòu)的產(chǎn)品,那么原始記錄就相當(dāng)于檢測報(bào)告所用的原料或半成品。在實(shí)際工作中由于對原始記錄工作重視不夠,記錄中存在不少問題。如原始記錄字跡潦草,難以辨認(rèn);內(nèi)容與檢驗(yàn)報(bào)告不符;未記錄引用的檢驗(yàn)標(biāo)準(zhǔn)、檢驗(yàn)過程中所使用的儀器設(shè)備及設(shè)備使用的參數(shù)條件;檢測過程涉及的過程數(shù)據(jù)、公式等記錄不全[4]。為保證檢測報(bào)告質(zhì)量,必須重視原始記錄,做到原始記錄規(guī)范、準(zhǔn)確和完整,可采取以下措施:將產(chǎn)品標(biāo)準(zhǔn)中所涉及的檢測項(xiàng)目按檢驗(yàn)方法設(shè)立原始記錄,原始記錄中必須包括GB/T 27025 [3]中規(guī)定的關(guān)于原始記錄要求的全部信息。每項(xiàng)檢測記錄應(yīng)包含足夠的信息,以便識(shí)別不確定度的影響因素,并保證該檢測在盡可能接近原條件的情況下能夠復(fù)現(xiàn)。記錄應(yīng)包括從事各項(xiàng)檢測的人員和結(jié)果校核人員的標(biāo)識(shí)、檢測的方法、計(jì)算的公式、檢測過程中必要的曲線圖均應(yīng)有詳細(xì)的記錄及使用的重要檢測儀器與設(shè)備(含名稱、型號(hào)、精度等級)以利于真實(shí)反映檢測手段及檢測條件使用情況,檢測記錄是檢測結(jié)果的`原始憑證。

  2.3 檢驗(yàn)過程計(jì)算電算化

  對每一類產(chǎn)品所有檢驗(yàn)項(xiàng)目在檢驗(yàn)過程中涉及到的計(jì)算建立Excel數(shù)據(jù)庫,將每一檢驗(yàn)項(xiàng)目計(jì)算公式中涉及的參數(shù)編制計(jì)算程序,檢驗(yàn)人員只需錄入原始數(shù)據(jù),即可得出結(jié)果,可以避免檢驗(yàn)人員用手工或計(jì)算器計(jì)算的容易出錯(cuò)的問題,還可以提高數(shù)據(jù)計(jì)算的速度,特別是在完成批量大、涉及的計(jì)算量較大的監(jiān)督抽查、工商委托抽樣任務(wù)時(shí)可以發(fā)揮較大的優(yōu)勢。

  2.4 檢驗(yàn)報(bào)告

  檢驗(yàn)報(bào)告是檢驗(yàn)工作全過程形成的結(jié)果,是質(zhì)監(jiān)、工商、法院等單位執(zhí)法的重要依據(jù)。檢驗(yàn)報(bào)告初稿由承檢負(fù)責(zé)人編寫.其他承拉人校對并簽名。要提高出具檢驗(yàn)報(bào)告的效率和質(zhì)量,按照相關(guān)規(guī)定,要求檢驗(yàn)報(bào)告格式規(guī)范;引用的檢驗(yàn)依據(jù)、判定依據(jù)正確;報(bào)告檢驗(yàn)數(shù)據(jù)準(zhǔn)確,信息完整無誤。報(bào)告進(jìn)行初審和復(fù)審的二級審批制度。報(bào)告正本加蓋檢驗(yàn)報(bào)告專用章和騎縫章,保證質(zhì)檢機(jī)構(gòu)的公正性、科學(xué)性和有效性[1]。要提高出具檢驗(yàn)報(bào)告的效率可采取如下措施: 1、將報(bào)告格式分類:由于不同檢驗(yàn)類別的樣品檢驗(yàn)報(bào)告所用的報(bào)告格式是不同的,故按不同類別設(shè)立報(bào)告的規(guī)范格式:委托送樣、監(jiān)督抽查、許可證發(fā)證檢驗(yàn)、委托抽樣檢驗(yàn)等按不同類別建立數(shù)據(jù)庫,根據(jù)檢驗(yàn)具體要求從中調(diào)用;2、按產(chǎn)品分類:在報(bào)告格式分類基礎(chǔ)上,將不同產(chǎn)品按產(chǎn)品標(biāo)準(zhǔn)建立完整的全項(xiàng)目檢驗(yàn)報(bào)告格式,將其中的一些內(nèi)容設(shè)為固定參數(shù),如檢驗(yàn)項(xiàng)目,對應(yīng)的技術(shù)要求,打報(bào)告時(shí)只需調(diào)用對應(yīng)的報(bào)告格式和對應(yīng)產(chǎn)品,輸入實(shí)際檢測值,再對檢測的項(xiàng)目做適當(dāng)刪改即可,這樣可以節(jié)省大量的輸入、校對及查找技術(shù)要求的時(shí)間,還減少誤操作的出錯(cuò)率。

  2.5 文件管理電子化

  電子文檔是相對于傳統(tǒng)的紙質(zhì)文檔而言,電子文檔具有很多優(yōu)越性,最突出一點(diǎn)是電子文檔的檢索更為方便、高效,體現(xiàn)在:1、樣品流轉(zhuǎn),采用電子文檔記錄樣品編號(hào)、數(shù)量、檢測項(xiàng)目、送樣單位、接樣日期、要求報(bào)告日期等信息,如此記錄的信息便于查找、檢索。2、日常檢驗(yàn)報(bào)告在編制后需要有報(bào)告審核的程序。若采用紙質(zhì)報(bào)告,經(jīng)領(lǐng)導(dǎo)檢查審核后,如發(fā)現(xiàn)問題需修改則要重新打印,既浪費(fèi)又麻煩,若采用電子文檔,可以將檢驗(yàn)原始記錄用掃描儀掃描成電子文檔,連同編制好的檢驗(yàn)報(bào)告,以電子文件的形式通過局域網(wǎng)傳遞給審核者,審核完畢后傳回業(yè)務(wù)室進(jìn)行打印裝訂就可以了。另外,也可以結(jié)合本單位的實(shí)際情況,運(yùn)用實(shí)驗(yàn)室管理軟件系統(tǒng),將日常檢測工作流程如:程序文件、樣品流轉(zhuǎn)、標(biāo)準(zhǔn)檢索、儀器信息、原始記錄(包括儀器分析圖譜)數(shù)據(jù)匯總、檢測報(bào)告等文件信息輸入系統(tǒng),再經(jīng)分析整理,最終形成文件。這樣既便于日常實(shí)驗(yàn)室管理,也使檔案管理工作與日常工作形成一個(gè)有機(jī)的整體[5]。

  總之,要提高產(chǎn)品質(zhì)量監(jiān)督檢驗(yàn)機(jī)構(gòu)的工作效率,應(yīng)從檢驗(yàn)機(jī)構(gòu)內(nèi)部多個(gè)環(huán)節(jié)齊抓共管,特別是從標(biāo)準(zhǔn)管理、原始記錄格式規(guī)范化、檢驗(yàn)過程計(jì)算電算化、檢驗(yàn)報(bào)告、業(yè)務(wù)室管理和文件管理電子化等方面加強(qiáng)管理,努力提高檢測水平,保證檢測報(bào)告質(zhì)量,維護(hù)產(chǎn)品質(zhì)量檢驗(yàn)機(jī)構(gòu)的科學(xué)性、準(zhǔn)確性和公正性。

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告3

  一、實(shí)驗(yàn)?zāi)康募耙?/strong>

  1)掌握棧和隊(duì)列這兩種特殊的線性表,熟悉它們的特性,在實(shí)際問題背景下靈活運(yùn)用它們。

  本實(shí)驗(yàn)訓(xùn)練的要點(diǎn)是“!焙汀瓣(duì)列”的觀點(diǎn);

  二、實(shí)驗(yàn)內(nèi)容

  1) 利用棧,實(shí)現(xiàn)數(shù)制轉(zhuǎn)換。

  2) 利用棧,實(shí)現(xiàn)任一個(gè)表達(dá)式中的語法檢查(選做)。

  3) 編程實(shí)現(xiàn)隊(duì)列在兩種存儲(chǔ)結(jié)構(gòu)中的'基本操作(隊(duì)列的初始化、判隊(duì)列空、入隊(duì)列、出隊(duì)列);

  三、實(shí)驗(yàn)流程、操作步驟或核心代碼、算法片段

  順序棧:

  Status InitStack(SqStack &S)

  {

  S.base=(ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));

  if(!S.base)

  return ERROR;

  S.top=S.base;

  S.stacksize=STACK_INIT_SIZE;

  return OK;

  }

  Status DestoryStack(SqStack &S)

  {

  free(S.base);

  return OK;

  }

  Status ClearStack(SqStack &S)

  {

  S.top=S.base;

  return OK;

  }

  Status StackEmpty(SqStack S)

  {

  if(S.base==S.top)

  return OK;

  return ERROR;

  }

  int StackLength(SqStack S)

  {

  return S.top-S.base;

  }

  Status GetTop(SqStack S,ElemType &e)

  {

  if(S.top-S.base>=S.stacksize)

  {

  S.base=(ElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(ElemType));

  if(!S.base) return ERROR;

  S.top=S.base+S.stacksize;

  S.stacksize+=STACKINCREMENT;

  }

  *S.top++=e;

  return OK;

  }

  Status Push(SqStack &S,ElemType e)

  {

  if(S.top-S.base>=S.stacksize)

  {

  S.base=(ElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(ElemType));

  if(!S.base)

  return ERROR;

  S.top=S.base+S.stacksize;

  S.stacksize+=STACKINCREMENT;

  }

  *S.top++=e;

  return OK;

  }

  Status Pop(SqStack &S,ElemType &e)

  {

  if(S.top==S.base)

  return ERROR;

  e=*--S.top;

  return OK;

  }

  Status StackTraverse(SqStack S)

  {

  ElemType *p;

  p=(ElemType *)malloc(sizeof(ElemType));

  if(!p) return ERROR;

  p=S.top;

  while(p!=S.base)//S.top上面一個(gè)...

  {

  p--;

  printf("%d ",*p);

  }

  return OK;

  }

  Status Compare(SqStack &S)

  {

  int flag,TURE=OK,FALSE=ERROR;

  ElemType e,x;

  InitStack(S);

  flag=OK;

  printf("請輸入要進(jìn)棧或出棧的元素:");

  while((x= getchar)!='#'&&flag)

  {

  switch (x)

  {

  case '(':

  case '[':

  case '{':

  if(Push(S,x)==OK)

  printf("括號(hào)匹配成功! ");

  break;

  case ')':

  if(Pop(S,e)==ERROR || e!='(')

  {

  printf("沒有滿足條件 ");

  flag=FALSE;

  }

  break;

  case ']':

  if ( Pop(S,e)==ERROR || e!='[')

  flag=FALSE;

  break;

  case '}':

  if ( Pop(S,e)==ERROR || e!='{')

  flag=FALSE;

  break;

  }

  }

  if (flag && x=='#' && StackEmpty(S))

  return OK;

  else

  return ERROR;

  }

  鏈隊(duì)列:

  Status InitQueue(LinkQueue &Q)

  {

  Q.front =Q.rear=

  (QueuePtr)malloc(sizeof(QNode));

  if (!Q.front) return ERROR;

  Q.front->next = NULL;

  return OK;

  }

  Status DestoryQueue(LinkQueue &Q)

  {

  while(Q.front)

  {

  Q.rear=Q.front->next;

  free(Q.front);

  Q.front=Q.rear;

  }

  return OK;

  }

  Status QueueEmpty(LinkQueue &Q)

  {

  if(Q.front->next==NULL)

  return OK;

  return ERROR;

  }

  Status QueueLength(LinkQueue Q)

  {

  int i=0;

  QueuePtr p,q;

  p=Q.front;

  while(p->next)

  {

  i++;

  p=Q.front;

  q=p->next;

  p=q;

  }

  return i;

  }

  Status GetHead(LinkQueue Q,ElemType &e)

  {

  QueuePtr p;

  p=Q.front->next;

  if(!p)

  return ERROR;

  e=p->data;

  return e;

  }

  Status ClearQueue(LinkQueue &Q)

  {

  QueuePtr p;

  while(Q.front->next )

  {

  p=Q.front->next;

  free(Q.front);

  Q.front=p;

  }

  Q.front->next=NULL;

  Q.rear->next=NULL;

  return OK;

  }

  Status EnQueue(LinkQueue &Q,ElemType e)

  {

  QueuePtr p;

  p=(QueuePtr)malloc(sizeof (QNode));

  if(!p)

  return ERROR;

  p->data=e;

  p->next=NULL;

  Q.rear->next = p;

  Q.rear=p; //p->next 為空

  return OK;

  }

  Status DeQueue(LinkQueue &Q,ElemType &e)

  {

  QueuePtr p;

  if (Q.front == Q.rear)

  return ERROR;

  p = Q.front->next;

  e = p->data;

  Q.front->next = p->next;

  if (Q.rear == p)

  Q.rear = Q.front; //只有一個(gè)元素時(shí)(不存在指向尾指針)

  free (p);

  return OK;

  }

  Status QueueTraverse(LinkQueue Q)

  {

  QueuePtr p,q;

  if( QueueEmpty(Q)==OK)

  {

  printf("這是一個(gè)空隊(duì)列! ");

  return ERROR;

  }

  p=Q.front->next;

  while(p)

  {

  q=p;

  printf("%d<- ",q->data);

  q=p->next;

  p=q;

  }

  return OK;

  }

  循環(huán)隊(duì)列:

  Status InitQueue(SqQueue &Q)

  {

  Q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));

  if(!Q.base)

  exit(OWERFLOW);

  Q.front=Q.rear=0;

  return OK;

  }

  Status EnQueue(SqQueue &Q,QElemType e)

  {

  if((Q.rear+1)%MAXQSIZE==Q.front)

  return ERROR;

  Q.base[Q.rear]=e;

  Q.rear=(Q.rear+1)%MAXQSIZE;

  return OK;

  }

  Status DeQueue(SqQueue &Q,QElemType &e)

  {

  if(Q.front==Q.rear)

  return ERROR;

  e=Q.base[Q.front];

  Q.front=(Q.front+1)%MAXQSIZE;

  return OK;

  }

  int QueueLength(SqQueue Q)

  {

  return(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE;

  }

  Status DestoryQueue(SqQueue &Q)

  {

  free(Q.base);

  return OK;

  }

  Status QueueEmpty(SqQueue Q) //判空

  {

  if(Q.front ==Q.rear)

  return OK;

  return ERROR;

  }

  Status QueueTraverse(SqQueue Q)

  {

  if(Q.front==Q.rear)

  printf("這是一個(gè)空隊(duì)列!");

  while(Q.front%MAXQSIZE!=Q.rear)

  {

  printf("%d<- ",Q.base[Q.front]);

  Q.front++;

  }

  return OK;

  }

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告4

  蔬菜農(nóng)殘檢驗(yàn)是一個(gè)復(fù)雜的過程,所有檢驗(yàn)必須經(jīng)過抽樣、樣品登記、樣品檢驗(yàn)、報(bào)告輸出、數(shù)據(jù)匯總幾個(gè)階段.首先在樣品登記階段時(shí),檢驗(yàn)機(jī)構(gòu)抽樣人員必須對進(jìn)入蔬菜批發(fā)市場的蔬菜品種進(jìn)行抽樣,然后立即進(jìn)行登記,登記內(nèi)容包括業(yè)主的身份及車輛等信息.樣品登記后應(yīng)該進(jìn)行樣品檢驗(yàn),檢驗(yàn)數(shù)據(jù)應(yīng)輸入管理系統(tǒng)中,經(jīng)校核后作為最終檢驗(yàn)結(jié)果存檔,然后出具檢驗(yàn)報(bào)告.所有檢驗(yàn)數(shù)據(jù)必須于第二天上報(bào)檢驗(yàn)機(jī)構(gòu)總部,再由檢驗(yàn)機(jī)構(gòu)總部上報(bào)市政府備案.因?yàn)楸静烤嚯x農(nóng)殘檢驗(yàn)站很遠(yuǎn),這段工作通常是第二天由專人開車到農(nóng)殘檢驗(yàn)站獲取檢驗(yàn)記錄單再回質(zhì)檢機(jī)構(gòu)總部錄入?yún)R總,這種工作方式費(fèi)時(shí)費(fèi)力,無法滿足工作要求,需要設(shè)計(jì)出即時(shí)數(shù)據(jù)傳輸功能.另外檢驗(yàn)報(bào)告出具后需在檢驗(yàn)機(jī)構(gòu)總部存檔,因此還需設(shè)計(jì)出檢驗(yàn)數(shù)據(jù)查詢功能供管理者和使用者對檢驗(yàn)數(shù)據(jù)進(jìn)行查詢統(tǒng)計(jì).

  一、PRIM的體系結(jié)構(gòu)

  PRIM系統(tǒng)的架構(gòu)分為數(shù)據(jù)庫部分和客戶端部分和數(shù)據(jù)上傳部分,數(shù)據(jù)庫部分采用MSSQL數(shù)據(jù)庫,客戶端采用.net技術(shù)開發(fā).?dāng)?shù)據(jù)庫安裝在服務(wù)器,客戶端裝在檢驗(yàn)部門、總部管理部門,登記人員、檢驗(yàn)人員、管理員和總部管理人員根據(jù)各自權(quán)限分別可進(jìn)行登記、檢驗(yàn)、檢驗(yàn)數(shù)據(jù)處理、權(quán)限設(shè)定、各種查詢、數(shù)據(jù)上傳等工作.總部可以實(shí)現(xiàn)遠(yuǎn)程監(jiān)控檢驗(yàn)機(jī)構(gòu)的檢驗(yàn)行為和及時(shí)調(diào)用、查詢、分析檢驗(yàn)結(jié)果.通過開放接口,實(shí)現(xiàn)總部實(shí)驗(yàn)室管理系統(tǒng)和現(xiàn)場實(shí)現(xiàn)對接,從而提高檢驗(yàn)數(shù)據(jù)上報(bào)時(shí)間,簡化操作步驟.檢驗(yàn)數(shù)據(jù)保存后,通過PRIM系統(tǒng)提供的接口,使相關(guān)工作人員可以調(diào)出檢驗(yàn)數(shù)據(jù)進(jìn)行查詢、分析、匯總,提高了數(shù)據(jù)的使用效率.另外,使用者可以通過查詢統(tǒng)計(jì)調(diào)用需要的數(shù)據(jù).

  二、系統(tǒng)模塊設(shè)計(jì)

  3.1基礎(chǔ)模塊

  基礎(chǔ)模塊包括數(shù)據(jù)庫設(shè)計(jì)、人員設(shè)置、基本信息設(shè)置等部分,數(shù)據(jù)庫部分可以采用ACCESS、SQL等數(shù)據(jù)庫,ACCESS數(shù)據(jù)庫數(shù)據(jù)處理和統(tǒng)計(jì)分析十分方便,利用ACCESS處理十萬條級以下記錄數(shù)據(jù)時(shí)速度快且操作方便.但是如果處理大的數(shù)據(jù)(百萬條記錄以上)以及復(fù)雜查詢ACCESS有時(shí)不穩(wěn)定易導(dǎo)致系統(tǒng)崩潰,另外,ACEESS數(shù)據(jù)庫適用于單用戶還可以,在處理多用戶時(shí)就顯得數(shù)據(jù)處理能力不夠.相比較而言,MSSQL具備相對穩(wěn)定處理大數(shù)據(jù)的能力,但是查詢設(shè)計(jì)代碼編寫復(fù)雜,不容易被開發(fā)掌握,作為一個(gè)重要的檢驗(yàn)管理系統(tǒng),穩(wěn)定是第一要的,而且每天處理的數(shù)據(jù)量達(dá)到幾千條,很快就會(huì)超過幾十萬條記錄,所以農(nóng)殘檢驗(yàn)管理系統(tǒng)采用SQL數(shù)據(jù)庫是合適的.客戶端采用.net作為編程語言.

  3.2報(bào)告輸出模塊

  報(bào)告輸出的形式有多種,可以采用數(shù)據(jù)鏈接的方式實(shí)現(xiàn)管理系統(tǒng)與OFFICE文檔的輸出,這種方法的優(yōu)點(diǎn)是開發(fā)方便,適應(yīng)性強(qiáng),缺點(diǎn)是不穩(wěn)定,有時(shí)會(huì)出現(xiàn)亂碼現(xiàn)象.第二種方法是采用.net語言把報(bào)告寫在編碼里,這種方法比較繁瑣,開發(fā)周期長,但是功能強(qiáng)大.系統(tǒng)工作穩(wěn)定,不會(huì)出現(xiàn)亂碼現(xiàn)象,所以報(bào)告輸出方面采用.net編程方式進(jìn)行.

  3.3數(shù)據(jù)匯總查詢

  在進(jìn)行信息查詢和統(tǒng)計(jì)時(shí),經(jīng)常同時(shí)牽涉到幾個(gè)數(shù)據(jù)表,這就必須考慮數(shù)據(jù)表之間的數(shù)據(jù)關(guān)聯(lián)性[1].?dāng)?shù)據(jù)匯總的實(shí)現(xiàn)可以通過多個(gè)途徑實(shí)現(xiàn),首先可以編程實(shí)現(xiàn),即通過ADO.NET實(shí)現(xiàn)各種查詢統(tǒng)計(jì)的功能,在多層次查詢時(shí)可以采用普通的組合查詢方式,也可采用“SHAPE...APPEND”以及“SHAPE...COMPUTE”等高級語句生成關(guān)系層次和參數(shù)化以及組合層次進(jìn)行復(fù)雜條件的查詢.其次,也可采用在數(shù)據(jù)庫實(shí)現(xiàn)編寫存儲(chǔ)過程再調(diào)用的查詢方式.?dāng)?shù)據(jù)遠(yuǎn)程傳遞是一個(gè)復(fù)雜過程,它涉及到諸多方面的問題,包括遠(yuǎn)程服務(wù)器和本地服務(wù)器的硬件對接,數(shù)據(jù)的實(shí)時(shí)性、數(shù)據(jù)傳遞的'便捷性、數(shù)據(jù)的大小、及遠(yuǎn)程查詢等諸多軟件對接問題,對此,作者專門開發(fā)了LDTD(LONGDISTANCETRANSPORTDATA)技術(shù),用于處理遠(yuǎn)程數(shù)據(jù)傳遞問題.遠(yuǎn)程數(shù)據(jù)傳遞應(yīng)注意的問題是數(shù)據(jù)傳輸以4096個(gè)字節(jié)為一個(gè)單位,所以每次數(shù)據(jù)傳遞盡量優(yōu)化在4096個(gè)字節(jié)以下,這樣的傳輸才能快捷.

  三、應(yīng)用實(shí)例

  是按照鞍山市產(chǎn)品質(zhì)量監(jiān)督檢驗(yàn)所要求開發(fā)的PRIM系統(tǒng)的運(yùn)行界面.抽樣登記人員從登錄窗口登錄主界面后,輸入基本信息后,系統(tǒng)自動(dòng)生成產(chǎn)品檢驗(yàn)編號(hào),然后通過任務(wù)界面提交檢驗(yàn)申請并發(fā)送,這樣,檢驗(yàn)員接到任務(wù)后開始檢驗(yàn)并出具檢驗(yàn)報(bào)告,然后上傳檢驗(yàn)結(jié)果.在所有的檢驗(yàn)測試數(shù)據(jù)都輸入到系統(tǒng)數(shù)據(jù)庫進(jìn)行保存后,檢驗(yàn)員還可以查詢登記情況和檢驗(yàn)結(jié)果.管理人員及其他需要用到檢驗(yàn)測試數(shù)據(jù)的人員可以通過查詢統(tǒng)計(jì)模塊進(jìn)行查詢、統(tǒng)計(jì),并可以生成相應(yīng)的分析圖,使得相關(guān)部門可以直觀地看到農(nóng)產(chǎn)品農(nóng)藥殘留情況.甚至還可以預(yù)測一定時(shí)期內(nèi)農(nóng)產(chǎn)品農(nóng)藥殘留的走勢,為其做出相應(yīng)決策提供可靠的依據(jù).沒有使用PRIM計(jì)算機(jī)管理程序之前,檢驗(yàn)人員做完實(shí)驗(yàn)后用word文檔出具一份檢驗(yàn)報(bào)單告需5min左右時(shí)間,200份檢驗(yàn)報(bào)告需要1000min左右.加上匯總及改錯(cuò)等時(shí)間,處理檢驗(yàn)的時(shí)間需要一個(gè)人用大致1040min去完成.而使用PRIM計(jì)算機(jī)管理系統(tǒng)后,處理一份報(bào)告平均只需1min完成,200份檢驗(yàn)報(bào)告共需200min左右時(shí)間,同時(shí)出錯(cuò)率低,數(shù)據(jù)實(shí)時(shí)上傳,無需匯總,合計(jì)共省去約940min寶貴時(shí)間,處理檢驗(yàn)報(bào)告工作量是未使用計(jì)算機(jī)管理程序時(shí)工作量的1/5.經(jīng)使用單位使用,5個(gè)人的工作量可以4個(gè)人完成,極大地提高了檢驗(yàn)工作效率,得到了使用單位的認(rèn)可.

  四、結(jié)束語

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告5

  一、實(shí)驗(yàn)?zāi)康?/strong>

  1、掌握數(shù)據(jù)結(jié)構(gòu)中隊(duì)列和棧的基本概念、特性及操作。

  2、通過編程實(shí)踐,加深理解隊(duì)列和棧的順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)的實(shí)現(xiàn)方法。

  3、鍛煉編程能力和算法設(shè)計(jì)能力,提升解決實(shí)際問題的能力。

  二、實(shí)驗(yàn)內(nèi)容

  1、實(shí)現(xiàn)順序棧的基本操作(初始化、判空、入棧、出棧)。

  2、實(shí)現(xiàn)鏈?zhǔn)疥?duì)列的。基本操作(初始化、判空、入隊(duì)、出隊(duì))。

  三、實(shí)驗(yàn)步驟及核心代碼

  1、順序棧的實(shí)現(xiàn)

 。1)定義順序棧的`數(shù)據(jù)結(jié)構(gòu)

 。2)順序棧的初始化

  (3)順序棧的判空操作

 。4)順序棧的入棧操作

 。5)順序棧的出棧操作(略)

  2、鏈?zhǔn)疥?duì)列的實(shí)現(xiàn)

 。1)定義鏈?zhǔn)疥?duì)列的數(shù)據(jù)結(jié)構(gòu)(節(jié)點(diǎn)和隊(duì)列)

 。2)鏈?zhǔn)疥?duì)列的初始化(略)

 。3)鏈?zhǔn)疥?duì)列的判空操作(略)

 。4)鏈?zhǔn)疥?duì)列的入隊(duì)操作(略)

 。5)鏈?zhǔn)疥?duì)列的出隊(duì)操作(略)

  四、實(shí)驗(yàn)結(jié)果與分析

  1、順序棧的實(shí)驗(yàn)結(jié)果與分析(包括測試數(shù)據(jù)、執(zhí)行結(jié)果、問題分析等)。

  2、鏈?zhǔn)疥?duì)列的實(shí)驗(yàn)結(jié)果與分析(包括測試數(shù)據(jù)、執(zhí)行結(jié)果、問題分析等)。

  五、實(shí)驗(yàn)總結(jié)

  通過本次實(shí)驗(yàn),我深入理解了數(shù)據(jù)結(jié)構(gòu)中隊(duì)列和棧的基本概念、特性及操作,并通過編程實(shí)踐掌握了隊(duì)列和棧的順序存儲(chǔ)和鏈?zhǔn)酱鎯?chǔ)的實(shí)現(xiàn)方法。在實(shí)驗(yàn)過程中,我遇到了一些困難和問題,但通過查閱資料、調(diào)試代碼和與同學(xué)討論,最終都得到了解決。這次實(shí)驗(yàn)不僅鍛煉了我的編程能力和算法設(shè)計(jì)能力,還提升了我解決實(shí)際問題的能力。

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告6

  《數(shù)據(jù)結(jié)構(gòu)與算法》實(shí)驗(yàn)報(bào)告

  專業(yè) 班級 姓名 學(xué)號(hào)

  實(shí)驗(yàn)項(xiàng)目

  實(shí)驗(yàn)一 二叉樹的應(yīng)用

  實(shí)驗(yàn)?zāi)康?/strong>

  1、進(jìn)一步掌握指針變量的含義及應(yīng)用。

  2、掌握二叉樹的結(jié)構(gòu)特征,以及各種存儲(chǔ)結(jié)構(gòu)的特點(diǎn)及使用范圍。

  3、掌握用指針類型描述、訪問和處理二叉樹的運(yùn)算。

  實(shí)驗(yàn)內(nèi)容

  題目1:編寫一個(gè)程序,采用一棵二叉樹表示一個(gè)家譜關(guān)系。要求程序具有如下功能:

 。1)用括號(hào)表示法輸出家譜二叉樹,

 。2)查找某人的所有兒子,

 。3)查找某人的所有祖先。

  算法設(shè)計(jì)分析

 。ㄒ唬⿺(shù)據(jù)結(jié)構(gòu)的定義

  為了能夠用二叉樹表示配偶、子女、兄弟三種關(guān)系,特采用以下存儲(chǔ)關(guān)系,則能在二叉樹上實(shí)現(xiàn)家譜的'各項(xiàng)運(yùn)算。

  二叉樹型存儲(chǔ)結(jié)構(gòu)定義為:

  typedef struct SNODE

  {char name[MAX]; //人名

  struct SNODE *left;//指向配偶結(jié)點(diǎn)

  struct SNODE *right; //指向兄弟或子女結(jié)點(diǎn)

  }FNODE;

 。ǘ┛傮w設(shè)計(jì)

  實(shí)驗(yàn)由主函數(shù)、家譜建立函數(shù)、家譜輸出函數(shù)、兒子查找函數(shù)、祖先查找函數(shù)、結(jié)點(diǎn)定位函數(shù)、選擇界面函數(shù)七個(gè)函數(shù)共同組成。其功能描述如下:

 。1)主函數(shù):統(tǒng)籌調(diào)用各個(gè)函數(shù)以實(shí)現(xiàn)相應(yīng)功能

  void main()

  (2)家譜建立函數(shù):與用戶交互建立家族成員對應(yīng)關(guān)系

  void InitialFamily(FNODE *&head) //家譜建立函數(shù)

 。3)家譜輸出函數(shù):用括號(hào)表示法輸出家譜

  輸出形式為:父和母(子1和子妻1(孫1),子2和子妻2(孫2))

  void PrintFamily(FNODE *head) //家譜輸出函數(shù)

  (4)兒子查找函數(shù):在家譜中查找到某人所有的子女并輸出,同時(shí)也能辨別出其是否為家族成員與是否有子女

  void FindSon(FNODE *b,char p[]) //兒子查找函數(shù)

  (5)祖先查找函數(shù):在家譜中查找到某人所有的祖先并輸出,同時(shí)也能辨別出其是否為家族中成員。

  int FindAncestor(FNODE *head,char son[ ]) //祖先查找函數(shù)

 。6)結(jié)點(diǎn)定位函數(shù):在家譜中找到用戶輸入人名所對應(yīng)的結(jié)點(diǎn)。

  FNODE *findnode(FNODE *b,char p[]) //結(jié)點(diǎn)定位函數(shù)

  (7)選擇界面函數(shù):為便于編寫程序,將用戶選擇部分獨(dú)立為此函數(shù)。

  void PRINT(int &n)

  (三)各函數(shù)的詳細(xì)設(shè)計(jì):

  void InitialFamily(FNODE *&head) //家譜建立函數(shù)

  1:首先建立當(dāng)前人的信息,將其左右結(jié)點(diǎn)置為空,

  2:然后讓用戶確定其是否有配偶,如果沒有配偶,則當(dāng)前程序結(jié)束,

  3:如果有則建立其配偶信息,并將配偶結(jié)點(diǎn)賦給當(dāng)前人的左結(jié)點(diǎn);

  4:再讓用戶確定其是否有子女,如果有則遞歸調(diào)用家譜建立函數(shù)建立子女結(jié)點(diǎn),并將其賦給配偶結(jié)點(diǎn)的下一個(gè)右結(jié)點(diǎn)。

  5:如無,則程序結(jié)束

  void PrintFamily(FNODE *head) //家譜輸出函數(shù)

  1:首先判斷當(dāng)前結(jié)點(diǎn)是否為空,如果為空則結(jié)束程序;

  2:如果不為空,則輸出當(dāng)前結(jié)點(diǎn)信息,

  3:然后判斷其左結(jié)點(diǎn)(配偶結(jié)點(diǎn))是否為空,如不為空則輸出“和配偶信息。

  4:再判斷配偶結(jié)點(diǎn)的右結(jié)點(diǎn)是否為空,如不為空則遞歸調(diào)用輸出其子女信息,最后輸出“)”;

  5:當(dāng)配偶結(jié)點(diǎn)為空時(shí),則判斷其右結(jié)點(diǎn)(兄弟結(jié)點(diǎn))是否為空

  6:如果不為空,則輸出“,”,并遞歸調(diào)用輸出兄弟信息

  7程序結(jié)束

  FNODE *findnode(FNODE *b,char p[]) //結(jié)點(diǎn)定位函數(shù)

  1:當(dāng)前結(jié)點(diǎn)是否為空,為空則返回空;

  2:如果和查找信息相同,則返回當(dāng)前結(jié)點(diǎn);

  3:如不然,則先后遞歸訪問其左結(jié)點(diǎn),再不是則遞歸訪問右結(jié)點(diǎn)

  void FindSon(FNODE *b,char p[]) //兒子查找函數(shù)

  1:在家譜中定位到要查找的結(jié)點(diǎn),如無則輸出“查找不到此人”

  2:判斷其配偶結(jié)點(diǎn)與子女結(jié)點(diǎn)是否為空,為空則輸出“無子女”

  3:不為空則輸出其配偶結(jié)點(diǎn)的所有右結(jié)點(diǎn)(子女結(jié)點(diǎn))。

  int FindAncestor(FNODE *head,char son[ ]) //祖先查找函數(shù)

  1:先在家譜中定位到要查找的結(jié)點(diǎn),如為空輸出“不存在此人”,程序結(jié)束

  2:先將父母結(jié)點(diǎn)入棧,當(dāng)棧為空時(shí)程序結(jié)束,

  3:棧不為空時(shí),判斷棧頂元素是否已訪問過,

  4:訪問過,再判斷是否為查找結(jié)點(diǎn),如是則輸出棧中保存的其祖先結(jié)點(diǎn),并濾過其兄弟結(jié)點(diǎn)不輸出;不是查找結(jié)點(diǎn),則退棧一個(gè)元素

  5:未訪問過,則取當(dāng)前棧頂元素,置訪問標(biāo)志——1,同時(shí)取其右結(jié)點(diǎn)

  6:棧不為空或當(dāng)前所取結(jié)點(diǎn)不為空時(shí),轉(zhuǎn)到2;

  實(shí)驗(yàn)測試結(jié)果及結(jié)果分析

  (一)測試結(jié)果

 。ǘ┙Y(jié)果分析

  (略)

  實(shí)驗(yàn)總結(jié)

 。裕

【數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告】相關(guān)文章:

數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告范例08-10

實(shí)驗(yàn)報(bào)告06-21

測試實(shí)驗(yàn)報(bào)告07-10

焊接實(shí)驗(yàn)報(bào)告03-15

示波器實(shí)驗(yàn)報(bào)告06-24

學(xué)生實(shí)驗(yàn)報(bào)告10-09

大學(xué)實(shí)驗(yàn)報(bào)告11-16

小學(xué)實(shí)驗(yàn)報(bào)告(精選)11-04

最新實(shí)驗(yàn)報(bào)告10-14