欢迎来到毕设资料网! | 帮助中心 毕设资料交流与分享平台
毕设资料网
全部分类
  • 毕业设计>
  • 毕业论文>
  • 外文翻译>
  • 课程设计>
  • 实习报告>
  • 相关资料>
  • ImageVerifierCode 换一换
    首页 毕设资料网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计--大整数的运算

    • 资源ID:1398708       资源大小:560KB        全文页数:21页
    • 资源格式: DOC        下载积分:100金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: QQ登录
    下载资源需要100金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

    数据结构课程设计--大整数的运算

    1、 目目 录录 一、 题目概述(内容及要求) . 2 二、功能分析 2 三、设计. 3 四、运行与测试 4 五、总结. 21 六、参考文献 21 一、 题目概述(内容及要求) 内容: 请设计一个有效的算法,可以进行两个 n 位大整数的四则运算。 长整数长度在二十位以上。 实现两长整数的加、减、乘、除操作。 要求: 1.设计数据结构,存储结构; 2.在 c 兼容环境完成上述题目的代码编写与调试; 3.程序运行界面交互性好; 4.软件运行,给出测试数据。 二、功能分析 1. 设计一个实现长整数进行四则运算的程序,长整数长度在二十位以上,有正 负数的区别。 2. 输入每四位一组,组间用逗号隔开,长整数

    2、位数没有上限,以分号结束长整 型数据的输入。用 lnode 结点数据结构存储数据。每一个数据有一个头结点, 它的 data 域用来放数据的正负数。其余结点的数都为正整数。 3. 程序包含数据的输入,判断,运算,输出和主函数。 4. 具体程序执行的命令包括: a) 输入函数:inputa();inputb();/的输入并建立双向循环链表 b) 判断函数:compare();/比较数据的大小 c) 运算函数:unsigndeadd();/无符号的加法 a) unsigndesub();/无符号的减法 b) add();sub();mul();div();/加减乘除四则运算 d) 输出函数:divp

    3、ut();/除法结果的输出函数 a) putoutc();/其余结果的输出函数 e) 主函数:main(); 5. 系统功能结构框图 主模块 输入模块 减 法 模 块 加 法 模 块 乘 法 模 块 除 法 模 块 输出模块 图图 2.2.1 1 系统功能结构框图系统功能结构框图 三、设计 首先要考虑的是如何表示长整型数。可以 4 位数形成 1 组,而一个长整型数 可能会有很多组这种 4 位数,而每节之间是有先后顺序的,因此我们可以考虑用 数组和链表来存储数据。(1)再考虑到每个长整型数的长度在输入之间是无法预 知的,因此使用链表在存储空间的分配上更方便一些。(2)在输入数据时总是从 高位到低

    4、位地存储, 而计算时总是从低位向高位运算, 因此采用双向链表更方便, 而为了从头结点方便地转到尾结点可以采用循环链表。综上考虑,应以双向循环 链表表示长整数,每个结点含一个整型变量,且仅绝对值不超过 9999 的整数, 整个链表用十进制数表示。(3)对于每一个长整型数可以设置一个头结点头结点,其中 的数据域用来表示该长整型数的正负号及组数, 该值的符号则表示该长整型数的 符号,该数的绝对值表示该长整型数包含的 4 位数的组数。第一个存储 4 位数据 组的结点称为首结点首结点,而最后一个 4 位数据组结点称为尾结点尾结点。 为此需要结构数据类型:双向循环链表: typedef struct ln

    5、ode/结点结构体 int data; struct lnode *next; struct lnode *prior; lnode,*lnodelist 主要的模块可分为: 输入函数:inputa();inputb();/的输入并建立双向循环链表 判断函数:compare();/比较两个数据的大小,进行相应的的计算。 运算函数:add();sub();mul();div();/运算 输出函数:divput();putoutc();/除法的输出及其他运算的输出。 主函数:main(); 四、运行与测试 图图 4.1 长整数加法运行结果图长整数加法运行结果图 实现以上加法操作的程序如下: int

    6、 add(lnodelist e=ahead-data*bhead-data; coutdata; coutdata; coutnext; p=chead=new lnode;/头结点 p-data=0; p-next=p; p-prior=p; pc=cnow=chead; while(pb!=bhead) carry=0; while(pa!=ahead) multi=pa-data*pb-data+carry; carry = multi/10000; if(pc-prior=chead) p=new lnode; p-data=multi%10000; p-next=chead-next; chead-next-prior=p; chead-next=p; p-prior=chead; else multi=pc-prior-data+multi%10000; pc-prior-data=multi%10000; carry=carry+multi/10000; pc=pc-prior; pa=p


    注意事项

    本文(数据结构课程设计--大整数的运算)为本站会员(毕****文)主动上传,毕设资料网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请联系网站客服QQ:540560583,我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们
    本站所有资料均属于原创者所有,仅提供参考和学习交流之用,请勿用做其他用途,转载必究!如有侵犯您的权利请联系本站,一经查实我们会立即删除相关内容!
    copyright@ 2008-2025 毕设资料网所有
    联系QQ:540560583