Java程序设计“简单计算器”

合集下载

JAVA课程设计——简单计算器

JAVA课程设计——简单计算器

JAVA 课程设计简单计算器设计系别专业班级学号姓名“Java 论文”目录✧课程设计题目…………………………………… P3 ✧课程设计简介…………………………………… P3 ✧课程设计源代码…………………………………… P3 ✧课程设计运行举例…………………………………… P9 ✧课程设计心得体会…………………………………… P11“Java 论文”课程设计题目:简单计算器设计课程设计程序简介:能够进行最基本的加、减、乘、除运算,是运用三个面板的叠加做出的界面。

通过按钮来进行简易计算器的各种运算,并正确实现运算功能。

如果输入错误会,程序会自动提示你的输入错误。

整个程序对话框可实现最小化,最大化,关闭。

课程设计源代码::import javax.swing.*;import java.io.*;import java.awt.*;import java.awt.event.*;public class counter extends JFrame implements ActionListener{JPanel txtpanel,btnpanel,southpanel;//定义三个面板JTextField txtinput;//定义文本框JButtonb1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,divide,add,subtract,clear btn,equalbtn;//aboutbtn;GridLayout gl;//创建布局double simpan,hasil;String operasi;public counter(){super("Calculator Cabe");//设置窗体标题txtpanel=new JPanel();//创建面板btnpanel=new JPanel();southpanel=new JPanel();txtinput=new JTextField(25);//创建文本框“Java 论文”txtinput.setEditable(false);//设置文本框不可编辑txtinput.setHorizontalAlignment(JTextField.RIGHT);txtinput.setText("");//设置起始文本框内容为空b1=new JButton("1");//创建按钮b2=new JButton("2");b3=new JButton("3");b4=new JButton("4");b5=new JButton("5");b6=new JButton("6");b7=new JButton("7");b8=new JButton("8");b9=new JButton("9");b0=new JButton("0");bdes=new JButton(".");multiply=new JButton("x");multiply.setFont(new Font("Gothic",Font.BOLD,20));//设置画笔属性multiply.setBackground(Color.black);//设置按钮边框颜色multiply.setForeground(Color.blue);//设置画笔颜色divide=new JButton("/");divide.setFont(new Font("Gothic",Font.BOLD,20));divide.setBackground(Color.black);divide.setForeground(Color.blue);add=new JButton("+");add.setFont(new Font("Gothic",Font.BOLD,20));add.setBackground(Color.black);add.setForeground(Color.blue);subtract=new JButton("-");subtract.setFont(new Font("Gothic",Font.BOLD,20));subtract.setBackground(Color.black);subtract.setForeground(Color.blue);clearbtn=new JButton("C");clearbtn.setFont(new Font("Arial",Font.ITALIC,16));clearbtn.setBackground(Color.black);“Java 论文”clearbtn.setForeground(Color.green);clearbtn.addActionListener(new ActionListener()//实现清空操作{public void actionPerformed(ActionEvent argh){btnCancelActionPerformed();}});equalbtn=new JButton("=");equalbtn.setFont(new Font("Arial",Font.ITALIC,20));equalbtn.setBackground(Color.black);equalbtn.setForeground(Color.red);b1.addActionListener(this);//添加监视器b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);b0.addActionListener(this);bdes.addActionListener(this);multiply.addActionListener(this);divide.addActionListener(this);add.addActionListener(this);subtract.addActionListener(this);equalbtn.addActionListener(this);getContentPane().add(txtpanel,BorderLayout.NORTH);//设置面板位置txtpanel.add(txtinput);//添加文本框到txtpanel面板中gl=new GridLayout(4,4,5,5);//设置面板布局btnpanel.setLayout(gl);getContentPane().add(btnpanel);//窗体中加入第二个面板//把下列按钮加入到btnpanel面板中btnpanel.add(b7);btnpanel.add(b8);btnpanel.add(b9);“Java 论文”btnpanel.add(multiply);btnpanel.add(b4);btnpanel.add(b5);btnpanel.add(b6);btnpanel.add(divide);btnpanel.add(b1);btnpanel.add(b2);btnpanel.add(b3);btnpanel.add(add);btnpanel.add(b0);btnpanel.add(bdes);btnpanel.add(equalbtn);btnpanel.add(subtract);getContentPane().add(southpanel,BorderLayout.SOUTH);//设置面板位置southpanel.add(clearbtn);//把clearbtn加入到southpanel面板中setSize(250,300);//设置窗体初始大小setVisible(true);//设置窗体可见setLocation(300,200);//设置初始窗体在屏幕上的位置setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置程序的关闭方式(关闭窗体时,程序自动结束)}public void btnCancelActionPerformed()//清空文本框内容{txtinput.setText("");}public void actionPerformed(ActionEvent e){try{Object objkcal=e.getSource();//取得按键if(objkcal==b1)//如果按下b1,则把文本框中的内容置为1txtinput.setText(txtinput.getText()+"1");elseif(objkcal==b2)txtinput.setText(txtinput.getText()+"2");elseif(objkcal==b3)txtinput.setText(txtinput.getText()+"3");“Java 论文”elseif(objkcal==b4)txtinput.setText(txtinput.getText()+"4");elseif(objkcal==b5)txtinput.setText(txtinput.getText()+"5");elseif(objkcal==b6)txtinput.setText(txtinput.getText()+"6");elseif(objkcal==b7)txtinput.setText(txtinput.getText()+"7");elseif(objkcal==b8)txtinput.setText(txtinput.getText()+"8");elseif(objkcal==b9)txtinput.setText(txtinput.getText()+"9");elseif(objkcal==b0)txtinput.setText(txtinput.getText()+"0");elseif(objkcal==bdes)txtinput.setText(txtinput.getText()+".");else//如果按下的是“+”号键,就是保存原来文本框内容并且清空if(objkcal==add){simpan=Double.parseDouble(txtinput.getText()); operasi="plus";txtinput.setText("");}elseif(objkcal==subtract){simpan=Double.parseDouble(txtinput.getText()); operasi="minus";txtinput.setText("");}else“Java 论文”if(objkcal==divide){simpan=Double.parseDouble(txtinput.getText());operasi="bagi";txtinput.setText("");}elseif(objkcal==multiply){simpan=Double.parseDouble(txtinput.getText());operasi="kali";txtinput.setText("");}else//如果按下“=”号,执行以下操作if(objkcal==equalbtn){if(operasi=="plus"){hasil=simpan+Double.parseDouble(txtinput.getText()); txtinput.setText(Double.toString(hasil));}elseif(operasi=="minus"){hasil=simpan-Double.parseDouble(txtinput.getText()); txtinput.setText(Double.toString(hasil));}elseif(txtinput.equals(txtinput.getText())&&objkcal==subtract) {hasil=simpan-Double.parseDouble(txtinput.getText()); txtinput.setText(Double.toString(hasil));}elseif(operasi=="bagi"){if(Double.parseDouble(txtinput.getText())==0)JOptionPane.showMessageDialog(this, "被除数不能为0"); hasil=simpan/Double.parseDouble(txtinput.getText());“Java 论文”txtinput.setText(Double.toString(hasil));}elseif(operasi=="kali"){hasil=simpan*Double.parseDouble(txtinput.getText()); txtinput.setText(Double.toString(hasil));}}}catch(Exception ouch){JOptionPane.showMessageDialog(null,"错误输入","error",JOptionPane.ERROR_MESSAGE);}//异常处理}public static void main(String args[]){try{UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); }catch(Exception e){}//异常处理new counter();//创建窗体}}课程设计运行举例:运行结果截图:乘法截图例如90*80=7200“Java 论文”除法截图1.当被除数为零的时候程序会自动提示,被除数不能为零。

用Java编写一个简单的计算器

用Java编写一个简单的计算器
b3 = new JButton("MC");
b3.setForeground(Color.red);
b3.addActionListener(new button());
b4 = new JButton("MR");
b4.setForeground(Color.red);
b4.addActionListener(new button());
p4.add(tf2);
p4.setBounds(10,88,50,60);
p1.setLayout(gl1);
p1.setBounds(75, 87, 317, 35);
p2.setLayout(gl2);
p2.setBounds(10, 135, 60, 250);
p3.setLayout(gl3);
tf2 = new TextField(10);
tf2.setEditable(false);
setBackground(new Color(180,127,120));
setBounds(300, 250, 400, 400);
p0.add(tf1);
p0.setBounds(5, 50, 390,40);
gl3 = new GridLayout(4, 5, 5, 5);
tf1 = new JTextField(27);
tf1.setHorizontalAlignment(JTextField.RIGHT);
tf1.setEnabled(false);
tf1.setText("0.");
MenuItem mi1=new MenuItem("复制(C) Ctrl+C ");

用java代码写的简易计算器(可以实现基本的加减乘除功能)

用java代码写的简易计算器(可以实现基本的加减乘除功能)

⽤java代码写的简易计算器(可以实现基本的加减乘除功能)package A;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.*;public class Calcular3 extends JFrame implements ActionListener,MouseListener{private int m1=0,n=0;//private double m2=0;//运算的数private int flag=0;JFrame f;JPanel p1,p2,p3;JTextField t;JButton b1[]=new JButton[18];String b[]= {"1","2","3","4","5","6","7","8","9","0","清空","退格",".","=","+","-","*","/"};public Calcular3(){f=new JFrame("计算器");t=new JTextField(35);p1=new JPanel();p2=new JPanel();p3=new JPanel();f.setBounds(100, 100, 400, 200);f.add(p1,BorderLayout.NORTH);f.add(p2,BorderLayout.CENTER);f.add(p3,BorderLayout.EAST);p2.setLayout(new GridLayout(5,3));p3.setLayout(new GridLayout(4,1));p1.add(t);for(int i=0;i<14;i++) {b1[i]=new JButton(b[i]);p2.add(b1[i]);b1[i].addActionListener(this);}for(int i=14;i<18;i++) {b1[i]=new JButton(b[i]);p3.add(b1[i]);b1[i].addActionListener(this);}/*for(int i=0;i<18;i++) {b1[i].addActionListener(this);}*/f.setVisible(true);}//实现接⼝的⽅法public void mouseClicked(MouseEvent e) {}public void mousePressed(MouseEvent e) {}public void mouseReleased(MouseEvent e) {}public void mouseEntered(MouseEvent e) {}public void mouseExited(MouseEvent e) {}public void actionPerformed(ActionEvent e) {String str="";int i;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {if(i==9) {n=n*10;}else {n=n*10+i+1;}str=String.valueOf(n);//整形n转换成字符串strt.setText(str);//显⽰到⽂本框上}}for(i=14;i<18;i++) {//+、-、*、/if(e.getSource()==b1[i]) {//匹配运算符m1=Integer.parseInt(t.getText());if(flag==15) {m2=m1+m2;}else if(flag==16) {m2=m1-m2;}else if(flag==17) {m2=m1*m2;}else if(flag==18) {m2=m1/m2;}else m2=m1;//若⽆连续的运算符运算,保存当前数据到m2 if(i==14) flag=15;else if(i==15) flag=16;else if(i==16) flag=17;else flag=18;str=String.valueOf(b[i]);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据break;//找到匹配数据退出循环}}if(e.getSource()==b1[13]) {//=m1=Integer.parseInt(t.getText());if(flag==15) {m2=m2+m1;}else if(flag==16) {m2=m2-m1;}else if(flag==17) {m2=m2*m1;}else if(flag==18) {m2=m2/m1;}else m2=m1;str=String.valueOf(m2);t.setText(str);//显⽰到⽂本框上n=0;//还原,记录下次数据flag=0;//flag还原0,表明没有未处理的运算符}if(e.getSource()==b1[10]) {//各变量变为0 清空m1=0;m2=0;flag=0;n=0;t.setText("0");//显⽰到⽂本框上}if(e.getSource()==b1[11]) {//退格m1=(int)(Double.parseDouble(t.getText())/10);n=m1;str=String.valueOf(m1);t.setText(str);}if(e.getSource()==b1[12]) {//⼩数点m1=Integer.parseInt(t.getText());str=String.valueOf(m1+b[12]);t.setText(str);//显⽰到⽂本框上int j=0;for(i=0;i<=9;i++) {if(e.getSource()==b1[i]) {j++;m2=Math.pow(0.1, j)*Integer.parseInt(b[i]);str=String.valueOf(m1+m2);t.setText(str);//显⽰到⽂本框上}}}}//主函数public static void main(String[] args) {new Calcular3();}}。

用Java设计简易的计算器

用Java设计简易的计算器

⽤Java设计简易的计算器运⾏初始状态:计算结果如下:代码如下:package jisuanqi;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;class counter1 extends JFrame{public counter1(){super("计算器");this.setSize(400,100);this.setLocation(300,240);this.setLayout(new FlowLayout()); //确定窗⼝格式为流输⼊TextField text1=new TextField(4);text1.setText("1");this.add(text1);String proList[] = { "+","-","x" ,"%"}; //将"+","-","x" ,"%"作为列表元素TextField text;JComboBox comboBox; //创建下拉复选框Container conPane = getContentPane(); //创建⼀个名为conPane的容器comboBox = new JComboBox(proList); //把列表元素加⼊下拉复选框comboBox.setEditable(true); //使复选框变为可操作conPane.add(comboBox); //将复选框加⼊容器中TextField text2=new TextField(4);text2.setText("1");this.add(text2);JButton button = new JButton("=");this.add(button);TextField text3=new TextField(4);text3.setText("2");button.addActionListener(new ActionListener(){ //添加按钮监听事件public void actionPerformed(ActionEvent e) //创建事件响应函数{String s=comboBox.getEditor().getItem().toString(); //获取复选框中的元素double a= Integer.parseInt(text1.getText()); //将两个⽂本框中的字符串强制转换成浮点型,以便于之后的计算double b= Integer.parseInt(text2.getText());if(s.equals("+")) { //判断复选框中的元素种类double t=a+b;String m=String.valueOf(t); //由于⽂本框中的数据流只能为字符串,这⾥就需要将计算得到的浮点型数据强制转换成字符串型 text3.setText(m); //将最后的结果放在⽂本框中}else if(s.equals("-")) //后⾯的与之前的类似,不在注释else if(s.equals("-")) //后⾯的与之前的类似,不在注释{double t=a-b;String m=String.valueOf(t);text3.setText(m);}else if(s.equals("x")){double t=a*b;String m=String.valueOf(t);text3.setText(m);}else{double t=a/b;String m=String.valueOf(t);text3.setText(m);}}});conPane.add(text3);this.setVisible(true); //将窗⼝设置为可视化}}public class Counter {public static void main(String[] args){new counter1();}}修改版如下:源码如下:package jisuanqi;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.FocusEvent;import java.awt.event.FocusListener;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;class counter1 extends JFrame{public counter1(){super("计算器");this.setSize(400,130);this.setLocation(300,240);this.setLayout(new FlowLayout()); //确定窗⼝格式为流输⼊ TextField text1=new TextField(4);TextField text1=new TextField(4);text1.setText("1");JLabel label1 = new JLabel("");text1.addFocusListener(new FocusListener() { //添加焦点事件监听器public void focusGained(FocusEvent arg0) { //设置获得焦点时的事件label1.setText("正在输⼊中...");}public void focusLost(FocusEvent arg0) { //设置失去焦点时的事件if(!text1.getText().matches("\\d+")) //使⽤正则表达式判断该字符串是否为数字,第⼀个\是转义符,\d+表⽰匹配1个或 //多个连续数字,"+"和"*"类似,"*"表⽰0个或多个 label1.setText("输⼊的第⼀个数据有误");else label1.setText("");}});this.add(text1);String proList[] = { "+","-","x" ,"%"}; //将"+","-","x" ,"%"作为列表元素TextField text;JComboBox comboBox; //创建下拉复选框Container conPane = getContentPane(); //创建⼀个名为conPane的容器comboBox = new JComboBox(proList); //把列表元素加⼊下拉复选框comboBox.setEditable(true); //使复选框变为可操作conPane.add(comboBox); //将复选框加⼊容器中TextField text2=new TextField(4);text2.setText("1");this.add(text2);text2.addFocusListener(new FocusListener() {public void focusGained(FocusEvent arg0) {label1.setText("正在输⼊中...");}public void focusLost(FocusEvent arg0) {if(!text2.getText().matches("\\d+"))label1.setText("输⼊的第⼆个数据有误");else label1.setText("");}});JButton button = new JButton("=");this.add(button);TextField text3=new TextField(4);text3.setText("2");button.addActionListener(new ActionListener(){ //添加按钮监听事件public void actionPerformed(ActionEvent e) //创建事件响应函数{String s=comboBox.getEditor().getItem().toString(); //获取复选框中的元素double a= Integer.parseInt(text1.getText()); //将两个⽂本框中的字符串强制转换成浮点型,以便于之后的计算double b= Integer.parseInt(text2.getText());if(s.equals("+")) { //判断复选框中的元素种类double t=a+b;String m=String.valueOf(t); //由于⽂本框中的数据流只能为字符串,这⾥就需要将计算得到的浮点型数据强制转换成字符串型text3.setText(m); //将最后的结果放在⽂本框中}else if(s.equals("-")) //后⾯的与之前的类似,不在注释{double t=a-b;String m=String.valueOf(t);text3.setText(m);}else if(s.equals("x")){double t=a*b;String m=String.valueOf(t);text3.setText(m);}else{double t=a/b;String m=String.valueOf(t);text3.setText(m);}}});conPane.add(text3);this.add(label1);this.setVisible(true); //将窗⼝设置为可视化}}public class Counter {public static void main(String[] args){new counter1();}}总结⼼得:(1)在创建选项框时,要将所有的选项放在⼀个“容器”⾥,并把这个容器添加到程序中,这⾥我⽤的容器为JComboBox comboBox,同时需要导⼊包boBoxEditor和javax.swing.JComboBox;(2)由于设置了按钮响应功能,所以要设置按键动作和响应,这⾥导⼊了包java.awt.event.ActionEvent和java.awt.event.ActionListener(3)因为⽂本框中输⼊读取到的是字符串,所以要进⾏计算时,要先将其转为整形,在⽂本框输出时,同理要将整形转换为字符串(4)注意:当光标移动到⽂本框上⾯时,获得焦点事件,当光标移⾛时,便失去焦点事件,所以要注意两个函数的作⽤。

java实现简单的计算器

java实现简单的计算器

j a v a实现简单的计算器(共19页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--目录目录................................................................................................................. 错误!未定义书签。

1 需求分析................................................................................................... 错误!未定义书签。

计算器的基本功能:............................................................... 错误!未定义书签。

加法运算:用数字按钮和“+”按钮进行运算; ......... 错误!未定义书签。

减法运算:用数字按钮和“-”按钮进行运算;.......... 错误!未定义书签。

乘法运算:用数字按钮和“*”按钮进行运算; ......... 错误!未定义书签。

除法运算:用数字按钮和“/”按钮进行运算;.......... 错误!未定义书签。

退格键和清零键: 用”Backspace”、”C”和”CE”按钮实现; ...... 错误!未定义书签。

计算器的科学计算方法:....................................................... 错误!未定义书签。

开方:用数字按钮和“Sqrt”按钮进行运算; ............ 错误!未定义书签。

百分比:用数字按钮和“%”按钮进行运算; ............ 错误!未定义书签。

求倒数:用数字按钮和“1/x”按钮进行运算; .......... 错误!未定义书签。

简单计算器java课程设计

简单计算器java课程设计

简单计算器java课程设计一、课程目标知识目标:1. 学生能理解简单计算器的功能需求,掌握Java语言的基本语法和编程结构。

2. 学生能运用Java编程实现加、减、乘、除等基本运算,并掌握相关运算符的使用方法。

3. 学生了解面向对象编程的基本概念,能够使用类和对象构建简单计算器程序。

技能目标:1. 学生能运用所学知识,独立完成简单计算器程序的编写和调试。

2. 学生掌握使用条件语句和循环语句进行程序流程控制,实现计算器的逻辑功能。

3. 学生能够运用调试工具,分析并解决简单计算器程序中可能出现的错误。

情感态度价值观目标:1. 培养学生编程的兴趣,激发他们探究计算思维和解决问题的热情。

2. 培养学生团队协作意识,让他们在合作开发过程中学会沟通与分享。

3. 培养学生面对困难勇于挑战的精神,提高他们独立解决问题的能力。

课程性质:本课程为实践性较强的学科课程,结合学生年级特点和教学要求,注重培养学生动手操作能力和编程思维。

学生特点:学生具备一定的Java基础,了解基本语法和编程结构,但对面向对象编程和实际项目开发尚处于初级阶段。

教学要求:结合学生特点,通过本节课的学习,使学生能够将所学知识应用于实际项目开发中,提高编程实践能力。

同时,关注学生情感态度价值观的培养,激发学习兴趣,增强合作意识。

将课程目标分解为具体学习成果,便于后续教学设计和评估。

二、教学内容1. 简单计算器功能需求分析:介绍计算器的基本功能,引导学生明确项目目标。

- 加、减、乘、除四则运算- 清除、退出等辅助功能2. Java基本语法回顾:复习Java基本语法,为编写计算器程序打下基础。

- 数据类型- 运算符- 控制语句(条件语句、循环语句)3. 面向对象编程基础:引入面向对象概念,指导学生构建简单的计算器类。

- 类的定义- 对象的创建- 方法的编写4. 简单计算器程序设计:详细讲解计算器各功能模块的实现。

- 界面设计- 事件处理- 运算逻辑5. 编程实践:指导学生动手编写简单计算器程序,并进行调试。

JAVA课程设计简单的计算器(含代码)

Java程序课程设计任务书一、主要任务与目标1. 掌握java语言2. 创建一个简单的计算器,具有简单人机交互界面,易于操作,便于进行数据之间的简单运算。

二、具体要求(包括技术要求等):1)能够实现基本的加、减、乘、除四则运算及开方,乘方运算;2)如输入数据时,出现错误,可以修改;3)运算结果能正确显示;可以清零;4)拥有登陆注册功能;5)可以查看历史记录;学习并掌握以下技术:Java、awt,swing等熟练使用以下开发工具:Jdk,JCreate 等实现计算器的上述的功能。

