计算器(java)

最近学习了一下java语言,用它写了个小计算器。当然,功能还很简单,感兴趣的朋友可以自己看看,或者交流。程序

有三部分组成:

首先主程序calculate.java传入字符串(如“2+8*6-5=”),代码如下:

import calculatelib.expression;
import calculatelib.calculator;
public class calculate
{
	public static void main(String[] args)
	{
		expression exp=new expression(args[0]);
		calculator compute=new calculator();
		int i=0;
		while(exp.data[i]!=null)
		{
			compute.data[i]=Integer.parseInt(exp.data[i]);
			i++;
		}
		i=1;
		while(exp.calcus[i]!='=')
		{
			compute.opt[i]=exp.calcus[i];
			i++;
		}
		compute.setbounds(exp.getdatalength(),exp.getcalcuslength());
		System.out.println("the answer of your expression:");
		System.out.print(args[0]);
		System.out.println(compute.calculate());
	}
}

然后由通过对象调用expression中的方法完成最字符串的编辑:

package calculatelib;
public class expression
{
	public String data[]=new String[50];
	public char calcus[]=new char[50];
	int i=0,r=0,tmp=0;
	int cr=1,estop=0;
	public expression(String args)
	{
		String s=args;
		int sstop=s.length();
		char ch[]=s.toCharArray();
		int cstop=ch.length;
		while(i<sstop)
		{
			if(Character.isDigit(s.charAt(i)))
			{
				i++;
				continue;
			}
			data[r]=s.substring(tmp,i);
			i++;
			tmp=i;
			r++;
		}
		i=0;
		while(i<cstop)
		{
			if(!Character.isDigit(ch[i]))
			{
				calcus[cr]=ch[i];
				if(calcus[cr]=='-')
				{
					data[cr]='-'+data[cr];
					calcus[cr]='+';
				}
				cr++;
			}
			i++;
		}
	}
	public int getdatalength()
	{return r;}
	public int getcalcuslength()
	{return cr-2;}
}

形成操作数数组data[]和操作符数组calcus[]。然后由calculater类中的方法计算数组,并返回结果。源码如下:

package calculatelib;
public class calculator
{
	public float[] data=new float[50];
	public char[] opt=new char[50];
	int cstop=0,dstop=0;
	int i=0;
	public float calculate()
	{
		for(i=1;i<cstop;i++)
		{
			if((opt[i]=='*')||(opt[i]=='/'))
			{
				switch(opt[i])
				{
					case'*':
					{
						data[i]=data[i-1]*data[i];
						data[i-1]=0;
						continue;
					}
					case'/':
					{
						data[i]=data[i-1]/data[i];
						data[i-1]=0;
						continue;
					}
				}
			}
		}
		for(i=0;i<dstop;i++)
			data[i+1]=data[i]+data[i+1];
		return data[i];
	}
	public void setbounds(int d,int c)
	{
		cstop=c+1;
		dstop=d;
	}
}

有兴趣的朋友可以参考一下。

计算器(java),布布扣,bubuko.com

时间: 2024-10-05 20:51:12

计算器(java)的相关文章

简单计算器 java实现hdu1237

简单计算器 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15190    Accepted Submission(s): 5184 Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,

Intent相关知识点

Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”. 目标组件一般要通过Intent来声明自己的条件,一般通过组件中的<intent-filter>元素来过滤. Intent在由以下几个部分组成:动作(action),数据(data),分类(Category),类型(Type),组件(Component),和扩展信息(Extra). Intent在寻找目标组件的时候有两种方法:第一,通过组件名称直接指定:第二,通过Intent Filter过滤指定

玩转Android---组件篇---Intent(意图)

Intent的中文意思是“意图,目的”的意思,可以理解为不同组件之间通信的“媒介”或者“信使”. 目标组件一般要通过Intent来声明自己的条件,一般通过组件中的<intent-filter>元素来过滤. Intent在由以下几个部分组成:动作(action),数据(data),分类(Category),类型(Type),组件(Component),和扩展信息(Extra). Intent在寻找目标组件的时候有两种方法:第一,通过组件名称直接指定:第二,通过Intent Filter过滤指定

JAVA编写的简单计算器

package com.hellojava.practice.test; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; impo

[Java.web]简单计算器

项目的  WebRoot 目录下的 calculator.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML> <html> <head> <title>计算结果</title> </head> <body> <jsp:us

Java计算器

代码 1 import javax.swing.*; 2 import java.awt.*; 3 import java.awt.event.*; 4 5 public class Calculator extends JFrame{ 6 private String[] labels = { 7 "%","√","x2","1/x", 8 "CE","C","←"

Java写的一个计算器模拟小程序

下个周六又要参加自考实践上机考试了,时间过的好快,天冷了人也变懒惰了,有时候什么也不想干,今晚刚好有时间就抽空把JAVA的试题拿出来再复习复习,看书比较困乏索性就敲敲代码吧,说实话我对JAVA不是很熟,如果不是因为考试要考,我也没时间接触它,毕竟做运维的,我更喜欢shell,PYTHON之类的.算了,还是把刚敲的代码放这里保存下,省的以后又找不到了.刚入门也就这样了. 题目: 编写一个计算器模拟程序.界面采用4行3列布局,界面设有3个文字标签(运算数1.运算数2.计算结果).3个文本框和3个加.

《java小应用程序(Applet)和java应用程序(Application)分别编写的简单计算器》

Application和Java Applet的区别.Java语言是一种半编译半解释的语言.Java的用户程序分为两类:Java Application和Java Applet.这两类程序在组成结构和执行机制上都有一定的差异,主要体现在以下几方面:(1)运行方式不同.Java Application是完整的程序,可以独立运行:Java Applet程序不能单独运行, 它必须嵌入到用HTML语言编写的Web页面中,通过与Java兼容的浏览器来控制执行.(2)运行工具不同.Java Applicat

Java简单计算器

import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.s

Java图形化界面设计——布局管理器之GridLayout(网格布局) 之计算器

代码如下: import java.awt.*; import javax.swing.*; public class GridFrame extends JFrame { // 定义字符串数组,为按钮的显示文本赋值 String str[] = { "MC", "MR", "MS", "M+", "←", "C", "%", "π", "