軟體技術報告

2021-03-04 05:45:08 字數 3918 閱讀 8015

現場答辯成績

實驗報告成績

總成績重慶郵電大學

自動化學院

綜合實驗報告

題目:基於嵌入式系統的手持終端介面

單位(二級學院): 自動化學院

學生姓名: 鄧大慶

專業: 自動化

班級: 0810704

學號: 07200428

指導教師: 袁榮棣

設計時間: 2010 年 11 月

重慶郵電大學自動化學院制

實驗一:線性表的操作

實驗目的:

參照給定的線性表順序錶類和鍊錶類的程式樣例,驗證給出的線性表的常見演算法

實驗內容:

參照給定的線性表順序錶類和鍊錶類的程式樣例,驗證給出的線性表的常見演算法

設計乙個靜態陣列儲存結構的順序錶類,要求程式設計實現如下任務:

1)建立乙個線性表,首先依次輸人整數資料元素(個數根據自己的需要鍵盤給定)

2)刪除指定位置的資料元素(指定元素位置通過鍵盤輸入)再依次顯示刪除後的線性表中的資料元素。

3)查詢指定資料的資料元素(指定資料的大小通過鍵盤輸入),若找到則顯示位置,若沒有找到就顯示0。

實驗原理

1.刪除指定元素

當線性表為空時為上溢錯誤,不能進行刪除操作,演算法結束。當或者時,順序表中沒有這個元素,輸出提示使用者錯誤。然後從第個元素開始,直到最後乙個元素,其中每乙個元素均依次往前移動乙個位置,最後將線性表的長度減1。

2.查詢

當線性表為空時,無法進行查詢操作,演算法結束。從第乙個元素開始,把線性表中的元素與需要查詢的元素比較,相等輸出其下標,並返回。

3.檢測順序表狀態

利用先行表的長度為0還是等於其容量,判斷其是否為空和滿,輸出資訊提示用花上溢或者下溢。

4.輸出表中元素

利用迴圈,語句順序輸出表中元素

5.插入或者表中元素初始化

當儲存空間滿時,輸出上溢錯誤,不能進行插入操作,演算法結束。當實,認為在最後乙個元素之後插入。當時,認為在第乙個元素之前插入。

從最後乙個元素開始,直到第個元素,其中每乙個元素均往後移動乙個位置,將新元素插入到第個位置,並將線性表的長度加1。

實驗問題

存在的問題查詢指定資料的元素時,當元素存在的時候就顯示該元素位子,不存在就什麼也不顯示。

實驗結果

附:源程式

#include

using namespace std;

#include

#define list_init_size 100

#define listincrement 10

#define overflow -1

#define ok1

#define error0

typedef int status;

typedef int elemtype;

typedef int keytype;

typedef structsqlist;

typedef structselemtype;

status initlist (sqlist &l)/*建立順序表*/

l.length=0;

return ok;

}status listinsert (sqlist &l,int i, elemtype e)

if(l.length>l.listsize)

l.listsize+=listincrement;

} p=&( l.elem[i-1]);

for (q=&(l.elem[l.length-1]) ;q>=p;q--)

l.elem[i-1]=e;

l.length++;

return ok;

}/*在i元素的前面插入元素e*/

status deletelist (sqlist &l,int i)

q = &(l.elem[i-1]);

p = l.elem+l.length-1;

for (q++; q <= p; q++)

l.length--;

return ok;

}/*刪除i個元素*/

status listsearch(sqlist &l,int w)

if(l.elem[k-1]>w)

j=k-1;

else i=k+1;

}return(0);

}/*查詢元素,找到顯示位置,找不到不進行操作(這裡想不到怎麼實現返回0)*/

int main()

printf("建立線性表為:\n");

for(i=0;i printf("%4d",l.elem[i]);

} printf("\n");

printf("\n");

printf("請輸入要刪除的元素的位置:") ;

scanf("%d",&i);

deletelist(l, i ) ;

printf("刪除後的線性表為:\n");

for(i=0;i printf("%4d",l.elem[i]);

} printf("\n");

printf("\n");

printf("請輸入要插入的位置和元素:") ;

scanf("%d%d",&i,&e);

listinsert (l,i,e);

printf("插入元素後的線性表為:\n");

for(i=0;i printf("%4d",l.elem[i]);

} printf("\n");

printf("\n");

printf("請輸入要查詢的元素:\n");

scanf("%d",&w);

listsearch(l,w);

printf("\n");

printf("\n");

return ok;

} /*主函式部分*/

實驗二棧、佇列的操作

一、實驗目的:

參照給定的棧類和佇列類的程式樣例,驗證給出的棧和佇列的常見演算法,並結合線性表類實現有關串的操作。

二、實驗要求:

1、掌握棧、佇列、串的特點。掌握特殊線性表的常見演算法。

2、提交實驗報告,報告內容包括:目的、要求、演算法描述、程式結構、主要變數說明、程式清單、除錯情況、設計技巧、心得體會。

三、實驗內容:

1. 堆疊類測試和應用問題。要求:

定義資料元素的資料型別為如下形式的結構體:

typedef struct

{ char taskname[10];//任務名

int taskno;    //任務號

datatype;

2. 佇列類測試和應用問題。要求:

設計乙個主函式對迴圈佇列類和鏈式佇列類**進行測試.測試方法為:依次把資料元素1,2,3,4,5入隊,然後出隊中的資料元素並在螢幕上顯示。

四、要求

1)棧和佇列的長度都由自己定;

2)寫出完整的程式並能除錯通過即可。

3)重點理解棧、佇列和串的演算法思想,能夠根據實際情況選擇合適的儲存結構。

4)棧、佇列的演算法是後續實驗的基礎(樹、圖、查詢、排序等)。

實驗型別:綜合性

實驗要求:必修

實驗學時: 2學時

一、實驗目的:

參照各種排序演算法程式樣例,驗證給出的排序常見演算法。

二、實驗要求:

1、掌握各種排序演算法的特點,測試並驗證排序的常見演算法。

2、提交實驗報告,報告內容包括:目的、要求、演算法描述、程式結構、主要變數說明、程式清單、除錯情況、設計技巧、心得體會。

三、實驗內容:

1、直接插入排序

2、氣泡排序

3、快速排序(遞迴)

4、快速排序(非遞迴)

5、堆排序

實驗結果:

源程式:

#include

軟體技術複習

1.資料結構 資料結構就是資料的組織形式,也可看成是包含資料結構的資料表,說明資料之間存在著一定的相互關係或約束。2.邏輯結構 我們把只表現元素之間邏輯關係,而不涉及它們在計算機中的表示,只是理論的 反映在紙面上的東西,這種抽象的資料結構稱為邏輯結構。3.說明對程式進行評價時,時間 與 空間 之間的...

軟體技術基礎 任務

軟體技術基礎2 實驗報告1 學院自動化 專業自動化 年級大一 姓名廖林 任課教師張坤龍 實驗指導張坤龍 2016年 3月 14日 實驗一一 實驗目的 通過本試驗,使學生掌握利用vc6.0除錯c 程式的過程及方法 深入理解c 程式的結構與組成和程式的執行機制 掌握常量 變數 表示式 基本輸入與輸出在程...

軟體技術服務合同

5.如要系統有修改,另行協商。在甲方支付全款後個工作日,乙方提供等額增值稅發票。合同有效期 自年月日至2 年月日止,期滿合同自動中止。合同合同滿後,雙方協商,甲方可要求乙方繼續提供軟體執行維護服務,但雙方必須重新簽署新的服務合同。五 爭議處理 甲乙雙方如對協議條款規定的理解有異議,或者對與有關的事項...