课程实验报告汇总.docx

上传人:b****2 文档编号:1743116 上传时间:2022-10-23 格式:DOCX 页数:24 大小:72.16KB
下载 相关 举报
课程实验报告汇总.docx_第1页
第1页 / 共24页
课程实验报告汇总.docx_第2页
第2页 / 共24页
课程实验报告汇总.docx_第3页
第3页 / 共24页
课程实验报告汇总.docx_第4页
第4页 / 共24页
课程实验报告汇总.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

课程实验报告汇总.docx

《课程实验报告汇总.docx》由会员分享,可在线阅读,更多相关《课程实验报告汇总.docx(24页珍藏版)》请在冰豆网上搜索。

课程实验报告汇总.docx

课程实验报告汇总

实验一STL的熟悉与使用

实验名称

实验一STL的熟悉与使用

姓名

汪子成

系院专业

信息工程系

班级

计算机15-1班

学号

2015216758

实验日期

指导教师

徐本柱

成绩

一、实验目的和要求

1.掌握C++中STL的容器类的使用;

2.掌握C++中STL的算法类的使用.

二、实验预习内容

1.预习ICPC讲义,大致了解STL的相关内容。

2.了解STL中一些类vectorlist类的使用方法

3.了解泛型算法的使用

三、实验项目摘要

(1)练习vector和list的使用。

定义一个空的vector,元素类型为int,生成10个随机数插入到vector中,用迭代器遍历vector并输出其中的元素值。

在vector头部插入一个随机数,用迭代器遍历vector并输出其中的元素值。

用泛型算法find查找某个随机数,如果找到便输出,否则将此数插入vector尾部。

用泛型算法sort将vector排序,用迭代器遍历vector并输出其中的元素值。

删除vector尾部的元素,用迭代器遍历vector并输出其中的元素值。

将vector清空。

定义一个list,并重复上述实验,并注意观察结果。

(2)练习泛型算法的使用。

定义一个vector,元素类型为int,插入10个随机数,使用sort按升序排序,输出每个元素的值,再按降叙排序,输出每个元素的值。

练习用find查找元素。

用min和max找出容器中的最小元素和最大元素,并输出。

四、实验结果与分析(源程序及相关说明)

1.练习vector和list的使用:

#include

#include

#include

#include

#include

usingnamespacestd;

vectormyV;

boolsortup(intv1,intv2)

{

returnv1

}

intmain(intargc,char*argv[])

