ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:314.53KB ,
资源ID:4929946      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4929946.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(数据结构课程设计多维数组.docx)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据结构课程设计多维数组.docx

1、数据结构课程设计多维数组班级学号学生姓名提交日期2017年1月12日成 绩 计算机与通信工程学院目录第一部分 需求分析1.1程序设计的任务21.2程序达到的功能21.3程序功能模块图和流程图21.4测试数据3第二部分 详细设计2.1用到的数据类型和数据结构定义42.2各个函数的基本操作和功能42.3各个函数的调用关系52.4主程序思路5第三部分 调试分析3.1遇到的问题及解决过程63.2设计过程中学到的知识73.3经验与体会7第四部分 用户手册4.1每一步骤的注释说明74.2整体思路7第五部分 测试结果5.1测试结果85.2附录-程序源码9第一部分 需求分析1.1程序设计的任务1.1.1问题描

2、述设计并模拟实现整型多维数组类型。1.1.2 基本要求设计并模拟实现多维数组类型。整型多维数组应具有以下基本功能: (1) 定义整型多维数组类型,各维的下标是任意整数开始的连续整数。 (2) 下标变量赋值,执行下标范围检查。 (3) 同类型数组赋值。 (4) 子数组赋值,例如 ,a1.n=a 2.n+1;a2.43.5=b1.32.4。 (5) 确定数组的大小。1.1.3选作内容 (1) 各维的下标是任意字符开始的连续字符。 (2) 数组初始化。 (3) 可修改数组的下标范围。1.2程序达到的功能 (1) 定义整型多维数组结构体,并定义各维的的结构体。 (2) 下标变量赋值。 (3) 同类型数

3、组赋值,不同类型赋值时检查出错误。 (4) 子数组赋值,例如 a1.n=a 2.n+1;a2.43.5=b1.32.4。 (5) 确定数组的大小。 (6) 数组初始化。 (7) 可修改数组的下标。1.3程序功能模块图和流程图图1 程序功能模块图图2. 程序流程图1.4 测试数据多维数组a:三维;下标1*22*33*5;赋值:1 2 3 4 5 6 7 8 9 10 11 12多维数组b:两维;下标1*22*3;赋值:1 2 3 4多维数组c;三维;下标2*33*44*6;赋值:2 3 4 5 6 7 8 9 10 11 12查找下标:a234,a135;替换值为原数值的复制,例如6改为66修改

4、第2维的下标,保证原来数组个数不变第二部分 详细设计2.1 用到的数据类型和数据结构定义2.1.1第几维数组的结构体定义typedef structElemType lower; /定义每维数组的下界 ElemType upper; /定义每维数组的上界int boundnum; /定义每维数组中元素的个数 Boundi; /定义第i维数组2.1.2 多维数组结构体的定义typedef structint dim; /定义多维数组的维数 Boundi boundMAXDIM; /定义第i维数组int total; /定义数组中元素的个数 int elemMAXTOTAL; /数组中每个元素的地

5、址,其中elem0为该多维数组的基址NArray; /定义多维数组2.2各个函数的基本操作及功能2.2.1 NArray CreatArray();多维数组创建并初始化函数2.2.2 int Replace(NArray &A,NArray &B);两个数组复制的函数2.2.3 void AdjustBound(NArray &A);修改下标的函数2.2.4 void FindSwap(NArray &A);查找并替换的函数2.2.5 void PrintArray(NArray A);打印输出函数2.2.6 int main();主函数图3.程序子函数主函数截图2.3 各个函数之间的调用关系

6、图4. 各个函数之间的调用关系2.4 主程序思路图5.主程序思路流程图第三部分 调试分析3.1 遇到的问题及解决过程3.1.1、在replace函数(即数组替换函数)中,当执行替换循环时,代码如下:for(i=0;iA.total;i+)B.elemi=A.elemi; /把多维数组A赋值给B cout*赋值成功*endl; return 0;把return 0;放到了for循环里了。结果只a数组中只把第一个元素赋值给了c数组里,其他的元素仍没有替换。3.1.2、在findswap函数中,给定数组下标求地址映像时遇到了困难,原因还是由二维数组类比到三维数组及多维数组出现了问题。三维数组可以想象

7、成空间的数组,又由于c+中按行存储,所以举了个例子: A223的三维数组,求A221的地址,23(2-1)+3(2-1)+1=10。公式为书上的公式: LOC(j1,j2,*,jn)=LOC(0,0,*,0)+(b2*bnj1+b3*bnj2+*+bnjn-1+jn)L。其中n维数组的映像函数。bn代表第i维数组元素的个数。可缩写成LOC(j1,j2,*,jn)=LOC(0,0,*,0)+i=0nci*ji。3.2 设计过程中学到的小知识3.2.1、当输出结果中想调用数据时,即既想有输出的原文字又有想调用的数据时。可以用 将想调用的部分给包含起来。我也是在网上搜集资料偶然发现的。具体例子就是输

