当前位置:文档之家› (Java)科学型计算器的开发与实现

(Java)科学型计算器的开发与实现

(Java)科学型计算器的开发与实现
(Java)科学型计算器的开发与实现

淮北师范大学

科学型计算器的开发与实现

学院计算机科学与技术

专业计算机科学与技术(师范)

学生姓名

学号

指导教师姓名

年月日

科学型计算器的开发与实现

作者:

指导教师:

摘要:目前,科学计算器的应用非常广泛,从科研、生产、国防、文化、卫生、直到家庭生活,都离不开科学计算器的服务。通过使用科学计算器,避免了人工运算的繁琐,以及人工运算可能带来的较大误差和运算错误,给人们的运算带来了极大的方便。

这篇文章主要介绍用软件的方法实现科学计算器系统,包括:科学计算器系统的概述,科学计算器系统的开发原理和主要实现的功能,子模块的设计和实现技术。其中,重点介绍了对话框、控件的使用,不调用库函数,通过计算方法的原理来实现函数计算。

本系统需要实现以下功能:加、减、乘、除、余运算、倒数、乘方运算、开方运算、幂运算、对数运算、指数运算、正弦函数运算、余弦函数运算、正切函数运算、余切函数运算、反正弦函数运算、反余弦函数运算、反正切函数运算、反余切函数运算、排列组合运算和弧度与角度之间的转换,能输入正负数、小数,具有清零、退格功能,具有连续运算的能力。

关键词:对话框;控件;计算方法

Development and implementation of scientific

calculator

Candidate:

Supervisor: Associate Professor

Abstract:Currently, the application of scientific calculator is very extensive. It can not be get away from the service of scientific calculator in the field of research, production, national defense, culture, hygiene, even family life. By using scientific calculator, the tedious artificial operation, the larger errors and operational mistakes, which are caused by artificial operation, can be avoided. It brings much convenience to people's operation.

This article mainly introduces a scientific calculator system implementing from the perspective of software. It includes the overview and developmental principle of scientific calculator system. It also contains the primary functions, which have been implemented, the design and implemental technology of sub-modules. Among them, it forces on introducing the usage of dialog box and controls as well as the implementation of mathematic function without using library function, but computing method.

The system needs to achieve the following functions : adds, subtracts, multiplies, divides, the remainder operation, the countdown operation,radicand, power calculation, the log and index calculation, the operation of sine function, cosine function, tangent function, cotangent function, arc sine function, arc cosine function , arc tangent function and arc cotangent function, permutations and combinations operation, the conversion between radian and angle, the capability of inputting decimal, positive and negative numbers, the reset and backspace function, continuous operational capacity.

Key words: Dialog box; Controls; Computing method

目录

引言............................................................

1 科学型计算器系统概述 (1)

1.1设计科学型计算器系统的背景 (1)

1.2科学型计算器的发展史 (1)

2系统需要 (2)

2.1设计分析 (2)

2.1.1可行性分析 (2)

2.1.2需求分析 (2)

2.2开发环境 (2)

2.2.1运行环境 (2)

2.2.2开发工具 (2)

2.2.3关于visual c++ 6.0 (2)

3系统设计 (3)

3.1功能说明 (3)

3.1.1系统总体功能分析 (3)

3.1.2系统功能 (3)

3.2系统大概 (3)

3.2.1设计思路 (3)

3.2.2计算器运算流程图 (3)

4系统的实现.................................. .. (4)

4.1窗口的设计 (4)

4.1.1设计步骤 (4)

4.1.2控件的意义 (4)

4.1.3部分操作截图 (4)

4.2程序核心代码 (4)

4.2.1数字键核心代码 (4)

4.2.2计算类型函数的核心代码 (4)

4.2.2.1二进制转换代码 (4)

4.2.2.2backspace函数代码 (4)

4.2.2.3arcsin函数代码 (4)

4.2.2.4log10函数代码 (4)

4.2.2.5π函数代码 (4)

5系统运行与测试 (5)

5.1运行界面 (5)

5.2测试 (5)

5.2.1测试研究与选择 (5)

5.2.2测试环境 (5)

5.3程序代码 (5)

总结............................................................ 参考文献........................................................ 致谢............................................................

引言

本设计设计主要在运算过程中,如果通过计算器来完成,就会减少计算量,该程序即可以在简单计算器键面下进行简单运算,也可以在科学计算器键面下进行高级的科学计算。并且可以分别计算弧度、角度的三角函数的计算等较为复杂的运算。

1 科学型计算器系统概念

1.1设计科学型计算器系统的背景

人们在日常学习、工作和生活过程中,都少不了与“计算”打交道,从简单的加、减、乘、除法运算,乘方、开方运算,到复杂正弦、余弦、正切、余切运算,组合运算等,总会遇到许多关于计算方面的有问题,如:人工运算的繁琐,人工运算带来的较大误差以及人工运算造成的运算错误等。为了解决以上问题,便用软件方法设计了科学计算器系统。通过使用本系统,只需要进行简单的输入,即可得到相应的结果,给人们的运算带来了极大的方便。常用的计算器有简易版和科学计算器两种模式。简易版的计算器不支持表达式运算,每次只能输入一个数据或者运算符来计算,而科学计算器除了容纳简易版计算器的功能外,还支持表达式运算,用户可以输入一个合法的算术表达式来得到所需的结果。

