数据结构课程设计 大数相乘 马的遍历.doc

上传人:飞****9 文档编号:133716470 上传时间:2020-05-30 格式:DOC 页数:13 大小:91KB
返回 下载 相关 举报
数据结构课程设计 大数相乘 马的遍历.doc_第1页
第1页 / 共13页
数据结构课程设计 大数相乘 马的遍历.doc_第2页
第2页 / 共13页
数据结构课程设计 大数相乘 马的遍历.doc_第3页
第3页 / 共13页
数据结构课程设计 大数相乘 马的遍历.doc_第4页
第4页 / 共13页
数据结构课程设计 大数相乘 马的遍历.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《数据结构课程设计 大数相乘 马的遍历.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计 大数相乘 马的遍历.doc(13页珍藏版)》请在金锄头文库上搜索。

1、2010-2011第二学期数据结构课程设计题目1: 大数相乘 题目2: 马的遍历 学 院: 计算机学院 姓 名: 陈 浩 学 号: 099074140 班 级: 软件091班 评阅教师: 汤亚玲 2011年 6月9日安徽工业大学一、目的加深对数据结构课程所学知识的理解,进一步巩固C语言语法规则。学会编制结构清晰、风格良好、数据结构适当的语言程序,从而具备解决综合性实际问题的能力。 题目一:大数相乘目录:系统功能分析3基本要求.3功能需求.3开发工具 3程序说明.3大数相乘总括 4源程序4测试与结论 5创新及难点.6程序设计总结心得体会62011-6-9正文内容如下:一、 系统功能分析功能分析:

2、大数相乘可以实现对两个任意大的正数相乘。用户可以通过本程序对无法实现的两数进行相乘,其意在方便用户,方便群众。二、1编写基本目的要求:分析程序开发过程的具体问题,构架程序的功能,同时使该程序的使用者对本程序有一定的了解,为实现功能的编码做好基础,对数据结构有一个更深入的了解。1、背景: a.开发的软件系统的名称:大数相乘。 b.本项目的任务提出者 汤亚玲;开发者:陈浩。2、 功能需求:根据大数相乘的实际需求,分析系统应该设计的功能,其中应该包括对于超过整型大数的输入,存储,运算,输出。实现乘法的一般功能。3、数据需求:运行环境及知识要求:运行环境要求:windows xp/visita/7知识

3、要求: 熟悉vc+6.0编译系统 熟悉AISCC 熟练掌握字符与数字之间的转换4分析及实现简介: 由于大数相乘问题相对简单,我只写了一个主函数实现了其功能。大数用字符数组存储,用AISCC数字之间转换进行运算。二、程序的说明: 首先定义两个字符数组存储两个大数,在定义两个数组,一个用与保存结果,另一个为辅助只用,具体的思想是a b 两个大数 用b的个位一次乘a的每一位结果保存在辅助数组temp中,在进位取余得到正常的10进制数,用sum数组的temp的求和,用flag标记,以便temp的错位相加。用while可以控制大数运行的次数。三、模块分析及源程序:/* 大数相乘问题 */ #includ

4、e#include#define MAX 10000int main() int n,i,j,t,s; char a100,b100,temp105=0,sumMAX=0; /*定义两个字符数组a,b用来存储大数 temp为辅助*/ int lena,lenb,flag,m=0;printf(输入运算的次数n:n); scanf(%d,&n); /*输入运算的次数n*/ while(n-) m+; flag=0; /*设置标志flag*/ printf(输入将要运算的两数a,b;用回车键相分隔n); scanf(%s%s,a,b); /*输入两要相乘的大数用回车键相分隔*/ lena=strl

5、en(a); lenb=strlen(b); /*求两数的长度*/ for(j=lenb-1;j=0;j-) for(t=lena,i=lena-1;i=0;i-,t-) tempt=(ai-48)*(bj-48); /*依次从低位开始求的b的某一位与a的乘积*/ for(t=lena;t=1;t-) if(tempt9) tempt-1+=tempt/10; tempt%=10; /* 进位取余*/ for(s=lena+lenb-flag,t=lena;t=0;t-,s-) /*标志flag确保错位相加*/ sums+=tempt; for(t=lena;t=0;t-) tempt=0;

6、/*辅助数组复位志零*/ for(s=lena+lenb;s=1;s-) if(sums9) sums-1+=sums/10; sums%=10; /* s 进位取余*/ flag+; sumlena+lenb+1=0; for(s=0;s=lena+lenb;s+) sums=sums+48; /* 数值还原,48对应0字符*/ for(s=0;slena+lenb;s+) if(sum0=48) for(t=0;t=0;s-) /*sum字符数组复位志零等待下一轮while循环*/ sums=0; return 0; 测试与结论:进过我的反复测试,只要是两个正整数相乘结果正确,程序稳定性好

7、,可以运算任意大是数。运行结果抓图如:”四、创新及难点:1、创新:只有一个主函数,while循环实现大数相乘,使得程序简短高效。使用temp辅助字符数组,降低了运算是难度,程序清晰易懂。系统在操作提示上较多,用户与系统间的信息交互比较方便,便于操作。2、难点:要用一个大数的各个位去乘一个大数并把的到的数反向存储且使得数字每一位不大于9。因为相乘每一位权重不一样,要错位相加。得数求余,变换。四、心得体会:通过为一学期的数据结构课程设计实验课使我了解到了一个程序开发的过程,虽然规模不大,但为我以后的编程学习打下了基础。在编程的过程中,我体会到了学习编程的辛苦,为了一个算法的实现而思考,为了一个小小

8、的编译错误而花时间去寻找,这需要很大的毅力和耐心,而且要有良好的思维,这才使得我完成这个任务,也使我感到一分喜悦,毕竟自己完成了一个有模有样的程序。于此,我也发现自己的一些不足,良好的编程习惯的养成,坚定的毅力和耐心仍是我要加强的,同别人的交流也是必须的,这样才能不断使我进步。题目二:马的遍历目录:流程图:8系统功能分析9基本要求9程序说明.9创建标志矩阵函数模块9巡游子函数模块.9赋值子函数模块.11主程序函数模块11测试运行与结论 12程序设计总结心得体会13流程图开始输入入口的棋盘大小横坐标在18之间输入入口点纵坐标纵坐标在18之间显示马的遍历路径结束 系统功能分析:问题描述:设计一个国际象棋上的马的遍历棋盘的演示过程的程序。基本要求:将马任意放在国际棋盘的8x8的棋盘board88的某个方格

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

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号