欢迎来到天天文库
浏览记录
ID:47549283
大小:174.56 KB
页数:12页
时间:2020-01-14
《长整数的加法运算-数据结构与算法课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、题目:长整数的加法运算学院:计算机科学与工程学院专业:信息安全姓名:农锦文学号:1200360220指导教师:张瑞霞2014年10月18日1212目录引言41、系统概述42、系统分析52.1需求分析52.2系统功能52.3开发环境53、详细设计53.1功能结构框图63.2软件设计63.2.1定义链表与接收数据输入63.2.2长整数的加法运算83.2.3显示长整数相加结果104、所遇到的问题和分析解决105、系统特色及关键技术116、结论11参考文献1212引言随着计算机技术的发展,人们利用计算机开发了许许多多方便的,实用的应用软件,在信息化的现代社会
2、里,人们依赖着很多的应用软件,这些软件在推进社会发展的同时,也丰富了人们的生活,然而,在开发过程中,由于计算机系统的局限性,在需要某些功能时,总会遇到困难。例如在开发某些工程项目时,有时需要对很大的数进行计算。但是计算机本身无法计算某些较大的数,所以我们有必要设计专门的算法对一些较大的数进行相应的计算,通过简化运算之后,对其他程序功能的编写能起到良好的促进作用,大大的减轻了程序员的负担。此次设计的程序将用于长整数的加法运算,程序运行时,将提示用户输入两个长整数,然后将两个长整数相加的结果输出。1、系统概述在该长整数加法运算系统中,我将定义双向循环链表
3、来表示长整数,按照中国对长整数的表示方法,如199999999表示为1,9999,9999。双向循环链表数据域存储的是长整数的每4位。双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。通过造双向循环链表,可以对长整数进行方便的存储,在对长整数进行数学运算时,也能通过方便的操作链表,从而对长整数进行需要的计算。在实现该长整数加法运算的系统中,我将会编程实现以下功能。定义一个函数,用于接收长整数的输入,同时将长整数存储到双向循环链表
4、当中,为了检验是否按预期要求进行存储,我还会编写一个函数,将双向循环链表中数据域的值打印出来。定义一个长整数相加的函数,实现两个长整数加法运算的功能,实际上是对双向循环链表进行操作,这里包括结点空间的申请,插入结点,修改指针所保存的值。当两个长整数完成加法运算后,我会定义一个显示结果的函数,将它们相加的结果打印出来。一些较大的整数,在单纯的用计算机进行相加运算的时候可能会产生溢出现象,但该系统每次只对4位整数进行运算,避免了数据过大在计算时产生的溢出问题。122、系统分析2.1需求分析设计一个计算两个长整数加法的程序,要求长整数的位数不能规定上限。根
5、据中国对于长整数的表示习惯,长整数每4位用逗号隔开。故可以利用双向循环链表对长整数进行存储,每个结点可以存储长整数的4位,即每个结点的数据域最大值为9999,头结点的数据域的值的正负号可以表示长整数的正负,其绝对值可以表示结点数目。为了运算与编程的方便,在相加过程中不要破坏两个操作数链表。2.2系统功能(1)建立双向循环链表,用于保存长整数及长整数的运算。(2)接收长整数的输入,长整数的每4位都保存到链表的结点中。(3)对存入双向链表的长整数进行加法运算,在进行运算时,能很好的处理进位,借位问题以及对长整数的正负能做出判断,然后进行相应的运算处理,保
6、证运算结果能与预期结果一致。(4)正确的输出运算后的结果,这里的运算结果也是长整数,故对数的存储也是采用双向循环链表,输出结果即是按长整数的显示方式打印出双向循环链表数据域的值。2.3开发环境所用开发环境为微软公司开发的VC++6.0软件,该软件可将“高级语言”翻译为“机器语言”,该程序开发语言为C语言。3、详细设计123.1功能结构框图图3-1系统功能结构框图这是长整数相加运算的一个设计思路。在该系统中,我会设置几个函数,分别实现不同的功能,如接收数据输入的函数,将两个长整数进行相加的函数,显示出长整数相加结果的函数。重点是在加法运算的函数里,在功
7、能结构框图中只是大致的介绍出设计思路,分3种情况考虑,具体在每种情况里,也分许多细小的情况进行处理。该系统重要的部分是对双向循环链表进行操作。3.2软件设计3.2.1定义链表与接收数据输入因为该系统的功能是对长整数进行运算,所以对长整数是用双向循环链表进行存储,链表每个结点均存储绝对值不超过9999的整数,在进行运算时,依次对每个结点进行运算,再判断是否需要进位和借位。该系统主要使用的数据结构是双向循环链表,无任何特殊的算法,只有对双向循环链表的一些简单操作,如插入操作,注意前驱指针和后继指针发生变化时的修改即可。(1)定义双向循环链表的抽象数据类型
8、12图3-2双向循环链表的结点定义此双向循环链表中,定义了一个头结点来保存长整数的信息,即头结点的正负表示该
此文档下载收益归作者所有