长整数加减-实验报告

长整数加减-实验报告

ID:13167740

大小:688.00 KB

页数:14页

时间:2018-07-21

长整数加减-实验报告_第1页
长整数加减-实验报告_第2页
长整数加减-实验报告_第3页
长整数加减-实验报告_第4页
长整数加减-实验报告_第5页
资源描述:

《长整数加减-实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验一线性表实现方法题目:编制一个长整数加减运算实现的程序班级:姓名:学号:完成日期:--一、需求分析1、本实验中演示中,长整数的每位上的数字必须为数字[0——9]之间,长整数的位数要求无限长。测试的时候输入数据,当输入回车键的时候结束输入,如果输入的字符不符合题目要求,则程序能过滤这些不符合要求的字符。2、演示程序以用户和计算机的对话方式执行,即在计算机显示“提示信息”后之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据(滤去输入中不符合要求的字符)和运算结果显示在其后。3、程序执行的命令包括:(1)创建第一个长整数;(2)执行加法或者减法;(3)创建第二个长整数;(

2、4)结束。4、测试数据(1)PleaseEntertheFirstlongInteger:12345678999999999999999+or-:+PleaseEntertheSecondlongInteger:98765432ht1111111111k1111111111112345678999999999999999+98765432111111111111111111111=98765444456780111111111111110(2)PleaseEntertheFirstlongInteger:1234567899hu99999fg99999999+or-:-PleaseE

3、ntertheSecondlongInteger:98765432hr1111111ky1111111111111112345678999999999999999-98765432111111111111111111111=-98765419765432111111111111112二、概要设计为实现上述程序功能,可以用链表或者长数组表示长整数,如果用数组表示长整数有个缺点就是长整数不能无限长,而链表能动态开辟空间,它克服了这个缺点,所以次试验用链表来表示长整数。1、链表的抽象数据类型定义为:ADTNumber{第14页共14页数据对象:D={ai

4、ai∈(0,1,…,9),i=0,

5、1,2,…,n,n≥0}数据关系:R={

6、ai-1,ai∈D,i=1,2,…,n}基本操作:CreateList(&L)操作结果:创建一个链表L。PrintList(L)初始条件:链表L已存在。操作结果:在屏幕上输出链表的值。PlusList(L1,L2,a)初始条件:链表L1,L2已存在,a为+or–表示加减。操作结果:将两链表的值相加然后在屏幕上输出。DestroyList(&L)初始条件:链表L已存在。操作结果:销毁链表L。}ADTNumber2、本程序包含五个模块:(1)主程序模块:intmain(){定义变量;接受命令;处理命令;退出(return0);}

7、(2)创建链表模块——产生一个长整数;(3)输出链表模块——把链表产生的一个长整数输出;(4)两链表加减模块——即求两个由链表产生的长整数的加减并输出结果;(5)销毁链表模块——程序结束后释放链表开辟的空间。各模块之间的调用关系如下:主程序模块L1L2创建链表模块创建链表模块+or-:L2L1输出链表模块输出链表模块+or-=两链表加减模块L1L2销毁链表模块结束销毁链表模块三、详细设计第14页共14页1、定义头文件#include#includeusingnamespacestd;2、元素类型、节点类型和指针类型structNumber//链表

8、的类型{intdata;//链表当前结点的值structNumber*next;//链表当前结点指向下一结点的指针structNumber*prior;//链表当前结点指向前一结点的指针}*number1,*number2;//定义该链表类型的两个指针对象3、创建链表模块,即产生一个长整数voidCreateList(Number*&L)//创建长整数{Number*s,*r;//定义两个链表类型的临时指针charx;//定义一个临时字符变量L=(Number*)malloc(sizeof(Number));//为头结点开辟空间L->next=L->prior=NULL;//此时头结

9、点的后继指针和前驱指针赋值为空r=L;//是r指针指向头结点x=getchar();//用x接受一个从键盘输入的字符while(x!='')//控制当输入回车键时结束{if(x>='0'&&x<='9')//过滤不符合要求的字符{s=(Number*)malloc(sizeof(Number));//开辟下一结点的空间s->data=x-'0';//将字符转化为int型赋给结点r->next=s;//r的后继指针指向ss->prior=r;//s的前驱

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

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

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