1、 算算 法法 与与 数数 据据 结结 构构 课课 程程 设设 计计 报报 告告 题题 目目:长整数的四则运算长整数的四则运算 班班 级级: 学学 号号: 姓姓 名名: 指导教师指导教师: 成成 绩绩: 2010 年年 1 月月 9 日日 一、一、 题目题目 问题描述:设计一个实现任意长的整数进行加法运算的演示程序。 (2)基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何 整形变量的范围是 -(215 - 1)(215 - 1)。输入和输出形式:按中国对于长整数的表示 习惯,每四位一组,组间用逗号隔开。 (3)测试数据: 0;0;应输出“0” 。 -2345,6789;-
2、7654,3211;应输出“-1,0000,0000” 。 -9999,9999;1,0000,0000,0000;应输出“9999,0000,0001” 。 1,0001,0001;-1,0001,0001;应输出“0” 。 1,0001,0001;-1,0001,0000;应输出“1” 。 -9999,9999,9999;-9999,9999,9999;应输出“1,9999,9999,9998” 。 1,0000,9999,9999;1;应输出“1,0001,0000,0000” 。 (4)实现提示: 每个结点中可以存放的最大整数为 32767,才能保证两数相加不会溢出,但若这样 存放,即
3、相当于按 32768 进制存放,在十进制与 32768 进制数之间的转换十分不方便,故可 以在每个结点中仅存十进制的 4 位,即不超过 9999 的非负整数,整个链表表示为万进制。 可以利用头结点数据域的符号代表长整数的符号。用其绝对值表示元素结点数目。相加 过程中不要破坏两个操作数链表。 两操作数的头指针存于指针数组中是简化程序结构的一种 方法。不能给长整数位数规定上限。 二、二、 设计思想设计思想 将如何设计程序、思想步骤以及一些必要的图和数据附上,如校园导游咨询要有校园平 面图。 基本要求:所用到的关键算法要描述清楚,算法和数据结构可用伪代码和图示描述。 这一部分的目的是让读者在短时间内
4、清楚地理解作者解决问题的整体思路, 表达方式必须比 源代码更通俗易懂。 如果读者感觉还不如直接读源代码来得明白, 这一部分内容就失去了意 义。 三、软件结构图及流程图三、软件结构图及流程图 软件结构图即函数调用图 如下图 main creat add linklist sum 流程图即一般流程图 三、三、 测试结果测试结果 要紧扣课程设计的题目类型和要求,设计和提供相应的测试方法和结果。 对于需要比较不同算法性能优劣的题目, 应设计并填写一张性能比较表格, 列出不同算法在 同一指标下的性能表现。仅仅罗列出一堆数据是不够的,还应将数字转化为图形、曲线等方 式,帮助读者更直观地理解测试结果。 对于需要利用某算法解决某问题的题目, 应设计并填写一张测试用例表。 每个测试用例一般 应包括下列内容: 1 测试输入:99,9999,9999,9999,9999;2 2 测试目的:设计该输入的目的在于测试程序在进位方面可能存在漏洞; 3 正确输出:对该输入,若程序正确,应该输出的内容 100,0000,000