[论文精品] 基于嵌入式系统的手持终端界面.doc

上传人:小小飞 文档编号:3904855 上传时间:2019-10-10 格式:DOC 页数:16 大小:152KB
返回 下载 相关 举报
[论文精品] 基于嵌入式系统的手持终端界面.doc_第1页
第1页 / 共16页
[论文精品] 基于嵌入式系统的手持终端界面.doc_第2页
第2页 / 共16页
[论文精品] 基于嵌入式系统的手持终端界面.doc_第3页
第3页 / 共16页
[论文精品] 基于嵌入式系统的手持终端界面.doc_第4页
第4页 / 共16页
[论文精品] 基于嵌入式系统的手持终端界面.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《[论文精品] 基于嵌入式系统的手持终端界面.doc》由会员分享,可在线阅读,更多相关《[论文精品] 基于嵌入式系统的手持终端界面.doc(16页珍藏版)》请在三一文库上搜索。

1、现场答辩成绩: 实验报告成绩: 总成绩: 自 动 化 学 院综合实验报告 题目:基于嵌入式系统的手持终端界面单位(二级学院): 自 动 化 学 院 学 生 姓 名: 专 业: 自动化 班 级: 学 号: 指 导 教 师: 设计时间: 2010 年 11 月自动化学院 制实验一:线性表的操作实验目的:参照给定的线性表顺序表类和链表类的程序样例,验证给出的线性表的常见算法实验内容:参照给定的线性表顺序表类和链表类的程序样例,验证给出的线性表的常见算法设计一个静态数组存储结构的顺序表类,要求编程实现如下任务:1)建立一个线性表,首先依次输人整数数据元素(个数根据自己的需要键盘给定)2)删除指定位置的

2、数据元素(指定元素位置通过键盘输入)再依次显示删除后的线性表中的数据元素。3)查找指定数据的数据元素(指定数据的大小通过键盘输入),若找到则显示位置,若没有找到就显示0。实验原理1.删除指定元素当线性表为空时为上溢错误,不能进行删除操作,算法结束。当或者时,顺序表中没有这个元素,输出提示用户错误。然后从第个元素开始,直到最后一个元素,其中每一个元素均依次往前移动一个位置,最后将线性表的长度减1。2.查找当线性表为空时,无法进行查找操作,算法结束。从第一个元素开始,把线性表中的元素与需要查找的元素比较,相等输出其下标,并返回。3.检测顺序表状态利用先行表的长度为0还是等于其容量,判断其是否为空和

3、满,输出信息提示用花上溢或者下溢。4.输出表中元素利用循环,语句顺序输出表中元素5.插入或者表中元素初始化当存储空间满时,输出上溢错误,不能进行插入操作,算法结束。当实,认为在最后一个元素之后插入。当时,认为在第一个元素之前插入。从最后一个元素开始,直到第个元素,其中每一个元素均往后移动一个位置,将新元素插入到第个位置,并将线性表的长度加1。实验问题存在的问题查找指定数据的元素时,当元素存在的时候就显示该元素位子,不存在就什么也不显示。实验结果附:源程序#includeusing namespace std;#include#define LIST_INIT_SIZE 100#define L

4、ISTINCREMENT 10#define OVERFLOW -1#define OK 1#define ERROR 0typedef int Status;typedef int ElemType;typedef int KeyType;typedef struct ElemType *elem; KeyType *key; int length; int listsize;SqList;typedef struct KeyType key;SElemType;Status InitList (SqList &L)/*创建顺序表*/ int length1; printf(请确定顺序表的长

5、度:); scanf(%d,&length1); L.listsize=length1; L.elem=(ElemType*)malloc(length1*sizeof(ElemType); if(!L.elem) printf(out of space); exit(OVERFLOW); L.length=0; return OK; Status Listinsert (SqList &L,int i, ElemType e)ElemType *p,*q,*newbase; if(iL.length+1) return ERROR; if(L.lengthL.listsize) newbas

6、e=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType); if (newbase=NULL) printf(out of space); return (OVERFLOW); L.listsize+=LISTINCREMENT; p=&( L.elemi-1); for (q=&(L.elemL.length-1) ;q=p;q-) *(q+1)=*q; L.elemi-1=e; L.length+; return OK;/*在i元素的前面插入元素e*/Status DeleteList (SqList &

7、L,int i) ElemType *q ,*p; if(iL.length) return ERROR; q = &(L.elemi-1); p = L.elem+L.length-1; for (q+; q = p; q+) *(q-1) = *q; L.length-; return OK;/*删除i个元素*/Status Listsearch(SqList &L,int w)int i,j,k;i=1;j=L.length;while(iw)j=k-1;else i=k+1;return(0);/*查找元素,找到显示位置,找不到不进行操作(这里想不到怎么实现返回0)*/int main