8、出函数PrintArray中的输出部分。如下截图中划线的部分:3.3 经验与体会 经过这次课设我意识到虽然数据结构课程已经结束,但是数据结构的学习还远远没有结束,作为计算机专业的学生,应当学好数据结构的知识点,把专业知识打牢。同时应当动手做一些程序设计的习题,虽然刚上手的时候有点难,只要肯钻研下去,到问题解决的时候觉得自己收获还是挺大的。同时也是为了巩固自己数据结构的实习。我以后还会挑一些题做的。第四部分、 用户手册4.1每一步骤的注释说明注释说明已包含在源程序中,请详见附录中的程序代码,在此不再赘述。4.2 整体思路 我实现程序的功能的时候是把要求分成了几个功能函数,然后逐一的通过主函数调用

9、功能函数,来判别自己的功能函数是否正确,而不是从前写到后一下写完的。我觉得一个功能一个功能的实现更简单些,而且出错了容易查错。具体思路在前面都已经描述,在此不再赘述。第五部分、测试结果5.1 测试结果截图5.2 程序源码#include using namespace std;#define MAXDIM 5 /定义数组的最大维数 #define MAXNUM 10 /定义每维数组的最大个数 #define MAXTOTAL 100 /定义数组元素的最大个数typedef int ElemType;typedef structElemType lower; /定义每维数组的下界 ElemTyp

10、e upper; /定义每维数组的上界int boundnum; /定义每维数组中元素的个数 Boundi; /定义第i维数组typedef structint dim; /定义多维数组的维数 Boundi boundMAXDIM; /定义第i维数组int total; /定义数组中元素的个数 int elemMAXTOTAL; /数组中每个元素的地址,其中elem0为该多维数组的基址NArray; /定义多维数组 NArray CreatArray() /创建一个多维数组并初始化 int total=1;int n,i,j;NArray A; /定义多维数组A coutn; if(n5)co

11、ut超过数组的维数上限 请重新输入:n; A.dim=n;cout请输入每维数组的上下界:endl;for(i=1;i=A.dim;i+)cout请输入第iA.boundi-1.lower;coutA.boundi-1.upper;A.boundi-1.boundnum=A.boundi-1.upper-A.boundi-1.lower+1;total=total*A.boundi-1.boundnum; A.total=total; /统计出来数组中元素的个数for(i=0;itotal;i+)A.elemi=0;coutj;switch(j)case 1:cout请以行序输入A.total

12、个元素endl;for(i=0;iA.elemi;/输入多维数组的元素 case 0:;/不执行操作,创建一个全为0的多维数组 cout*创建多维数组成功* endl;return A; int Replace(NArray &A,NArray &B) /数组替换函数 int i;if(A.dim!=B.dim)cout*这两个数组不是同类型的*endl; /判断两个数组的维数是否相同 return 0; for(i=1;i=A.dim;i+)if(A.boundi-1.boundnum!=B.boundi-1.boundnum)cout*这两个数组不是同类型的*endl; /判断两个数组各维

13、的元素的个数是否相同 return 0; for(i=0;iA.total;i+)B.elemi=A.elemi; /把多维数组A赋值给B cout*赋值成功*endl; return 0;void AdjustBound(NArray &A) /修改数组的下标int n;coutn;coutA.boundn-1.lower;cinA.boundn-1.upper;A.boundn-1.boundnum=A.boundn-1.upper-A.boundn-1.lower+1;cout修改后的第n维元素的个数为:A.boundn-1.boundnumendl; void FindSwap(NAr

14、ray &A) /查找替换函数 int i,temptotal=1,sum=0,j;int aMAXDIM;cout请输入你所查找的元素的下标:; for(i=0;iai;for(i=0;iA.dim;i+)temptotal=ai-A.boundi.lower;/给定数组下标的求映像地址的计算公式。举个例子A223的三维数组,求A221的地址,2*3*(2-1)+3*(2-1)+1=10。公式为书上的公式 for(j=i+1;jA.dim;j+)temptotal=temptotal*A.boundj.boundnum;sum=sum+temptotal;cout数组NArray;for(i

15、=0;iA.dim;i+)coutai;cout的值为:elemsum=A.elemsum 找到了目标值endl;couti;if(i=1)cout请输入替换值j;A.elemsum=j;cout替换后的数组为:endl;for(i=0;iA.total;i+)coutA.elemi ; coutendl;void PrintArray(NArray A) /输出数组有关信息的函数 int i,j;cout这是一个A.dim维数组NArray ;for(i=1;i=A.dim;i+)coutA.boundi-1.lowerA.boundi-1.upper;cout该数组的元素的个数为:A.to

16、tal ;cout数组为: endl;for(i=0;iA.total;i+)coutA.elemi ;coutendl;int main()int m;NArray a,b,c;a=CreatArray(); /1、创建并初始化数组aPrintArray(a);b=CreatArray(); /创建并初始化数组b PrintArray(b);coutm;if(m=1)Replace(a,b); /5.1将a赋值给b 同类型的数组赋值 成功 PrintArray(b); c=CreatArray(); /创建并初始化数组c PrintArray(c);coutm;if(m=1)Replace(a,c); /5.2 将a赋值给c 不同类型的数组赋值 不成功 PrintArray(c); FindSwap(a); /4、查找和替换数组中的具体元素 FindSwap(a);AdjustBound(a); /2、修改数组a的第二维上下界 PrintArray(a);return 0;14 / 15

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服