数据结构课程大型实验大整数参考模板.doc_第1页
数据结构课程大型实验大整数参考模板.doc_第2页
数据结构课程大型实验大整数参考模板.doc_第3页
数据结构课程大型实验大整数参考模板.doc_第4页
数据结构课程大型实验大整数参考模板.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江工业大学本科毕业设计文献综述大类基础课程大型实验 2015/2016(1) 实验题目 大整数的运算 学生姓名_ * _ 学生学号_* _ 学生班级_ _ 任课教师_ _ 提交日期 _ 2015/5/19 _ _ 计算机科学与技术学院浙江工业大学计算机科学与技术学院 大类基础课程大型实验报告大整数的运算 实验报告一、 大型实验的内容 大整数的运算(BIO:Big Integers Operation)用于两个大整数的四则运算,要求完成的主要的功能包括能够进行两个大整数的加法、减法、乘法、除法、乘方及取模运算,并有一个可以自行出入的运算上限。要求使用学习过的数据结构的知识完成大整数运算的设计与实现。二、 运行环境 大整数的运算(BIO)在Visual Studio 2013平台下开发,操作系统:Windows 7 / Windows8。 硬件环境:(备注:可以查看“计算机”属性) 处理器:Intel(R) Core(TM) i5-2557M CPU 1.70GHz 1.70GHz 内存:4.00GB 系统类型:32位操作系统三、 实验课题分析3.1 大整数的运算的主要功能大整数的运算(BIO)主要功能为:大整数的加法,大整数的减法,大整数的乘法,大整数的除法、大整数的乘方、大整数的取模。详细的系统功能结构为图1所示。大整数的运算(BIO)大整数的除法模块大整数的乘方模块大整数的加法模块大整数的取模模块大整数的乘法模块大整数的减法模块图1 系统结构图各模块的功能具体描述为:1、大整数的加法模块用户输入需要运算的大整数,实现加法,并及时输出结果。若结果超过设置的最大上限,则取模最大上限后输出。2、33.2 分析及设计涉及对象有3个基本类:节点类、链表类和大整数类。如下表所示: 表1 涉及的操作对象涉及的对象操作节点运算过程中储存数字信息链表储存输入的大整数和运算过程中新生大整数的信息大整数实现大整数的运算,及相关的输入输出,错误的提示可以采用面向对象的方式实现大整数的运算。主要的类结构如图2所示。数据处理(节点类、链表类)大整数类 用户图2 主要类结构图 3.3运算的实现 (1)类的编写 运算工程名为:BIO。包含了Node类(数字节点类),List类(整数链表类)和Big类(大整数类)三个基本类。其中Big类的函数实现中包含了List类,List类里也蕴含着Node类。各自分工以完成需要的功能。具体类结构声明如下:l Node类: class Node /节点public:int nValue; /值Node* Next; /下个节点Node();Node(int); /构造函数;l List类:class Listprivate:Node* Head; /头指针Node* Tail; /尾指针public:bool Empty(); /是否为空List(); /构造函数List(); /析构函数List(List &); /拷贝构造函数int Size(); /大小Node* getHead(); /返回头指针Node* getTail(); /返回尾指针void Push(int); /压入链表void Delete(); /删除void Insert(List &); /插入List operator=(List &); / 赋值void Pop(); /弹出链表int Top(); /返回链表顶值void Display(); /显示; (2)链表的使用 运算实现采用用户的输入输出对数字数据进行读取,但是由于大整数信息都是一个数字的集合,于是对数字的存储组织使用了单向链表。 在运用时,令当前数字的next节点指向新的数字节点,即节点的指针next保存新的数字结点的地址(如下图3所示),以此类推,所有数字信息就通过链表的形式串联起来了。 Figure1 Figure2 Figurendatadata data .*next*next*next 图3 数字链表的建立功能l 大整数的加法(每个算法都要按照这个流程写下来): 运算时,会读入用户输入的三个字符串。如果第二个字符串是“+”,则进行加法运算。运算过程中一旦发现数字有问题会立即报错,并抛出异常。运算时从个位开始循环,依次读取两数相应位的值t1,t2,并新增一个进位数字kTemp。每次相加时保存kTemp,以用于下一位的运算。当其中一个数字到头时,t1或t2会被置为0让加法能继续下去。结果取模最大上限。大整数的加法的流程图如下:开始 输入是否有问题报错 是 否将两数每一位依次相加,期间依靠进位数使加法完善。取模最大上限输出结束 (3)交互界面的实现 系统运行开始的界面如图5所示:图5 开始界面四、 实验调试、测试、运行记录及分析 运算在调试测试过程中遇到若干问题,不过经过仔细反复的检查已经消除各种bug。 l 加法:l 减法:l 乘法:l 除法:l 乘方:l 取模:l 问题输入: 遇到的问题及解决方法如下:l 问题1:问题描述:运算出来

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论