长整数四则运算+数据结构课程设计报告书

长整数四则运算+数据结构课程设计报告书

ID:37129237

大小:60.50 KB

页数:9页

时间:2019-05-18

长整数四则运算+数据结构课程设计报告书_第1页
长整数四则运算+数据结构课程设计报告书_第2页
长整数四则运算+数据结构课程设计报告书_第3页
长整数四则运算+数据结构课程设计报告书_第4页
长整数四则运算+数据结构课程设计报告书_第5页
资源描述:

《长整数四则运算+数据结构课程设计报告书》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、专业资料长整数四则运算题目:编制一个演示长整数的四则运算的程序一、需求分析1.本程序实现计算任意长的整数的四则运算.以用户和计算机对话的方式,先后输入数字的最多位数,然后程序就计算并显示出这两个数的运算。2.利用双向循环链表现实长整数的存储,每个结点含一个整形变量。输入的形式以回车结束,可以直接输入正数或负数,程序会过滤掉无效的字符。按中国对于长整数的表示习惯,每四位一组,除数字和位于首位置的负号外,其它一切字符都将作为分隔符,连续多个分隔符当一个处理。但不使用分隔符也不影响结果。3.测试数据(1)0;0;输出“0”;(2)-2345,6789;

2、-7654,3211;输出“-1,000,000”;(3)-9999,9999;1,0000,0000,0000;输出“9999,0000,0001”;(4)1,0001,0001;-1,0001,0001;输出“0”;(5)1,0001,0001;-1,0001,0001;输出“1”;(6)-9999,9999,9999;-9999,9999,9999;输出“-1,9999,9999,9998”;(7)1,0000,9999,9999;1;输出"1,0001,0000,0000".二、概要设计为实现上述程序功能,应以双向循环链表表示长整数。为此

3、,需要定义一个抽象数据类型。1.抽象数据类型定义为:ADTOrderedList{2.数据对象:D={ai

4、ai∈int,i=1,2,...n,n≥0}基本操作:init(&a,digit4)操作结果:构造一个位数是digit4*4长整数。pass(&a,&b,&c)初始条件:a,b,c都已存在操作结果:c等于a和b的和。nep(&a)初始条件:a已存在。操作结果:a变为输入参数的相反数。printlong(&a)word完美格式专业资料初始条件:a已存在。操作结果:按四位一组,分隔符为","的格式,在屏幕上输出a。ston(&S,&a)初始条件

5、:a已存在。操作结果:把字符串形式的长数字赋给a。}ADTOrderedList2.本程序包含两个模块:1)主程序模块:Voidmain(){选择操作:1:帮助。2:加法。3:减法。4:乘法。5:除法。6:退出。打印结果;}三、详细设计1.元素类型,结点类型,指针类型#defineNULL0#include#include#includetypedefstructlongnode{/*每个节点的结构*/intnum;/*数字*/structlongnode*low1;/*指向低一位节点*/s

6、tructlongnode*high1;/*指向高一位节点*/}longnode;typedefstructxlong{/*每个长整数的结构*/longnode*High;/*每个长整数的最高节点*/longnode*Low;/*每个长整数的最低节点*/intdigit4;/*每个长整数的总位数(不包括高位的0)/4*/}*xlong;intinit(xlong*a,intdigit4){intI;/*.init.*/longnode*j;word完美格式专业资料(*a)=(xlong)malloc(sizeof(structxlong));/*

7、为a的头结构申请空间,并赋初始值*/(*a)>High=NULL;(*a)->Low=NULL;(*a)->High=NULL;(*a)->Low=NULL;(*a)->digit4=0;for(i=0;inum=0;j->high1=NULL;j->low1=(*a)->High;if((*a)->High)(*a)->High->high1=j;else(*a)->Low=j;(*a)->High=

8、j;(*a)->digit4++;}}intpass(xlonga,xlongb,xlongc){intcf=0;/*两个数字的相加*/longnode*a1=a->Low,*b1=b->Low,*c1=c->Low;while(a1){c1->num=a1->num+b1->num+cf;if(c1->num>9999){cf=1;/*如果产生进位(借位)*/c1->num-=10000;}else{cf=0;}a1=a1->high1;b1=b1->high1;c1=c1->high1;}returncf;/*最高位的进位(借位)*/}int

9、passa(xlonga,xlongb,xlongc){intcf=0;/*两个数字的相减*/longnode*a1=a->Low,*b

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

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

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