软件开发技术基础的实验报告_软件技术基础实验报告
软件开发技术基础的实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“软件技术基础实验报告”。
《软件开发技术基础》实验报告
《软件开发技术基础》实验报告
姓名:
学号:
班级:
《软件开发技术基础》实验报告
实验一 线性表的操作(2学时)
实验类型:验证性
实验要求:必修 实验学时: 2学时
一、实验目的:
参照给定的线性表顺序表类和链表类的程序样例,验证给出的线性表的常见算法。
二、实验要求:
1、掌握线性表顺序表类和链表类的特点。掌握线性表的常见算法。
2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。
三、实验内容:
设计一个静态数组存储结构的顺序表类,要求编程实现如下任务:
1)建立一个线性表,首先依次输人整数数据元素(个数根据自己的需要键盘给定)
2)删除指定位置的数据元素(指定元素位置通过键盘输入)再依次显示删除后的线性表中的数据元素。
3)查找指定数据的数据元素(指定数据的大小通过键盘输入),若找到则显示位置,若没有找到就显示0。
四、要求
1)采用顺序表实现,假设该顺序表的数据元素个数在最坏情况下不会超过50个。
2)写出完整的程序并能调试通过即可
《软件开发技术基础》实验报告
{ if(nn==mm)
return(-1);if(nn==0)
return(0);return(1);}
template void sq_LList::ins_sq_LList(int i,T b){ int k;if(nn==mm){
cout
return;} if(i>nn)
i=nn+1;if(i
i=1;for(k=nn;k>=i;k--)
v[k]=v[k-1];v[i-1]=b;nn=nn+1;return;}
template void sq_LList::del_sq_LList(int i){ int k;if(nn==0){
cout
return;} if((inn)){
cout
return;} for(k=i;k
v[k-1]=v[k];
《软件开发技术基础》实验报告
return 0;}
运行结果如下:
心得体会:
1.通过本次试验,我掌握了线性表的基本概念。
2.通过本次试验,我懂得了如何建立一个顺序表,并能对顺序表进行基本的建立、插入、检测、删除以及查找的操作。
3.本次试验我知道了线性表的顺序存储结构具有如下两个特点:(1)线性表中所有元素所占的存储空间是连续的。
(2)线性表中各元素在存储空间中是按逻辑顺序依次存放的。
实验二 栈、队列的操作
《软件开发技术基础》实验报告
#define stacksize 5
typedef struct { char taskname[10];int taskno;
}DataType;
cla stack { private:
public:
};
//任务名 //任务号
int top;DataType task[stacksize];bool init();bool empty();bool push(DataType d);bool pop(DataType &d);
bool stack::init(){ top=0;int i;for(i=0;i
strcpy(task[i].taskname,“”);
task[i].taskno=-1;} return true;}
bool stack::empty(){ return top>0?false:true;
}
《软件开发技术基础》实验报告
queue_node(int d){
data=d;
next=NULL;} };
cla queue { private: queue_node *front,*rear;public: bool init();bool empty();bool enqueue(int d);bool dequeue(int &d);};
bool queue::init(){
front=rear=new queue_node;
return true;}
bool queue::empty(){ if(front==rear)return true;else return false;}
bool queue::enqueue(int d){ rear->next=new queue_node(d);rear=rear->next;return true;}
《软件开发技术基础》实验报告
bool sqqueue::enqueue(int d){ if((rear+1)%queuesize==front)return false;base[rear]=d;rear=(rear+1)%queuesize;return true;}
bool sqqueue::dequeue(int &d){ if(front==rear)return false;d=base[front];front=(front+1)%queuesize;return true;}
void main(){
DataType dd[5],tt;
char tn[]=“任务a”;int i;for(i=0;i
《软件开发技术基础》实验报告
实验结果:
实验三 查找算法实现(2学时)
实验类型:验证性
实验要求:必修 实验学时: 2学时
一、实验目的:
参照各种查找算法程序样例,验证给出的查找常见算法。
二、实验要求:
1、掌握各种查找算法的特点,测试并验证查找的常见算法。
2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。
三、实验内容:
1.建立有序表,采用折半查找实现某一已知的关键字的查找。
2.利用折半查找算法在一个有序表中插入一个元素,并保持表的有序性。
源程序如下:
#include using namespace std;template cla sL_List { private:
int mm;
int nn;
T *v;public:
sL_List(){mm=0;nn=0;return;}
sL_List(int);
int search_sL_List(T);
int insert_sL_List(int,T);
void prt_sL_List();};
template sL_List::sL_List(int m){ mm=m;
《软件开发技术基础》实验报告
int i;for(i=0;i
cout
int main(){ int k,t,q,result;int a[20]={10,20,30,40,50,60,70,80};sL_Lists(20);for(k=0;k
s.insert_sL_List(k+1,a[k]);cout>t;cout>q;cout
实验结果如下:
《软件开发技术基础》实验报告
2、提交实验报告,报告内容包括:目的、要求、算法描述、程序结构、主要变量说明、程序清单、调试情况、设计技巧、心得体会。
三、实验内容:
输入一组关键字序列分别实现下列排序: 1.实现直接插入排序; 2.实现冒泡排序算法;
3.实现快速排序算法(取第一个记录或中间记录作为基准记录);
4.快速排序的非递归算法; 5.堆排序。
把上述几种排序的算法编写成菜单,根据输入的数字不同执行对应的排序算法。
源程序如下:
#include using namespace std;//实现简单插入排序 template void insort(T p[],int n){ int j,k;T t;for(j=1;j
t=p[j];
k=j-1;
while((k>=0)&&(p[k]>t))
{
p[k+1]=p[k];
k=k-1;
}
p[k+1]=t;} return;} //实现冒泡排序 template void bub(T p[],int n){ int m,k,j,i;T d;k=0;
《软件开发技术基础》实验报告
static int split(T p[],int n){ int i,j,k,l;T t;i=0;j=n-1;k=(i+j)/2;if((p[i]>=p[j])&&(p[j]>=p[k]))
l=j;else if((p[i]>=p[k])&&(p[k]>=p[j]))
l=k;else
l=i;t=p[l];p[l]=p[i];while(i!=j){
while((i=t))
j=j-1;
if(i
{
p[i]=p[j];
i=i+1;
while((i
i=i+1;
if(i
{
p[j]=p[i];
j=j-1;
}
} } p[i]=t;return(i);} //实现堆排序
template void hap(T p[],int n){ int i,mm;T t;mm=n/2;for(i=mm-1;i>=0;i--)
sift(p,i,n-1);for(i=n-1;i>=1;i--)
《软件开发技术基础》实验报告
p[i]=100.0+200.0*p[i];cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
运行结果如下:
《软件开发技术基础》实验报告