下载此文档

超长正整数的加法.doc


文档分类:建筑/环境 | 页数:约19页 举报非法文档有奖
1/19
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/19 下载此文档
文档列表 文档介绍
沈 阳 航 空 工 业 学 院
课程设计
学 号 5
班 级
姓 名 王洪臣
指导教师 尹航
2008年 3 月 20 日
沈阳航空工业学院
课程设计任务书
机械与汽车学院 汽车设计与制造专业 班 学号5
一、课程设计题目:超长正整数的加法
二、课程设计工作自2008年3月17日起至2008年3月21日止
三、课程设计内容:
用C语言编写软件完成以下任务:
采用一个带有头节点的环形链来表示一个非负的超大正整数。如可以从低位开始为每个数字编号,第一位到第四位,第五位到第八位···的每四位组成的数字,依次放在链表的第一个,第二个···节点中,不足四位的最高位存放在链表的最后一个节点中,表头节点的值规定为-1。
四、课程设计要求:
程序质量:
贯彻结构话程序设计思想。
用户界面友好,功能明确,操作方便;可以加以其他功能或修饰。
用户界面中的菜单至少应包括“输入”,“退出”2项。
代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
课程结束后,上交课程设计说明书(打印稿和电子稿),其内容如下:
封面
课程设计任务书
目录
需求分析(分析题目的要求)
程序流程图(总体流程图和主要功能模块流程图)
核心技术的实现说明及相应程序段
个人总结
参考资料
源程序及适当的注释
指导教师:尹航
学生签名:王洪臣
目录
一、需求分析 ………2
二.程序流程图 …….…3
三、核心技术的实现方法、程序段及注释…8
四.个人总结 ……...14
五、参考文献 ……...14
六、源程序 ………14

一、需求分析
大整数 "21" 可用如下带表头结点 head 的循环链表表示:
大整数 “4321” 可用如下带头结点 head 的循环链表表示:
两者的和也用循环链表表示。先创建一个空循环链表:进位标志为 0 。
创建一个结点, s 指向它。求 *p 结点的值域与 *q 结点的值域与进位标志之和。
4321+4321+0=8642 ,重新设置进位标志和 *s 的值域:分别为 “ 和与 10000 的商 ” 、 “ 和与 10000 的余数 ” 。 8642/10000=0 , 8642%10000=8642 。
连接: r->next=s; s->next=head; r=s;
p 后移, q 后移。
重复上述操作,直到 *p 结点的值域为 -1 或 *q 结点的值域为 -1 。
判断 p 和 q 的情况:
如果 p!=head ,则将其余结点依次连入和的链表中。
如果 q!=head ,则将其余结点依次连入和的链表中。
输出和的链表:从最后一个结点到第一个结点依次输出其值域。
可先将表逆置:
再从第一个到最后一个依次输出其值域。
 

二.程序流程图
1.程序总体结构图:
定义循环链表指针*p1,*p2有放和值的循环链表*r,建立动态链表的指针* nedo型指针。并且循环链表头指针,尾指针相重合。
输入p1→num,p2→num
-1=head→num;关于head=s=(struct nedo*)malloc(sizejof(struct nedo))
While(p1→num!=-1||p2→num!=-1)
*p1与p2*两链表对应节点求和;
并把和存放在*r中;
每次只和一个节点;
开辟一个节点,并把指针赋给*s.
s→num%10000的值保留于原节点;
s→num/10000的值加在下一个节点中
r→next=s建立链接关系;使新开辟的节点链入*r中
s→next=head;使s再去开辟并认为地址是head
r=s;使r作为表头
p1=p1→next p1后移
p2=p2→next p2后移
P1!=head



链入其余节点
P2!=head

超长正整数的加法 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数19
  • 收藏数0 收藏
  • 顶次数0
  • 上传人rsqcpza
  • 文件大小149 KB
  • 时间2021-04-14