1.2科学型计算器的发展史

1666年,在英国Samuel Morland发明了一部可以计算加数及减数的机械计数机。

1673年, Gottfried Leibniz制造了一部踏式(stepped)圆柱形转轮的计数机,叫“Stepped Reckoner”,这部计算器可以把重复的数字相乘,并自动地加入加数器里。

1694年,德国数学家,Gottfried Leibniz,把巴斯卡的Pascalene 改良,制造了一部可以计算乘数的机器,它仍然是用齿轮及刻度盘操作。

1775年,The third Earl of Stanhope发明了一部与Leibniz相似的乘法计算器。

1893年,第一部四功能计算器被发明。

1931年,Vannever Bush发明了一部可以解决差分程序的计数机,这机器可以解决一些令数学家,科学家头痛的复杂差分程序。

1935年,IBM (International Business Machine Corporation)引入 "IBM 601”,它是一部有算术部件及可在1秒钟内计算乘数的穿孔计算机器。它对科学及商业的计算起很大的作用。总共制造了1500 部。

1937年,Alan Turing 想出了一个“通用机器(Universal Machine)”的概念,可以执行任何的算法,形成了一个“可计算(computability)”的基本概念。Turing 的概念比其它同类型的发明为好,因为他用了符号处理(symbol processing) 的概念。

1939年11月,John Vincent Atannsoff与John Berry制造了一部16位加数器。它是第一部用真空管计算的机器。

1939-40年,Schreyer完成了用真空管的10位加数器,以及用氖气灯(霓虹灯)的存贮器。

1940年1月,在Bell Labs, Samuel Williams 及Stibitz完成了一部可以计算复杂数字的机器,叫“复杂数字计数机(Complex Number Calculator)”,后来改称为“断电器计数机型号I (Model

I Relay Calculator)”。它用电话开关部分做逻辑部件:145个断电器,10个横杠开关。数字

用“Plus 3BCD”代表。

1941年夏季,Atanasoff及Berry完成了一部专为解决联立线性方程系统(system of simultaneous linear equations) 的计算器,后来叫做“ABC (Atanasoff-Berry Computer)”,它有60个50位的存贮器,以电容器(capacitories)的形式安装在2个旋转的鼓上,时钟速度是60Hz。

1941年2月,Zuse完成“V3”(后来叫Z3),是第一部操作中可编写程序的计数机。它亦是用浮点操作,有7个位的指数,14位的尾数,以及一个正负号。存贮器可以贮存64个字,所以需要1400个断电器。它有多于1200个的算术及控制部件,而程序编写,输入,输出的与Z1相同。

1943年1月Howard H. Aiken完成“ASCC Mark I”(自动按序控制计算器Mark I,Automatic Sequence -- Controlled Calculator Mark I),亦称“Haward Mark I”。这部机器有51尺长,重5顿,由 750,000部份合并而成。它有72个累加器,每一个有自己的算术部件,及23位数的寄存器。

1946年,第一台电子数字积分计算器(ENIAC)在美国建造完成。

1949年,英国建造完成"延迟存储电子自动计算器"(EDSAC)

1952年,第一台“储存程序计算器”诞生。

1959年,第一台小型科学计算器IBM620研制成功。

2 系统需求

2.1设计分析

2.1.1可行性分析

伴随着经济全球化,计算机的普及发展,软件行业在社会占着举足轻重的作用。我们在学校生活中常会遇到一些繁杂的数值运算,我们必须要用到科学计算器,所以便着手开发了这个计算器程序,既紧随科技发展的前沿,又方便了我们的生活,具有一定的现实意义。

2.1.2 需求分析

本软件主要用于计算机Windows XP以上的用户使用,这次课程设计一般是实现简单计算器的功能。需要程序实现:加减乘除,开方,平方,倒数等运算功能;还要实现数据的输入,输出,计算,显示及程序退出等功能。另外还可以实现多种科学计算的功能,如:三角函数的计算,对数指数的计算,二、八、十、十六进制的转换等。

2.2 开发环境

2.2.1 运行环境

系统是在VC++6.0环境下开发的,在Windows98/Windows2000/Windows NT/Windows XP平台下运行均可。

2.2.2 开发工具

C++语言

2.2.3 关于Visual C++ 6.0

Visual C++ 6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual

C++.NET(Visual C++7.0),但它的应用有很大的局限性,只适用于Windows 2000、Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。

