《软件技术基础》实验报告 1000字模板 16页.docx

上传人:b****1 文档编号:10404990 上传时间:2023-05-25 格式:DOCX 页数:16 大小:19.36KB
下载 相关 举报
《软件技术基础》实验报告 1000字模板 16页.docx_第1页
第1页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第2页
第2页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第3页
第3页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第4页
第4页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第5页
第5页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第6页
第6页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第7页
第7页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第8页
第8页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第9页
第9页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第10页
第10页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第11页
第11页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第12页
第12页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第13页
第13页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第14页
第14页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第15页
第15页 / 共16页
《软件技术基础》实验报告 1000字模板 16页.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

《软件技术基础》实验报告 1000字模板 16页.docx

《《软件技术基础》实验报告 1000字模板 16页.docx》由会员分享,可在线阅读,更多相关《《软件技术基础》实验报告 1000字模板 16页.docx(16页珍藏版)》请在冰点文库上搜索。

《软件技术基础》实验报告 1000字模板 16页.docx

《软件技术基础》实验报告1000字模板16页

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!

==本文为word格式,下载后可方便编辑和修改!

==

《软件技术基础》实验报告(1000字)

《软件技术基础》

实验报告

学院:

XXXXXXXXX

班级:

XXXXXXX

学号:

XXXXXXXXXX

姓名:

XXXXXX

指导老师:

XXXXXX

实验一顺序表的操作

班级XXXXX学号XXXXXXX姓名XXXX

第X周星期X、XXX节成绩

一、实验目的:

1、掌握顺序表结构的实现方式;

2、掌握顺序表常用算法的实现;

3、熟悉利用顺序表解决问题的一般思路;

4、参照给定的顺序表的程序样例,验证给出的顺序表的常见算法,领会顺序表结构的优点和不足。

二、实验内容:

1、设计一个静态数组存储结构的顺序表,要求编程实现如下任务:

(1)建立一个顺序表,首先依次输人整数数据元素(个数根据需要键盘给定)。

(2)删除指定位置的数据元素(指定元素位置通过键盘输入),再依次显示删除后的顺序表中的数据元素。

(3)查找指定数据的数据元素(指定数据由键盘输入),若找到则显示位置,若没有找到则显示0。

2、使用顺序表实现一个电话本的管理程序,电话本中的每条记录包括学号、姓名、手机号码和固定电话四项。

要求实现菜单、初始化、添加、删除和显示等功能。

三、实验结果:

四、实验中遇到的问题及解决方法:

相关函数书上都有一样的或类似的,因此并未遇到什么问题。

五、实验心得体会:

书上的例程是含有两个元素的,改为一个元素的时候花了一些时间。

参考了书本,对书上的函数有了比较深刻的理解。

附:

部分源程序

#include

constintmaxsize=100;

structstu

{

intid;

charname[20];

};

structSeqList

{

studata[maxsize];

intlength;

};

//主函数

intmain()

{

SeqListL;

L.length=0;

stus;

cout<<"请输入三个学生的学号、姓名:

\n";

}for(inti=0;i<3;i++){cin>>s.id>>s.name;Insert(&L,s);}cout<>ID;Delete(&L,ID);cout<

实验二链表的操作

(一)

班级XXXXX学号XXXXXXX姓名XXXX

第X周星期X、XXX节成绩

一、实验目的:

1、掌握单链表结构的实现方式;

2、掌握单链表常用算法的实现。

二、实验内容:

1、设计一个链表,要求编程实现如下任务:

(1)建立一个链表,首先依次输人整数数据元素(个数根据需要键盘给定)。

(2)删除指定值的结点(指定值通过键盘输入),再依次显示删除后的链表中的数据元素。

(3)查找指定值的结点(指定数据由键盘输入),若找到则显示查找成功,若没有找到则显示查找失败。

(4)在第i个节点(i由键盘输入,i=0表示插入的结点作为第1个结点)之后插入一个元素为x的节点。

三、实验结果:

四、实验中遇到的问题及解决方法:

没太大问题,最大的问题就是不熟悉。

五、实验心得体会:

根据书上的例程,遇到的问题还是与第一次实验差不多,把一个数组元素改为整数元素,很多地方都要改,做不到完全自己写出来。

这次实验让我的对链表这种数据结构有了更深的了解,也对指针有了更加广泛的应用,对指针有了更的了解。

附:

部分源程序

#include

structIntList

{

intdata;

IntList*next;

};

//初始化函数

voidInit(IntList*head,intx)

{

IntList*p=head;

IntList*s=newIntList;

while(p->next!

=NULL)

p=p->next;

s->data=x;

s->next=p->next;

p->next=s;

}

//主函数

voidmain()

