NANCHANG UNIVERSITY
课 程 设 计 报 告
课程名称: 计算机技术综合课程设计 题 目: 大数的加减运算
学 院: 信息工程学院 系: 计算机科学与技术系 专 业:网 络 工 程 班 级: 1 3 1 班 学 号: 610321301? 学生姓名:张
时 间:2016.8.29~2016.9.8
目录
摘 要 ............................................................ 1 引 言 ............................................................ 2 问 题 描 述 ....................................................... 2 第一章 分析与设计 ................................................. 2 第二章 各个模块的实现方法描述 ..................................... 3 1、显示与输入模块............................................ 3
2、大数加减运算模块.......................................... 3
2.1 无符号加法运算的实现——PLUS方法..................... 3 2.2 无符号减法运算的实现——MINUS方法.................... 4 2.3 有符号加减运算的实现——add方法和sub方法............ 6
第三章 运行结果效果图 ............................................. 8 第四章 实验总结 .................................................. 10 第五章 附录:程序源代码 .......................................... 11 1.输入与显示模块:UI类 ..................................... 11
2. 大数运算模块:GetResult类 ............................... 15 第六章 参考文献 .................................................. 21
摘要
在数学中,数值的大小是没有上限的,但是在计算机中,由于字长的限制,计算机所能表示的范围是有限的,当我们对比较小的数进行运算时,如:1234+5678,这样的数值并没有超出计算机的表示范围,所以可以运算。但是当我们在实际的应用中进行大量的数据处理时,会发现参与运算的数往往超过计算机的基本数据类型的表示范围,这就涉到大数运算。大数运算,顾名思义,就是很大的数值的数进行一系列的运算。本文采用一个在JAVA语言下实现大数运算的一个程序为例,讲解包括了大数的加法,减法的算法及代码。
关键字:大数、运算精度、大数加减
1
引言
大数运算,意味着参加的值和计算结果通常是以上百位数,上千位数以及更大长度之间的整数运算。大数运算在当代社会得到了广泛运用。大数运算不仅仅运用在密码学中,保护网络信息安全,还在物理学、天文学、化学等学科的科研活动中发挥重要作用。例如大家所熟知圆周率π的值,在一般的数值计算中用到圆周率的不须要多大的精度,但在天文学计算一些星球或是星系上的体积面积时便显的误差很大了,这时π值计算的精度应该达到几百万位甚至更高,才能缩小误差,这就涉及到大数运算。
问 题 描 述
本次课程设计的题目就是实现大数加减运算,要实现以下要求:
1、参与运算的2个大数从键盘输入; 2、输入的数据为十进制整数; 3、数的十进制位数不低于20位。
编码实现语言没有限制,所以我决定使用我比较熟悉的Java来实现。
第一章 分析与设计
要实现上述大数加减运算程序,需要两个模块:
1. 显示与输入模块,用来获取从键盘输入的两个大数,并显示计算结果。
2. 大数加减运算模块,根据用户输入的两个大数和选中的运算类型,进行 加减运算。
2
大数加减运算程序模显示与输入模块 图1:大数运算模块示意图
大 数 运 算 模 块 第二章 各个模块的实现方法描述
1、显示与输入模块
本模块由名为UI的类实现,UI类有以下几个方法(详细代码请查看附录): (1)setWinStyle()方法,其作用是设置窗口显示风格为微软风格,美化图形界面的显示效果,移除Java默认的窗口风格。
(2)setMyFont()方法,设置输入输出的字体为指定字体。 (3)initGUI()方法,初始化图形界面。 (4)Listener()方法,添加事件监听器。
(5)UI()构造方法,调用以上方法完成UI类的初始化。 (6)getInput()方法,获取输入的大数。 (7)静态main方法,应用程序的入口。
其中,图形界面的布局主要采用GridLayout和BorderLayout。 2、大数加减运算模块
该模块是本程序的核心模块,被显示与输入模块调用,进而实现加减运算功能。本模块由名为GetResult的类实现,当UI类需要显示计算结果时,只需创建GetResult的实例,调用GetResult类的相关方法,并传递参与运算的两个大数对应的字符串即可(加法调用GetResult的add方法,减法调用sub方法)。
GetResult的核心是PLUS和MINUS方法,PLUS方法实现无符号大整数的加法,MINU方法实现无符号大整数的减法,add方法、sub方法基于PLUS与MINUS方法实现了有符号的大整数的加减。
2.1 无符号加法运算的实现——PLUS方法
加法计算还是比较容易的,我们也是先从低位算起,因为只须要对应的位相
3
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库大数加减运算在线全文阅读。
相关推荐: