大学java课程设计实验报告_计算器
java简易计算器实训报告(一)

java简易计算器实训报告(一)Java简易计算器实训报告实训目的通过编写一个简易的Java计算器,深入了解Java基础语法,并掌握对象的属性和行为。
实训过程本次实训采用Eclipse编写Java程序,具体过程如下:1.首先创建一个名为“Calaulator”的Java项目,再在其中创建一个名为“Calaulator”的类。
2.在Calaulator类中定义一个名为“calculate”的方法,此方法接收3个参数:一个char类型的操作符,两个double类型的操作数,返回值为double类型。
3.在方法体中根据传入的操作符进行相应的加、减、乘、除运算。
4.创建一个主函数,在其中调用calculate方法并输出结果。
实训收获通过本次实训,我掌握了Java的基础语法,并深入了解了对象的属性和行为。
同时,我还学会了如何使用Eclipse编写Java程序,提高了自己的编程水平。
实训总结Java语言作为一种强大而稳定的编程语言,具有广泛的应用场景。
通过本次实训,我深刻认识到Java的重要性,并希望能够在以后的学习中不断探索Java语言的更多使用方法。
实训反思在实训过程中,我发现自己对Java的基础语法了解不够深入,导致编写代码时遇到一些困难,需要不断查阅相关资料。
同时,在调试代码时也遇到了许多问题,发现自己对IDE的使用不够熟练,需要更多的实践和学习。
实训展望通过本次实训,我已经初步掌握了Java的基础语法和编程思想,但我认为这只是一个开始。
我需要不断地练习,深入了解Java的各种特性,将其应用到实际开发中。
未来,我希望能够成为一名优秀的Java工程师,为社会做出自己的贡献。
结语本次Java简易计算器实训让我收获颇丰,不仅加深了对Java的认识,也增强了自己的编程实践能力。
希望今后能够在Java的学习和实践中不断提高自己,取得更好的成果。
Java实验报告计算器

} else if (label.equals(COMMAND[1])) {
//用户按了"CE"键
resultText.setText("0");
} else if (label.equals(COMMAND[2])) {
//用户按了"C"键
handleC();
} else if ("0123456789.".indexOf(label) >= 0) {
/**计算器上的功能键的显示名字*/
private final String[] COMMAND = { "Backspace", "CE", "C" };
/**计算器左边的M的显示名字*/
private final String[] M = { " ", "MC", "MR", "MS", "M+" };
panel1.setLayout(new BorderLayout(3, 3));
panel1.add("North", commandsPanel);
panel1.add("Center", calckeysPanel);
//建立一个画板放文本框
JPanel top = new JPanel();
院系:计算机科学学院
专业:
年级:
课程名称:
姓名(学号):
指导教师:
2016年月日
年级
班号
组号
专业
实验名称
java计算器实验报告

java计算器实验报告面向对象编程(Java)综合实验检查单教师:*** 学期:学生信息学号姓名 2009110 ***院系计算机与信息工程学院年级 09级软件工程实验说明制作简易计算器实验名称:设计计算器描述(包括设计思想、实现步骤):一(计算器基本设计概述:一.设计包涵基本功能的计算器,功能包括:1. 基本的加减乘除运算。
2. 数据记忆保存清楚功能。
3. 鼠标、键盘的监听操作。
二(设计计算器面板,按钮包括:1.0到9十个基本数字按钮。
2.加减乘除运算符等号按钮,和小数点按钮。
3.Backspace按钮(后退) CE按钮(清零键)C按钮(归零键),MC按钮(清除内存) MS按钮(记忆数据),MR按钮(读取记忆数据),+/-按钮(正负)。
二(计算器程序设计步骤:1(设计public class Calculator extends JFrame implements ActionListener,KeyListener主类,主类继承JFrame,监听接口ActionListener,KeyListenerPanel型:Panel1 = new JPanel(),放置文本Panel2 = new JPanel() 放置按钮JTextField型:tfResult = new JTextField() 文本域用于显示计算过程及结果String型:recentNum = null; 保存最近运算数recentOperation = null保存最近运算符memory 保存记忆数据Boolean型:isNew 用于判断继续输入还是接着输入flag 用于判断是否存在记忆数据包涵public void addButton (Container c, String s)方法添加需要的按钮并实现监听,设置按钮字体,背景,并添加主类中继承的监听器public void actionPerformed(ActionEvent e)方法实现按键事件,string s 用于得到按键的字符else if(s.equals("=")) 调用void equalaction(ActionEvent e)实现数字运算按键M 将当前运算数赋给memoy,并改变flag状态按键m 将当前文本域设置为记忆memory中数据按键Q 将当前memory清除,并改变flag为初始状态void equalaction(ActionEvent e)方法处理数据运算,double last,now分别表示运算结果和当前运算数Double.parseDouble(recentNum)转换数据类型判断运算符号实现+,-,*,/,运算保存于last中,并显示在结果文本域中public Calculator()方法构造实现计算器的图形界面,实现窗口关闭。
Java课程设计报告计算器

Java课程设计报告-计算器第一部分设计的内容要求1.1 Windows自带计算器版面设计1.2计算器计算功能算法实现第二部分设计思想2.1根据图形用户界面设计方法设计计算器版面。
①容器类(窗口--Window类,面板--Panel类),框架类--Frame,Button类,Label类,TextField类等类的构造方法,菜单(菜单栏、菜单项)的建立于应用。
②事件处理机制:监听器类WinClose(),actionPerformed()。
2.2计算器计算功能实现,即按钮监听器的实现自定义变量:x,y为操作数,op为操作符。
根据单击按钮不同进行不同的操作,详见处理按钮单击事件方法actionPerformed(ActionEvent e)(计算功能算法)流程图。
第三部分详细设计3.2处理按钮单击事件方法actionPerformed(ActionEvent e)(计算器计算功能算法)流程图:第四部分运行效果图4.1运行初始图:4.2 计算功能测试图:-1+23.4 将textp中数据赋给yN Y单击”1”~”9”将单击数字插入到textp中数据后,并将textp中数据赋给y 将textp赋0,并str.stelength(0);结束4.2 数学分组功能测试图:第五部分心得与体会5.1 Java是一门实践性很强的编程语言,每学习到一个新的知识点应当及时动手编写程序,提高动手能力,加深对语言的理解。
5.2 根据Java图形用户界面设计方法设计计算器版面有很多种设计方法,学习过程中应灵活变通,使版面的设计更简单易懂。
5.3 本次设计的计算器还有不足之处,首先还没有实现科学型的计算功能,其次还没有键盘输入功能,因此还应继续努力,更加完善计算器的功能。
第六部分附录6.1计算器计算功能算法(按钮"="):if(e.getSource()==b26) // "="{str.setLength(0);switch(op){case 0 :if(flag==1)textp.setText(String.valueOf(x+y));else{str.setLength(0);str.append(x+y);fun();}break;case 1 :if(flag==1)textp.setText(String.valueOf(x-y)); else{str.setLength(0);str.append(x-y);fun();}break;case 2 :if(flag==1)textp.setText(String.valueOf(x*y)); else{str.setLength(0);str.append(x*y);fun();}break;case 3 :if(y==0){textp.setText("除数不能为零");str.setLength(0);y=0;}else{if(flag==1)textp.setText(String.valueOf(x/y)); else{str.setLength(0);str.append(x/y);fun();}}break;}}6.2 fun()函数(数学分组功能)public void fun(){flag=0;int t=0;StringBuffer temp;String sstr=str.toString();if(sstr.trim().indexOf("-")==1){temp=new StringBuffer(str.substring(1));t=1;}elsetemp=new StringBuffer(str.substring(0));if(sstr.trim().indexOf(".")==-1){int j=temp.length();for(int i=j;i>3;){temp.insert(i-3,",");i=i-3;}if(t==0)textp.setText(temp.toString());elsetextp.setText('-'+temp.toString());}else{int i=sstr.indexOf('.');StringBuffer s1=new StringBuffer(sstr.substring(0,i));StringBuffer s2=new StringBuffer(sstr.substring(i+1));for(int j=s1.length();j>3;){s1.insert(j-3,",");j=j-3;}if(t==0)textp.setText(s1.toString()+'.'+s2.toString());elsetextp.setText('-'+s1.toString()+'.'+s2.toString());}}。
java计算器设计报告

设计报告课题名称:计算器设计学院:专业班级:学号:学生:指导教师:教务处年月日学生指导教师课题名称JAVA计算器课程设计设计时间设计地点设计目的图形界面设计,熟悉java.awt包中的组件,掌握图形界面设计方法,理解委托事件处理模型。
从而检测对这门课的掌握情况,有助于及时查漏补缺。
1.1功能模块设计以下为标准计算器的基本功能:(1)加法两个数据进行加操作,可以为小数。
(2)减法两个数据进行减操作,可以为负数相减。
(3)乘法两个数相乘操作。
(4)除法两个数相除操作。
(5)开平方对任意一个数进行开方运算,可以是小数。
(6)百分号对任意一个数进行百分号运算。
(7)倒数对任意一个数进行倒数运算。
1.2标准计算器界面(图1-1)图1-1 1.3系统功能图(图1-2)2标准计算器演示(1)启动计算器(图2-1)图2-1(2)加法、乘法运算分别输入9和3然后分别计算其加法、乘法运算(图2-2,图2-3)图2-2(加法运算)图2-3(乘法运算)(3)开平方运算sqrt(图2-4)图2-4(4)百分号运算%(图2-5)图2-5(5)倒数运算1/x(图2-6)图2-63程序设计过程中的问题该设计目前还不太完整全面,在测试时有以下问题:1.在进行aqrt 、%、 1/x这三个运算后再输入数据就在文本框中继续输入,不能重新输入。
需要按下清零键才可继续输入下一数据再进行运算。
2.菜单栏中虽然设计了“查看—标准型、科学型、数字分组”以及“帮助—帮助主题、关于计算器”可是其功能并没有时间。
3.该计算器设计了有关内存的操作,可是并没有达到预期中的效果。
华北科技学院java课程设计报告--简易计算器

华北科技学院计算机系综合性实验
实验报告
课程名称 Java程序设计B 实验学期 2011 至 2012 学年第 1 学期学生所在系部计算机学院
年级 2011 专业班级
学生姓名学号
任课教师
实验成绩
计算机系制
实验报告须知
1、学生上交实验报告时,必须为打印稿(A4纸)。
页面空间不够,可以顺延。
2、学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、
内容、结果及分析等。
3、教师应该填写的内容包括:实验成绩、教师评价等。
4、教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合
性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。
综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。
任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。
5、未尽事宜,请参考该课程的实验大纲和教学大纲。
《Java程序设计B》课程综合性实验报告。
java课程设计计算器报告书软件工程

java课程设计计算器报告书软件工程1. 背景介绍近年来,Java编程语言已经成为软件开发的焦点,Java之所以如此受欢迎,原因在于它的可移植性和平台无关性。
随着Java应用的广泛使用,Java课程设计计算器已成为很多计算机专业学生的必修课程。
Java课程设计计算器是一种基于Java语言开发的计算器软件,可用于数学计算和常规计算。
Java课程设计计算器需要进行软件工程化的设计。
2. 项目描述Java课程设计计算器是一种基于控制台应用程序的计算机软件,它具有基本的算数操作,如加、减、乘、除和幂运算符。
Java课程设计计算器还支持三角函数,指数函数,对数函数,阶乘和平方根。
用户可以使用控制台输入表达式,然后查看计算结果。
Java课程设计计算器软件工程项目的目标是基于软件工程的概念和方法,对这个简单的计算器软件进行系统化的分析、构建和测试。
3. 团队成员本项目由四名成员组成,分别是Sophia、Peter、David和Rachel。
Sophia 是项目的组长,负责项目管理和实施工作。
Peter 是项目的技术主管,负责软件建模和设计工作。
David和Rachel 则是开发团队的核心部分,负责编写代码和测试工作。
4. 系统架构设计Java课程设计计算器采用MVC 模式来设计系统架构,系统包括Model、View 和Controller 三个部分。
- Model 部分:Model 是Java代码的核心部分,实现了计算器计算功能。
Model中包括Calculation 类,可以对输入的算式进行语法分析和计算,并返回计算的结果。
Calculation 类还包括ExpressionToken 和Operator 两个子类,用于完成数学表达式的分词和计算运算符的优先级。
- View 部分:View 用于将输入的算式和计算结果输出到用户的控制台界面。
在View 部分中包括CalculatorUI 类,接收用户输入,并在控制台中显示运算结果。
(完整word版)Java计算器实验报告

一、目标:通过Java程序开发实训使学生掌握《面向对象程序设计(Java)》课堂讲授的内容,灵活运用到Java程序的开发与设计中。
二、要求:按时参加Java程序开发实训训练,不得迟到和早退;独立完成程序设计;按要求撰写实践报告。
三、详细内容:使用《面向对象程序设计(Java)》课程讲授内容,编写一个简单的计算器,要求实现如下功能:1.进行图形界面设计通过图形界面设计,掌握JFrame类、JPanel类、5种布局管理器、文本框、标签及按钮的使用方法。
2.实现计算器的基本功能包括加减乘除四则运算、倒数、平方根及清除结果等功能。
3.实现计算器的存储计算功能包括存储中间结果(MS)、使用中间结果(MR)、累加中间结果(M+)及清除中间结果(MC)的功能。
4.计算器的扩展功能包括乘方、对数、正弦、余弦、正切、余切、反正弦、反余弦、反正切、反余切及2进制、8进制、16进制、10进制之间的相互转换等功能.四、源代码import java。
awt.BorderLayout;import java.awt.Color;import java。
awt.FlowLayout;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java。
awt.event.ActionListener;import java.awt。
event。
KeyEvent;import java.text.DecimalFormat;import javax。
swing.JButton;import javax.swing.JFrame;import javax。
swing.JLabel;import javax。
swing.JMenu;import javax.swing。
JMenuBar;import javax。
swing。
JMenuItem;import javax。
Java语言程序设计实训【计算器】

目录一、课程设计的目的与要求 (2)1.1 课程设计目的 (2)1.2 课程设计要求 (2)二、题目说明 (2)2.1 题目说明 (2)2.2 开发工具介绍 (2)三、总体设计 (3)3.1 系统开发平台 (3)3.2 系统结构图 (3)四、详细说明 (3)4.1 计算器主界面 (3)4.2 系统实施 (4)五、遇到的问题和解决方法 (9)六、总结 (10)七、参考文献 (10)附录(源程序代码) (11)八、教师评语 (20)一、课程设计的目的与要求1.1 课程设计目的1) 复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握。
2) 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力。
3) 培养学生在项目开发中团队合作精神,创新意识及能力。
1.2 课程设计要求◆功能要求:该程序显示GUI用户界面,至少能实现整数的加,减,乘,除四则运算.◆界面要示:用图形界面实现◆实训条件:计算机房◆硬件要求:装有Winxp等操作系统的机器◆软件要求: JDK、JCreator等开发工具二、题目说明2.1 题目说明随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。
文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的计算器,可以实现简单的运算功能,满足日常基本的工作学习和娱乐需要。
该程序是一个图形界面的简单的java计算器,使用人员能快捷简单地进行操作。
即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间。
可以进行简单的四则运算(加、减、乘、除,以及求倒数,求相反数),以及常用的数学函数(sin,cos,log,1/x,pow,sqrt,%,)和记忆处理功能,有退格,清零, 归零等应用。
界面颜色为白色,数字字体颜色为蓝色,函数及其他功能键为红色。
JAVA实训报告--计算器

JAVA实训报告--计算器《Java实训》设计报告专业:班级:学号:姓名:计算器软件技术09-23 090123037 范付明石家庄科技信息职业学院信息工程系20XX年10月15日《Java实训》设计报告项目简介项目名称项目简介计算器开发人员范付明本程序名称为计算器,主要功能是实现简单的数字,运算符号,计算,删除,复位等功能。
掌握计算器的各项基本功能掌握编写计算器程序的所用方法项目目的掌握Swing组件的应用掌握事件的应用 Java编程语言、javaSwing技术主要技术开发环境 _24 项目特点使用组件构建的C/S应用程序各项功能的组织合理搭配应用图标控制功能实现构建基于C/S架构的应用程序技术重点 Swing组件应用事件监听的应用方法的编写Swing组件的应用技术难点事件监听器的使用异常处理方法简便的选择《Java实训》设计报告项目名称一、项目需求本程序的主要功能:单击“计算器”上的数字按钮可以设置参与计算的运算数。
单击“计算器”上的运算符按钮可以选择运算符号。
单击“计算器”上的“=”按钮显示计算结果。
单击“计算器”上的“复位”按钮清空计算结果。
单击“计算器”上的“删除”按钮删除输入的最后一个数字。
二、项目设计在设计计算器时,编写2个Java源文件:、计算器除了上述Java源文件所给出的类外,还需要Java系统提供的一些重要类,如JButton,JTextField等。
下面是2个Java源文件的总体设计。
CalculatorWindow类负责创建计算器的主窗口,该类含有main方法,计算器从该类开始执行。
CalculatorWindow 类有4种类型的对象,分别是:LinkedList、NumberButton、JButton、JTextField。
NumberButton类创建的对象是主类CalculatorWindow 窗口的一个“数字”按钮。
NumberButton有一个int类型的成员temp,用于标明所创建的按钮所含有的运算符号。
JAVA课程设计报告-心得体会——计算器、文本编辑器

用Java设计计算器calculator内容提要:在本文构造实现了一个计算器擦亮calculator,主要内容包括:calculator的功能需求分析;calculator的基本设计思路和类的划分;calculator的具体实现。
关键字:Java、计算器calculator引言:设计实现一个Java应用程序的过程如下:(1)功能需求分析;(2)设计和类划分;(3)代码编写实现。
本文就按照这个步骤来实现计算器calculator的制作。
正文:1.calculator功能需求分析作为计算器,至少应该具备以下几点功能:(1)计算器要有GUI界面。
(2)能运算小数,并且不会产生精度损失。
(3)用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算和混合运算。
(4)允许正负数间的运算。
(5)可以求一个数值的平方及倒数,可以进行阶乘运算。
(6)有菜单栏选项。
具体的功能需求和界面我们可以模仿微软公司出品的windowsXP中自带的计算器。
如图一:图一windows XP 中的计算器界面图2.calculator基本设计思路和类划分基于第1节中提出对于calculator功能需求的分析,对这个应用程序设计划分类如下:(1)calculator:这个类的功能是实现一个框架(2)calculatorFrame:这个类作为主类,实现主要功能:运算,按钮排布,菜单,颜色设置,文本显示3.calculator的具体实现3.1 calculator类的设计calculator用来定义一个计算器的框架1.主要方法下面以表格的形式列出calculator类至少应该具有的方法和功能描述(如表一所示)。
方法功能描述static void main (String args[]) calculator应用程序的入口,是主方法3.2 calculatorFrame类的设计calculatorFrame类实现整体功能,包括窗体的初始化、各种用户事件监听和响应(菜单、运算、结果显示等等)。
Java课程设计实验报告21565

Java课程设计报告课目:计算器学院:基础学院班级:光信息2009-1 学生:指导教师:丁振凡晓瑞辅导教师:江宇完成时间:2010年7月1日课程设计(论文)任务书基础学院光信息专业2009-1班一、课程设计(论文)题目:计算器二、课程设计(论文)工作:自2010 年6 月28 日起至2010 年 7月4日止三、课程设计(论文) 地点: 8-606四、课程设计(论文)容要求:1.本课程设计的目的1)使学生掌握软件开发的基本工作流程;(2)巩固JAVA程序设计课程所学的容;(3)培养学生的计算机思维能力以及合作的精神;(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。
2.课程设计的任务及要求1)基本要求:(1)研究课程设计任务,并进行系统需求分析;(2)对系统进行总体设计,分解系统功能模块,进行任务分配,以实现分工合作;(3)实现各功能模块代码;(4)组装各模块,并测试、完善系统。
2)创新要求:在基本要求达到后,可进行创新设计,如改进界面、增加功能或进行代码优化.3)课程设计论文编写要求1)要按照书稿的规格打印誊写课程设计论文(2)论文包括封面、设计任务书(含评语)、摘要、目录、设计容、设计小结(3)论文装订按学校的统一要求完成4)参考文献:[1]杜春涛《面向对象程序设计—Java语言》中国铁道出版社[2]丁振凡《Java语言实用教程》北京邮电大学出版社5)课程设计进度安排容天数地点系统总体设计 1 实验室软件设计及调试 2 实验室、图书馆答辩及撰写报告 2 实验室、图书馆学生签名:2010年7月3日课程设计(论文)评审意见(1)课程设计过程(20分):优()、良()、中()、一般()、差();(2)是否完成调试,系统运行效果(30分):优()、良()、中()、一般()、差();(3)回答问题(20分):优()、良()、中()、一般()、差();(4)课程设计报告(30分):优()、良()、中()、一般()、差();(5)格式规性及考勤是否降等级:是()、否()评阅人:职称:教授2010年 7月5日计算机设计摘要我们设计的程序是一个GUI界面简单的Java计算机程序,具有良好的界面,使用人员能快捷就方便的进行操作,及时准确的获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。
java简易计算器实训报告

