- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
长整数的四则运算
课程名称: 《数据结构》课程设计课程设计题目: 长整数的四则运算姓 名: 院系: 计算机学院专 业:计算机科学与技术年 级: 学 号:指导教师: 2014 年月 日目 录 1 课程设计的目的………………………………………………………………32 需求分析………………………………………………………………………3 3 课程设计报告内容……………………………………………………………3 3.1概要设计……………………………………………………………………33.2详细设计……………………………………………………………………3 3.3调试分析……………………………………………………………………3 3.4用户手册……………………………………………………………………4 3.5测试结果……………………………………………………………………43.6程序清单……………………………………………………………………5 4 小结 …………………………………………………………………………x 5 参考文献 ………………………………………………………………81.课程设计的目的(1) 熟练使用 C 语言编写程序,解决实际问题;(2) 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;(3) 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(4) 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;2.需求分析问题描述:设计一个实现任意长的整数进行加法运算的演示程序。基本要求:利用双向循环链表实现长整数的存储,每个结点含一个整形变量。任何整形变量的范围是 -215 - 1 215 - 1。输入和输出形式:按中国对于长整数的表示习惯,每四位一组,组间用逗号隔开。测试数据:(1)0;0;应输出“0” 。(2)应输出“-100000000” 。(3)1000000000000;应输出“999(4)100010001;-100010001;应输出“0”。(5)100010001;-100010000;应输出“1” 。(6)-999999999999;-999999999999;应输出“1999999999998” 。(7)1000099999999;1;应输出“1000100000000”。实现提示:(1)每个结点中可以存放的最大整数为 32767,才能保证两数相加不会溢出,但若这样存放,即相当于按 32768 进制存放,在十进制与 32768 进制数之间的转换十分不方便,故可以在每个结点中仅存十进制的 4 位,即不超过 9999 的非负整数,整个链表表示为万进制。(2)可以利用头结点数据域的符号代表长整数的符号。用其绝对值表示元素结点数目。相加过程中不要破坏两个操作数链表。不能给长整数位数规定上限。3.1概要设计利用双向循环链表现实长整数的存储,每个结点含一个整形变量。输入的形式以回车结束,可以直接输入正数或负数。按中国对于长整数的表示习惯,每四位一组,除数字和位于首位置的负号外,其它一切字符都将作为分隔符,连续多个分隔符当一个处理,但不使用分隔符也不影响结果。3.3调试分析测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些?问题如何解决?),算法的改进设想。3.4用户手册(略)3.5测试结果(略)4总结长整数用双向循环队列的数据结构,用的比较少,查阅不少资料5、程序清单:(见附录)#includeiostream#includestring.h#includestdlib.h#includemath.husing namespace std;struct LinkNode{int data; //记录每个节点的整数(小于10000)LinkNode *next; //记录下一个节点的地址LinkNode *pre; //记录前一个节点的地址};class LinkList{private:LinkNode *head0,*head1; //head0,head1分别记录两个整数链表的头指针LinkNode *currptr;LinkNode *result; //result记录结果链表的头指针public:LinkList(); //构造函数,初始化链表~LinkList(); //析构函数,释放空间void Creat(string a); //引入字符串,创立两个链表,分别表示两个整数void Add();
文档评论(0)