大整数计算实验报告.doc

大整数计算实验报告.doc

ID:56730212

大小:138.00 KB

页数:17页

时间:2020-07-06

大整数计算实验报告.doc_第1页
大整数计算实验报告.doc_第2页
大整数计算实验报告.doc_第3页
大整数计算实验报告.doc_第4页
大整数计算实验报告.doc_第5页
资源描述:

《大整数计算实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.经济学院实验报告学院:信息工程学院..专业:计算机科学技术计算机人论坛.jsjer.1.需求分析1.1开发背景在现实生活中不可避免地我们会遇到一些超大整数之间的运算,比如要计算马云的资产,以及国有银行的转账收入支出等一些数的存储等等类似的问题,而由于计算机整形数的最小值和最大值围仅为-32768到32767,所以关于大整数的实验即呼之欲出,本实验就是针对数值很大、精度很高的大整数进行的加法减法以及乘法的计算。1.2数据需求指针:L1,L2:分别为指向这两条存储要进行运算的链表头结点的指针;L3:指向乘法的结果链表;L4:在运算乘法的时候做中间量使用。prior:双向链表的头指针;next:双

2、向链表的尾指针。data:整形数,链表所存的数据。1.3功能需求对一个进行运算的软件,加法和减法是最基本的运算,本实验又额外增加了大整数的乘法。1.4测试数据第一个数:9,568,974,512;第二个数:8,648,761,512;2.概要设计2.1功能模块图由需求分析可画出如下功能模块图。大整数运算乘法减法加法图2-1功能模块图2.2各功能子程序定义..1.创建链表:Statuscreat(DuLinkList&L,charstr[30]);2.输出链表中结点的数据:Statusoutput(DuLinkListL);3.加法:DulNode*Add(DuLinkListL1,DuLink

3、ListL2);4.减法:DulNode*Sub(DuLinkListL1,DuLinkListL2);5.乘法:DulNode*Mul(DuLinkListL1,DuLinkListL2);计算机人论坛.jsjer.2.3主界面截图图2-3程序主界面1.详细设计3.1数据结构设计此款软件是基于线性表双向链表完成的,在每个分过程中都充分利用了链表指针灵活又不太易于掌控的特性,但若是全面理解指针以及链表的特点,也是很容易设计此款软件的。在大整数加减乘法软件中主要有以下几种数据(1)Status,ElemType都是宏定义的整形量;(2)DulNode是结构体,包含三个域,data,prior,n

4、ext,分别是整形数,左指针,右指针;3.2模块详细设计由于加法和减法的操作易于实现,在此并不一一赘述。乘法的实现:(1)构思:本函数又另设一个指针L3和L4,L3用于存储每一层的乘法结果,L4则每次都加上L3链表,直至结束,最后L4指向的链表即为乘法的结果。(2)一级算法: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

5、->next为NULLW指向L3链尾;把L3加到L4上;}当p2->prior为空返回L4;(1)二级求精:L3->data=上一位的进位加上L1结点加上L2结点;计算Prov;新建L3->prior;计算L3结点数据;P1前移计算机人论坛.jsjer.3.3测试与运行本程序是用C语言在VisualC++环境编译所完成,经部分数据验证无误,现将测试与运行结果展示如下:(1)加法:..图3-3-1加法(1)减法和乘法:图3-3-2减法和乘法(2)输入:..图3-3-3输入计算机人论坛.jsjer.1.总结与展望《数据结构》果然不是闹着玩的,要想学好,必须得下苦功夫!!!2.参考文献[1].严蔚敏

6、.数据结构[M].:清华大学,2013。计算机人论坛.jsjer.3.源代码清单#include#include#include"max_tou.h"Statusinput(LinkList&p){LinkListhead,s;intv;inttamp;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-

7、>data=v;/*赋值*/p->next=s;/*连接*/s->prior=p;p=s;}elsetamp=1;/*为负数时结束*/}head=head->next;/*去掉头节点*/head->prior=NULL;/*让双向链表前后都为空*/p->next=NULL;returnOK;}Statusoutput(LinkList&p,LinkList&head)/*输出*/{LinkList

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。