- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告内容包括: 1、问题描述:包括目标、任务、约束条件、输入输出要求,对功能的规定及模型。 2、设计:数据结构与核心算法的设计描述;人机界面的设计;函数之间调用关系的描述;主要功能的算法框架;测试用例设计。 3、测试:测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。 4、心得:软件设计与实现过程中的经验与体会,进一步改进的设想。 5、程序清单:清单中应有足够的注释。 实验报告格式: 题目: 班级: 姓名: 学号: 完成日期: 上机实验1—计算器 实验目的:掌握栈的运算及应用,了解对算法的健壮性要求。 实验内容: 实现计算器类中lp、rp和operate函数; 完善计算器类evaluate函数,增加对输入的合法性检查,包括滤掉所有非法输入及处理左右括号不配对的输入; 编制应用程序测试这个计算器; 用如下表达式进行测试: (56-23)/8-4# 期望结果:0.125 34+p(u89-12.3)k/3# 期望结果:59.5667 89.5*749+25)# 期望结果:输入有误 (8*(7-4)# 期望结果:输入有误 65*(72+98)(70-45) # 期望结果:输入有误 6*# 期望结果:输入有误 )5+3(# 期望结果:输入有误 验证计算结果。 上机实验2—皇后问题 实验目的:通过求解皇后问题,熟悉深度优先搜索法DFS(回溯法(Backtracking Algorithms)技术。 实验内容: 由n2个方块排成n行n列的正方形称为n元棋盘。如果两个皇后位于n元棋盘上的同一行、同一列或同一对角线上,则称它们在互相攻击。现要找出使棋盘上n个皇后互不攻击的布局。 编制程序解决上述问题,以n=6运行程序,输出结果。 方法说明(回溯法) 定义一个数组A[n],A[i]表示第i行上的皇后所在的列数,i=0,1,...,n-1; 第i行与第j行上的皇后互不攻击的充要条件是:|A[i]-A[j]|==|i-j|; 算法概述: 初始时,各行皇后均放在第0列,然后从第0行开始逐行布局; 设前i-1行已布好,现考虑第i行皇后的位置,从其当前位置A[i]开始向右探察: 若A[i]=n-1,则检查i行皇后与前i-1行皇后是否互不攻击。若有攻击,则i行皇后右移一位,重复这个过程;若无攻击,则: 若in-1,继续布下一行的皇后; 若i=n-1,输出布局,然后将n-1行皇后右移一位,重复这个过程,寻找另一种布局。 若A[i]n-1,则将i行皇后放在第0列,回退一行,考虑第i-1行皇后与前i-2行皇后互不攻击的下一个位置。若已退到-1行,则结束。 算法语言描述: for(int i=0;in;i++) A[i]=0; i=0; while(i=0) { if(A[i]=n-1) { 检测A[i]与A[0]~A[i-1]是否有冲突; if(有冲突) A[i]++; else if(in-1) i++; else {输出布局; A[n-1]++;} } else { A[i]=0; i--; if(i=0) A[i]++; } } 上机实验3—约瑟夫(Josephu)问题 实验目的:掌握循环单链表的生成及插入删除的实现方法和应用。 实验内容:已知n(n=1)个人围坐一圆桌周围,从序号位k的人开始报数,顺时针数到m的那个人出列;它的下一个人又从1开始报数,数到m的那个人有出列;依次规则重复去,直到剩下1人为止。 方法: 1、构造长度为n,数据分别为(1,2,3,…,n)的不带头节点的单循环链表。 方法说明: 1、构造长度为n,数据分别为(1,2,3,…,n)的不 带头节点的单循环链表。 2、找到第一个出发点k。 3、数到m,删除此节点,继续数,直到删完所有节点。 约瑟夫(Josephu)问题改造: 每个人持有一张正整数密码,当某个人出列时,将她的 密码作为新的m值,从下一个人在开始数,如此,直到 全部出列。 上机实验4—线性表 实验目的:掌握线性表的顺序存储结构—顺序表的实现方法和应用,掌握一种产生随机整数的方法。 实验内容: 编写顺序表的类模板中未实现的成员函数; 设计一个产生0~999之间的随机整数的类; 编制一个应用程序,它将随机产生的N个整数插入到一个顺序表中,显示这个顺序表,然后删除值小于100的整数,并重新显示这个顺序表; 分别以N=10、50运行这个应用程序。 方法说明 产生随机整数的一个算法: 设m=65536,初值y0=0, 则递推公式: yi = mod(2035 yi-1+13849, m) 产生0~65535之间的随机整数。 若要产生0~999之间的随机整数,作运算: xi = INT
文档评论(0)