大整数计算实验报告..docxVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大整数计算实验报告.

石家庄经济学院实 验 报 告学 院: 信息工程学院专 业: 计算机科学技术计算机人论坛需求分析开发背景在现实生活中不可避免地我们会遇到一些超大整数之间的运算,比如要计算马云的资产,以及国有银行的转账收入支出等一些数的存储等等类似的问题,而由于计算机整形数的最小值和最大值范围仅为-32768到32767,所以关于大整数的实验即呼之欲出,本实验就是针对数值很大、精度很高的大整数进行的加法减法以及乘法的计算。1.2数据需求指针:L1,L2:分别为指向这两条存储要进行运算的链表头结点的指针;L3:指向乘法的结果链表;L4:在运算乘法的时候做中间量使用。prior:双向链表的头指针;next:双向链表的尾指针。data:整形数,链表所存的数据。1.3功能需求对一个进行运算的软件,加法和减法是最基本的运算,本实验又额外增加了大整数的乘法。1.4测试数据第一个数:9,568,974,512;第二个数:8,648,761,512;概要设计2.1功能模块图由需求分析可画出如下功能模块图。图2-1 功能模块图2.2各功能子程序定义创建链表:Status creat(DuLinkList L,char str[30]);输出链表中结点内的数据:Status output(DuLinkList L);3.加法:DulNode *Add(DuLinkList L1,DuLinkList L2);减法:DulNode *Sub(DuLinkList L1,DuLinkList L2);5.乘法:DulNode *Mul(DuLinkList L1,DuLinkList L2);计算机人论坛2.3主界面截图图2-3 程序主界面详细设计3.1数据结构设计此款软件是基于线性表双向链表完成的,在每个分过程中都充分利用了链表指针灵活又不太易于掌控的特性,但若是全面理解指针以及链表的特点,也是很容易设计此款软件的。在大整数加减乘法软件中主要有以下几种数据 Status, ElemType都是宏定义的整形量; DulNode是结构体,包含三个域,data,prior,next,分别是整形数,左指针,右指针;3.2模块详细设计由于加法和减法的操作易于实现,在此并不一一赘述。乘法的实现:构思:本函数又另设一个指针L3和L4,L3用于存储每一层的乘法结果,L4则每次都加上L3链表,直至结束,最后L4指向的链表即为乘法的结果。一级算法:P1和p2分别指向L1和L2结点的下一个结点遍历L1和L2,分别计算两链表的长度若L2长于L1,则分别交换L1和L2,p1和p2。新建结点L3和L4,p3和q分别指向L3指向的结点。Do{计算L3链表}为L3加上头结点;把L3赋给L4;P1重新置于L1尾部,p2前移一位;Do{ 重新做一条L3链;Do{ 计算L3链}当p1-next为NULLW指向L3链尾;把L3加到L4上;}当p2-prior为空返回L4;二级求精:L3-data = 上一位的进位加上L1结点加上L2结点;计算Prov;新建L3-prior; 计算L3结点数据;P1前移计算机人论坛3.3测试与运行本程序是用C语言在VisualC++环境编译所完成,经部分数据验证无误,现将测试与运行结果展示如下:加法:图3-3-1 加法减法和乘法:图3-3-2 减法和乘法输入:图3-3-3 输入计算机人论坛总结与展望《数据结构》果然不是闹着玩的,要想学好,必须得下苦功夫!!! 参考文献严蔚敏.数据结构[M].北京:清华大学出版社,2013。计算机人论坛 源代码清单#includestdio.h#includestdlib.h#includemax_tou.hStatus input(LinkList p){ LinkList head,s; int v; int tamp; tamp=0; head=(LinkList)malloc(sizeof(LNode)); p=head; while(tamp==0) /*创建n个元素的双向链表*/ { scanf(%d,v); /*束三个三个输入*/if (v=0){s=(LinkList)malloc(sizeof(LNode));s-data=v; /*赋值*/p-next=s; /*连接*/ s-prior=p;p=s;}elsetamp=1; /*为负数时结束*/ } head=head-next; /*去掉头节点*/ head-prior=NULL;

文档评论(0)

jiulama + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档