欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      《數(shù)據(jù)結(jié)構(gòu)》 實(shí)驗(yàn)報(bào)告(附實(shí)例) ---實(shí)驗(yàn)一 線性表的基本操作實(shí)現(xiàn)(五篇范例)

      時(shí)間:2019-05-12 07:17:18下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《《數(shù)據(jù)結(jié)構(gòu)》 實(shí)驗(yàn)報(bào)告(附實(shí)例) ---實(shí)驗(yàn)一 線性表的基本操作實(shí)現(xiàn)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《《數(shù)據(jù)結(jié)構(gòu)》 實(shí)驗(yàn)報(bào)告(附實(shí)例) ---實(shí)驗(yàn)一 線性表的基本操作實(shí)現(xiàn)》。

      第一篇:《數(shù)據(jù)結(jié)構(gòu)》 實(shí)驗(yàn)報(bào)告(附實(shí)例) ---實(shí)驗(yàn)一 線性表的基本操作實(shí)現(xiàn)

      實(shí)驗(yàn) 一 線性表的基本操作實(shí)現(xiàn)及其應(yīng)用

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

      1、熟練掌握線性表的基本操作在兩種存儲(chǔ)結(jié)構(gòu)上的實(shí)現(xiàn),其中以熟悉各種鏈表的操作為重點(diǎn)。

      2、鞏固高級(jí)語(yǔ)言程序設(shè)計(jì)方法與技術(shù),會(huì)用線性鏈表解決簡(jiǎn)單的實(shí)際問(wèn)題。

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

      1、單鏈表的表示與操作實(shí)現(xiàn)(*)

      2、約瑟夫環(huán)問(wèn)題

      3、Dr.Kong的藝術(shù)品

      三、實(shí)驗(yàn)要求

      1、按照數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)任務(wù)書,提前做好實(shí)驗(yàn)預(yù)習(xí)與準(zhǔn)備工作。

      2、加“*”題目必做,其他題目任選;多選者并且保質(zhì)保量完成適當(dāng)加分。

      3、嚴(yán)格按照數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告模板和規(guī)范,及時(shí)完成實(shí)驗(yàn)報(bào)告。

      四、實(shí)驗(yàn)步驟

      (說(shuō)明:依據(jù)實(shí)驗(yàn)內(nèi)容分別說(shuō)明實(shí)驗(yàn)程序中用到的數(shù)據(jù)類型的定義、主程序的流程以及每個(gè)操作(成員函數(shù))的偽碼算法、函數(shù)實(shí)現(xiàn)、程序編碼、調(diào)試與分析、總結(jié)、附流程圖與主要代碼)

      ㈠、數(shù)據(jù)結(jié)構(gòu)與核心算法的設(shè)計(jì)描述

      (程序中每個(gè)模塊或函數(shù)應(yīng)加注釋,說(shuō)明函數(shù)功能、入口及出口參數(shù))

      1、單鏈表的結(jié)點(diǎn)類型定義

      /* 定義DataType為int類型 */ typedef int DataType;

      /* 單鏈表的結(jié)點(diǎn)類型 */ typedef struct LNode { DataType data;struct LNode *next;}LNode,*LinkedList;

      2、初始化單鏈表

      LinkedList LinkedListInit(){ // 每個(gè)模塊或函數(shù)應(yīng)加注釋,說(shuō)明函數(shù)功能、入口及出口參數(shù) }

      3、清空單鏈表

      void LinkedListClear(LinkedList L){// 每個(gè)模塊或函數(shù)應(yīng)加注釋,說(shuō)明函數(shù)功能、入口及出口參數(shù)}

      4、檢查單鏈表是否為空

      int LinkedListEmpty(LinkedList L){ ….}

      5、遍歷單鏈表 void LinkedListTraverse(LinkedList L){ ….}

      6、求單鏈表的長(zhǎng)度

      int LinkedListLength(LinkedList L){ ….}

      7、從單鏈表表中查找元素

      LinkedList LinkedListGet(LinkedList L,int i){ //L是帶頭結(jié)點(diǎn)的鏈表的頭指針,返回第 i 個(gè)元素 }

      8、從單鏈表表中查找與給定元素值相同的元素在鏈表中的位置

      LinkedList LinkedListLocate(LinkedList L, DataType x){ …… }

      9、向單鏈表中插入元素

      void LinkedListInsert(LinkedList L,int i,DataType x){ // L 為帶頭結(jié)點(diǎn)的單鏈表的頭指針,本算法 // 在鏈表中第i 個(gè)結(jié)點(diǎn)之前插入新的元素 x }

      10、從單鏈表中刪除元素

      void LinkedListDel(LinkedList L,DataType x){ // 刪除以 L 為頭指針的單鏈表中第 i 個(gè)結(jié)點(diǎn) }

      11、用尾插法建立單鏈表

      LinkedList LinkedListCreat(){ …… } ㈡、函數(shù)調(diào)用及主函數(shù)設(shè)計(jì)

      (可用函數(shù)的調(diào)用關(guān)系圖說(shuō)明)㈢ 程序調(diào)試及運(yùn)行結(jié)果分析 ㈣ 實(shí)驗(yàn)總結(jié)

      五、主要算法流程圖及程序清單

      1、主要算法流程圖:

      2、程序清單

      (程序過(guò)長(zhǎng),可附主要部分)

      說(shuō)明:以后每次實(shí)驗(yàn)報(bào)告均按此格式書寫。

      我在布置實(shí)驗(yàn)室時(shí),僅給出實(shí)驗(yàn)名稱、實(shí)驗(yàn)?zāi)康?、?shí)驗(yàn)內(nèi)容及相關(guān)數(shù)據(jù)結(jié)構(gòu)。

      題目一程序參考框架 # include # include # include # include # include /* 定義ElemType為int類型 */ typedef int ElemType;#define TRUE 1 #define FALSE 0 #define NULL 0 #define flag-1

      /* 單鏈表的結(jié)點(diǎn)類型 */ typedef struct LNode {ElemType data;struct LNode *next;} LNode,*LinkedList;

      /* 初始化單鏈表 */ LinkedList LinkedListInit(){ } /* 清空單鏈表 */ void LinkedListClear(LinkedList L){ } /* 檢查單鏈表是否為空 */ int LinkedListEmpty(LinkedList L){ } /* 遍歷單鏈表 */ void LinkedListTraverse(LinkedList L){ } int LinkedListLength(LinkedList L){ } LinkedList LinkedListGet(LinkedList L, int i){ } LinkedList LinkedListLocate(LinkedList L, ElemType x){ }

      void LinkedListInsert(LinkedList L, int i, ElemType x){LinkedList pre,p,s;int j;pre=L;j=1;p=L->next;while(pre&&jnext;j++;} if(pre==NULL){printf(“給的i值超過(guò)了表長(zhǎng)”);exit(0);} s=(LNode *)malloc(sizeof(LNode));s->data=x;pre->next=s;s->next=p;}

      void LinkedListDel(LinkedList L,ElemType x){ LinkedList pre,p;int j;pre=L;j=1;p=L->next;while(p&&p->data!=x){pre=p;p=p->next;j++;} if(p==NULL){printf(“表中沒(méi)有值為x的結(jié)點(diǎn)”);exit(0);} pre->next=p->next;free(p);}

      LinkedList LinkedListCreat(){ LinkedList L=LinkedListInit(),p,r;ElemType x;r=L;printf(“please input data,input-1 is endn”);scanf(“%d”,&x);while(x!=flag){p=(LinkedList)malloc(sizeof(LNode));p->data=x;r->next=p;r=p;scanf(“%d”,&x);} r->next=NULL;return L;}

      int scan(){int d;printf(“please input the operationn”);printf(“1.初始化 2.清空3.求鏈表長(zhǎng)度4.檢查鏈表是否為空n”);printf(“5.檢查鏈表是否為滿 6.遍歷鏈表 7.從鏈表中查找元素n”);printf(“8.從鏈表中查找與給定元素值相同的元素在順序表中的位置n”);printf(“9.向鏈表中插入元素10.從鏈表中刪除元素n”);printf(“其他鍵退出。。。n”);scanf(“%d”,&d);return(d);}

      main(){int quit=0;int i;ElemType e;LinkedList L;while(!quit)switch(scan()){case 1: ….;break;case 2: ….;break;case 3: ….;break;case 4: ….;break;case 5:LinkedListTraverse(L);break;case 6: ….;break;case 7: ….;break;case 8: ….;break;case 9: ….;break;case 10: ….;break;default: quit=1;} return 0;}

      第二篇:數(shù)據(jù)結(jié)構(gòu)--實(shí)驗(yàn)報(bào)告 線性表的基本操作

      }(一)單鏈表的基本操作

      #include using namespace std;#define true 1 #define false 0 #define ok 1 #define error 0 #define overflow-2 typedef int Status;typedef int ElemType;typedef struct LNode //存儲(chǔ)結(jié)構(gòu) { ElemType data;struct LNode *next;}LNode,*LinkList;void CreateList(LinkList &L,int n)//尾插法創(chuàng)建單鏈表 { LinkList p;L=new LNode;L->next=NULL;//建立一個(gè)帶頭結(jié)點(diǎn)的單鏈表

      LinkList q=L;//使q指向表尾

      } Status GetElem(LinkList L,int i,ElemType &e)//取第i個(gè)元素 { LinkList p=L->next;int j=1;while(p&&jnext;++j;} for(int i=1;i<=n;i++){ p=new LNode;

      cin>>p->data;p->next=NULL;q->next=p;q=p;} if(!p||j>i)return error;//第i個(gè)元素不存在

      e=p->data;return ok;} Status LinkInsert(LinkList &L,int i,ElemType e)//插入 { LinkList p=L;int j=0;while(p&&jnext;++j;} //尋找第i-1個(gè)結(jié)點(diǎn) if(!p||j>i-1)return error;//i小于1或者大于表長(zhǎng)加1 LinkList s=new LNode;//生成新結(jié)點(diǎn)

      s->data=e;s->next=p->next;//插入L中

      p->next=s;return ok;}

      Status ListDelete(LinkList &L,int i,ElemType &e)// 刪除 { LinkList p=L;LinkList q;int j=0;while(p->next&&j

      p=p->next;++j;} if(!(p->next)||j>i-1)return error;//刪除位置不合理

      q=p->next;p->next=q->next;//刪除并釋放結(jié)點(diǎn)

      e=q->data;delete(q);return ok;

      } void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc){ //合并兩個(gè)順序鏈表

      LinkList pa,pc,pb;pa=La->next;pb=Lb->next;Lc=pc=La;while(pa&&pb){ if(pa->data<=pb->data)

      { pc->next=pa;

      pc=pa;pa=pa->next;} else

      { pc->next=pb;

      pc=pb;

      pb=pb->next;} } pc->next=pa?pa:pb;delete(Lb);} void show(LinkList L)//{ LinkList p;p=L->next;while(p){ cout<

      data<<“-->”;p=p->next;} cout<next;while(p){ ++i;

      顯示 表長(zhǎng) 3

      p=p->next;} return i;} void xiugai(LinkList L)//修改 { int i,j=1;ElemType k;ElemType e,m;LinkList p=L->next;cout<<“請(qǐng)輸入要修改的元素位置(0>i;GetElem(L,i,e);cout<<“該位置的元素:”<>k;while(p&&jnext;++j;} m=p->data;p->data=k;cout<<“修改后的單鏈表顯示如下:”<>a;cout<<“請(qǐng)輸入第一個(gè)有序鏈表的元素共(”<>b;cout<<“請(qǐng)輸入第二個(gè)有序鏈表的元素共(”<>select;switch(select){ case 1:cout<<“請(qǐng)輸入單鏈表的長(zhǎng)度:”<

      cin>>x;

      cout<<“請(qǐng)輸入”<

      CreateList(list,x);break;case 2: cout<<“單鏈表顯示如下:”<

      show(list);break;case 3: int s;cout<<“單鏈表的長(zhǎng)度為:”<>x;while(x<0||x>Length(list,s)){ cout<<“輸入有誤,請(qǐng)重新輸入”<>x;} GetElem(list,x,y);cout<<“該位置的元素為:”<>x;while(x<0||x>Length(list,s)){ cout<<“輸入有誤,請(qǐng)重新輸入”<>x;} cout<<“要插入的元素值:”;cin>>y;LinkInsert(list,x,y);cout<<“插入后單鏈表顯示如下:”<>x;while(x<0||x>Length(list,s)){ cout<<“輸入有誤,請(qǐng)重新輸入”<>x;} cout<<“要?jiǎng)h除的元素值:”<

      ListDelete(list,x,y);

      } break;case 8: hebing();break;case 9: exit(0);break;default : cout<<“輸入有誤,請(qǐng)重新輸入”<

      四、測(cè)試結(jié)果 1)順序表 的測(cè)試結(jié)果

      8 2)單鏈表的測(cè)試結(jié)果

      五、心得體會(huì)

      當(dāng)聽(tīng)到老師說(shuō)寫數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報(bào)告時(shí),我有點(diǎn)驚訝,才學(xué)了不到一個(gè)月,就要寫實(shí)驗(yàn)報(bào)告。記得去年學(xué)習(xí)C++時(shí),學(xué)了一個(gè)學(xué)期,程序設(shè)計(jì)用了三周,才完成的,這個(gè)實(shí)驗(yàn)報(bào)告居然要一周完成兩個(gè)設(shè)計(jì),覺(jué)得很難。但是現(xiàn)在一周過(guò)去了,我也寫完了,自我感覺(jué)良好。

      通過(guò)這次寫實(shí)驗(yàn)報(bào)告,我深切的理解了這門課的本質(zhì)。剛開(kāi)始學(xué)這門課時(shí),當(dāng)時(shí)還不清楚這門課程的目的,現(xiàn)在,我真正的理解了:數(shù)據(jù)結(jié)構(gòu)像是身體的骨骼,而C++是填充這骨骼的肉體,二者相結(jié)合才能使整個(gè)程序更加完整,健全。數(shù)據(jù)結(jié)構(gòu)是個(gè)框架,模型,抽象數(shù)據(jù)類型中列舉了各種操作,而所用的C++語(yǔ)言,將各種操作描述出來(lái)構(gòu)成算法。數(shù)據(jù)結(jié)構(gòu)+算法=程序設(shè)計(jì)。

      在這次設(shè)計(jì)的過(guò)程中,我還遇到了,很多的問(wèn)題。順序表是按順序存儲(chǔ)的,用了一維數(shù)組來(lái)存儲(chǔ),又結(jié)合C++的程序設(shè)計(jì),我又用了類,但是,在執(zhí)行時(shí)出現(xiàn)了問(wèn)題。后來(lái)問(wèn)同學(xué),指出我的錯(cuò)誤,不過(guò)獲益不少。我又重新整理思路,把順序表的基本操作寫好了。雖然走了很多彎路,但是讓我認(rèn)識(shí)到,一定要?jiǎng)?chuàng)新,大膽,不能按照舊的思路去干新的事情。

      單鏈表寫起來(lái)簡(jiǎn)單多了,這個(gè)很快就搞定了。但是細(xì)節(jié)上出了問(wèn)題。比如說(shuō),有些變量的重復(fù)定義,有些變量又沒(méi)有定義,在調(diào)用函數(shù),就直接復(fù)制過(guò)來(lái),沒(méi)有改參數(shù)……通過(guò)修改,我深刻理解到:細(xì)節(jié)決定成敗,在以后,不管做任何事情都要認(rèn)真,細(xì)心。

      這次的實(shí)驗(yàn)報(bào)告,讓我受益匪淺,不僅有知識(shí)方面的,還有生活和精神上的??傊視?huì)繼續(xù)我的興趣編程,相信在編程的過(guò)程中,能不斷的提高自己。

      第三篇:嵌入式linux基本操作實(shí)驗(yàn)一的實(shí)驗(yàn)報(bào)告

      實(shí)驗(yàn)一linux基本操作實(shí)驗(yàn)的實(shí)驗(yàn)報(bào)告

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

      1、熟悉嵌入式開(kāi)發(fā)平臺(tái)部件,了解宿主機(jī)/目標(biāo)機(jī)開(kāi)發(fā)模式;

      2、熟悉和掌握常用Linux的命令和工具。

      二實(shí)驗(yàn)步驟

      1、連接主機(jī)和目標(biāo)板;(三根線,網(wǎng)線直接連接實(shí)驗(yàn)箱和PC機(jī),實(shí)驗(yàn)箱UART2連接主機(jī)的UART口)。

      2、Linux命令的熟悉與操作

      PC端:在PC機(jī)的桌面上打開(kāi)虛擬機(jī),并啟動(dòng)Linux系統(tǒng),打開(kāi)命令終端,操作Linux基本命令,如:查看:ls,進(jìn)入目錄:cd,創(chuàng)建文件:mkdir,刪除文件:rmdir,配置網(wǎng)絡(luò):ifconfig,掛載:mount,設(shè)置權(quán)限:chmod,編輯器:vi,拷貝:cp等命令,要求能熟練操作。

      使用方法: 1.查看:ls Ls列出文件和目錄

      Ls–a

      顯示隱藏文件

      Ls–l

      顯示長(zhǎng)列格式ls–al 其中:藍(lán):目錄;綠:可執(zhí)行文件;紅:壓縮文件;淺藍(lán):鏈接文件;灰:其他文件;紅底白字:錯(cuò)誤的鏈接文件

      2.進(jìn)入目錄:cd 改變當(dāng)前目錄:cd 目錄名(進(jìn)入用戶home目錄:cd ~;進(jìn)入上一級(jí)目錄:cd-)3.創(chuàng)建文件:mkdir 建立文件/目錄:touch 文件名/mkdir目錄名 4.刪除文件:rmdir 刪除空目錄:rmdir目錄名 5.配置網(wǎng)絡(luò):ifconfig 網(wǎng)絡(luò)確定目錄 '/ mnt/hda2' 已經(jīng)存在

      umount /dev/hda2 卸載一個(gè)叫做hda2的盤使用 “+” 設(shè)置權(quán)限,使用 “-” 用于取消 ls-lh顯示權(quán)限

      ls /tmp | pr-T5-W$COLUMNS 將終端劃分成5欄顯示

      chmodugo+rwx directory1 設(shè)置目錄的所有人(u)、群組(g)以及其他人(o)以讀(r)、寫(w)和執(zhí)行(x)的權(quán)限

      chmod go-rwx directory1 刪除群組(g)與其他人(o)對(duì)目錄的讀寫執(zhí)行權(quán)限 chown user1 file1 改變一個(gè)文件的所有人屬性

      chown-R user1 directory1 改變一個(gè)目錄的所有人屬性并同時(shí)改變改目錄下所有文件的屬性

      chgrp group1 file1 改變文件的群組

      chown user1:group1 file1 改變一個(gè)文件的所有人和群組屬性 find /-perm-u+s羅列一個(gè)系統(tǒng)中所有使用了SUID控制的文件

      chmodu+s /bin/file1 設(shè)置一個(gè)二進(jìn)制文件的 SUID 位類似SUID,不過(guò)這是針對(duì)目錄的

      chmod g-s /home/public 禁用一個(gè)目錄的 SGID 位

      chmodo+t /home/public 設(shè)置一個(gè)文件的 STIKY 位-只允許合法所有人刪除文件

      chmod o-t /home/public 禁用一個(gè)目錄的 STIKY 位 8.編輯器:vi vi開(kāi)發(fā)步驟:

      a)vi hell.sql(文件名)b)按i

      [進(jìn)入插入模式] c)按 esc

      [進(jìn)入命令模式] d)輸入qw

      [表示退出保存] e)輸入 q![表示退出不保存] f)輸入ls/ls–l

      [查看] g)gcc-o my1 hello.sql [-o my1 代表輸出按my1 名] w表示與入的意思,也就將目前的文件內(nèi)容加以保存, q表示退出的意思,也是vi的執(zhí)行 q!強(qiáng)制離開(kāi),并且不保存文件

      wq將修改過(guò)得內(nèi)容保存,并離開(kāi)vi set nu 在文件中每行加入行號(hào) ser noun 取消行號(hào)

      輸入數(shù)字若輸入數(shù)字再按ESC建就可將光標(biāo)移至改行

      /字符串在很長(zhǎng)的文件在可以利用”/字符串”的命令來(lái)查找特定字 例如“tcp”如果不是所需要的可以按N繼續(xù)往下查找

      ?字符串可以利用”?字符串”的命令查找特定字

      例如”:/tcp”如果不是所需要的可以按N繼續(xù)往下查找 9.拷貝:cp等命令

      cp–r dir1 dir2 遞歸復(fù)制命令(復(fù)制子目錄信息)具體操作:打開(kāi)虛擬機(jī),隨意選擇一個(gè)linux版本,打開(kāi)命令終端。輸入以上命令,觀察結(jié)果,熟悉指令操作。

      圖2-1指令熟悉截圖

      3、打開(kāi)PC桌面的超級(jí)終端,開(kāi)啟實(shí)驗(yàn)箱電源,觀察嵌入式開(kāi)發(fā)平臺(tái)的啟動(dòng)過(guò)程的打印信息,等待嵌入式平臺(tái)的操作系統(tǒng)啟動(dòng)后,在超級(jí)終端輸入步驟2的相關(guān)命令。

      4、下面所有的操作必須以命令形式。

      1)在虛擬機(jī)中安裝的Linux系統(tǒng)上建立以自己學(xué)號(hào)命名的文件夾,用vi命令新建以學(xué)號(hào)命名的文件,熟悉如何編輯源程序代碼,隨意輸入代碼并保存退出。

      圖2-2編輯源程序代碼截圖

      圖2-3建立文件夾截圖

      2)從PC機(jī)中復(fù)制一個(gè)嵌入式平臺(tái)的可執(zhí)行文件到該文件夾下(也可以用

      vi命令新建一個(gè)C語(yǔ)言的文件,之后用arm-linux-gccxxx.c–o xtu得到嵌入式平臺(tái)可以運(yùn)行的xtu文件),并修改其名稱為xtu。

      圖2-4建立xtu文件截圖

      3把xtu文件通過(guò)cp命令復(fù)制到/tftpboot目錄下,設(shè)置好開(kāi)發(fā)板的ip。

      圖2-5 Ip設(shè)置截圖

      設(shè)置好PC中Linux的ip,在嵌入式平臺(tái)通過(guò)串口輸入tftp命令從PC上的

      Linux下載xtu文件到嵌入式開(kāi)發(fā)實(shí)驗(yàn)箱平臺(tái)中,在嵌入式平臺(tái)上用chmod 777 xtu更改文件權(quán)限為可執(zhí)行權(quán)限,運(yùn)行xtu程序,并查看運(yùn)行結(jié)果。

      圖2-6 下載文件截圖

      圖2-7下載文件截圖

      三實(shí)驗(yàn)思考

      1、比較Linux命令與DOS命令的異同。

      Linux是免費(fèi)的系統(tǒng),與windows相比具有可靠、穩(wěn)定、速度快等優(yōu)點(diǎn),且擁有豐富的根據(jù)Linux版本改進(jìn)的強(qiáng)大功能。啟動(dòng): 作為操作系統(tǒng)本身,Linux在啟動(dòng)和退出時(shí)所作的工作要比DOS多得多,可以通過(guò)按下Ctrl+Alt+Del三鍵進(jìn)行熱啟動(dòng)。不同的是Linux啟動(dòng)到最后時(shí),需要進(jìn)行登錄。下面是一個(gè)典型的登錄過(guò)程:

      ??RedHat Linux release 5.1

      Kernel 2.0.32 on an i686

      login: 你鍵入:root后,計(jì)算機(jī)顯示輸口令(password,輸入你的口令(如果是第一次啟動(dòng),則是你在安裝時(shí)所輸入的口令)即可。當(dāng)計(jì)算機(jī)出現(xiàn)一個(gè)“?!碧崾痉麜r(shí),表明你登錄成功!

      [root@localhost root]#_ 常用命令:

      2、注意理解宿主機(jī)/目標(biāo)機(jī)開(kāi)發(fā)模式,PC機(jī)是宿主機(jī),嵌入式平臺(tái)是目標(biāo)機(jī),未來(lái)的開(kāi)發(fā)工作是在PC機(jī)中開(kāi)發(fā),目標(biāo)機(jī)中運(yùn)行并驗(yàn)證。

      交叉開(kāi)發(fā)環(huán)境是指編譯、鏈接和調(diào)試嵌入式應(yīng)用軟件的環(huán)境,它與運(yùn)行嵌入式應(yīng)用軟件的環(huán)境有所不同,通常采用宿主機(jī)/目標(biāo)機(jī)模式。宿主機(jī)(host)一般采用一臺(tái)通用計(jì)算機(jī)(如PC機(jī)或者工作站),它通過(guò)串口(Serial)或者以太網(wǎng)(Ethernet)接口與目標(biāo)機(jī)通信。宿主機(jī)的軟硬件資源比較豐富,不但包括功能強(qiáng)大的操作系統(tǒng)(如 Windows 和 Linux),而且還有各種各樣優(yōu)秀的開(kāi)發(fā)工具(如WindRiver的Tornado、Microsoft的Embedded Visual C++等),能夠大大

      提高嵌入式應(yīng)用軟件的開(kāi)發(fā)速度和效率。目標(biāo)機(jī)(target)一般在嵌入式應(yīng)用軟件的開(kāi)發(fā)和調(diào)試期間使用,用來(lái)區(qū)別與嵌入式系統(tǒng)通信的宿主機(jī)。目標(biāo)機(jī)可以是嵌入式應(yīng)用軟件的實(shí)際運(yùn)行環(huán)境,也可以是能夠替代實(shí)際運(yùn)行環(huán)境的仿真系統(tǒng),但軟硬件資源通常都比較有限。嵌入式系統(tǒng)的交叉開(kāi)發(fā)環(huán)境一般包括交叉編譯器、交叉調(diào)試器和系統(tǒng)仿真器(Emulator),其中交叉編譯器用于在宿主機(jī)上生成能在目標(biāo)機(jī)上運(yùn)行的代碼,而交叉調(diào)試器和系統(tǒng)仿真器則用于在宿主機(jī)與目標(biāo)機(jī)間完成嵌入式軟件的調(diào)試。

      四實(shí)驗(yàn)心得

      通過(guò)本次實(shí)驗(yàn)了解了linux的基本命令,如:ls,cd,mkdir,rmdir,ifconfig,mount,chmod,vi,cp等等,特別是ls,cd,vi等命令比較重要,在以后的實(shí)驗(yàn)中會(huì)經(jīng)常用到。熟悉了嵌入式開(kāi)發(fā)平臺(tái)部件,了解宿主機(jī)/目標(biāo)機(jī)開(kāi)發(fā)模式。

      在嵌入式試驗(yàn)中使用linux系統(tǒng)是第一次用,一開(kāi)始對(duì)linux系統(tǒng)的命令以和工具的操作都很陌生,只會(huì)部分命令的操作,操作起來(lái)非常慢。在實(shí)驗(yàn)中一個(gè)整體的流程也不是很熟悉,過(guò)程中遇到的很多小問(wèn)題都不會(huì)解決。浪費(fèi)了很多時(shí)間在實(shí)驗(yàn)操作上,同時(shí)實(shí)驗(yàn)室的機(jī)器有部分的壞的,導(dǎo)致做到后邊無(wú)法繼續(xù)完成,只能換機(jī)器。但是最后在助教和同學(xué)的幫助下,我還是完成了這個(gè)實(shí)驗(yàn)。在這個(gè)過(guò)程中,我覺(jué)得個(gè)人的態(tài)度很重要,不管我們以前有沒(méi)有接觸過(guò)這個(gè)知識(shí),我們都應(yīng)該抱著一顆積極的心去了解它、學(xué)習(xí)它,不能因?yàn)樗吧团懦?。并且在做?shí)驗(yàn)時(shí),不管遇到什么問(wèn)題以及困難,我們都應(yīng)該要有耐心,心平氣和的去請(qǐng)教別人,直到搞懂所有問(wèn)題。尤其做到后邊遇到問(wèn)題不要心急,把整個(gè)流程一步步的搞懂,再操作起來(lái)就會(huì)容易些。

      第四篇:數(shù)據(jù)結(jié)構(gòu)_實(shí)驗(yàn)2_順序表的基本操作(推薦)

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

      實(shí)驗(yàn)課程

      數(shù)據(jù)結(jié)構(gòu)

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

      實(shí)驗(yàn)

      二、順序表的基本操作

      實(shí)驗(yàn)地點(diǎn)

      指導(dǎo)教師

      級(jí)

      學(xué)生姓名

      學(xué)

      號(hào)

      教師評(píng)分

      浙江傳媒學(xué)院實(shí)驗(yàn)報(bào)告

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

      1、掌握線性表的順序存儲(chǔ)結(jié)構(gòu);

      2、掌握順序表及其基本操作的實(shí)現(xiàn);

      3、掌握數(shù)據(jù)結(jié)構(gòu)及算法的程序?qū)崿F(xiàn)的基本方法。

      二、實(shí)驗(yàn)設(shè)備

      1.安裝有WinXP的PC一臺(tái);

      2.安裝有軟件VC6或者Visual Studio2005。

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

      1、建立含有若干個(gè)元素的順序表;

      2、對(duì)已建立的順序表實(shí)現(xiàn)插入、刪除、查找等基本操作;

      3、對(duì)兩個(gè)順序表進(jìn)行合并操作。

      四、實(shí)驗(yàn)步驟

      1.根據(jù)下面的表格,定義一個(gè)表示數(shù)據(jù)元素的結(jié)構(gòu)體。

      2.根據(jù)教材的內(nèi)容,定義順序表的結(jié)構(gòu)體。

      3.根據(jù)教材的內(nèi)容,編寫代碼,實(shí)現(xiàn)順序表的下列函數(shù)。

      浙江傳媒學(xué)院實(shí)驗(yàn)報(bào)告

      4.定義數(shù)據(jù)元素輸入函數(shù)如下。請(qǐng)完善代碼。

      5.定義順序表的創(chuàng)建函數(shù)如下,請(qǐng)完善代碼。

      6.定義數(shù)據(jù)元素的輸出函數(shù)如下,請(qǐng)完善代碼。

      7.定義main函數(shù),要求完成如下功能。

      A.定義三個(gè)順序表分別為list1, list2,list3; B.初始化兩個(gè)順序表list1和list2;C.輸入順序表list1;

      浙江傳媒學(xué)院實(shí)驗(yàn)報(bào)告

      D.輸入list2;E.合并list1和list2到list3中; F.刪除list3中的

      第五篇:實(shí)驗(yàn)一 Linux的基本操作 -

      實(shí)驗(yàn)一 Linux的基本操作

      姓名: 江振明

      學(xué)號(hào):2010142016

      時(shí)間:2013-04-13 地點(diǎn):工西4樓

      目的: 1熟悉Linux 基本命令與文件目錄系統(tǒng)全屏幕編輯器的使用 Shell 腳本編程實(shí)驗(yàn)

      4.Makefile

      設(shè)備:PC機(jī),虛擬機(jī)Linux系統(tǒng), 一個(gè)U盤 實(shí)驗(yàn)內(nèi)容:

      一.完成下列操作,并將執(zhí)行過(guò)程和運(yùn)行結(jié)果附上。

      1)建立目錄

      /home/學(xué)號(hào)

      實(shí)驗(yàn)結(jié)果:已在/home 目錄下新建了目錄/2010142016-2010142007。

      2)將/arm2410cl/exp/basic/01_hello的目錄及目錄下的內(nèi)容,拷貝到 /home/學(xué)號(hào) 下面

      3)查看拷貝到/home/學(xué)號(hào)下的文件的屬性

      4)更改文件名,將文件hello.c 的名字改為 helloworld.c.5)在/mnt下建立目錄usb

      6)將u盤掛載到/mnt/usb, 察看u盤內(nèi)容。(具體步驟如下,需要進(jìn)行適當(dāng)?shù)匦薷模?fdisk –l

      ;察看u盤的設(shè)備名

      #mount /dev/XXXX

      /mnt/usb

      (說(shuō)明xxx,為u盤的設(shè)備名,根據(jù)fdisk-l顯示的內(nèi)容填寫)

      # ls /mnt/usb

      7)將u盤的某個(gè)文件復(fù)制到/home/學(xué)號(hào)

      8)給虛擬機(jī)pc-linux系統(tǒng)設(shè)置網(wǎng)絡(luò)地址192.168.1.2,察看網(wǎng)絡(luò)地址

      先查看pc-linux系統(tǒng)的網(wǎng)絡(luò)地址:為192.168.199.129

      然后更改設(shè)置pc-linux系統(tǒng)設(shè)置網(wǎng)絡(luò)地址192.168.1.2,再次查看:已設(shè)置成功。

      9)給pc-win機(jī)設(shè)置網(wǎng)絡(luò)地址192.168.1.10,察看網(wǎng)絡(luò)地址

      設(shè)置pc-win機(jī)的網(wǎng)絡(luò)地址為:192.168.1.10。

      10)查看網(wǎng)絡(luò)是否通暢,再虛擬機(jī)上與 pc-win通信。

      網(wǎng)絡(luò)通暢。

      11)在pc-win與虛擬機(jī)pc-linux通信。

      pc-win與虛擬機(jī)pc-linux通信成功。

      12)進(jìn)入/home/學(xué)號(hào)/01_hello目錄下

      13)查看 hello.c 文件的內(nèi)容。

      在第4)步時(shí)已經(jīng)把hello.c改為helloworld.c,故這里是查看helloworld.c的內(nèi)容。

      14)將/home/學(xué)號(hào)/下的文件打包并壓縮

      15)將/arm2410cl/gui/tools/arm-linux-gcc-3.4.1.tar.bz2解壓到目錄/opt 下面。

      二.練習(xí)(vi)vim的命令, 分別指出每個(gè)命令處于何種模式下。

      (1)進(jìn)入”/home/學(xué)號(hào)”目錄 # cd /home/學(xué)號(hào)

      (2)將文件 “/etc/inittab” 復(fù)制到目錄 “/home/學(xué)號(hào)”目錄下

      # cp /etc/inittab./ 先用?cd?命令移到/home/2010142016-2010142007 目錄下,執(zhí)行cp /etc/inittab./ 成功把文件“/etc/inittab” 復(fù)制到目錄 “/home/2010142016-2010142007“下。

      (3)使用 vi 打開(kāi) /home/學(xué)號(hào) 目錄下的文件

      inittab

      # vi./inittab

      (4)設(shè)定行號(hào),指定設(shè)定initdefault 的所在行號(hào)

      :set nu

      (底行模式)

      (5)將光標(biāo)移到該行

      (命令行模式)

      (6)復(fù)制該行內(nèi)容

      Yy(7)將光標(biāo)移動(dòng)到最后一行行首

      G

      (8)粘帖復(fù)制行的內(nèi)容

      P

      (9)撤銷第8步的動(dòng)作

      U

      (10)將光標(biāo)移動(dòng)到最后一行的行尾

      $

      (11)粘帖復(fù)制行的內(nèi)容

      P

      (12)光標(biāo)移動(dòng)到 “ si::sysinit:/etc/rc.d/rc.sysinit”

      21G

      (13)刪除該行

      Dd

      (14)存盤但不退出

      :w(底行模式):

      (15)將光標(biāo)移動(dòng)到行首

      1G

      (16)插入模式下輸入 “Hello ,this is Vi world!”

      I 并輸入

      Hello , this is vi world!

      (17)返回命令行模式

      Esc

      (18)向下查找字符串 “0:wait”

      /0:wait

      (19)再向上查找字符串 “halt”

      ?halt

      (20)強(qiáng)制退出Vi,不存盤。

      :q!

      該實(shí)驗(yàn)的最后的結(jié)果只對(duì) “/home/學(xué)號(hào)/inittab” 增加了一行復(fù)制的內(nèi)容: “ id:5:initdefault”

      shell 程序的創(chuàng)建與執(zhí)行

      1)創(chuàng)建一個(gè)內(nèi)容如下的文件,文件名為datex ,將其存放在/root目錄下

      # program datex # show the date in this way echo “Mr.$USER, Today is :”

      echo ?date?

      echo Whish you a lucky day!

      設(shè)置執(zhí)行權(quán)限

      # chmod u+x /root/datex # ls –l /root

      執(zhí)行程序 # /root/datex

      使用bash命令執(zhí)行程序

      # bash /root/datex

      (在不設(shè)置可執(zhí)行權(quán)限時(shí),可以這樣執(zhí)行)

      2).建立一個(gè)歡迎界面的shell程序,文件名為welcom,(函數(shù)的使用)#!/bin/bash #filename : welcome first(){ echo “============================================”

      echo “Hello!Everyone!Welcom to the Linux World!”

      echo “============================================” } second(){ echo “*****************************************************” }

      first second second first

      執(zhí)行

      # chmod u+x welcome #./welcome

      四 Makefile 文件的編寫

      1)建立文件。五個(gè)文件分別是main.c、display1.h、display1.c、display2.h、display2.c,具體的代碼如下: # vim main.c #include “stdio.h” int main(int argc,char **argv){ display1(“hello”);display2(“hello”);}

      #vim display1.h void display1(char *print_str);

      # vim display2.h void display2(char *print_str);

      # vim display1.c #include “display1.h” void display1(char *print_str){ printf(“This is display1 print %sn”,print_str);}

      #vim display2.c #include “display2.h” void display2(char *print_str){ printf(“This is display2 print %sn”,print_str);}

      (1)如果上述文件在同一個(gè)目錄,請(qǐng)編寫Makefile文件。

      #vim Makefile CC=gcc //CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc(交叉編譯)all:main.o display1.o display2.o $(CC)main.o display1.o display2.o-o mains main.o:main.c $(CC)-c main.c-o main.o display1.o:display1.c display1.h $(CC)-c display1.c-o display1.o display2.o:display2.c display2.h $(CC)-c display2.c-o display2.o clean: rm *.o mains

      (2)用$@, $< ,$^ 簡(jiǎn)化上面的Makefile文件。

      (3)執(zhí)行make

      五. Linux的編程基礎(chǔ)(附加練習(xí):熟悉Linux進(jìn)程編程控制,看書并閱讀代碼)

      從mystu上下載教科書中的 程序源代碼,在Linux環(huán)境下編譯,并運(yùn)行它們。要求閱讀代碼,理解執(zhí)行的結(jié)果。

      1)請(qǐng)將u盤掛載到 /mnt/usb 下

      2)將u盤上sharedada的內(nèi)容復(fù)制到 /home/學(xué)號(hào)下面

      3)分別編譯下列文件并執(zhí)行

      forkfun.c ,waitpid.c ,pipe_rw.c, fifo_read.c,fifo_write.c,killfun.c,alarm_pause.c,mysignal.c,sigaction.c ,th_example1.c,mutex.c , cond.c ,sema.c,

      下載《數(shù)據(jù)結(jié)構(gòu)》 實(shí)驗(yàn)報(bào)告(附實(shí)例) ---實(shí)驗(yàn)一 線性表的基本操作實(shí)現(xiàn)(五篇范例)word格式文檔
      下載《數(shù)據(jù)結(jié)構(gòu)》 實(shí)驗(yàn)報(bào)告(附實(shí)例) ---實(shí)驗(yàn)一 線性表的基本操作實(shí)現(xiàn)(五篇范例).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