{

IntList*head;

head=newIntList;

head->next=NULL;

intsel=1,x,n;

cout<<"请输入要录入的个数\n";

cin>>n;

cout<<"请输入数据\n";

for(inti=0;i

{

cin>>x;

Init(head,x);

}

cout<<"输入的数据为:

\n";

Display(head);

while(sel!

=0)

{

cout<<"选择要进行的操作:

1、插入

cin>>sel;

switch(sel)

{2、删除3、查找0、退出\n";

}

}case1:

{intw;cout<<"请输入要插入的元素和位置\n";cin>>x>>w;get_in(head,x,w);break;}case2:

{cout<<"请输入要删除的元素\n";cin>>x;Delete(head,x);cout<<"结果为:

";Display(head);break;}case3:

{cout<<"请输入要查找的元素\n";cin>>x;Search(head,x);break;}case0:

break;}

实验三链表的操作

(二)

班级XXXXX学号XXXXXXX姓名XXXX

第X周星期X、XXX节成绩

一、实验目的:

1、熟悉利用线性链表解决问题的一般思路;

2、参照给定的链表的程序样例,验证给出的链表的常见算法,了解单链表结构的优点和不足。

二、实验内容:

1、使用链表实现一个电话本的管理程序,电话本中的每条记录包括姓名和电话两项。

要求实现菜单、初始化、添加、删除和显示等功能。

三、实验结果:

四、实验中遇到的问题及解决方法:

链表初始化时所输入数据一直添加到头结点的下一个节点,不能按照输入的顺序建立链表。

解决办法:

在有数据添加到链表时,用一个while语句判断头结点指向的第一个节点是否为空,若为空,则直接添加,若不为空,则向后寻找,直到节点的指针的指向为空。

然后添加数据,将新的地址赋值后指向为空的指针。

五、实验心得体会:

在对链表进行操作时,一定要注意所定义的指针的位置,不然很容易产生错误操作。

在插入数据时一定要注意链表的长度。

若插入的位置大于链表的长度则会发生错误。

实验四栈的操作

班级XXXXX学号XXXXXXX姓名XXXX

第X周星期X、XXX节成绩

一、实验目的:

掌握栈的的定义和运算,了解栈的应用。

二、实验内容:

1、堆栈的测试和应用。

要求:

设计一个主函数实现对顺序堆栈代码进行测试。

测试方法为:

依次把数据元素1,3,5,7,9入栈,然后出栈堆栈中的数据元素并在屏幕上显示。

三、实验结果:

四、实验中遇到的问题及解决方法:

第一次把程序用类的方式来写,对类不熟悉,一开始写的很繁琐,后请教老师并修改后可运行。

五、实验心得体会:

通过这次实验,学会了用类的方式写程序。

而且明白了,用类写程序不是让生搬硬套,而是要运用类把程序的形式化到最简。

附:

部分源程序

#include

structSqStack

{

char*data;

inttop;

intstacksize;

};

//栈的初始化

voidInitStack(SqStack&s,intsize)

{

if(size>0)

{

s.stacksize=size;

s.top=-1;

s.data=newchar[size];

}

elsecout<<"栈的初始化长度失败";

}

//主函数

voidmain()

{

SqStackT;

intnumber[10],i,n;

InitStack(T,10);

cout<<"需要输入的数据的个数为:

\n";

cin>>n;cout<<"请输入数据\n";

for(i=0;i

{

cin>>number[i];

Push(T,number[i]);

}

cout<<"输出结果\n";

for(i=0;i

{

Pop(T,number[i]);

cout<

}

cout<<"\n";

}

实验五队列的操作

班级XXXXX学号XXXXXXX姓名XXXX第X周星期X、XXX节成绩

一、实验目的:

掌握队列的定义及其运算,了解队列的应用。

二、实验内容:

1、队列测试和应用。

要求:

设计一个主函数对循环队列代码进行测试。

测试方法为:

依次把数据元素2,4,6,8,10入队,然后出队中的数据元素并在屏幕上显示。

三、实验结果:

四、实验中遇到的问题及解决方法:

删除最后一个元素后,在进行入队出队后发生错误。

解决方法:

在删除最后一个元素后,修改尾指针。

将头指针的值赋给尾指针。

五、实验心得体会:

队列是操作受限的线性表,其基本运算方法与顺序表和链表运算方法基本相同,在应用队列的数据结构时,应定要注意队列的先进先出这一特点。

附:

部分源程序

#include

constintMAX=100;

classSqQueue

{

public:

intdata[MAX];

intfront;

intrear;

//入队列

voidEnQueue(intx)

{

if((rear+1)%MAX==front)cout<<"队列已满";

else{

rear=(rear+1)%MAX;

data[rear]=x;

}

}

//主函数

intmain()

{

SqQueueQ[1];

Q[0].front=Q[0].rear=0;

intt[5];

inti;

for(i=0;i<5;i++)

{

cout<<"请输入5个整数:

";

cin>>t[i];

}

for(i=0;i<5;i++)

{Q[0].EnQueue(t[i]);

cout<

}

return0;

}

实验六二叉树的生成和遍历

班级XXXXX学号XXXXXXX姓名XXXX

第X周星期X、XXX节成绩

一、实验目的:

1、熟悉二叉树节点的定义和生成方式;

2、熟悉二叉树链式结构的生成方式;

3、掌握二叉树遍历算法的实现。

三、实验内容:

1.设计实现二叉树的建立及遍历算法,要求:

(1)编写创建二叉链式存储结构的二叉树程序并输出。

(2)编写递归实现二叉树的先序、中序、后序遍历算法。

(3)编写主函数测试以上二叉树的创建和遍历函数。

2.假设二叉树采用链式存储结构进行存储,编写程序实现二叉树的所有叶子结点的统

计并输出统计个数。

三、实验结果:

四、实验中遇到的问题及解决方法:

在编二叉树时,刚开始没有设置0作为创建二叉树的结束,造成了所创建的二叉树始终不能结束。

最后把0做为结束标志,解决了这个问题。

五、实验心得体会:

通过这次实验,我知道了在编写二叉树是要设置一个数0表示创建输的完成,以及在进行遍历的是要从左边遍历,然后再是右边。

要注意保存结点指针,这样可以访问上一个数据,位访问右边的数据提供了方便。

实验七实现查找算法

班级XXXXX学号XXXXXXX姓名XXXX

第X周星期X、XXX节成绩

一、实验目的:

掌握各种查找算法的特点,测试并验证查找常见算法。

二、实验内容:

1.建立有序表,采用折半查找实现某一已知的关键字的查找。

2.利用折半查找算法在一个有序表中插入一个元素,并保持表的有序性。

三、实验结果:

四、实验中遇到的问题及解决方法:

一开始先写好了二分查找的程序,在这个基础上一直写不出来在有序表中插入一个元素,并保持表的有序性,后来通过请教同学,才恍然大悟,应该先写插入的程序,再将查找改成二分法。

五、实验心得体会:

通过这次实验,我知道了,在编写折半查找时在设置查找区间初值时,要把下边界low=0,上边界high=length-1。

附:

部分源程序

#include

structList

{

intdata[20],length;

};

voidInsert_1(List*L,intx)//顺序表的初始化函数

{

intj=L->length-1;

L->data[j+1]=x;

L->length++;

}

voidmain()//主程序

{

ListL;//定义一个顺序表L.length=0;intsel=1,x;//sel为循环标志数cout<<"请输入10个数据\n";for(inti=0;i<10;i++){cin>>x;Insert_1(&L,x);}cout<<"输入的数据为:

\n";Display(&L);paixu(&L);cout<<"排序后的数据\n";

Display(&L);

while(sel!

=0)

{

cout<<"请选择要进行的操作:

"<<"1、查找数据"<<"2、插入数据"<<"0、退出\n";

cin>>sel;switch(sel){case1:

{cout<<"输入要查找的数据\n";cin>>x;cout<<"要查找的数据在第"<

{cout<<"输入要插入的数据\n";cin>>x;if(Search(&L,x)!

=0){for(i=L.length-1;i>Search(&L,x)-1;i--)L.data[i+1]=L.data[i];L.data[i+1]=x;L.length++;

}

else

{

for(i=L.length-1;L.data[i]>=x;i--)

L.data[i+1]=L.data[i];

L.data[i+1]=x;

L.length++;

}

cout<<"插入后的数据\n";

}

}}}Display(&L);

实验八排序综合实验

班级号姓名

第X周星期X、XXX节成绩

一、实验目的:

参照各种排序算法程序样例,验证给出的排序常见算法。

二、实验内容:

输入一组关键字序列分别实现下列排序,并将上述几种排序的算法编写成菜单,根据输入的数字不同执行对应的排序算法(任选两种排序方法实现)。

1、直接插入排序。

2、希尔排序。

3、冒泡排序。

4、直接选择排序。

5、快速排序。

6、堆排序。

7、归并排序。

8、基数排序。

三、实验结果:

四、实验中遇到的问题及解决方法:

没有什么问题,就是快速排序写不来。

因为是任选两种,所以没有继续。

五、实验心得体会:

排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。

在具体操作中对这学期所学的数据结构和以前学的C语言的理论知识得到巩固,也发现自己的不足之处,在以后的上机中应更加注意,通过实际操作,学会数据结构书中程序的编写方法和基本步骤,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。

附:

部分源程序

#include

constintmaxsize=100;

voidmain()

{inti,n,select;

intv[maxsize];

cout<<"请输入数据长度:

";

cin>>n;

cout<<"请输入数据:

"<<"\n";

for(i=0;i

cin>>v[i];

while(select!

=0)

{cout<<"请输入操作选择:

1-直接插入排序2-冒泡排序3-选择排序0-结束\n";

cin>>select;

switch(select)

{case1:

cout<<"直接插入排序\n";

InsertSort(v,n);

for(i=0;i

cout<

break;

case2:

cout<<"冒泡排序\n";

Bub(v,n);

for(i=0;i

cout<

break;

case3:

cout<<"选择排序\n";

SS(v,n);

for(i=0;i

cout<

break;

case0:

cout<<"使用结束";

}

}

}

break;

∙荐计算机上机实验内容及实验报告要求

∙荐构建学校德育管理与评价体系的实验报告

∙荐化学实验报告格式

∙荐大学物理实验课程设计实验报告

∙荐电路实验报告要求

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2