数据结构课程设计报告-长整数运算.doc

数据结构课程设计报告-长整数运算.doc

ID:52199580

大小:177.00 KB

页数:13页

时间:2020-03-24

数据结构课程设计报告-长整数运算.doc_第1页
数据结构课程设计报告-长整数运算.doc_第2页
数据结构课程设计报告-长整数运算.doc_第3页
数据结构课程设计报告-长整数运算.doc_第4页
数据结构课程设计报告-长整数运算.doc_第5页
资源描述:

《数据结构课程设计报告-长整数运算.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数据结构课程设计报告题目:长整数四则运算一、需求分析1.问题描述:  由于工程上有时候需要对很大的数进行计算,但是计算机本身提供的数据类型无法保存几百位甚至几千位的数字,所以需要设计专门的算法对数据进行相应的计算。此程序的设计任务是:设计一个程序能够实现长整数运算的程序,而且能够对一些错误异常进行辨别调整,计算出正确的结果。程序输入格式是字符串,保存时需要用双向循环链表将字符串每四位保存在循环链表中的一个节点中,然后再计算后运行出结果。2.基本功能功能一:建立双向循环链表,计算链表个数,对链表的数据进行修改,能在链表

2、中插入结点。功能二:将字符串转换成相应的数字存储在双向循环链表中功能三:对存入双向循环链表的长整数进行相加,相减,相除。3.输入输出程序输入以字符串的形式输入,数据的类型是字符串,包含元素的范围是数字,逗号,负号。输入时用字符串输入,输出时以一链表结点输出,而且每个结点表示四位。二、概要设计1.设计思路:由于计算机无法完成位数很大的数字计算,设计思路就是将很长的数据进行分割,一部分一部分的用计算机固有数据类型进行计算。将各部分的结果整合起来。由于计算机固有的整数类型存数的对大整数是2^15-1,所以为了方便,且符合中

3、国人对长整数的表示习惯,建立一个双向循环链表,每个结点存储四位数字,以万为进制。从最低位开始加法,超过一万向上进位,所以每次加法应该是对应两个结点和进位数相加,进位值初始为0;减法也是一个结点计算一次,每次计算应该是第一个链表对应的结点值减去第二个结点的值和借位值的和,借位值初始值为0;除法的计算可以借助减法,被减数被减数减一次则最终结果加一;直至被减数比减数小。2.数据结构设计:因为计算的是一个连续的数字,需要桉顺序一次计算,所以采用的数据结构的逻辑结构是线性表。因为要求每一个结点只存储四位数字,为了将数字连接起来

4、,采用的数据结构的存储结构是链式。1.双向循环链表的抽象数据类型定义为:ADTLink{数据对象:D={ai

5、ai∈CharSet,i=1,2,……,n,n≥0}数据关系;R={

6、ai-1,ai∈D,i=2,……,n}}基本操作:InitLinkList(&L,a)操作结果:构造一个双向循环链表L,用a判断是正数还是负数DestroyList(&L)初始条件:双向循环两已经存在操作结果:销毁有序表LInsert(&L,a)初始条件:双向循环链表已经存在操作结果:在循环链表的末尾插入一个结点,且此结点

7、的数据值为aHeadInsert(&L,a)初始条件:双向循环链表已经存在操作结果:在循环链表的头结点后插入一个结点,且此结点的数据值为aCountNode(&L)初始条件:双向循环链表存在操作结果:计算出链表中结点的个数,并返回个数Compare(&L1,&L2)初始条件:L1和L2存在操作结果:比较两个双向循环链表的大小,用返回值1表示L1大于L2,返回值-1标志L1小于L2,返回值0标志L1和L2相等ToNum(*s,i,&e)初始条件:s为字符串中指向某个字符的指针操作结果:将s的前i个字符转换为数字,存入e

8、中CreatNum(&L,&s)初始条件:s为某个字符串,双向循环链表L存在操作结果:将字符串s转换成数字存入到循环链表L中Add(L1,L2,op)初始条件:双向循环链表L1和L2存在,op为结果的标识符操作结果:两个链表相加,求出结果。Sub(L1,L2,op)初始条件:双向循环链表L1和L2存在操作结果:L1减去L2,求出结果,op为结果的标识符EraseZero(Link&L)初始条件:双向循环链表L存在操作结果:删去L链表头结点后,第一个数据不为零结点前的所有数据为零的结点。如果结点数据都为零,则保存一个结

9、点。print(L)初始条件:双向循环链表L存在操作结果:从L头结点开始顺此打印每个结点中的数据3.软件结构设计:本程序包含四个模块:1.主程序模块Intmain(){接受命令While(“命令”!=“退出”){输入字符串建立双向循环链表将字符串转换为要求的格式存入链表的每个结点对链表中数据进行即兴操作数理再次接受命令}}2.双向链表操作模块------实现结点的插入、删除、修改3.字符串转换存储模块----实现将字符串转换为数字按格式存储在链表中4.数据计算模块—--------对存储在链表中的数据进行计算,得到最

10、终期望的结果各个模块调用的关系如下:主程序模块数据运算模块双向链表操作模块字符串转换模块主程序模块中的函数原型:voidInterface()-------------------à操作界面函数StatusCreatNum(Link&L,char*s)----à创建数字链表函数LinkCompute(Link&L1,Link&L2,charOp

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

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

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