現場答辯成績
實驗報告成績
總成績重慶郵電大學
自動化學院
綜合實驗報告
題目:基於嵌入式系統的手持終端介面
單位(二級學院): 自動化學院
學生姓名: 鄧大慶
專業: 自動化
班級: 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 年月日止,期滿合同自動中止。合同合同滿後,雙方協商,甲方可要求乙方繼續提供軟體執行維護服務,但雙方必須重新簽署新的服務合同。五 爭議處理 甲乙雙方如對協議條款規定的理解有異議,或者對與有關的事項...