《Java课程设计》计划班级:物联网111班任课教师:一.设计目的1.通过课程设计把《Java程序设计》这门课所学的内容融会贯通,学会Java设计程序、开发应用软件的基本能力。
2.通过设计能使学生更好掌握JAVA面向对象基本编程技术和方法。
3.培养学生查阅文献资料及编写技术报告的能力。
二.设计题目简易科学计算器内容:(1)通过菜单可以切换简易计算器和科学计算器。
简易计算器:实现连续的+、-、*、/运算,计算功能符合四则运算法。
科学计算器:至少包括开方、平方、幂运算、1/n等操作。
(2)图形用户界面美观、布局合理、功能操作简便。
三.设计要求《Java课程设计》是物联网专业学生在完成《Java程序设计》课程学习后进行的一门专业实践课程,是培养学生综合运用所学知识解决专业相关问题的重要环节,是对学生实际工作能力的具体训练和考察过程。
本次课程设计的题目使用Java语言来开发。
要求每个学生可以独立完成上述Java基础设计题目,同时可以通过同学间的讨论,共同编写比较复杂的综合课程设计题目。
希望学学能够努力实践,提高实际动手能力。
要求每个学生必须参加,并完成课程设计任务:(1)每个学生明确设计目的和要求,根据自己的实际情况选择一个题目,实际独立动手完成这个题目,编写出程序代码,并调试通过。
(2)每个学生必须在上机前做好充分准备,每次上机必须目的明确,事先编写好程序代码,要在规定的时间和地点上机调试。
要求利用MyEclipse开发工具调试通过(3)每个学生程序完成后撰写《Java课程设计报告》,按照《Java课程设计计划》后面附带的报告模版格式实际撰写。
(4)结果形式:程序文件压缩包一个,课程设计报告一份。
四.进度安排(1)准备阶段(1天):选择设计题目、了解设计目的要求、查阅相关资料。
(2)程序模块设计分析(1天):程序总体设计、详细设计(3)代码编写调试(2天):程序代码编写、调试、测试。
五.参考文献[1] 胡伏湘.Java程序设计实用教程(第2版).北京:清华大学出版社,2009[2] 叶核亚.Java程序设计实用教程(第3版).北京:电子工业出版社,2010[3] 耿详义. Java课程设计(第1版). 北京:清华大学出版社,2004六.成绩评定成绩按五级制评定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
下载可编辑 .专业.整理. JAVA课程设计报告 组员信息: 第(二)组 姓名 学号 职责 宋舟 20084042019 算法设计 何春伟 20084042025 界面实现 周沛 20084042021 代码编写 计算器的实现问题 问题描述:制作一个计算器 基本要求:要求实现类似Windows操作系统里面的标准计算器。在此基础上实现部分科学性的功能。
测试数据:分别对加、减、乘、除和sin、cos、tan函数进行测
试 算法思想:使用String定义的数组a[25]对每个按钮进行按钮赋值,创建一个Panel进行字符和数字的存放,调用addActionListener()对各个时间进行监听。调用系统库函数对数值进行运算。 模块划分:1、主函数main()创建一个计算器。 2、void actionPerformed(ActionEvent e)对鼠标点击的事件进行响应以及在文本框中的显示。 3、各Buuton对应的功能: “开方”:对输入数字开方 “平方”:对输入数字平方 下载可编辑 .专业.整理. “getResult()”:对四则运算进行分别运算操作 “backspace”:取消上一次的操作 “CE”:取消上一次运算的操作 “C”:清空作用 “sin”:对输入数据进行sin运算 “cos”:对输入数据进行cos运算 “tan”:对输入数据进行tan运算 “+/-”:对输入的数据取反 “+”,“-”,“*”,“/”:对数据进行四则运算 源程序: package hechongwei;
import java.lang.String; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; import java.lang.Math;
class Calculator extends JFrame implements ActionListener 下载可编辑 .专业.整理. {
JTextField tf = new JTextField(" "); String str1 = " ", str2 = " ", str3 = " "; // str1和str2存放两个输入的数
Panel pn1 = new Panel();// new 一个Panel存放符号与数字
String a[] = { "平方", "开方", "backspace", "CE", "C", "7", "8", "9", "/", "sin", "4", "5", "6", "*", "cos", "1", "2", "3", "-", "tan", "0", "+/-", ".", "+", "=" };// 用于对每个Button进行赋值
boolean frist = true;// 判断是否输入的为第一个字符 int operCount = 0; int i; // 统计符号的数目 下载可编辑 .专业.整理. String Operate = null;// 存放操作数的符号
boolean error = false; double num1 = 0.0, num2 = 0.0;// 两个输入的数作运算时转化为double存放
double result = 0.0;// 暂时保留计算结果 public Calculator() { super("简单计算机 "); tf.setHorizontalAlignment(JTextField.RIGHT);// 显示框中由右想左输出 tf.setEditable(false); Button b[] = new Button[25]; for (i = 0; i < 5; i++) { // 将符号加到对应的Button上 b[i] = new Button(String.valueOf(a[i])); pn1.add(b[i]); b[i].setActionCommand(a[i]); b[i].addActionListener(this);// 调用addActionListener()方法注册事件监听器 下载可编辑 .专业.整理. } for (i = 5; i <= 7; i++) { b[i] = new Button(String.valueOf(a[i])); pn1.add(b[i]); b[i].setActionCommand("number"); b[i].addActionListener(this); } b[8] = new Button(String.valueOf(a[8])); pn1.add(b[8]); b[8].setActionCommand("oper"); b[8].addActionListener(this); b[9] = new Button(String.valueOf(a[9])); pn1.add(b[9]); b[9].setActionCommand(a[9]); b[9].addActionListener(this); for (i = 10; i <= 12; i++) { b[i] = new Button(String.valueOf(a[i])); pn1.add(b[i]); b[i].setActionCommand("number"); b[i].addActionListener(this); } b[13] = new Button(String.valueOf(a[13])); 下载可编辑 .专业.整理. pn1.add(b[13]); b[13].setActionCommand("oper"); b[13].addActionListener(this); b[14] = new Button(String.valueOf(a[14])); pn1.add(b[14]); b[14].setActionCommand(a[14]); b[14].addActionListener(this); for (i = 15; i <= 17; i++) { b[i] = new Button(String.valueOf(a[i])); pn1.add(b[i]); b[i].setActionCommand("number"); b[i].addActionListener(this); } b[18] = new Button(String.valueOf(a[18])); pn1.add(b[18]); b[18].setActionCommand("oper"); b[18].addActionListener(this); b[19] = new Button(String.valueOf(a[19])); pn1.add(b[19]); b[19].setActionCommand(a[19]); b[19].addActionListener(this); for (i = 20; i <= 22; i++) { 下载可编辑 .专业.整理. b[i] = new Button(a[i]); pn1.add(b[i]); b[i].setActionCommand(a[i]); b[i].addActionListener(this); } b[23] = new Button(String.valueOf(a[23])); pn1.add(b[23]); b[23].setActionCommand("oper"); b[23].addActionListener(this); b[24] = new Button(String.valueOf(a[24])); pn1.add(b[24]); b[24].setActionCommand(a[24]); b[24].addActionListener(this); pn1.setLayout(new GridLayout(5, 5)); add(tf, "North"); // 界面的处理 add(pn1, "Center"); setSize(400, 300); setVisible(true); tf.setText("0.0"); addWindowListener(new WindowAdapter() { // 程序结束 public void windowClosing(WindowEvent e) { 下载可编辑 .专业.整理. System.exit(1); } }); }
public void actionPerformed(ActionEvent e) { Button temp = (Button) e.getSource(); try { if (e.getActionCommand().equals("number")) { if (frist) { str1 = str1 + temp.getLabel(); tf.setText(str1); // 将输入的str1在显示框中显示 } else { str2 = str2 + temp.getLabel(); tf.setText(str2);// 将输入的str2在显示狂中显示 } } else if (e.getActionCommand().equals("oper")) { if (str1 == " ") { operCount = 0;// 如果还没有输入数就点击运