Visual C++6.0由Microsoft开发, 它不仅是一个C++ 编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。Microsoft的主力软件产品。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual C++.NET(Visual C++7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。

Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及创建预编译头文件(stdafx.h)、最小重建功能及累加连结(link)著称。这些特征明显缩短程序编辑、编译及连结的时间花费,在大型软件计划上尤其显著。

该环境为用户提供了良好的可视化编程环境,程序员可以利用该开发环境轻松地访

问C++源代码编辑器,资源编辑器和使用内部调试器,并且可以创建项目文件。Visual C++6.0不仅包括编辑器,还包括许多有用组件,通过这些组件的协同工作,可以在Visual C++6.0集成环境中轻松地完成创建源文件、编辑资源以及对程序的编译、连接和调试等各项工作。VC++6.0是Windows 95/98、XP或Windows NT下的一个应用程序,本身对软件没有特殊要求。就是说它对环境的要求与Windows 95/98、Windows NT的要求是一致的。VC++6.0系统可以在一张CD盘上,也可以在“Visual Studio (Visual C++、Visual Foxpro)”等产品的第一张CD盘上。一般都有一个VC的自动安装程序,也可以执行VC++6.0目录下的Setup.exe,在安装包的提示下进行,对初学者可采用“典型安装”方式。

在安装好VC6.0系统后,有时根据需要添加或删除某些部件,可插入CD盘重新执行Setup.exe安装程序,安装程序会检测当前系统安装VC6.0的组件,用户单击“添加/删除”按钮后,在“安装维护”对话框中选定要与一般的应用软件一样,有以下两种启动方式:

(1)通过“开始”按钮,选择“程序”菜单,然后打开“Microsoft Visual C++6.0中文版”子菜单中的“Microsoft Visual C++6.0中文版”程序。

(2)用户也可以使用命令行启动VC,单击“开始”按钮后选择“运行”命令,在“运行”对话框中输入C:\program Files\Microsoft Visual Studio\VC98\VC6.exe(按默认盘符和路径安装即可)。

3 系统设计

3.1 功能说明

3.1.1 系统总体功能分析

它的设计按软件工程的方法进行,系统具有良好的界面;必要的交互信息;简约美观的效果。使用人员能快捷简单地进行操作。即可单机按钮进行操作,也可直接通过键盘直接输入。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

(1)包含的功能有:加、减、乘、除运算,开方、求倒数等功能。

(2)计算器上有数字0—9,加、减、乘、除等。

(3)制定高级按钮控件,该按钮具有不规则的形状,可以根据用户鼠标的位置和单击状态的不同,显示不同的颜色。

(4)制定高级编辑控件,该编辑控件可以指定文本文字的字体和颜色。

(5)输入的原始数据、运算中间数据和结果都显示在窗口顶部的同一个标签中。

(6)实现对话框的扩展功能。

(7)计算功能基本上是用系统内部函数。

(8)程序可以能自动判断输入数据的正确性,保证不出现多于一个小数点、以0开头等不正常现象。

(9)“C E”按钮可以清除所有已输入的数据从头计算

3.1.2 系统功能

本系统需要实现以下功能:加、减、乘、除、余运算、倒数、乘方运算、开方运算、正弦函数运算、余弦函数运算、正切函数运算、余切函数运算、反正弦函数运算、反余弦函数运算、反正切函数运算、反余切函数运算,各进制之间的转换,能输入正负数、小数,具有清零、退格功能,具有连续运算的能力。

3.2 系统大概

3.2. 1设计思路

利用VC++6.0中的应用程序向导(AppWizard)工具创建Windows应用程序。AppWizard在创建新项目时提供了应用程序框架,自动生成框架程序的源文件,用户不必从开头开始编写代码就能很快地构建出程序原型。在AppWizard提供的应用程序框架的基础上,进行创建对话框,丰富用户界面,添加控件等操作,然后为所建好的用户界面增加响应消息,以及完成运算所需要的代码。

3.2.2 计算器运算流程图

图3-1计算器运算流程图

4 系统的实现

4.1 窗口的设计

4.1.1 设计步骤

打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名TestCalculatorDemo及其所在位置,点击确定,如图4-1所示。

图4-1新建MFC AppWizard[exe]工程

将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成,如图4-2所示。

这样,MFC AppWizard就建立了一个基于对话窗口的程序框架,如图4-3所示。

图4-3 新建的对话框

(1)创建控件

1)在图4-4所示的Resoure View选项卡中打开Dialog资源组,双击IDD_

TESTCALCULATORDEMO_DIALOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“1”为例进行介绍,其他按钮的创建可参照此进行操作。

图4-4 TestCalculatorDemo资源组

2)在图4-3中Controls的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit属性对话框,如图4-5所示,在该对话框中输入ID属性。

图4-5 Edit属性

3)在图4-6中Controls的“Button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出Push Button属性对话框,如图4-7所示,在该对话框中输入控件的ID值和标题属性。

图4-7 Push Button

按照上面的操作过程编辑其他按钮和编辑框等对象的属性。

(2)连接变量和代码

1) 给编辑框连接变量。在编辑框上单击鼠标右键,在弹出菜单中选择ClassWizard 菜单项,弹出MFC ClassWizard对话框,选择Member Variables选项卡,如图4-8所示。

图4-8 MFC ClassWizard对话框中的Menber Variable选项卡在Control IDs列表框中选择IDC_SHOW,单击Add Variables按钮,在弹出的对话框中连接变量m_num。变量类型设定为doubel型。如图4-9所示。

图4-9 m_num属性设置

2) 给“1”按钮连接代码。在“1”按钮上单击鼠标右键,选择ClassWizard菜单项,在弹出的对话框中选择Messages Maps选项卡,然后在Object IDs列表框中选择IDC_ADD_BUTTON,在Messages列表框中选择BN_CLICKED项,即选择单击按钮事件,如图4-10所示。

图4-10“1”按钮链接代码对话框

4.1.2 部分控件的意义

如表4-11(只列举一部分控件)

4.1.3 部分操作截图计算器界面:

求sin30:

4.2 程序核心代码

4.2.1 二进制转换代码

void CCalculatorDemoDlg::OnTo2()

