实习114长整数四则运算实习报告
题目:设计一个实现任意长的整数进行加法运算的演示程序。
一、需求分析
1本演示程序中,利用双向循环链表实现长整数的存储,每个结点含一个整型变量任何整型
变量的范围是(2151)(2151)。在每个结点中仅存十进制数的4位,即不超过9999
的非负整数,整个链表表示为万进制数。输入和输出形式按中国对于长整数的习惯,每四位
一组,组间用逗号隔开。
2演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,
由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据(滤去输入数据中的非法
字符)和运算结果显示在其后。
3程序执行的命令包括:
(1)构造链表;(2)输入数据;(3)数据处理;(4)结束
4测试数据
(1)0;0;应输出0。
(2)23456789;76543211;应输出100000000
(3)99999999;1000000000000;应输出999900000001
(4)100010001;100010001;应输出0。
(5)100010001;100010000;应输出1
(6)999999999999;999999999999;应输出1999999999998。
(7)1000099999999;1;应输出1000100000000。
二、概要设计
structLi
kNode定义结构体Li
kNode
i
tdata
记录每个节点的整数(小于10000)
Li
kNode
ext
记录下一个节点的地址
Li
kNodepre
记录前一个节点的地址
classLi
kList定义类Li
kList
f
private
Li
kNodehead0head1
head0,head1分别记录两个整数链表的头指针
Li
kNodecurrptr
Li
kNoderesult
result记录结果链表的头指针
public
Li
kList
构造函数,初始化链表
Li
kList
析构函数,释放空间
voidCreatstri
ga引入字符串,创立两个链表,分别表示两个整数
voidAdd
实现两个整数相加
voidDisplay
显示结果
voidaddtwo
节点多的作为被加数,少的作为加数,实现整数绝对值
大的加小的
voidmai
主函数
{
……
do
whileYes_NoyYes_NoYYes_No不等于Y或y时,程序退出
三、详细设计
i
cludeiostream
i
cludestri
g
i
cludemathh
usi
g
amespacestd
structLi
kNode
i
tdata
记录每个节点的整数(小于10000)
Li
kNode
ext
记录下一个节点的地址
Li
kNodepre
记录前一个节点的地址
f
classLi
kList
private
Li
kNodehead0head1
head0,head1分别记录两个整数链表的头指针
Li
kNodecurrptr
Li
kNoderesult
result记录结果链表的头指针
public
Li
kList
构造函数,初始化链表
Li
kList
析构函数,释放空间
voidCreatstri
ga引入字符串,创立两个链表,分别表示两个整数
voidAdd
实现两r