任意长的整数加法

任意长的整数加法

ID:1442050

大小:311.00 KB

页数:19页

时间:2017-11-11

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

《任意长的整数加法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《结数据构》课程设计报告任意长的整数加法姓名:专业:班级:学号:指导老师:设计时间:2010年5月7日19摘要1、本程序实现计算任意长的整数的加法运算.以用户和计算机对话的方式,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令,然后程序就计算并显示出这两个数的运算。2、本演示程序中,集合的元素限定为数字字符[‘0’~’9’]和字符‘,’与‘;’,输入字符可以任意长,输入形式以“回车符”为结束标志,串中字符顺序不限,且允许出现重复字符。3、利用双向循环链表现实长整数的存储,

2、每个结点含一个整形变量。输入的形式以回车结束,可以直接输入正数或负数。按中国对于长整数的表示习惯,每四位一组,除数字和位于首位置的负号外,其它一切字符都将作为分隔符,连续多个分隔符当一个处理。但不使用分隔符也不影响结果。关键字任意长的整数相加双向循环链表19目录1.设计思想51.1设计内容51.2向循环链表作存储结构52.概要设计(程序模块分析)621为链表指针申请空间模块62.2数求和模块62.3创建链表模块82.4获取整数模块82.5输入任意长整数的模块92.6释放空间模块102.7主函数(main

3、)设计模块103.算法描述(流程图及源代码)123.1双向循环链表结构程序流程图123.2代码134.运行程序及结果175.心得体会19绪论数据结构课程设计是在学完数据结构课程之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过数据结构课程设计在下述各方面得到锻炼:1.能根据实际问题的具体情况,结合数据结构课程中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择

4、相应的存储结构,并能设计出解决问题的有效算法。2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。3.培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平191.设计思想1.1设计内容【问题描述】      设计一个实现任意长的整数进行加法运算的演示程序【基本要求】:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何整形变量的范围是-(215-1)~(215-1)。输入和输出形式:按

5、中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。      【测试数据】(1)0;0;应输出“0”。(2)-2345,6789;-7654,3211;应输出“-1,0000,0000”。(3)-9999,9999;1,0000,0000,0000;应输出“9999,0000,0001”。(4)1,0001,0001;-1,0001,0001;应输出“0”。(5)1,0001,0001;-1,0001,0000;应输出“1”。(6)-9999,9999,9999;-9999,9999,9999;应输

6、出“1,9999,9999,9998”。(7)1,0000,9999,9999;1;应输出“1,0001,0000,0000”。1.2向循环链表作存储结构为实现上述程序功能,应以双向循环链表表示长整数。为此,需要定义一个抽象数据类型。利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何整形变量的范围是-(215-1)~(215-1)。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。建立双向循环链表方式。查找函数采用链表的方式进行算法。有创建链表(InitNode),释放

7、空间(FreeNode),求和(Func_Add),获取数字(Func_GetNum)和输入(printf)等函数组合而成的源程序对求任意长的整数加法进行双向循环链表方式。在进位的问题上,若要进位的话,就从右往左依次进行进位;若不要进行进位的话,就直接相加192.概要设计(程序模块分析)2.1为链表指针申请空间模块链表申请空间存储实现长整数,并且及时清空,释放占空间的整数,避免浪费存储空间#include"stdio.h"#include"string.h"typedefstructNode{struc

8、tNode*pre;charNumber[5];//用来存放4个字符末尾加个0structNode*next;}Node_t;/*为链表指针申请空间*/voidInitNode(Node_t**node){*node=(Node_t*)malloc(sizeof(Node_t));memset((*node)->Number,0x00,sizeof((*node)->Number));(*node)->pre=NULL;(*node)->n

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

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

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