课程实验报告(共13页).doc
《课程实验报告(共13页).doc》由会员分享,可在线阅读,更多相关《课程实验报告(共13页).doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上程序设计艺术与方法课程实验报告 学号: 姓名:周旋 2015.10.10实验一 STL的熟悉与使用实验名称实验一 STL 的熟悉与使用姓 名周旋系院专业信息工程系班 级计算机14-4班学 号实验日期指导教师徐本柱成 绩一、实验目的和要求1掌握C+中STL的容器类的使用;2掌握C+中STL的算法类的使用.二、实验预习内容1预习ICPC讲义,大致了解STL的相关内容。2了解STL中一些类 vector list类的使用方法3了解泛型算法的使用三、实验项目摘要1练习vector和list的使用2练习泛型算法的使用四、实验结果与分析(源程序及相关说明)以下程序实现了下述几个功
2、能:1 定义一个vector,生成十个随机数插入到vector中。2 多次使用迭代器iterator遍历vector,输出完成不同功能的vector元素。3 使用泛型算法find 查找vector中的随机数,如果找到输出该随机数,如果没找到将该随机数插入到vector中。4 使用泛型算法 sort 对vector中的元素进行升序与降序排列,使用迭代器iterator输出。5 使用min, max算法求出vector中的最小值与最大值。6 删除vector 中的尾部元素以及全部元素,输出vector的大小。(注:源代码见下页)#include #include #include #include
3、 using namespace std;vector vint;int main() int i; for (i=0;i10;i+) int r = rand()%99+0; vint.push_back(r); vector :iterator pit1; for (pit1=vint.begin();pit1!=vint.end();pit1+) cout *pit1 ; cout endl; int temp; temp = rand()%99+0; vector :iterator pit2; pit2 = find (vint.begin(),vint.end(),temp); i
4、f (pit2!=vint.end() cout The number has been found ! endl; cout The number is: temp endl; else cout Sorry! The number has not been found! Please try again ! endl; vint.push_back(temp); random_shuffle(vint.begin(),vint.end(); cout The max number is : *max_element(vint.begin(),vint.end() endl; cout Th
5、e min number is : *min_element(vint.begin(),vint.end() endl; cout 数组升序排列的结果为: endl; vector :iterator pit3; sort (vint.begin(),vint.end(); for (pit3=vint.begin();pit3!=vint.end();pit3+) cout *pit3 ; cout endl; cout 数组降序排列的结果为: endl; vector :iterator pit4; sort (vint.rbegin(),vint.rend(); for (pit4=vi
6、nt.begin();pit4!=vint.end();pit4+) cout *pit4 ; cout endl; vint.pop_back(); cout 数组的大小为: vint.size() endl; vint.erase (vint.begin(),vint.end(); cout 数组的大小为: vint.size() endl; return 0;实验二 搜索算法的实现实验名称实验二 搜索算法的实现姓 名周旋系院专业信息工程系班 级计算机14-4班学 号实验日期指导教师徐本柱成 绩一、实验目的和要求1掌握宽度优先搜索算法;2掌握深度优先搜索算法.二、实验预习内容1将书上的走迷
7、宫代码上机运行并检验结果,体会搜索的思想2预习n皇后问题3预习骑士游历问题三、实验项目摘要1n皇后问题: 在一个国际象棋棋盘上放n个皇后,使得任何两个皇后之间不相互攻击,求出所有的布棋方法。上机运行并检验结果2骑士游历问题: 在国际棋盘上使一个骑士遍历所有的格子一遍且仅一遍,对于任意给定的顶点,输出一条符合上述要求的路径3倒水问题: 给定2 个没有刻度容器,对于任意给定的容积,求出如何只用两个瓶装出 L 升的水,如果可以,输出步骤,如果不可以,请输出No Solution 。四、实验结果与分析(源程序及相关说明)以下仅列出八皇后问题的源代码:#include #include using na
8、mespace std;int sum = 0;int upperlimit = 1;void compare(int row,int ld,int rd) if( row!= upperlimit ) int pos=upperlimit&(row|ld|rd); while(pos!=0) int p=pos&-pos; pos-=p; compare(row+p,(ld+p)1); else sum+; int main() int n; cout n; upperlimit = (upperlimitn)-1; compare(0,0,0); cout 问题的解如下: sum endl
9、; return 0;实验三 计算几何算法的实现实验名称实验二 计算几何算法的实现姓 名周旋系院专业信息工程系班 级计算机14-4班学 号实验日期指导教师徐本柱成 绩一、实验目的和要求1. 理解线段的性质、叉积和有向面积。2. 掌握寻找凸包的算法。3. 综合运用计算几何和搜索中的知识求解有关问题。二、实验预习内容1预习ICPC讲义,大致了解计算几何算法的相关内容。2了解实现该算法的中一些使用方法。3会使用该算法解决实际问题。三、实验项目摘要1. 将讲义第三章第三节中的凸包代码上机运行并检验结果。2. 完成讲义第三章的课后习题,上机运行并检验结果。3. 思考:判线段相交时,如果有个线段的端点在另
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程 实验 报告 13
限制150内