{

// TODO: Add your control notification handler code here

if (!b_Start)

{

return;

}

char temp[10];

GetDlgItemText(IDC_EDIT_SHOW,temp,10);

int num=atoi(temp);

itoa(num,temp,2);

SetDlgItemText(IDC_EDIT_SHOW,temp);

}

4.2.2 backspack函数代码

v oid CCalculatorDemoDlg::OnBtnSpace()

{

// TODO: Add your control notification handler code here if (!b_Start)

{

return;

}

double num;

CString temp;

int len;

CHAR temp_ch[32];

GetDlgItemText(IDC_EDIT_SHOW,temp);

//AfxMessageBox(temp);

num=atof(temp);

sprintf(temp_ch,"%g",num);

num=0;

//AfxMessageBox(temp_ch);

len=strlen(temp_ch);

int te_i=len-1;

if(temp_ch[te_i]=='.')

te_i-=1,b_Hasport=FALSE;

temp_ch[te_i]='\0';

//////////////////////////////////////////////////////////////////////////

//AfxMessageBox(temp_ch);

if (strlen(temp_ch)==0)

{

temp_ch[0]='0';

temp_ch[1]='\0';

}

//////////////////////////////////////////////////////////////////////////

sscanf(temp_ch,"%lf",&num);

temp.Format("%g",num);

//AfxMessageBox(temp);

SetDlgItemText(IDC_EDIT_SHOW,b_Hasport?temp:temp+"."); }

4.2.3 arcsin函数

void CCalculatorDemoDlg::OnArcsin()

{

// TODO: Add your control notification handler code here

if (!b_Start)

{

return;

}

double num;

double pi=3.1415926535;

CString temp;

GetDlgItemText(IDC_EDIT_SHOW,temp);

num=atof(temp);

num=asin(num);

num=(num/pi)*180;

temp.Format("%lf",num);

if (temp.Find('.')==-1)

SetDlgItemText(IDC_EDIT_SHOW,temp+".");

else

SetDlgItemText(IDC_EDIT_SHOW,temp);

}

4.2.4 log10函数代码

void CCalculatorDemoDlg::OnLog10()

{

// TODO: Add your control notification handler code here if (!b_Start)

{

return;

}

double num;

CString temp;

GetDlgItemText(IDC_EDIT_SHOW,temp);

num=atof(temp);

num=log(num);

temp.Format("%lf",num);

if (temp.Find('.')==-1)

SetDlgItemText(IDC_EDIT_SHOW,temp+".");

else

SetDlgItemText(IDC_EDIT_SHOW,temp);

}

4.2.5 π函数代码

void CCalculatorDemoDlg::OnPi()

{

// TODO: Add your control notification handler code here CString tem_i;

tem_i.Format("%f",3.1415926535);

CString temp;

//第一次输入

if (!b_Start)

{

cs_Num[m_i]=tem_i;

b_Start=TRUE;

SetDlgItemText(IDC_EDIT_SHOW,cs_Num[m_i]);

if (!b_Hasport)

{

GetDlgItemText(IDC_EDIT_SHOW,temp);

temp+=".";

SetDlgItemText(IDC_EDIT_SHOW,temp);

}

return;

}

cs_Num[m_i]+=tem_i;

SetDlgItemText(IDC_EDIT_SHOW,cs_Num[m_i]);

if (!b_Hasport)

{

GetDlgItemText(IDC_EDIT_SHOW,temp);

temp+=".";

SetDlgItemText(IDC_EDIT_SHOW,temp);

}

}

5 系统运行

5.1 运行界面

java简单计算器源代码

简单计算器代码 package calcultorthree; import java.awt.BorderLayout;//导入边界布局管理器类 import java.awt.GridLayout;//导入网格布局管理器类 import java.awt.TextField;//导入文本区域类 import java.awt.event.ActionEvent;//导入事件类 import java.awt.event.ActionListener;//导入事件监听者类 import javax.swing.JButton;//导入按钮类 import javax.swing.JFrame;//导入窗体 import javax.swing.JPanel;//导入面板 /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 * @author Fjsh */ public class CalcultorThree { //新建对象,在构造函数中进行初始化 JFrame frame;//新建窗体对象 JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=” JButton buttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮“0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanel panelwest,panelcenter,paneleast;//新建三个面板 TextField tf;//新建文本区域对象 public CalcultorThree(){ //初始化对象 tf=new TextField(30);//构造空文本字段,字符宽度为30 frame =new JFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

JAVA实现计算器课程设计

JAVA实现计算器课程设计 计算机科学系 计应0701班 指导老师:刘其昌 设计人员:陈秀桃 设计日期:2009年11月10日——2009年12月20日 计算器的设计 目录 第一章绪 论 ..................................................................... .. (2)

1.1 开发环 境 ..................................................................... . (2) 1.2 基本功能介 绍 ..................................................................... ......... 2 第二章系统设 计 ..................................................................... (3) 2.1 系统流程 图 ..................................................................... . (3) 2.2 系统功能框 图 ..................................................................... (3) 2.3 需求分 析 ..................................................................... ................ 4 第三章软件设 计 ..................................................................... (5) 3.1 界面设 计 ..................................................................... . (5) 3.2 代码设 计 .....................................................................

科学计算器程序Java代码

科学计算器程序Java代码