8、() SqList L; int i,e,w; InitList (L); printf(请输入元素:n); for(i=0;iL.listsize;i+) scanf(%d,&(L.elemi); L.length+; printf(创建线性表为:n); for(i=0;iL.listsize;i+) printf(%4d,L.elemi); printf(n); printf(n); printf(请输入要删除的元素的位置:) ; scanf(%d,&i); DeleteList(L, i ) ; printf(删除后的线性表为:n); for(i=0;iL.length;i+) prin

9、tf(%4d,L.elemi); printf(n); printf(n); printf(请输入要插入的位置和元素:) ; scanf(%d%d,&i,&e); Listinsert (L,i,e); printf(插入元素后的线性表为:n); for(i=0;iL.length;i+) printf(%4d,L.elemi); printf(n); printf(n);printf(请输入要查找的元素:n);scanf(%d,&w);Listsearch(L,w); printf(n); printf(n); return OK; /*主函数部分*/实验二 栈、队列的操作一、实验目的:参照

10、给定的栈类和队列类的程序样例,验证给出的栈和队列的常见算法,并结合线性表类实现有关串的操作。二、实验要求:1、掌握栈、队列、串的特点。掌握特殊线性表的常见算法。2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。三、实验内容: 1. 堆栈类测试和应用问题。要求: 定义数据元素的数据类型为如下形式的结构体:typedef struct char taskname10;/任务名 int taskno;/任务号 DataType; .2. 队列类测试和应用问题。要求: 设计一个主函数对循环队列类和链式队列类代码进行测试.测试方法为:依

11、次把数据元素1,2,3,4,5入队,然后出队中的数据元素并在屏幕上显示。四、要求1)栈和队列的长度都由自己定;2)写出完整的程序并能调试通过即可。3)重点理解栈、队列和串的算法思想,能够根据实际情况选择合适的存储结构。 4)栈、队列的算法是后续实验的基础(树、图、查找、排序等)。实验三 排序综合实验(2学时)实验类型:综合性 实验要求:必修实验学时: 2学时一、实验目的:参照各种排序算法程序样例,验证给出的排序常见算法。 二、实验要求:1、掌握各种排序算法的特点,测试并验证排序的常见算法。2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧

12、、心得体会。三、实验内容:1、直接插入排序2、冒泡排序3、快速排序(递归)4、快速排序(非递归)5、堆排序实验结果:源程序:#include #define maxsize 10#define NULL 0int amaxsize=0;/*直接插入排序*/void DirectInsertionSort(int *p,int num)/指针p用来指向要排序的数组的第一元素,num用来表示要排序数组的大小int temp;for(int i=num-1;i=0;i-)for(int j=0;ji;j+)if(pipj)temp=pi;pi=pj;pj=temp;/*int i,j,temp;fo

13、r(i=1;inum;i+)if(pipi-1)temp=pi;pi=pi-1;for(j=i-1;p0pj;j-)pj+1=pj; pj+1=temp;*/*冒泡排序*/void BubbleSort(int *p,int num)int temp;for(int i=0;i0;j-) if(pjright) return; while(i!=j) while(aj=temp & ji) j-; if(ji) ai+=aj; while(aii) i+; if(ji) aj-=ai; ai=temp; QuickSort(a,left,i-1);/递归左边 QuickSort(a,i+1,r

14、ight);/递归右边/*快速排序非递归*/void Non_Recurcive_QuickSort(int *p,int num)int i,j,low,high,temp,top=-1;struct node int low,high; st100;top+;sttop.low=0;sttop.high=num-1;while(top-1) low=sttop.low;high=sttop.high;top-;i=low;j=high;if(lowhigh) temp=plow;while(i!=j) while(itemp)j-;if(ij)pi=pj;i+;while(ij&pitem

15、p)i+;if(ij)pj=ai;j-;pi=temp;top+;sttop.low=low;sttop.high=i-1;top+;sttop.low=i+1;sttop.high=high;/*堆排序*/void shift(int *p, int i , int m)/建堆int k,t; t = pi; k=2*i+1; while (km) if (km-1)&(pkpk+1)k+; if (t=0;i-) shift(p,i,num); for (i=num-1; i=1;i-) k=p0;p0=pi;pi=k;shift(p,0,i); /*主函数*/void main(void

16、)int choose=0;int *p=NULL;printf(请输入数据:n);for(int i=0;imaxsize;i+)scanf(%d,&ai);printf(排序前:n);for(i=0;imaxsize;i+)printf(%d ,ai);p=a;printf(请选择执行命令:n);printf(1 直接插入排序 2 冒泡排序 3 快速排序 4 快速排序非递归 5 堆排序n);scanf(%d,&choose);switch(choose)case 1:DirectInsertionSort(p,maxsize);break;case 2:BubbleSort(p,maxsi

17、ze);break;case 3:QuickSort(p,0,maxsize-1);break;case 4:Non_Recurcive_QuickSort(p,maxsize);break;case 5:HeapSort(p,maxsize);break;default:break;printf(排序后:n);for(i=0;imaxsize;i+)printf(%d ,ai);printf(n);/*void main()int *p;printf(请输入数据:n);for(int i=0;imaxsize;i+)scanf(%d,&ai);p=a;for(i=0;imaxsize;i+)printf(%d ,ai);printf(n);/DirectInsertionSort(p,maxsize);BubbleSort(p,maxsize);/QuickSort(p,0,maxsize-1);/Non_Recurcive_QuickSort(p,maxsize);/HeapSort(p,maxsize);for(i=0;imaxsize;i+)printf(%d ,ai);printf(n);*/

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1