数据结构课程设计报告(大整数的运算).docx





《数据结构课程设计报告(大整数的运算).docx》由会员分享,可在线阅读,更多相关《数据结构课程设计报告(大整数的运算).docx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、山东理工大学计算机学院课 程 设 计数据构造班级姓名学号指导教师2022年一月十日课程设计任务书及成绩评定课题名称长整数的代数计算、题目的目的和要求:(1) 课程设计目的稳固和加深对数据构造的理解,通过上机试验、调试程序,加深对课本学问的理解,最终使学生能够娴熟应用数据构造的学问写程序。通过本课程的学习,能娴熟把握几种根本数据构造的根本操作,能够应用线性数据构造解决实际问题。2根本要求 :设计数据构造完成长整数的表示和存储,并编写算法来实现两长整数的加、减、乘除等根本代数运算。长整数长度在二十位以上。实现两长整数的加、减、乘、除操作。选作: 输入输出均在文件中。分析算法的时空简单性。、设计进度
2、及完成状况日期内容1.2-1.3选取参考书,查阅有关文献资料,完成资料搜集和系统分析工作。1.41.5创立相关数据构造,录入源程序。1.61.7调试程序并记录调试中的问题,初步完成课程设计报告。1.91.9上交课程设计报告打印版并进展课程设计辩论,要求每个同学针对自己的设计答复指导教师 3-4 个问题。考核完毕后将课程设计报告和源程序的电子版交班长统一刻光盘上交。、主要参考文献及资料1 严蔚敏 数据构造C 语言版清华大学出版社 19992 严蔚敏 数据构造题集C 语言版清华大学出版社 19993 谭浩强 C 语言程序设计 清华大学出版社4 与所用编程环境相配套的 C 语言或 C+相关的资料、成
3、绩评定:设计成绩: 指导教师:教师填写签字2022年 一 月十日目 录第一章 概述1其次章 系统分析2第三章 概要设计3第四章 具体设计4第五章 运行与测试14第六章 总结与心得16参考文献15第一章 概述课程设计是实践性教学中的一个重要环节,它以某一课程为根底,可以涉及和课程相关的各个方面,是一门独立于课程之外的特别课程。课程设计是让同学们对所学的课程更全面的学习和应用,理解和把握课程的相关学问。数据构造是一门重要的专业根底课,是计算机理论和应用的核心根底课程。数据构造课程设计,要求学生在数据构造的规律特性和物理表示、数据构造的选择和应用、算法的设计及其实现等方面,加深对课程根本内容的理解。
4、同时,在程序设计方法以及上机操作等根本技能和科学作风方面受到比较系统和严格的训练。在这次程序设计中我选择了长整数的代数计算这个题目,在一般的程序运算中,长整数是无法计算的,由于计算机一次能够运算的位数是有限,一旦整数很长,就需要一个程序来进展屡次计算,通过这个程序,可一把一个长整数分成多个一般整数来进展计算,使得长整数也可以进展运算。我编写的这个程序就可以进展加减乘除的运算,各个数据也可以是负数。10其次章 系统分析1、设计一个实现长整数进展四则运算的程序,长整数长度在二十位以上,有正负数的区分。2、输入每四位一组,组间用逗号隔开,长整数位数没有上限,以分号完毕长整型数据的输入。用lnode
5、结点数据构造存储数据。每一个数据有一个头结点,它的data 域用来放数据的正负数。其余结点的数都为正整数。3、程序包含数据的输入,推断,运算,输出和主函数。4、具体程序执行的命令包括:输入函数:inputa;inputb;/的输入并建立双向循环链表推断函数:compare;/比较数据的大小运算函数:unsigndeadd;/无符号的加法unsigndesub;/无符号的减法add;sub;mul;div;/加减乘除四则运算输出函数:divput;/除法结果的输出函数putoutc;/其余结果的输出函数主函数:main;第三章 概要设计首先要考虑的是如何表示长整型数。可以 4 位数形成 1 组,
6、而一个长整型数可能会有很多组这种 4 位数,而每节之间是有先后挨次的,因此我们可以考虑用数组和链表来存储数据。(1)再考虑到每个长整型数的长度在输入之间是无法预知的,因此使用链表在存储空间的安排上更便利一些。(2)在输入数据时总是从高位到低位地存储,而计算时总是从低位向高位运算,因此承受双向链表更便利,而为了从头结点便利地转到尾结点可 以承受循环链表。综上考虑,应以双向循环链表表示长整数,每个结点含一个整型变量, 且仅确定值不超过 9999 的整数,整个链表用十进制数表示。(3)对于每一个长整型数可以设置一个头结点,其中的数据域用来表示该长整型数的正负号及组数,该值的符号则 表示该长整型数的符
7、号,该数确实定值表示该长整型数包含的 4 位数的组数。第一个存储 4 位数据组的结点称为首结点,而最终一个 4 位数据组结点称为尾结点。为此需要构造数据类型:双向循环链表:typedef struct lnode/结点构造体int data;struct lnode *next; struct lnode *prior;lnode,*lnodelist 主要的模块可分为输入函数:inputa;inputb;/的输入并建立双向循环链表推断函数:compare;/比较两个数据的大小,进展相应的的计算。运算函数:add;sub;mul;div;/运算输出函数:divput;putoutc;/除法的输
8、出及其他运算的输出。主函数:main;#include第四章 具体设计using namespace std; #include #define OK 1;#define FALSE 0;typedef struct lnode/结点构造体int data;struct lnode *next; struct lnode *prior;lnode,*lnodelist;int compare(lnodelist &ahead,lnodelist &bhead,int &q)/比较 a 和 b 的大小lnode *pa,*pb;int bcount=0,acount=0; pa=ahead-ne
9、xt;pb=bhead-next; while(pa!=ahead)acount+;pa=pa-next; while(pb!=bhead)bcount+;pb=pb-next; if(acountbcount)q=1;else if(acountprior; pb=bhead-prior;while(pa-data=pb-data)&(pa-prior!=ahead)pa=pa-prior;pb=pb-prior; if(pa-datapb-data)q=1;else if(pa-datadata)q=-1; else q=0;return 0;int inputa(lnodelist &a
10、head)/输入长整数 alnode *p;char ch; int afirst;cout“请输入第一个无符号长整型数,要求每四位用逗号隔开末尾为分号:“data=0; p-next=p; p-prior=p;cinafirstch;/输入第一个结点数据if(afirstdata=-1;afirst=-afirst; else ahead-data=1;p=new lnode;p-data=afirst; p-next=ahead; ahead-prior=p; ahead-next=p; p-prior=ahead; while(ch!=”;”)cinafirstch; p=new lno
11、de;p-data=afirst;p-next=ahead-next; ahead-next-prior=p; ahead-next=p;p-prior=ahead;return OK;int inputb(lnodelist &bhead)/输入长整数 blnode *p;char ch; int bfirst;cout“请输入其次个无符号长整型数,要求每四位用逗号隔开末尾为分号:“data=0; p-next=p;cinbfirstch;/输入第一个结点数据if(bfirstdata=-1;bfirst=-bfirst; else bhead-data=1;p=new lnode;p-da
12、ta=bfirst; p-next=bhead; bhead-prior=p; bhead-next=p; p-prior=bhead; while(ch!=”;”)cinbfirstch; p=new lnode;p-data=bfirst;p-next=bhead-next; bhead-next-prior=p;bhead-next=p; p-prior=bhead;return OK;void putoutc(lnode *chead)/输出结果lnode *s,*pr; pr=chead-next; if(pr!=chead)coutdata;pr=pr-next; while(pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告 整数 运算

限制150内