超长正整数的加法

超长正整数的加法

ID:22991575

大小:59.62 KB

页数:16页

时间:2018-11-02

超长正整数的加法_第1页
超长正整数的加法_第2页
超长正整数的加法_第3页
超长正整数的加法_第4页
超长正整数的加法_第5页
资源描述:

《超长正整数的加法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、沈阳航空工业学院课程设计学号__200704021110_班级___7402104____姓名_谷程_____指导教师___尹航___2008年9月12日沈阳沈阳航空工业学院课程设计任务书电子信息工程学院电子信息工程专业7402104班学号200704021110一、课程设计题目:超长正整数的加法二、课程设计工作自2008年9月8日起至2008年9月12日止三、课程设计内容:运用所学的C语言知识,编制和调试程序,具有如下功能:采用一个带有头节点的环形链来表示一个非负的的超大正整数。如可以从低位开始为每个数字编号,第一位到第四位,第五位到第八位…的每四位组成的数字,依次放在链表的

2、第一个、第二个、…节点中,不足四位的最高位存放在链表的最后一个节点中,表头节点的值规定为-1。四、课程设计要求:程序质量:l贯彻结构化程序设计思想。l用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。l用户界面中的菜单至少应包括“输入”、“退出”2项。l代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书:课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:l封面l课程设计任务书l目录l需求分析(分析题目的要求)l程序流程图(总体流程图和主要功能模块流程图)l核心技术的实现说明及相应程序段l个人总结l参考资料l源程序及适当的注释指导教师:___

3、___________学生签名:_____________五、成绩:六、教师评语:沈阳航院设计用纸目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段5四、个人总结9五、参考文献9六、源程序1012沈阳航院设计用纸一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现要求的是需要把超过int存储能力的超长正整数进行存储,并且把它们进行相加的运算。首先,要设计一个链表来表示一个超长正整数,把他从低位向高位开始进行编号,由程序提取和调用,然后按照一定数目存储到结点之中。然后,从两个表头的结点开始,顺序依次对应相加,求出所需要的进位后代入运算,返回指定链表。最后

4、,按照排列好的顺序输出。1输入超长正整数;2储存到链表之中为其分配出相应的空间;3由程序从链表中调出结点中的数按找排好的顺序进行相加,进位;4每个结点相加后在按顺序从最后一个结点到第一个结点依次输出其值域;5得出相加的结果,并递归输出。12沈阳航院设计用纸二、程序流程图1、程序总体流程图完成加法操作sum=x+y开始建立链表存储x,y结束输出结果sum输入超长正整数x,y图1程序总体结构图12沈阳航院设计用纸2、主函数流程图开始输入x,y调用inputint()调用addint()计算sum=x+y调用printlongint()输出sum结束图2主函数功能流程图12沈阳航院设

5、计用纸3、结点相加框图while(pp→data!=-1&&qq→data!=-1)*pp与*qq两链表对应节点求和;并把和存放在*s中;每次只和一个节点;开辟一个节点,并把指针赋给*s.longgroup=pow(10,SIZE)和值后4位(group%10000)的值保留于原节点;调用insert_after将和值进位(group/10000)的值加在下一个节点中pp=pp->next(pp后移)qq=qq->next(qq后移)r指向pp,qq中的较长者while(r->data!=-1)链入其余节点图3结点相加框图12沈阳航院设计用纸三、核心技术的实现说明及相应程序段这

6、个程序主要由主函数、定义链表结构、插入结点、输入并存入链表、结点的对应相加4个自定义函数组成。其中插入结点、输入并存入链表、结点的对应相加为其核心。具体过程如下:1.插入新结点在定义完链表结构后,插入新的结点以备存储。定义insert_after,在u结点之后插入新的v结点,并且为其申请一个用于存放他的空间v=(NODE*)malloc(sizeof(NODE)),存放完毕后,为v结点赋值,令其值为num,插入在u结点之后,最后返回其地址。NODE*insert_after(NODE*u,intnum)/*在u结点之后插入一个新的结点,其值为num*/{NODE*v;v=(NO

7、DE*)malloc(sizeof(NODE));/*申请一个新结点*/v->data=num;/*赋值*/u->next=v;/*在u结点之后插入一个结点*/returnv;}12沈阳航院设计用纸2.结点的对应相加调用结点中的数据进行对应的相加。首先,定义一个加法操作*p+*q的指针,然后把数字按照三位三位的从其指针地址里取出并且建立存放和的链表表头和申请空间,在对应位均不是表头的情况下对应位进行相加求和,并算出进位,与前位进行相加,运算结果存入定义的存放和的空间中。如果两个数位数不相同,

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

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

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