课程实验报告汇总.pdf
《课程实验报告汇总.pdf》由会员分享,可在线阅读,更多相关《课程实验报告汇总.pdf(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.实验一 STL 的熟悉与使用实验名称姓名实验日期汪子成实验一 STL 的熟悉与使用系院专业信息工程系班 级计算机15-1班指导教师徐本柱学 号成 绩2015216758一、实验目的和要求一、实验目的和要求1掌握 C+中 STL 的容器类的使用;2掌握 C+中 STL 的算法类的使用.二、实验预习容二、实验预习容1预习 ICPC 讲义,大致了解 STL 的相关容。2了解 STL 中一些类 vector list 类的使用方法3了解泛型算法的使用三、实验项目摘要三、实验项目摘要(1)练习 vector 和 list 的使用。定义一个空的vector,元素类型为int,生成 10 个随机数插入到
2、vector 中,用迭代器遍历 vector 并输出其中的元素值。在 vector 头部插入一个随机数,用迭代器遍历 vector 并输出其中的元素值。用泛型算法 find 查找某个随机数,如果找到便输出,否则将此数插入 vector 尾部。用泛型算法 sort 将 vector 排序,用迭代器遍历 vector 并输出其中的元素值。删除 vector 尾部的元素,用迭代器遍历 vector 并输出其中的元素值。将vector 清空。定义一个 list,并重复上述实验,并注意观察结果。(2)练习泛型算法的使用。定义一个vector,元素类型为int,插入10 个随机数,使用sort 按升序排序
3、,输出每个元素的值,再按降叙排序,输出每个元素的值。练习用 find 查找元素。用 min和 max 找出容器中的最小元素和最大元素,并输出。1/24.四、实验结果与分析(源程序与相关说明)四、实验结果与分析(源程序与相关说明)1.练习vector 和list 的使用:#include#include#include#include#include using namespace std;vector myV;bool sortup(int v1,int v2)return v1v2;int main(int argc,char*argv)srand(time(NULL);for(int i=
4、0;i10;i+)myV.push_back(rand();sort(myV.begin(),myV.end(),sortup);vector:iterator it1;for(it1=myV.begin();it1!=myV.end();it1+)cout(*it1)setw(6);coutendl;int min=myV0;for(it1=myV.begin()+1;it1!=myV.end();it1+)if(*it1)min)min=(*it1);cout最小元素为 minmax)max=(*it1);cout最大元素为 maxendl;2/24.coutendl;int value=
5、rand();it1=find(myV.begin(),myV.end(),value);if(*it1)=value)cout找到了这个随机数endl;else cout没有找到这个随机数endl;myV.insert(myV.end(),value);cout插入尾部的随机数为valueendl;for(it1=myV.begin();it1!=myV.end();it1+)cout(*it1)setw(6);coutnendl;int t=rand();myV.insert(myV.begin(),t);cout插入头部的随机数为 tendl;for(it1=myV.begin();it
6、1!=myV.end();it1+)cout(*it1)setw(6);coutendl;myV.pop_back();for(it1=myV.begin();it1!=myV.end();it1+)cout(*it1)setw(6);coutendl;myV.clear();if(myV.empty()3/24.cout Its empty!endl;system(PAUSE);/press any key to continue.return 0;2 练习泛型算法的使用:#include#includeusing namespace std;typedef list lin;int val
7、ue=1,6,7,8,9;void print(lin&l)int i;lin:iterator lit;for(lit=l.begin();lit!=l.end();lit+)cout(*lit);coutv2;int main()lin lin2;lin2.push_front(3);lin2.push_front(4);lin2.insert(lin2.begin(),value,value+5);coutlin2 的元素为:;print(lin2);lin2.sort();cout排序后的 lin2:;print(lin2);lin2.push_front(10);cout在 list
8、 头部插入 10 之后的结果:;print(lin2);lin2.remove(6);cout删除一个数后的 lin1:;print(lin2);system(PAUSE);return 0;实验二 搜索算法的实现5/24.实验名称实验二 搜索算法的实现姓名汪子成系院专业信息工程系班级计算机15-1班学号2015216758实验日期指导教师徐本柱成绩一、实验目的和要求一、实验目的和要求1掌握宽度优先搜索算法;2掌握深度优先搜索算法.二、实验预习容二、实验预习容1预习 ICPC 讲义中的搜索的容2.了解什么是深度优先搜索和广度优先搜索。三、实验项目摘要三、实验项目摘要1.将书上的走迷宫代码上机运
9、行并检验结果,并注意体会搜索的思想。2.八皇后问题:在一个国际象棋棋盘上放八个皇后,使得任何两个皇后之间不相互攻击,求出所有的布棋方法。上机运行并检验结果。3.骑士游历问题:在国际棋盘上使一个骑士遍历所有的格子一遍且仅一遍,对于任意给定的顶点,输出一条符合上述要求的路径。4.倒水问题:给定 2 个没有刻度容器,对于任意给定的容积,求出如何只用两个瓶装出L 升的水,如果可以,输出步骤,如果不可以,请输出No Solution6/24.四、实验结果与分析(源程序与相关说明)四、实验结果与分析(源程序与相关说明)2,八皇后问题:#include#define N 8#define NUM 8int
10、hNN,nN,HNN;int count=0;void tryit(int,int);void outputArray(intN);main()void tryit(int x,int y)int i,j;if(count=NUM)int x=0,y=0,i,j;for(i=0;i=N-1;i+)tryit(x,y);printf(.n);printf(共有%d 种布局.n,92);return(0);for(j=0;j=0&x=0&y=N-1&hxy=0)for(j=0;j=0&x+j=0&y+j=0&x+j=0&y-j=0&x-j=0&y+j=0&x-j=0&y-j=N-1&hx-jy-j
11、=0)hx-jy-j=x+1;hxy=-x-1;if(x=7)for(i=0;i=N-1;i+)8/24for(j=0;j=N-1;j+)if(hij0)Hij=1;elseHij=0;.count=count+1;if(count=NUM)printf(-布局%d-n,count);outputArray(H);for(i=0;i=N-1;i+)tryit(x-1,nx-1+1);for(j=0;j7)for(i=0;i=N-1;i+)for(j=0;j=0)tryit(x-1,nx-1+1);else tryit(0,0);elsetryit(x,y+1);void outputArray
12、(int hN)int i,j;for(i=0;i=N-1;i+)for(j=0;j=N-1;j+)printf(%d,hij);printf(n);10/24.3.骑士游历问题:#include int board88=0;int travel(int x,int y)int ktmove18=-2,-1,1,2,2,1,-1,-2;int ktmove28=1,2,2,1,-1,-2,-2,-1;int nexti8=0;int nextj8=0;int exists8=0;int i,j,k,m,l;int tmpi,tmpj;int count,min,tmp;i=x;j=y;11/2
13、4.boardij=1;for(m=2;m=64;m+)for(l=0;l 8;l+)existsl=0;l=0;for(k=0;k 8;k+)tmpi=i+ktmove1k;tmpj=j+ktmove2k;if(tmpi 0|tmpj 7|tmpj 7)continue;if(boardtmpitmpj=0)nextil=tmpi;nextjl=tmpj;l+;count=l;if(count=0)return 0;else if(count=1)min=0;else for(l=0;l count;l+)for(k=0;k 8;k+)tmpi=nextil+ktmove1k;tmpj=ne
14、xtjl+ktmove2k;if(tmpi 0|tmpj 7|tmpj 7)continue;12/24.if(boardtmpitmpj=0)existsl+;tmp=exists0;min=0;for(l=1;l count;l+)if(existsl tmp)tmp=existsl;min=l;i=nextimin;j=nextjmin;boardij=m;return 1;int main()int startx,starty;int i,j;printf(输入起始点:);scanf(%d%d,&startx,&starty);if(travel(startx,starty)print
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程 实验 报告 汇总
限制150内