{

srand(time(NULL));for(inti=0;i<10;i++)

myV.push_back(rand());

sort(myV.begin(),myV.end(),sortup);vector:

:

iteratorit1;

for(it1=myV.begin();it1!

=myV.end();it1++)

{

cout<<(*it1)<

}

cout<

intmin=myV[0];

for(it1=myV.begin()+1;it1!

=myV.end();it1++)

if((*it1)

cout<<"最小元素为"<

intmax=myV[0];

for(it1=myV.begin();it1!

=myV.end();it1++)

if((*it1)>max)max=(*it1);

cout<<"最大元素为"<

cout<

intvalue=rand();

it1=find(myV.begin(),myV.end(),value);

if((*it1)==value)

cout<<"找到了这个随机数"<

else

cout<<"没有找到这个随机数"<

myV.insert(myV.end(),value);

cout<<"插入尾部的随机数为"<

for(it1=myV.begin();it1!

=myV.end();it1++)

{

cout<<(*it1)<

}

cout<<"\n"<

intt=rand();

myV.insert(myV.begin(),t);

cout<<"插入头部的随机数为"<

for(it1=myV.begin();it1!

=myV.end();it1++)

{

cout<<(*it1)<

}

cout<

myV.pop_back();

for(it1=myV.begin();it1!

=myV.end();it1++)

{

cout<<(*it1)<

}

cout<

myV.clear();

if(myV.empty())

{

cout<<"It'sempty!

"<

}

system("PAUSE");//pressanykeytocontinue...

return0;

}

2练习泛型算法的使用:

#include

#include

usingnamespacestd;

typedeflistlin;

intvalue[]={1,6,7,8,9};

voidprint(lin&l)

{

inti;

lin:

:

iteratorlit;

for(lit=l.begin();lit!

=l.end();lit++)

cout<<(*lit)<<"";

cout<

}

boolsortsp(intv1,intv2)

{

returnv1>v2;

}

intmain(){

linlin2;

lin2.push_front(3);

lin2.push_front(4);

lin2.insert(lin2.begin(),value,value+5);

cout<<"lin2内的元素为:

";

print(lin2);

lin2.sort();

cout<<"排序后的lin2:

";

print(lin2);

lin2.push_front(10);

cout<<"在list头部插入10之后的结果:

";

print(lin2);

lin2.remove(6);

cout<<"删除一个数后的lin1:

";

print(lin2);

system("PAUSE");

return0;

}

 

实验二搜索算法的实现

实验名称

实验二搜索算法的实现

姓名

汪子成

系院专业

信息工程系

班级

计算机15-1班

学号

2015216758

实验日期

指导教师

徐本柱

成绩

一、实验目的和要求

1.掌握宽度优先搜索算法;

2.掌握深度优先搜索算法.

二、实验预习内容

1.预习ICPC讲义中的搜索的内容

2.了解什么是深度优先搜索和广度优先搜索。

三、实验项目摘要

1.将书上的走迷宫代码上机运行并检验结果,并注意体会搜索的思想。

2.八皇后问题:

在一个国际象棋棋盘上放八个皇后,使得任何两个皇后之间不相互攻击,求出所有的布棋方法。

上机运行并检验结果。

3.骑士游历问题:

在国际棋盘上使一个骑士遍历所有的格子一遍且仅一遍,对于任意给定的顶点,输出一条符合上述要求的路径。

4.倒水问题:

给定2个没有刻度容器,对于任意给定的容积,求出如何只用两个瓶装出L升

的水,如果可以,输出步骤,如果不可以,请输出NoSolution

四、实验结果与分析(源程序及相关说明)

2,八皇后问题:

#include

#defineN8

#defineNUM8

inth[N][N],n[N],H[N][N];

intcount=0;

voidtryit(int,int);

voidoutputArray(int[][N]);

main()

{

intx=0,y=0,i,j;

for(i=0;i<=N-1;i++)

{

for(j=0;j<=N-1;j++)

h[i][j]=0;

}

tryit(x,y);

printf("......\n");

printf("共有%d种布局.\n",92);

return(0);

}

voidtryit(intx,inty)

{

inti,j;

if(count<=NUM)

{

if((H[0][0]==1&&H[1][4]==1&&H[2][7]==1&&H[3][5]==1&&H[4][2]==1&&H[5][6]==1&&H[6][1]==1&&H[7][3]==1)&&count!

=1)

{}

else

{

if(x>=0&&x<=N-1&&y>=0&&y<=N-1&&h[x][y]==0)

{

for(j=0;j<=7;j++)

{

if(h[x][j]==0)

h[x][j]=x+1;

if(h[j][y]==0)

h[j][y]=x+1;

if(x+j>=0&&x+j<=N-1&&y+j>=0&&y+j<=N-1&&h[x+j][y+j]==0)

h[x+j][y+j]=x+1;

if(x+j>=0&&x+j<=N-1&&y-j>=0&&y-j<=N-1&&h[x+j][y-j]==0)

h[x+j][y-j]=x+1;

if(x-j>=0&&x-j<=N-1&&y+j>=0&&y+j<=N-1&&h[x-j][y+j]==0)

h[x-j][y+j]=x+1;

if(x-j>=0&&x-j<=N-1&&y-j>=0&&y-j<=N-1&&h[x-j][y-j]==0)

h[x-j][y-j]=x+1;

}

h[x][y]=-x-1;

if(x==7)

{

for(i=0;i<=N-1;i++)

{

for(j=0;j<=N-1;j++)

{

if(h[i][j]<0)

H[i][j]=1;

else

H[i][j]=0;

}

}

count=count+1;

if(count<=NUM)

{

printf("------布局%d------\n",count);

outputArray(H);

}

for(i=0;i<=N-1;i++)

{

for(j=0;j<=N-1;j++)

{

if(h[i][j]==x||h[i][j]==-x||h[i][j]==-x-1)

h[i][j]=0;

}

}

tryit(x-1,n[x-1]+1);

}

else

{

n[x]=y;

tryit(x+1,0);

}

}

else

{

if(y>7)

{

for(i=0;i<=N-1;i++)

{

for(j=0;j<=N-1;j++)

{

if(h[i][j]==x

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

当前位置:首页 > PPT模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1