数据结构课程设计报告 题目:长整数四则运算 一、需求分析 1.问题描述: 由于工程上有时候需要对很大的数进行计算,但是计算机本身提供的数据类型无法保存几百位甚至几千位的数字,所以需要设计专门的算法对数据进行相应的计算。此程序的设计任务是:设计一个程序能够实现长整数运算的程序,而且能够对一些错误异常进行辨别调整,计算出正确的结果。程序输入格式是字符串,保存时需要用双向循环链表将字符串每四位保存在循环链表中的一个节点中,然后再计算后运行出结果。 2.基本功能 功能一:建立双向循环链表,计算链表个数,对链表的数据进行修改,能在链表中插入结点。 功能二:将字符串转换成相应的数字存储在双向循环链表中 功能三:对存入双向循环链表的长整数进行相加,相减,相除。 3.输入输出 程序输入以字符串的形式输入,数据的类型是字符串,包含元素的范围是数字,逗号,负号。 输入时用字符串输入,输出时以一链表结点输出,而且每个结点表示四位。 二、概要设计 1.设计思路: 由于计算机无法完成位数很大的数字计算,设计思路就是将很长的数据进行分割,一部分一部分的用计算机固有数据类型进行计算。将各部分的结果整合起来。由于计算机固有的整数类型存数的对大整数是2^15-1 ,所以为了方便,且符合中国人 对长整数的表示习 惯 ,建立一个双向循环链表,每个结点存储四位数字,以万 为进制 。从 最 低 位开 始 加法,超 过 一万 向上进位,所以每次 加法应该 是对应两 个结点和 进位数相加,进位值 初 始 为0; 减法也 是一个结点计算一次 ,每次 计算应该 是第 一个链表对应的结点值 减去 第 二个结点的值 和 借 位值的和 ,借 位值 初 始 值 为0; 除法的计算可 以借 助 减法,被 减数被 减数减一次 则最 终 结果加一;直 至被 减数比 减数小 。 2.数据结构设计: 因 为计算的是一个连 续 的数字,需要桉 顺 序一次 计算,所以采 用的数据结构的逻 辑 结构是线 性 表。因 为要求每一个结点只 存储四位数字,为了将数字连 接 起来,采 用的数据结构的存储结构是链式。 数 据 结 构 课 程 设 计 报 告 长 整 数 运 算 --第 1页数 据 结 构 课 程 设 计 报 告 长 整 数 运 算 --第 1页1.双向循环链表的抽象数据类型定义为: ADT Link { 数据对象:D={ai | ai∈CharSet ,i=1 ,2,……,n ,n...