毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

java能处理公式的计算器

更新时间:2011-5-21:  来源:毕业论文

java能处理公式的计算器
 设计一个简单的计算器类(类型),要求:
(1) 从键盘读入算式。
(2) 可以进行加、减、乘、除运算。
(3) 运算要有优先级。
(4) 用户可以按任何的运算符出现顺序进行输入。
(5) 不限定用户输入的计算式的长度。
(6) 有排错功能,当用户输入错误的算式时提示用户。
例如,如果用户输入:3 + 4 * 5 – 7,计算结果应为16。
(提示:可以使用本节所定义的栈类来帮助进行处理)
17.2概要设计:
本程设计思路: 计算器的构建用java的话还是挺容易的,用组件将各个需要的按钮放上去,然后监听事件,有按钮按下去的时间就实现相应的事件,或是显示,或是进行计算。对于公式的计算,就是将全部的输入内容放进一个数组,然后一个字符一个字符来匹配。
17.3   详细设计与编码:
见上传程序。
 17.4  调试分析:
      这题的算法看我是没有想到怎么解决,是看到了别人做的题目,然后研究看的。在调试时的大部分时间我是在弄界面问题。因为想跟图形界面的计算器结合,弄成能点击输入,并且能计算公式的计算器,不过还没有时间弄。
 程序执行的结果:
错误检测
17.5   用户使用说明:
      在输入文本框中输入公式,点击计算,输出框中就会显示相应的结果。如果有错误会提示。
17.6  设计心得:
     Java的很多语法等规则自己还是不很了解,一些东西还不太清楚应该怎么应用,还是应该多花时间来学习学习,争取掌握。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class ershisan extends JFrame implements ActionListener{
 int m;
 int right;
 int t=0;
 private JTextArea ta1;//输入公式的文本区
 private JTextArea ta2;//输出计算结果的文本区
 private JButton jb1=new JButton("计算"); //计算按钮
 private JButton jb=new JButton("清空");//清空按钮
 private JLabel  jl1=new JLabel("输入计算公式:");
 private JLabel  jl2=new JLabel("计算结果:");
 char[] c=new char[50];
 char exp[]=new char[50];
 int result;
 public ershisan()//计算器的布局
 {  
  super("公式计算器"); 
  this.setSize(550,200);
  this.setLocation(200,150);
  this.setDefaultCloseOperation(EXIT_ON_CLOSE);
  this.setLayout(null);
  JPanel jp =new JPanel();
  JPanel jp1 =new JPanel();
  jp.setSize(300, 400);
  jp1.setSize(300, 400);
  jp.setLocation(0, 0);
  jp1.setLocation(300, 0);
  jp.setLayout(null);
  jp1.setLayout(null);
  ta1=new JTextArea(20,30);
  ta2=new JTextArea(20,30);
  ta2.setEditable(false);
  JScrollPane scrol1=new JScrollPane(ta1,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
    JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  JScrollPane scrol2=new JScrollPane(ta2,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
    JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
  scrol1.setSize(200, 50);
  scrol1.setLocation(10, 20);
  scrol2.setSize(200, 50);
  scrol2.setLocation(10, 20);
  jp.add(scrol1); 
  jp1.add(scrol2);
  jb.setBounds(10, 100, 100, 25);
  jb1.setBounds(10, 100, 100, 25);
  jl1.setFont(new Font("楷书",Font.BOLD,12));
  jl1.setSize(140, 25);
  jl1.setLocation(10, 0);
  jl2.setFont(new Font("楷书",Font.BOLD,12));
  jl2.setSize(140, 25);
  jl2.setLocation(10, 0);
  jp.add(jb1);
  jp.add(jl1);
  jp1.add(jb);
  jp1.add(jl2);
  this.add(jp);
  this.add(jp1);
  jb.addActionListener(this);//监听按钮事件
  jb1.addActionListener(this);
  this.setVisible(true);
 }
 public void actionPerformed(ActionEvent e){   
原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn   {  
   int n=0;
   right=1;
   m=0;
   String jg;
   String a=ta1.getText();//a中为输入的文本
   char[] b=new char[a.length()];//将a的内容转为数组的形式
   for(int i=0;i<a.length();i++)
   {
    b[i]=a.charAt(i);
    c[i]=a.charAt(i);
    n=i;
   }
   for(int d=n+1;d<50;d++)//未到达50个字符的其他空间都设为#
    c[d]='#';
   while(m<a.length()&&c[m]!='#'&&right==1){
    if(Character.isDigit(c[m])||c[m]=='+'||c[m]=='-'||c[m]=='/'||c[m]=='*'||c[m]=='('||c[m]==')'||c[m]=='#')
    {
     e(c[m]);//如果满足所读的字符为数字或者是计算符号等,就调用e类进行处理
    }
    else//否则就显示出错
    {
     ta2.setText("输入不正确,请重新输入!");
     return;
    }
   
   }
   if(c[m]=='#'&&right==1&&result!=-1)//其他的空间则是原样显示1837
   {

[1] [2] 下一页

java能处理公式的计算器下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。