ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:287.23KB ,
资源ID:5649292      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(大数处理.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

大数处理.docx

1、大数处理沈阳航空工业学院课 程 设 计 大数处理班级 / 学号 200604021090 学 生 姓 名 刘 玮 航 指 导 教 师 赵 晨 光 沈阳航空工业学院课 程 设 计 任 务 书课 程 名 称 软件技术基础课程设计 院(系) 电子信息工程学院 专业 电子工程 班级 6402103 学号 200604021090 姓名 刘玮航 课程设计题目 大数处理 课程设计时间: 2008 年 7 月 14 日至 2008 年 7 月 27 日课程设计的内容及要求:由于计算机所能表示和处理的数的有效数字位数有限,因此在进行大数运算时会产生溢出要求用C语言编写程序实现大整数的四则运算(加、减、乘、除)

2、。 提示:大数计算的因数和结果精度一般是少则数十位,多则几万位。在C语言中定义的类型中精度最多只有二十多位,因而我们采取用链表存贮的方式来存放大数。在计算中会用到从高位开始计算,和从低位开始计算数值的两种情况。所以我们将链表定义为双向链表,其中为一个单元来存贮数据,一个指针指向前方的数据,另一个指向后的数据。从而完成大数运算指导教师 2008 年 7 月 11 日负责教师 年 月 日学生签字 年 月 日一、 题目分析 1、在本设计题目中要求是大数的四则运算,但由于计算机所能表示和处理的数的有效数字位数有限,因此在进行大数运算时会产生溢出要求用C语言编写程序实现大整数的四则运算(加、减、乘、除)

3、。我们知道整型数只能存储16位的数,浮点型也就只能32位的数,对于题目要求的几百位根本不能实现,所以只有用链表或数组两种方法来实现大数的四则运算。 由于链表的方法对我来说实在是比较复杂,所以我选择了用数组的方法来实现设计题目的要求。只要将从1到9的数均放在一个字符串中,只要减去48即可得到数字结果(依据ASCII的值)。 2、程序主要模块:(1)大数加法模块;(2)大数减法模块;(3)大数乘法模块;(4)除法模块。 3、子程序:(1)读入函数;(2)比较函数;(3)大数减法子函数(4)大数乘法子函数。二、设计过程(设计流程图)1、本设计程序主要是由大数加、减、乘、除运算模块及各个子程序组成,经

4、过对变量及数组的定义,分别调用加法函数add、减法函数sub、乘法函数mul,除法函数divid,进行大数的四则运算。2、设计流程图(1)输入函数输入字符并统计字符串长度,将字符串的每个字符减去48即得到了哈有19的数,随后按顺序存放到数组a中,若输入的字符串不是19,则输出“输入出错”,程序退出。图1 输入函数的流程图(2)大数加法运算 加法函数是先比较数组a与数组b的长短,将长的数组字长存放到max_len 中。然后从低位算起,把对应的位相加,之后加上前一位的进位。判断最后一位是否还要向前进位,经过循环实现加法运算。图2 加法函数流程图(3)比较函数 判断数组a、b的长度,当a数组长返回1

5、,当b数组长返回0;当数组a、b相等时,利用for循环依次比较存放在数组中的值,则根据不同的情况返回不同的值。图3 比较函数流程图(4)大数减法子函数 此函数默认数组ab,过for循环语句,从低位到高位依次相减,并将得到的结果存放到数组c中,同时在相减过程中要充分考虑错位相减操作。图4 大数减法子程序流程图(5)大数减法先通过调用大数减法子程序比较两个数组aMAX和bMAX的长短,记下返回的数值k。当k等于2时两数组相等,直接输出减法结果0;当k等于1时,调用函数subABigerB(a,b,c),得到加法结果;当k等于0时,数组a小于数组b,调用函数subABigerB(b,a,c),得到减

6、法结果。图6 大数减法流程图(6)数组乘法子函数 此函数通过for循环语句,依次将m与数组a中的每一位相乘。如果所得的结果大于 10进行进位操作,并把所得的结果存放到数组c中。图6 数组乘法子函数流程图(7)大数乘法 此函数先调用数组乘法子函数,利用for循环把一个数组的第一位乘以另一个数组中的每一位,把第二位乘得的结果向前移一位,把第三位乘出的结果向前移两位,依次类推。最后将得到的所有结果通过调用的加法函数累加起来,最终得到运算结果。图7 大数乘法流程图(8)大数除法 此函数先调用大数减法子函数比较数组a与数组b的大小,并将比较的结果放入k中。当k等于2时,直接输出商1,余数0;当k等于1时,将被除数减去除数,若余数大于0时一直循环,利用大数加法函数累加循环次数,最后输出数组c,即为商的结果。当k等于0时,直接输出商0,余数数组a。图8 大数除法函数流程图(9)主函数 通过定义清零后,分别输入数组a与数组b的值,之后分别进行大数的加、减、乘、除四则运算。 图9 数函数流程图+三、调试过程及实验结果

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1