三、计划进度1.12月28日—12月29日:搜集资料、查阅文献,确定选题2.12月30日--12月31日:需求分析,系统设计,系统功能模块完善3.1月1日--1月3日:编程实现系统、系统测试与修改4.1月4日-- 1月6日:课程设计报告撰写5.1月7日-- 1月8日:课程设计报告答辩四、主要参考文献[1] 耿祥义,张跃平.java大学实用教程(第二版).电子工业出版社.2008年5月目录JA V A程序课程设计任务书 (I)目录 (II)第1章引言 (1)1.1课程设计内容 (1)1.2任务分工 (1)第2章计算器定义 (2)2.1计算器登陆注册界面概述 (2)2.1.1 计算器功能概述 (2)2.1.2 计算结果的储存与查看功能概述 (2)2.2本章小结 (2)第3章计算器的具体实现 (3)3.1界面设计 (3)3.1.1用户登陆界面图 (3)3.1.3 计算器主界面 (8)3.2计算功能实现 (9)3.4本章小结 (14)第4章结束语 (14)致谢 (15)参考文献 (15)附录源代码 (15)/****************引用数据包里的类与方法******************************/ (15)第1章引言1.1 课程设计内容这是我组设计的计算器会有一些独特的功能,本项目用到了Java中的GUI界面和swing组件以及awt布局,所以简单易用,它能完成如下的几个功能:(1)数据计算处理功能点击按钮中的数字键和运算符键就能进行简单的加、乘、乘、除四则运算及三角函数,开方,乘方运算;如果输入有误时可以按C撤销后重新输入新数据,有储存修改键;(2)查询功能查询功能可以迅速方便地查找到相应时段的执行的操作及结果。

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

