数据结构--旋转数字方阵--课程设计报告(共7页).doc

上传人:飞****2 文档编号:29978033 上传时间:2022-08-03 格式:DOC 页数:7 大小:304KB
返回 下载 相关 举报
数据结构--旋转数字方阵--课程设计报告(共7页).doc_第1页
第1页 / 共7页
数据结构--旋转数字方阵--课程设计报告(共7页).doc_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《数据结构--旋转数字方阵--课程设计报告(共7页).doc》由会员分享,可在线阅读,更多相关《数据结构--旋转数字方阵--课程设计报告(共7页).doc(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上课程设计题目:数字旋转方阵一、 问题描述 设计一个能正确输出NN(1=N=10)数字旋转方阵(如图1.1) 图1.1 5阶旋转方阵 图1.2逐层填数,从最外层填起二、 基本要求(1) 设计数据结构存储;(2) 设计算法完成任意N(1=N=10)阶数字旋转方阵;(3) 分析时间复杂度和空间复杂度;三、 概要设计1. 数据结构的设计程序采取二维数组的存储结构进行数字旋转方阵的存储,因为数字旋转方阵也是一个平面图,采用二维数组的存储结构能更直观反映方阵。2. 算法的设计每一层的数字分作四个小组,每一组的数字个数为N-1,通过设立一个标志来判断转换方向(如图1.2)。算法结束

2、的标志有两种情况:一是N为1,则填入数字,结束;二是N=0,直接结束。以上两种分别对应奇数阶数字方阵和偶数阶数字方阵。3. 时间复杂度和空间复杂度数字旋转方阵是每进行一步填入一个数,所以时间复杂度为O(n*n);二维数组所占用的空间是在声明时所分配固定的,所以的空间复杂度为O(100)四、 详细设计 算法伪代码: 声明二维数组a1010,size为需建立的方阵阶数,初始化i,j,num为11. 若size=0,则循环结束;2. 若size=1,则使aij=num,循环结束;3. 填写区域A,重复操作size-1次aij=num;i+;num+;4. 填写区域B,重复操作size-1次aij=n

3、um;j+;num+;5. 填写区域C,重复操作size-1次aij=num;i-;num+;6. 填写区域D,重复操作size-1次aij=num;j-;num+;7. i+;j+;size=size-2;返回第1步;8. 循环结束后,输出数组a; 这是填写逆时针数字方阵的算法,填写顺时针方阵只需把顺序ABCD改为BADC即可 为了方便程序的使用,为其增加了一个菜单,使用的是switch-case作为选择结构,while作循环判断程序详细的流程图如右图所示:五、 运行与调试1. 菜单界面 如右图所示:2. 测试数据和结果5阶的数字旋转方阵:六、 总结和心得 在老师的教导和书本的指引下,了解程

4、序的运行方法,掌握其核心要领,一步步进行思考、编写代码。在填写方阵部分,因为size不等于1或0的情况下填数的次数必然大于一,所以选用do-while这种先执行后判断的判断语句。通过自己的思考和努力编写出这个小程序,使我对数据结构的运用有更好的认识,掌握不同的结构,灵活运用。七、 程序代码 #include using namespace std;/逆时针数字旋转方阵实现void NFangZhen(int n)int size=n;int flag=0; /设置转换方向标志int a1010; /设置二维数组int i=0,j=0,num=1;while(1)if(size=0)break;

5、else if(size=1)aij=num;break;elsedo /区域Aaij=num;i+;num+;flag+;while(flagsize-1);flag=0;do /区域Baij=num;j+;num+;flag+;while(flagsize-1);flag=0;do /区域Caij=num;i-;num+;flag+;while(flagsize-1);flag=0;do /区域Daij=num;j-;num+;flag+;while(flagsize-1);flag=0;/内圈循环i+;j+;size=size-2;for(i=0;in;i+)for(j=0;jn;j+)

6、cout.width(4);coutaij ;coutendl;coutendl;/顺时针数字旋转方阵实现void SFangZhen(int n)int size=n;int flag=0; /设置转换方向标志int a1010; /设置二维数组int i=0,j=0,num=1;while(1)if(size=0)break;else if(size=1)aij=num;break;elsedo /区域Baij=num;j+;num+;flag+;while(flagsize-1);flag=0;do /区域Aaij=num;i+;num+;flag+;while(flagsize-1);

7、flag=0;do /区域Daij=num;j-;num+;flag+;while(flagsize-1);flag=0;do /区域Caij=num;i-;num+;flag+;while(flagsize-1);flag=0;/内圈循环i+;j+;size=size-2;for(i=0;in;i+)for(j=0;jn;j+)cout.width(4);coutaij ;coutendl;coutendl;int main()int n;int choice;int conitue=1;cout*欢迎使用数字旋转方阵系统*endl; coutendl;while(conitue=1)cout1-建立N阶数字旋转方阵endl;cout0-退出系统endl;coutchoice;switch(choice)case 0:conitue=0;break;case 1:coutn;coutendl;cout逆时针数字旋转方阵:endl;NFangZhen(n);coutendl;cout顺时针数字旋转方阵:endl;SFangZhen(n);return 0;专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com