大学java课程设计实验报告_计算器

合集下载

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实验报告计算器

Java实验报告计算器
handleBackspace();
} 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计算器实验报告面向对象编程(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课程设计报告计算器

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计算器课程设计设计时间设计地点设计目的图形界面设计,熟悉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课程设计报告--简易计算器

华北科技学院计算机系综合性实验
实验报告
课程名称 Java程序设计B 实验学期 2011 至 2012 学年第 1 学期学生所在系部计算机学院
年级 2011 专业班级
学生姓名学号
任课教师
实验成绩
计算机系制
实验报告须知
1、学生上交实验报告时,必须为打印稿(A4纸)。

页面空间不够,可以顺延。

2、学生应该填写的内容包括:封面相关栏目、实验地点、时间、目的、设备环境、
内容、结果及分析等。

3、教师应该填写的内容包括:实验成绩、教师评价等。

4、教师根据本课程的《综合性实验指导单》中实验内容的要求,评定学生的综合
性实验成绩;要求在该课程期末考试前将实验报告交给任课教师。

综合性实验中,所涉及的程序,文档等在交实验报告前,拷贝给任课教师。

任课教师统一刻录成光盘,与该课程的期末考试成绩一同上交到系里存档。

5、未尽事宜,请参考该课程的实验大纲和教学大纲。

《Java程序设计B》课程综合性实验报告。

java课程设计计算器报告书软件工程

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计算器实验报告

(完整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。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;// 如果还没有输入数就点击运

相关文档
最新文档