亚洲黄色高清电影|国产精品V无码A片在线看吃奶|亚洲色图视频二区|综合97色色色色婷婷|激情在线一区国产精品不|99人妻在线精品|欧美一级片免费在线播放|全球最大成人色情网站|哪里有A片看在线无码高清|在线免费在线观看黄片网站

報告

數(shù)據(jù)結(jié)構(gòu)實驗報告

時間:2024-11-22 14:29:08 報告 我要投稿

數(shù)據(jù)結(jié)構(gòu)實驗報告

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

數(shù)據(jù)結(jié)構(gòu)實驗報告

數(shù)據(jù)結(jié)構(gòu)實驗報告1

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

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

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

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

  1. 線性表

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

  2. 棧

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

  3. 隊列

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

  4. 樹

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

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

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

  1. 線性表

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

  2. 棧

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

  3. 隊列

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

  4. 樹

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

  四、實驗結(jié)果

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

數(shù)據(jù)結(jié)構(gòu)實驗報告2

  1 引言

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

  2 提高工作效率的措施

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

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

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

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

  2.3 檢驗過程計算電算化

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

  2.4 檢驗報告

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

  2.5 文件管理電子化

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

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

數(shù)據(jù)結(jié)構(gòu)實驗報告3

  一、實驗?zāi)康募耙?/strong>

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

  本實驗訓(xùn)練的要點是“!焙汀瓣犃小钡挠^點;

  二、實驗內(nèi)容

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

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

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

  三、實驗流程、操作步驟或核心代碼、算法片段

  順序棧:

  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上面一個...

  {

  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);虺鰲5脑兀");

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

  {

  switch (x)

  {

  case '(':

  case '[':

  case '{':

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

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

  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;

  }

  鏈隊列:

  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; //只有一個元素時(不存在指向尾指針)

  free (p);

  return OK;

  }

  Status QueueTraverse(LinkQueue Q)

  {

  QueuePtr p,q;

  if( QueueEmpty(Q)==OK)

  {

  printf("這是一個空隊列! ");

  return ERROR;

  }

  p=Q.front->next;

  while(p)

  {

  q=p;

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

  q=p->next;

  p=q;

  }

  return OK;

  }

  循環(huán)隊列:

  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("這是一個空隊列!");

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

  {

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

  Q.front++;

  }

  return OK;

  }

數(shù)據(jù)結(jié)構(gòu)實驗報告4

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

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

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

  3.1基礎(chǔ)模塊

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

  3.2報告輸出模塊

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

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

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

  三、應(yīng)用實例

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

  四、結(jié)束語

數(shù)據(jù)結(jié)構(gòu)實驗報告5

  一、實驗?zāi)康?/strong>

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

  2、通過編程實踐,加深理解隊列和棧的順序存儲和鏈?zhǔn)酱鎯Φ膶崿F(xiàn)方法。

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

  二、實驗內(nèi)容

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

  2、實現(xiàn)鏈?zhǔn)疥犃械摹;静僮鳎ǔ跏蓟⑴锌、入隊、出隊)?/p>

  三、實驗步驟及核心代碼

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

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

 。2)順序棧的初始化

 。3)順序棧的判空操作

 。4)順序棧的入棧操作

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

  2、鏈?zhǔn)疥犃械膶崿F(xiàn)

 。1)定義鏈?zhǔn)疥犃械臄?shù)據(jù)結(jié)構(gòu)(節(jié)點和隊列)

 。2)鏈?zhǔn)疥犃械某跏蓟裕?/p>

 。3)鏈?zhǔn)疥犃械呐锌詹僮鳎裕?/p>

 。4)鏈?zhǔn)疥犃械娜腙牪僮鳎裕?/p>

 。5)鏈?zhǔn)疥犃械某鲫牪僮鳎裕?/p>

  四、實驗結(jié)果與分析

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

  2、鏈?zhǔn)疥犃械膶嶒灲Y(jié)果與分析(包括測試數(shù)據(jù)、執(zhí)行結(jié)果、問題分析等)。

  五、實驗總結(jié)

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

數(shù)據(jù)結(jié)構(gòu)實驗報告6

  《數(shù)據(jù)結(jié)構(gòu)與算法》實驗報告

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

  實驗項目

  實驗一 二叉樹的應(yīng)用

  實驗?zāi)康?/strong>

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

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

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

  實驗內(nèi)容

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

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

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

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

  算法設(shè)計分析

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

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

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

  typedef struct SNODE

  {char name[MAX]; //人名

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

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

  }FNODE;

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

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

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

  void main()

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

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

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

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

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

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

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

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

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

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

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

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

  void PRINT(int &n)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  7程序結(jié)束

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  實驗測試結(jié)果及結(jié)果分析

  (一)測試結(jié)果

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

 。裕

  實驗總結(jié)

 。裕

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

數(shù)據(jù)結(jié)構(gòu)實驗報告范例08-10

實驗報告06-21

測試實驗報告07-10

焊接實驗報告03-15

示波器實驗報告06-24

學(xué)生實驗報告10-09

大學(xué)實驗報告11-16

小學(xué)實驗報告(精選)11-04

最新實驗報告10-14