电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

程序设计艺术与方法课程实验报告

22页
  • 卖家[上传人]:不***
  • 文档编号:93110598
  • 上传时间:2019-07-16
  • 文档格式:DOC
  • 文档大小:595KB
  • / 22 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、/程序设计艺术与方法课程实验报告一实验名称 STL的熟悉与使用姓 名系院专业信息工程系班 级物联网一班学 号实验日期指导教师成 绩一、实验目的和要求1(1)掌握C+中STL的容器类使用。(2)掌握C+中STL的算法类的使用。二、实验预习内容 Vector,list可当作列表使用的数据结构,它们都是动态增长的。1.vector表示一段连续的内存区域每个元素被顺序储存在这段内存中。对vector的随即访问效率很高。但是在任意位置而不是在vector末尾插入元素则效率很低,因为它需要把待插入元素的右边的每个元素都拷贝一遍。类似的删除任一个而不是vector的最后一个元素效率低。2list表示非连续的内存区域并通过一对指向首尾元素的指针双向进行遍历在list的任意位置插入和删除元素的效率都很高,指针必须被赋值但不需要用拷贝元素来实现移动,另一方面它对随机访问的支持并不好访问一个元素需要遍历中间的元素,另外每个元素还有俩不能给个指针的额外空间开销。3泛型算法让编写一般化并可重复使用的算法,其效率与指针对某特定数据类型而设计的算法相同。泛型即是指具有在多种数据类型上皆可操作的含义,与模板有些相似。

      2、STL巨大而且可以扩充,它包含很多计算机基本算法和数据结构,而且将算法与数据结构完全分离,其中算法是泛型的,不与任何特定数据结构或对象类型系在一起。三、实验项目摘要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 找出容器中的最小元素个最大元素,并输出。四、实验结果与

      3、分析(源程序及相关说明)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=0;i10;i+) myV.push_back(rand(); sort(myV.begin(),myV.end(),sortup); /用sort排序升序 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=(*i

      4、t1); cout最大元素为 maxendl; coutendl; int value=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; /随机在vector头部插入一个随机数 int t=rand();/定义t;将一个随机数赋给t,插入到数组头部 myV.insert(myV.begin(),t); cout插入头部的随机数为 tendl; for (it1=myV.begin();it1!=myV.end();it1+) cout(*it1)setw(6); coutendl; /删除尾部元素 myV.pop_back (); for (it1=m

      5、yV.begin();it1!=myV.end();it1+) cout(*it1)setw(6); coutendl; myV.clear();/清空数组 if(myV.empty() cout Its empty! endl; system(PAUSE); /press any key to continue. return 0;运行截图:2 练习泛型算法的使用:#include#include/#incluedusing namespace std;typedef list lin;int value=2,4,6,1,8; void print(lin &l)int i;lin:iterator lit;/定义一个迭代器 for(lit=l.begin();lit!=l.end();lit+)cout(*lit) ;/打印list中的元素 coutv2; int main()lin lin2; lin2.push_front(3); lin2.push_front(4); lin2.insert(lin2.begin(),value,value+5);coutlin2内的元素为:

      6、;print(lin2);lin2.sort();cout排序后的lin2: ;print(lin2);lin2.push_front(10);/在list头部插入10 cout在list头部插入10之后的结果:; print(lin2);lin2.remove(6);cout删除一个数后的lin1:; print(lin2); system(PAUSE);/press any key to contineu. return 0;运行截图:二实验名称 搜索算法的实验姓 名系院专业信息工程系班 级物联网一班学 号实验日期指导教师成 绩一、实验目的和要求1掌握宽度优先搜索算法。2掌握深度优先搜索算法。二、实验预习内容1宽度优先搜索算法:又称广度优搜索。是最简单的图的算法的原形。其属于一种盲搜寻法,目的是系统地展开并检查图中的所有节点,以寻找结果。换句话说,它并不考虑结果的可能位址,彻底地搜索整张图,直到找到结果为止。2深度优先搜索算法:它的目的是要达到被搜索结构的叶结点。在一个HTML文件中,当一个超链被选择后,被连接的HTML文件将执行深度优先搜索,即在搜索其余的超链走到不能再深入为止,

      7、然后返回到某一个HTML文件,再继续选择该HTML文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。三、实验项目摘要1.将书上的走迷宫代码上机运行并检验结果,并注意体会搜索的思想。2 .八皇后问题:在一个国际象棋棋盘上放八个皇后,使得任何两个皇后之间不相互攻击,求出所有的布棋方法。上机运行并检验结果。思考:将此题推广到N 皇后的情况,检验在N 比较大的情况下,比方说N=16 的时候,你的程序能否快速的求出结果,如果不能,思考有什么方法能够优化算法。3骑士游历问题:在国际棋盘上使一个骑士遍历所有的格子一遍且仅一遍,对于任意给定的顶点,输出一条符合上述要求的路径。4 倒水问题:给定2 个没有刻度容器,对于任意给定的容积,求出如何只用两个瓶装出L 升的水,如果可以,输出步骤,如果不可以,请输出No Solution。四、实验结果与分析(源程序及相关说明)2,八皇后问题:#include /*声明常量N存储行和列*/#define N 8#define NUM 8/*声明全局变量,hNN控制盘格,HNN控制输出,nN存储每一步的*纵坐标,count用于计数。*/int hNN,nN,HNN;int count=0;/*声明函数void tryit(int,int)尝试符合条件的方法*/void tryit(int,int);/*声明函数void outputArray(intN)输出数组*/void outputArray(intN);main()int x=0,y=0,i,j;/*初始化为零*/for(i=0;i=N-1;i+)for(j=0;j=N-1;j+)hij=0;tryit(x,y);printf(/其他的布局略n);printf(共有%d种布局.n,92);return(0);/*定义函数

      《程序设计艺术与方法课程实验报告》由会员不***分享,可在线阅读,更多相关《程序设计艺术与方法课程实验报告》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.