j a v a编写的简单的计算器程序-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN计算器项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。

项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动;1.Applet容器中组件的添加与设置,包括面板以及菜单的使用;2.容器中组件的布局管理;3.Java核心包中数组、数学计算类的使用;4.异常的处理;5.事件处理模型中的三类对象的使用:1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。

2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。

3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。

6.程序中事件处理的流程:1.计算流程的细化参考代码:import .*;import .*;import .*;importimportimportpublic class Calculatorimplements ActionListener { #############"); dd(panel);panel1 = new JPanel();panel2 = new JPanel();(new BorderLayout());键入计算的第一个数字。

\n");("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。

\n"); ("3. 键入计算的下一个数字。

\n");("4. 输入所有剩余的运算符和数字。

\n");("5. 单击“=”。

用JAVA作一个简单的计算器

⽤JAVA作⼀个简单的计算器刚刚学java不久尝试着做了⼀个简单的计算器接下来讲讲我的思路1.创建⼀个main函数public static void main(String[] args){}2.创建对象调⽤函数public static void main(String[] args){Demo06 demo06 = new Demo06();//创建对象调⽤函数}3.创建scanner函数获取⽤户的数据public static void main(String[] args){Demo06 demo06 = new Demo06();//创建对象调⽤函数Scanner scanner = new Scanner(System.in);//scanner创建,获取⽤户数据}4.输⼊第⼀个值public static void main(String[] args){Demo06 demo06 = new Demo06();//创建对象调⽤函数Scanner scanner = new Scanner(System.in);//scanner创建,获取⽤户数据System.out.println("请输⼊⼀个值");}5.double 数据定义⽤⽤nextdouble 接受double的第⼀个数据public static void main(String[] args){Demo06 demo06 = new Demo06();//创建对象调⽤函数Scanner scanner = new Scanner(System.in);//scanner创建,获取⽤户数据System.out.println("请输⼊⼀个值");double a = scanner.nextDouble();//接受double类型的数据}6.注意这⾥可以分解,可以再输出⼀个运算符,为了清楚可以这么写,但没必要,string定义符号是字符型接受⽤next // System.out.println("请输⼊运算符:");String operator = scanner.next();//接收字符串数据注意:这边说下之前next 和nextline 区别 next 是不能够空格的,就算空格也只能够取前⾯的,⽽ nextline 可以把空格后⾯的都能够取到7.double 数据定义⽤ nextdouble 接受double的第⼆个数据// System.out.println("请输⼊⼀个数");double b = scanner.nextDouble();//接受double类型的数据注意:这边也是⼀样可以再写⼀个输出8.⽤double类型来定义结果 resultdouble result = 0;9.接下来要写外部的⽅法了,分别定义加减乘余,并返回⽅法public static double add(double a,double b){return a+b;}//加法public static double minus(double a,double b){return a-b;}//减法public static double multiply(double a,double b){return a*b;}//乘法public static double divide(double a,double b){return a/b;}//除法public static double remainder(double a,double b){return a%b;}//余10.回到主函数分别来调⽤外⾯的⽅法,这⾥⽤if else if 来判断是否输⼊的⽅法等等于当前的符号if ("+".equals(operator)){//如果输⼊的运算符等于加号就进来result = add(a,b);//结果,调⽤加}else if("-".equals(operator)){result = minus(a,b);//结果,调⽤减}else if("*".equals(operator)){result = multiply(a,b);//结果,调⽤乘}else if("/".equals(operator)){result = divide(a,b);//结果,调⽤除}else if("%".equals(operator)){result = remainder(a,b);//结果,调⽤余}注意:"-".equals(operator), "".equals()这个⽅式是字符串的== ,⽤来判断字符串的相等的,切记不能够⽤==,会报错11.最后输出结果System.out.println("结果:"+result);12.奉上完整的代码package com.lx.method;import java.util.Scanner;public class Demo06 {//做⼀个简单的计算器public static double add(double a,double b){return a+b;}//加法public static double minus(double a,double b){return a-b;}//减法public static double multiply(double a,double b){return a*b;}//乘法public static double divide(double a,double b){return a/b;}//除法public static double remainder(double a,double b){return a%b;}//余public static void main(String[] args) {Demo06 demo06 = new Demo06();//创建对象调⽤函数Scanner scanner = new Scanner(System.in);//scanner创建,获取⽤户数据System.out.println("请输⼊⼀个值");double a = scanner.nextDouble();//接受double类型的数据// System.out.println("请输⼊运算符:");String operator = scanner.next();//接收字符串数据// System.out.println("请输⼊⼀个数");double b = scanner.nextDouble();//接受double类型的数据double result = 0;if ("+".equals(operator)){//如果输⼊的运算符等于加号就进来result = add(a,b);}else if("-".equals(operator)){result = minus(a,b);}else if("*".equals(operator)){result = multiply(a,b);}else if("/".equals(operator)){result = divide(a,b);}else if("%".equals(operator)){result = remainder(a,b);}System.out.println("结果:"+result);}}结果:莫%运算在上⾯结果中我就在来说下% 运算吧,从刚刚结果看来我们得出以下⼏个要点1. 如果 a % b , a>b ,那么外⾯就拿a除以b余下来的值,我们拿余下来的数20 %11 = 92. 如果a % b , a=b ,那么等于b 相除下来余数就是0 ,我们就拿 020 % 10 = 03. 如果 a % b , a<b , 那么我们就拿a的⾃⼰20 % 1000 = 20。

java课程设计简易计算器


前端:使用JavaFX进行界面设计 后端:使用Java进行逻辑处理和数据存储 数据库:使用MySQL进行数据存储 功能模块:包括加法、减法、乘法、除法、平方根等计算功能 测试:使用JUnit进行单元测试和集成测试 打包:使用Maven进行项目打包和部署
功能按钮:包括数字、运算 符、清除、等于等
易于阅读
输入框:用于输入数字和运算符号 输出框:用于显示计算结果 格式化规则:数字和运算符号之间用空格分隔 错误提示:当输入错误时,给出提示信息 计算结果:显示计算结果,并保留小数点后两位 清空按钮:用于清空输入框和输出框中的内容
输入两个数字 调用加法函数 返回结果 打印结果
输入两个数字
判断两个数字的大小关系
使用代码覆盖率工具:检查 代码覆盖率,确保所有代码 都被测试到
使用调试工具:如Eclipse、 IntelliJ IDEA等,提供丰富的 调试功能
阅读错误信息:仔细阅读错 误信息,找出问题所在,并 尝试解决
测试目的:验证程序的正确性和稳 定性
测试结果:记录测试过程中的错误 和异常
添加标题
添加标题
添加标题
编写单元测试:编写针对每个 方法的单元测试,确保每个方 法都能独立运行
调试单元测试:在测试过程中 发现错误时,使用调试工具定
位问题并修复
优化单元测试:根据测试结果 对单元测试进行优化,提高测
试覆盖率和效率
集成测试的概念:将多个模块组合起来进行测试,验证模块间的交互和协作是否正确
编写集成测试的步骤:确定测试目标、设计测试用例、编写测试代码、执行测试
添加标题
测试方法:单元测试、集成测试、 系统测试等
测试结论:对测试结果的分析和总 结,提出改进建议
收获:掌握了Java编程基础,了解了计算器的设计原理和实现方法 不足之处:项目规模较小,功能较为简单,需要进一步学习和实践 展望:未来可以尝试设计更复杂的计算器,或者将Java编程应用到其他领域
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java程序设计“简单计算器”一、程序代码import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator{private static JTextField tf;private static String x[]=new String[2],op;private static double result=0;private static String[] s={"0","1","2","3","4","5","6","7","8","9",".","+","-","*","/","="};private static String[] sb={"backspace","clear"};private static boolean lock;public static void clearXOp(){x[0]=new String();x[1]=new String();op=new String();lock=true;}public static void clear(){clearXOp();result=0;tf.setText("0");}public static void delete(int i){int k=x[i].length()-1;StringBuffer sbr=new StringBuffer(x[i]);sbr.deleteCharAt(k);x[i]=new String(sbr);if(x[i].equals(s[10]))x[i]=new String();}public static void cancel(){int i=1;if(op.equals(""))i=0;if(x[i].equals("")){tf.setText("0");return;}delete(i);if(!x[i].equals(""))tf.setText(x[i]);elsetf.setText("0");}public static void comput(){double a,b;if(x[0].equals(""))a=result;elsea=Double.parseDouble(x[0]);b=Double.parseDouble(x[1]);if(op.equals(s[11]))result=a+b;else if(op.equals(s[12]))result=a-b;else if(op.equals(s[13]))result=a*b;else if(op.equals(s[14]))result=a/b;elseresult=a;x[0]=new String(""+result);x[1]=new String();}public static void putResult(){comput();int k=x[0].length();if(x[0].substring(k-2,k).equals(".0")){StringBuffer str=new StringBuffer(x[0]);str.delete(k-2,k);x[0]=new String(str);}tf.setText(x[0]);}public static void getX(int i,int j){if(x[j].lastIndexOf(s[10])!=-1&&s[i].equals(s[10]))return;if(x[j].equals(s[0])&&!s[i].equals(s[10])){x[j]=new String(s[i]);}else if(x[j].equals("")&&s[i].equals(s[10]))x[j]=s[0]+s[10];elsex[j]+=s[i];tf.setText(x[j]);}public static void main(String[] args){JFrame f=new JFrame("计算器");Container c=f.getContentPane();c.setLayout(new BorderLayout());Font ft = new Font("隶书",Font.PLAIN,20);clearXOp();JPanel p1,p2;p1=new JPanel(new GridLayout(2,0));tf=new JTextField();tf.setFont(ft);tf.setHorizontalAlignment(JTextField.RIGHT);tf.setText("0");tf.setEditable(false);p1.add(tf);JButton bc[]=new JButton[sb.length];JPanel p11=new JPanel(new FlowLayout());for (int i=0;i<sb.length;i++){bc[i]=new JButton(sb[i]);bc[i].setActionCommand(sb[i]);bc[i].addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String str=e.getActionCommand();if(lock&&str.equals(sb[0])&&!op.equals(tf.getText()))cancel();else if(str.equals(sb[1]))clear();}});p11.add(bc[i]);}p1.add(p11);JButton[] b=new JButton[s.length];for(int i=0;i<s.length;i++){b[i]=new JButton(s[i]);b[i].setActionCommand(s[i]);b[i].addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String str=e.getActionCommand();for(int i=0;i<11;i++){if(lock){if(str.equals(s[i])){if(op.equals(""))getX(i,0);else getX(i,1);}}}for(int i=11;i<s.length-1;i++){if(lock){if(str.equals(s[i])){if(op.equals("")){op=s[i];tf.setText(op);}else if(!x[1].equals("")){if(op.equals(s[14])&&Double.parseDouble(x[1])==0)lock=false;else{comput();op=s[i];}tf.setText(op);}}}}if(lock&&str.equals(s[15])){if(x[1].equals(""))x[1]="0";if(op.equals(s[14])&&Double.parseDouble(x[1])==0)lock=false;else{putResult();clearXOp();}}}});b[i].setFont(ft);}p2=new JPanel(new GridLayout(4,4,6,6));for(int i=0;i<s.length;i++){p2.add(b[i]);}c.add(p1,BorderLayout.NORTH);c.add(p2,BorderLayout.CENTER);f.setBounds(200,200,300,330);f.setV isible(true);f.setResizable(false);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}二、程序截图。

相关文档
最新文档