MC:清除独立内存里的数字 MR:读出独立内存数字 MS:将显示数字保存到独立内存,并取代内存中原有数字 M+:将显示数字向独立内存累加 (独立内存是一个临时寄放数字的存储器,方便计算) CE:纠错键(CLEAR ERROR).输入数字有错,按它可以重新输入 C:表示清零,将计算器恢复到开机状态 功能举例: 源程序如下: import java.awt.BorderLayout;

import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField; public class Calucator extends JFrame { private JTextField tf; private JPanel panel1, panel2, panel3, panel4; private JMenuBar myBar; private JMenu menu1, menu2, menu3; private JMenuItem editItem1, editItem2, help1, help2, help3; private JRadioButtonMenuItem seeItem1, seeItem2;//单选框 private JCheckBoxMenuItem seeItem3;//复选框 private ButtonGroup bgb; private String back; private boolean IfResult = true, flag = false;

用JAVA设计一个科学型计算器

题目:设计一个Windows计算器。 摘要 在当今这个网络的时代,我找了好多java的代码材料。修改后程序是一个图形界面的java计算器,其界面主要采用了awt包,程序实现了: (1)实现简单加、减、乘、除的运算。 (2)实现除了加、减、乘、除按钮外其他按钮功能。 (3)给软件添加一个编辑、查看、帮助的主菜单。 (4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。 (5)科学型计算器与标准计算器之间的菜单切换。 关键字:java程序编辑器面向对象计算器 目录 第1章概要设计 (8) 1.标准型计算器界面设计 (8) 第2章程序整体设计说明 (10) 2.1程序中所用到的变量 (10) 2.2程序部分源代码及注释 (11) 3章程序运行效果 (22) 3.程序运行主界面 (22) 3.程序中各按钮运行界面 (24) 3.本章小节 (26) 作业结论 (26) 第1章概要设计 1.1标准型计算器界面设计 1.1.1 JAVA文件的建立 (1)建立一个名称为“java”Java工程, package文件包名称为 :scr;计算器主类:Calculator。 (2)界面的设计:

图1.1标准型计算器界面 图 1.2 图1.3 (3)保持代码简洁 复杂代码写后不易理解,在修改和重写上难度比较大,使工作更加复杂,所以编写代码时应保持代码的简洁易懂。 数字按钮字体和颜色设置 功能按钮字体和颜色设置

(4)功能实现 在整个设计中要保持完整性,能够实现计算器中最基本的功能,如加、减、乘、除等。 1.1.2明确任务 用java编写一个简单的计算器,使其能够实现最基本的功能,如简单的加、减、乘、除;平方根,倒数,余数,三角函数,多数连续运算,科学计数法等功能。 第2章程序整体设计说明 2.2 程序部分源代码及注释 (1)复制菜单的功能创建代码如下: (2)粘贴菜单的功能创建代码如下:

java图形化界面实现简单计算器

学号 天津城建大学 Java 语言程序设计C 实验报告 实验5:计算器 学生姓名路江飞 班级11卓越7班 一、实验目的 1.掌握Java图形组件与布局管理器的使用; 2.掌握使用Java事件处理机制的使用; 3.掌握图形界面的各种控件的使用,如:标签、文本框、按钮、复选框、列表框、窗框等。 二、实验要求 1.采用布局管理器进行界面的布局; 2.学会对不同的事件用相应的事件处理器; 3.写出实验报告。要求记录编译与执行Java程序当中的系统错误信息提材示,并给出解决办法。 三、实验内容 1.在随堂练习的简单计算器基础上设计一个多功能计算器。包括复杂的功能:比如记忆功能,三角函数,成方,对数等等。 五、实验结果 文件1: package computer; import java、awt、BorderLayout; public class Compuer extends JFrame { private JPanel contentPane; private JTextField textField; private JTextField textField_1;

private JTextField textField_2; private JTextField textField_3; /** * Launch the application、 */ public static void main(String[] args) { EventQueue、invokeLater(new Runnable() { public void run() { //运行程序时,点击按钮输入公式,当点击等于号时显示出计算结果 try { Compuer frame = new Compuer(); frame、setVisible(true); Time time=new Time(); time、setTime(frame、textField_3); Thread thread=new Thread(time); thread、start(); } catch (Exception e) { e、printStackTrace(); } } }); } /** * Create the frame、 */ public Compuer() { setTitle("\u8BA1\u7B97\u5668"); setName(""); final StringBuffer s=new StringBuffer(); setDefaultCloseOperation(JFrame、EXIT_ON_CLOSE); setBounds(100, 100, 412, 448); contentPane = new JPanel(); contentPane、setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane、setLayout(null); textField = new JTextField(); textField、setEnabled(false); textField、setLocale(Locale、UK); textField、setForeground(Color、PINK); textField、setText(" \u6B22\u8FCE\u4F7F\u7528\u8BA1\u7B97\u5668"); textField、setBounds(10, 20, 368, 30); contentPane、add(textField);

java编写的简单的计算器程序

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化

参考代码: import java.awt.*; import https://www.doczj.com/doc/9a18373779.html,ng.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; import java.text.DecimalFormat; public class Calculator implements ActionListener { //导入动作监听接口 //设计面板中的单位 JFrame frame; JTextField textAnswer; JPanel panel, panel1, panel2, panel3; JMenuBar mainMenu; JTextField textMemory; JLabel labelMemSpace; //labelMemSpace单纯做摆设,控制面板的形状 JButton buttonBk, buttonCe, buttonC; JButton button[]; JButton buttonMC, buttonMR, buttonMS, buttonMAdd; JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul, buttonDiv, buttonMod; JButton buttonSqrt, buttonDao, buttonEqual; JMenu editMenu, viewMenu, helpMenu; JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp, aboutCal; DecimalFormat df; //设置数据输出精度 boolean clickable; //控制当前能否按键 double memoryd; //使用内存中存储的数字 int memoryi; double vard, answerd; //用来保存double型数据的中间值(vard)和最后结果(answerd)

Java带计算过程的计算器课程设计报告

保存计算过程的计算器 Java程序设计课程设计报告保存计算过程的计算器 目录 1 概述.............................................. 错误!未定义书签。 1.1 课程设计目的............................... 错误!未定义书签。 1.2 课程设计内容............................... 错误!未定义书签。 2 系统需求分析.......................................... 错误!未定义书签。 2.1 系统目标................................... 错误!未定义书签。 2.2 主体功能................................... 错误!未定义书签。 2.3 开发环境................................... 错误!未定义书签。 3 系统概要设计.......................................... 错误!未定义书签。 3.1 系统的功能模块划分......................... 错误!未定义书签。 3.2 系统流程图................................. 错误!未定义书签。4系统详细设计........................................... 错误!未定义书签。 5 测试.................................................. 错误!未定义书签。 5.1 测试方案................................... 错误!未定义书签。 5.2 测试结果................................... 错误!未定义书签。 6 小结.................................................. 错误!未定义书签。参考文献................................................ 错误!未定义书签。附录................................................ 错误!未定义书签。 附录1 源程序清单...................................... 错误!未定义书签。

Java科学计算器程序代码

计算器布局显示: 功能举例: ①13+20=33 ②-7*14=-98:先输入7,再单击-/+将其变成负数,然后依次单击×号、14与= ③7!=5040 ④sin30°=0.5:先输入30,然后按下′″按钮转换成角度值,再按下sin即可显示结果 ⑤sqrt(4)=2:利用鼠标点击4后再点击sqrt按键即可显示结果 ⑥2*π=6.2832 …… 源程序如下: import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.DecimalFormat; import javax.swing.BorderFactory; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBoxMenuItem; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JRadioButtonMenuItem; import javax.swing.JTextField;

计算器 java程序设计..

目录 1.课程设计目的 (2) 2.设计题目分析 (2) 2.1 题目简介 (2) 2.2 设计要求及需求分析 (2) 3.课程设计内容 (3) 3.1 总体设计 (3) 3.2计算器功能模块设计 (4) 3.3计算器算法流程设计 (4) 3.4类的设计 (5) 3.5代码实现: (6) 3.5 设计结果与分析 (8) 4.设计心得与总结 (10) 参考文献: (10) 附录: (11)

1.课程设计目的 通过课程设计把知识形成系统,把自己所学的知识在实际问题中加以运用。如果自己编写的程序能够给更多的人带来方便,并且得到人们的好评,那么自己编写的程序就可以实现商品化,形成产品给更多的人利用,并实现一定的商品价值。 因此本次课程设计有目的有以下几点: (1)复习巩固java语言的基础知识,进一步加深对java语言的理解和掌控。 (2)提供一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机结合起来,锻炼我们的分析解决实际问题的能力。提高我们适应实际,实践编程的能力。 (3)培养我们在项目开发中创新意识及能力,通过亲身实践,利用所学编写简单的面向对象程序,提高对面向对象及JAVA语言的理解。 2.设计题目分析 2.1 题目简介 设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算、设计的计算器应用程序可以完成家法、减法、乘法、除法。 2.2 设计要求及需求分析 设计要求:由于现代用户更倾向于由鼠标方便操作的图形用户界面,所以我们采用GUI来实现计算器,并采用Swing组件,AWT事件处理等实现具体功能。 背景需求分析:在我们日常生活中,计算开支、收入时,大额数字或是多倍小数的计算都需要计算器的帮助,而在学习一些科目时,也常常要处理数字。虽然现在的计算器价格比较低廉,但是功能过于简单的不能满足个人需求,功能多的价格较贵,不仅操作不便,很多功能也根本用不到。所以我们想用自己所学设计开发一个属于自己的简单计算器来完成日常学习生活的需求。

Java课设 模拟科学计算器

Java课程设计 设计题目模拟科学计算器 班级计本1120班 姓名王XX 学号 1162042000

一、设计目的 《Java课程设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高自身的应用能力。 二、设计任务 模拟科学计算器 要求:界面模拟Windows中的计算器程序。 实现基本数学运算、函数等功能:加、减、乘、除、阶乘、正弦、余弦和指数运算。 实现要点:添加相关组件并进行按钮事件处理。 三、课题设计思想 对于此计算器程序,首先要设计其GUI界面,总体界面有一个文本框,22个按钮,总体界面用BorderLayout布局。 文本框放置在最north,然后0到9以及+,-,×,÷,.,!的按钮放置到一个面板Panel中,添加到整体布局的center,最后sin,cos,^,=的按钮放在最south,界面设计完成。 本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个小功能:点击按钮中的数字键和

运算符键就能进行加、减、乘、除阶乘、正弦、余弦和指数运算。还能通过用户自己在文本框中输入数字,进行简单运算;如果输入有误时可以按Clear撤销后重新输入新数据。 四、设计内容 1.需求分析 本项目需要实现一个具有四则运算的计算器,能够实现基本的加、减、乘、除运算,以及其他的辅助功能(阶乘、正弦、余弦、指数运算);界面简洁实用,模拟Windows中的计算器程序,要提供主要的设计思路、类的设计。 2.总体设计 (1)包的描述 本程序导入了 java.awt.BorderLayout包, java.awt.Color包, java.awt.GridLayout包, java.awt.event.ActionEvent包, java.awt.event.ActionListener包, java.text.DecimalFormat包, javax.swing.JButton包, javax.swing.JFrame包, javax.swing.JPanel包, javax.swing.JTextField包

java编写简单计算器源代码

import javax.swing.*; import java.awt.event.*; import java.awt.*; import https://www.doczj.com/doc/9a18373779.html,ng.Math; class ring extends JFrame implements ActionListener { //定义成员变量: //JFrame frame;//定义一个窗口类; JTextField text;//定义一个文本框类; JLabel label;//定义一个标签类; JPanel p1,p2,p3,p4,p5,p6;//定义面板类; String s1,s,s2;//定义三个字符串变量; int count=0; JButton a1,a2,a3,a4,a5,a6,b1,b2,b3,b4,b5,b6,c1,c2,c3,c4,c5,c6,d1,d2,d3,d4 ,d5,d6; //ring的构造函数; ring() { this.setTitle("计算器"); // super("计算器"); JMenuBar menubar1=new JMenuBar();//新建菜单条; this.setJMenuBar(menubar1); JMenu menu1=new JMenu("编辑(E)"); JMenu menu2=new JMenu("查看(V)"); JMenu menu3=new JMenu("帮助(H)"); menubar1.add(menu1); menubar1.add(menu2); menubar1.add(menu3); JMenuItem item1=new JMenuItem("复制(c) ctrl+c"); JMenuItem item2=new JMenuItem("粘贴(p) ctrl+v"); JMenuItem item3=new JMenuItem("标准型(T)"); JMenuItem item4=new JMenuItem("科学型(s)"); JMenuItem item5=new JMenuItem("数字分组(I)"); JMenuItem item6=new JMenuItem("帮助主题(H)"); JMenuItem item7=new JMenuItem("关于计算机(A)"); menu1.add(item1); menu1.add(item2); menu2.add(item3); menu2.add(item4); menu2.add(item5); menu3.add(item6);

java课程设计计算器3科学计算器

import javax.swing.*;// 把 javax包里面的swing包里面的所有东西引进来 import java.awt.*;// 导入awt包里的所有java类 import java.awt.event.*;//导入包event import java.text.DecimalFormat;// 处理文本、日期、数字和消息的类和接口 import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.geom.Point2D; public class biaozhunjisuanqi extends JFrame implements ActionListener {// public代表该类公有 //class声明一个类 // biaozhunjisuanqi为类名 // extends 是继承类 //implements代表实现接口 //窗体名称biaozhunjisuanqi继承JFrame类和ActionListener接口,并实现public void actionPerformed(ActionEvent e){}方法 private static final long serialVersionUID = 1L;// serialVersionUID相当于java类的身份证, 默认为1L, serialVersionUID作用是序列化时保持版本的兼容性,即在版本升级时反序列化仍保持对象的唯一性 private JPanel jContentPane = null; // 创建面板对象, null代表为这些变量赋初值为空,即不分配内存空间,变量不指向任何地址。private是访问控制符,代表这些变量的访问级别为私有,私有级别只能在当前类中进行访问, 这些(JPanel 、JTextArea 、JPanel、 JButton )是java中AWT(包)中的类,用能进行桌面级应用程序的开发,就像平时用的word,上面有各种文本框,菜单栏,工具栏按钮等等,这些都是对象 private JPanel jPanel= null; //JPanel 作为一个容器,可以包容一些组件,然后将这个 JPanel

计算器程序java

1课程实习内容概述 1.1 目的及任务 成功的Java课程设计是其课程学习到位的一个重要体现,通过课程设计使学生更加掌握JAVA语言编程的基础知识并能熟练运用。如: (1)、掌握Java开发面向对象的软件设计思想、方法及步骤; (2)、熟悉类声明与对象的使用,并进一步强化类的定义,掌握类的继承、接口以及变量、数组的应用; (3)、了解JAVA语言的图形用户界面的设计知识,并运用JAVA 编写简单计算器程序。 2 程序实现的基本思想 2.1 问题分析 编写一个简单计算器程序,它要具有0~9数及π的输入、加、减、乘、除、开根号、正三角反三角函数、e^x、ln(x)、lg(x)、tanh、角度和弧度的转换、删除、清空的功能。 2.2 总体设计 (1)、首先要设计其GUI界面,总体界面有一个文本框,共有32个按钮,总体界面用BorderLayout布局。 (2)、文本框放置在总体界的NORTH; (3)、0到9以及“.”=的按钮放置到一个面板Panel1中,并用GridLayout(4,3)来布局,再将其添加到一个面板panel_center中,最后将panel_center面板放进整体布局的CENTER; (4)、将正三角反三角函数、e^x、ln(x)、lg(x)、tanh、角度和弧度的转换等12个按钮放置到一个面板Panel3中,设计其按键字体为蓝色,并用GridLayout(4,3)来布局,再将其放进整体布局的WEST; (5)、将+、-、 *、/、 2√、π、以及删除和清空等8个按钮放置到一个面板Panel2中,设计其按键字体为蓝色,并用GridLayout(4,2)来布局,再将其放进整体布局的EAST中,界面设计完成。

简易计算器Java实训报告

实训报告书实训名称:Java程序设计实训 系(部):信息工程系 专业班级:计算机科学与技术 学生姓名: 学号: 指导教师:张民 完成日期:2015.12.11 山东科技大学泰山科技学院

课程实训报告书

目录 1 实训目的 (3) 2 简易计算机的分析与设计 (3) 2.1 系统功能描述 (3) 2.2 系统模块设计 (3) 2.3 数据库结构设计 (4) 3 主要代码清单 (5) 4 程序运行与测试 (9) 5 实训总结 (11)

简易计算机的设计与实现 1 实训目的 通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。 给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。 除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。 至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryString(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。 当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现! 2 简易计算机的分析与设计 2.1 系统功能描述 1)可进行“+”、“-”、“*”、“/”以及混合运算。 2)支持()改变运算的优先级 3)可进行二、十六和十进制数的相互转换 4)支持复制和粘贴操作 2.2 系统模块设计 (1)加法 两个数据进行加操作,可以为小数。 (2)减法 两个数据进行减操作,可以为负数相减。( 3)乘法

java简单计算器源代码

j a v a简单计算器源代码集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

简单计算器代码packagecalcultorthree; /** *本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。熟悉java的同学,可以在此基础上实现更复杂的功能。 *@authorFjsh */ publicclassCalcultorThree{ //新建对象,在构造函数中进行初始化 JFrameframe;//新建窗体对象 JButtonbuttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”JButtonbuttonplus,buttonminus,buttonmultiple,buttondevision, buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButtonbuttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix, buttonseven,buttoneight,buttonnine;//新建数字按钮 “0”“1”“2”“3”“4”“5”“6”“7”“8”“9” JPanelpanelwest,panelcenter,paneleast;//新建三个面板 TextFieldtf;//新建文本区域对象 publicCalcultorThree(){ //初始化对象 tf=newTextField(30);//构造空文本字段,字符宽度为30 frame=newJFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”

计算器设计的java课程设计报告

】 · ( 华东交通大学课程设计 课 程: Java 程序设计 题 目: 计算器设计 年 级: 2010级 专 业: 信息一班 * 学 号: 姓 名: 组 员: 指导教师: 课程设计题目:计算器设计

课程设计(论文)任务书 基础学院信息与计算科学专业2010—1 班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自2013 年 6 月23日起至2013 年6月27日止。 三、课程设计(论文) 地点: 计算机中心 · 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 ' 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; > (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; [ 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献:

java课程设计 计算器实际与实现

《面向对象程序设计》 课程设计报告 题目: 计算器设计与实现 专业: 班级: 姓名: 指导教师: 成绩: xx 201x 年 x 月xx 日 xxxxxx

目录 1 设计内容及要求 (1) 1.1设计内容 (1) 1.2设计任务及具体要求 (1) 2 概要设计 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 设计过程 (2) 3.2系统功能模块 (3) 4 设计结果与分析 (4) 4.1功能模块的划分 (4) 4.2功能模块的实现 (4) 小结 (10) 5 参考文献 (11)

1 设计内容及要求 1.1设计内容 该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等) 1.2设计任务及具体要求 计算器的设计与实现,使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。 2 概要设计 2.1 功能需求 在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。

简易计算器Java实训报告

实训名称: Java程序设计实训 系(部):信息工程系 专业班级:计算机科学与技术学生姓名: 学号: 指导教师:张民 完成日期:

山东科技大学泰山科技学院

目录 1 实训目的 (2) 2 简易计算机的分析与设计 (2) 系统功能描述 (2) 系统模块设计 (2) 数据库结构设计 (3) 3 主要代码清单 (4)

4 程序运行与测试 (8) 5 实训总结 (10)

简易计算机的设计与实现 1 实训目的 通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。利用Java Applet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。 给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。 除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。 至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。 当然了在输入数据时还要进行异常捕捉,防止越界的现象的发生,这也是Java语言健壮性的体现! 2 简易计算机的分析与设计 系统功能描述 1)可进行“+”、“-”、“*”、“/”以及混合运算。 2)支持()改变运算的优先级 3)可进行二、十六和十进制数的相互转换 4)支持复制和粘贴操作

计算器java课程设计(完整版)

目录 一、课设任务及要求 (1) 二、需求分析 (2) 三、设计思路 (3) 四、详细设计 (4) 五、运行调试与分析讨论 (14) 六、设计体会与小结 (18) 七、参考文献 (19)

一、课设任务及要求 1)课设任务: ⑴、设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); ⑵、有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、需求分析 ⑴、开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。 ⑵设计思路 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 ⑶设计效果图 设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed 事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。设计的界面如下: 图1 计算器运行界面

相关主题
文本预览
相关文档 最新文档