
正文
java中运算器的代码 java四则运算代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java:抽象类和接口实现四则运算器
import java.util.*;
interface yunsuan
{
public int jia();
public int jian();
public int cheng();
public int chu();
}
class Example implements yunsuan
{
int x,y;
public Example(int x,int y)
{
this.x=x;
this.y=y;
}
public int jia()
{
return x+y;
}
public int jian()
{
return x-y;
}
public int cheng()
{
return x*y;
}
public int chu()
{
return x/y;
}
}
public class ag
{
public static void main(String []args)
{
Scanner in=new Scanner(System.in);
System.out.println("输入第一个数");
int a=in.nextInt();
System.out.println("输入第二个数");
int b=in.nextInt();
System.out.println("输入运算符");
String c=in.next();
Example ys=new Example(a,b);
if(c.equals("+"))
{System.out.print(ys.jia());}
else if(c.equals("-"))
{System.out.print(ys.jian());}
else if(c.equals("*"))
{System.out.print(ys.cheng());}
else if(c.equals("/"))
{System.out.print(ys.chu());}
}
}
相关问答
Q1: 稀疏矩阵运算 Java``小问题
只写了相加方法,相减类似,乘法需要另外处理
/**
*
* 表示矩阵的单个元素的三元组,row行号,col列号,val元素值
* compareTo方法比较两个元素位置(按行号优先)返回-1(位置在之前),0(相同位置),1(位置在之后)
*/
class Trituple implements ComparableTrituple
{
int row;
int col;
double val;
public Trituple(int row, int col, double val)
{
this.row = row;
this.col = col;
this.val = val;
}
public Trituple(Trituple t, double val)
{
this(t.row, t.col, val);
}
public Trituple(Trituple t)
{
this(t.row, t.col, t.val);
}
public int compareTo(Trituple t)
{
if (row t.row)
{
return -1;
}
else
{
if (row == t.row)
{
if (col t.col)
{
return -1;
}
else
{
if (col == t.col)
{
return 0;
}
else
{
return 1;
}
}
}
else
{
return 1;
}
}
}
}
/**
*
*表示稀疏矩阵,rowNum行数,colNum列数,trituples三元组的顺序表
*add方法返回一个新的稀疏矩阵,check检查两个相加矩阵的规模是否相同
*
*/
class SparseMatrix
{
int rowNum;
int colNum;
ListTrituple trituples;
public SparseMatrix(ListTrituple list, int row, int col)
{
this.trituples = list;
this.rowNum = row;
this.colNum = col;
}
public SparseMatrix add(SparseMatrix matrix) throws IllegalArgumentException
{
if (check(matrix) == false)
{
throw new IllegalArgumentException("invalid matrix dimentions~");
}
ListTrituple list = new ArrayListTrituple();
int loop = trituples.size() + matrix.trituples.size();
int index = 0, index0 = 0;
while (loop 0)
{
Trituple t = trituples.get(index);
Trituple t0 = matrix.trituples.get(index0);
if (t.compareTo(t0) 0)
{
list.add(new Trituple(t));
index++;
loop--;
}
else
{
if (t.compareTo(t0) == 0)
{
list.add(new Trituple(t, t.val + t0.val));
index++;
index0++;
loop -= 2;
}
else
{
list.add(new Trituple(t0));
index0++;
loop--;
}
}
}
SparseMatrix sm = new SparseMatrix(list, rowNum, colNum);
return sm;
}
private boolean check(SparseMatrix matrix)
{
if (this.rowNum != matrix.rowNum || this.colNum != matrix.colNum)
{
return false;
}
return true;
}
}
Q2: java 加法运算器
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Computer extends JFrame{
private Container contentPane = null;
private JPanel computerPanel = null;
private JPanel buttonPanel = null;
private JTextField sourceField1 = null;
private JTextField sourceField2 = null;
private JTextField resultField = null;
private JLabel addLabel = null;
private JLabel resultLabel = null;
private JButton submitButton = null;
private JButton resetButton = null;
public Computer(){
this.setSize(200,200);
this.setLocation(350,150);
this.init();
this.setVisible(true);
}
public void init(){
contentPane = this.getContentPanel();
contentPane.setLayout(new GridLayout(2,1));
computerPanel = new JPanel(new FlowLayout(20,20));
buttonPanel = new JPanel(new FlowLayout(50,25));
sourceField1 = new JTextField(5);
sourceField2 = new JTextField(5);
resultField = new JTextField(5);
resultField.setEnable(true);
addLabel = new JLabel("+",JLabel.CENTER);
resultLabel = new JLabel("=",JLabel.CENTER);
submitButton = new JButton("确定");
submitButton.addActionListener(new ActionListener(){
public void actionPerform(ActionEvent e){
try{
int source1 = Integer.parseInt(sourceField1.getText());
int source2 =Integer.parseInt(sourceField2.getText());
resultField.setText(String.valueOf(source1+source2));
}
catch(NumberFormatException e){
JOptionPane.showMessageDialog(null,"请先输入数字");
}
catch(NullPointException e){
JOptionPane.showMessageDialog(null,"输入为空");
}
}
});
resetButton = new JButton("取消");
resetButton.addActionListener(new ActionListener(){
public void actionPerform(ActionEvent e){
sourceField1.setText("");
sourceField2.setText("");
resultField.setText("");
}
});
computerPanel.add(sourceField1);
computerPanel.add(addLabel);
computerPanel.add(sourceField2);
computerPanel.add(resultLabel);
computerPanel.add(resultField);
buttonPanel.add(submitButton);
buttonPanel.add(resetButton);
contentPanel.add(computerPanel);
contentpanel.add(buttonPanel);
}
public static void main(String args[]){
Computer computer = new Computer();
}
}
有错误啊!! 因为没有编译器!! 有些字母拼写错java中运算器的代码了!
Q3: JAVA稀疏矩阵运算器
2 设计
2.1 用十字链表存储稀疏矩阵
为了能有效存储稀疏矩阵的元素, 本文采用十字链表对数据进行存储, 所设计的十字链表C++语言描述如下: Typedef struct OLNode{
Int i , j ;
ElemType e;
Struct OLNode * right, * down;
}OLNode; *OLink;
Typedef struct{
OLink * rhead, * chead;
Int mu,nu,tu;
}CrossList;
2.2 稀疏矩阵相乘主要算法设计
稀疏矩阵乘法运算器的设计主要设计到稀疏矩阵的创建和相乘运算, 下面给出这两个过程的C++语言描述为:
2.2.1 稀疏矩阵的创建 Statue CreateSMatrix_OL (CrossList M){
//创建稀疏矩阵M。
If (M) free(M);
Scanf (m,n,t);
M.mu:=m; M.nu:=n; M.tu:=t;
If (! ( M.rhead=(OLink * )malloc( (m+1) * sizeof(OLink) ) ) ) exit (OVERFLOW)
If (! ( M.chead=(OLink * )malloc( (n+1) * sizeof(OLink) ) ) ) exit (OVERFLOW)
M.rhead[ ]+M.chead[ ]=NULL;
For ( scanf( i, j, e); i!=0 ; scanf ( I, j, e ) ){
If(! ( p=(OLNode * )malloc( sizeof (OLNode) ) ) ) exit ( OVERFLOW )
P—i = i; p—j=j ; p—e=e;
If (M . rhead [ i ] = =NULL) M . rhead [ i ] = p;
Else{
For ( q = M . rhead [ i ]; ( q—right ) q— right— j j; q = q— right;)
p—right =q—right ; q—right=p; }
Q4: 用JAVA编一个计算器的程序,要里边的注释
package counter;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Counter implements ActionListener {
JFrame counter = null;
Container cou = null;
JTextField txt = null;
JPanel pan = null;
JButton [] btn = null;
JLabel lblbrand = null,lbltype = null;
String sign = "",sign1 = "0",sign2 = "",sign3 = "";
char operator = ' ', operator1 = '+';
int i = 0;
double resault = 0;
int b = 0;
public Counter() {
counter = new JFrame("计算器");
cou = counter.getContentPane();
cou.setLayout(null);
lblbrand = new JLabel("大象牌");
lblbrand.setForeground(Color.BLUE);
lblbrand.setBounds(15,8,70,20);
cou.add(lblbrand);
lbltype = new JLabel("x-14250");
lbltype.setForeground(Color.GREEN);
lbltype.setBounds(265,8,70,20);
cou.add(lbltype);
txt = new JTextField("0.");
txt.setCaretPosition(2);
txt.setHorizontalAlignment(JTextField.TRAILING);
cou.add(txt);
txt.setBounds(15,28,300,30);
pan = new JPanel(new GridLayout(5,4,10,10));
pan.setBounds(15,68,300,160);
btn = new JButton[20];
String [] btnname = {"Off","Back","C","Exit","7","8","9","+","4","5",
"6","-","1","2","3","*","0",".","=","/"};
for(int i = 0; i 20; i++)
{
btn[i] = new JButton(btnname[i]);
pan.add(btn[i]);
btn[i].addActionListener(this);
}
btn[7].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));
btn[11].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));
btn[15].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));
btn[17].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));
btn[18].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));
btn[19].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));
cou.add(pan);
counter.setSize(335,280);
counter.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
operator = e.getActionCommand().charAt(0);
annal();
if(!sign.equals(""))
opinion(sign);
else
showresault(sign1);
if(i % 2 != 0)
txt.setText("");
}
private void annal(){
int l = 0;
switch (operator) {
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
if (!sign.equals("0"))
sign = sign + Character.toString(operator);
else
sign = sign.concat(Character.toString(operator)).substring(1);
break;
case '0':
if (!sign.equals("") !sign.equals("0"))
sign = sign + Character.toString(operator);
else
sign = "0";
break;
case 'B':
if (sign.length() 1 sign.charAt(txt.getText().length() - 1) != '.') {
sign = (sign.substring(0,sign.length() - 1));
} else if (sign.length() 2) {
sign = (sign.substring(0,sign.length() - 2));
} else {
sign = "0";
}
break;
case 'C':
sign = "";
sign2 = "";
sign1 = "0";
operator = ' ';
break;
case 'E':
System.exit(0);
break;
case 'O':
sign = "";
sign2 = "";
sign1 = "0";
operator = ' ';
i++;
break;
case '+':
case '-':
case '*':
case '/':
count();
break;
case '=':
count();
operator1 = ' ';
sign3 = "-1";
break;
case '.':
if (sign.equals("")) {
sign = "0".concat(Character.toString(operator));
} else {
for (int i = 0; i sign.length(); i++) {
if (sign.charAt(i) == '.') {
l++;
}
}
if (l == 0) {
sign = sign + Character.toString(operator);
}
}
break;
}
}
private void count(){
double number1 = 0,number2 = 0;
if (!sign.equals(""))
sign2 = sign;
else
sign2 = "0";
sign = "";
if (!sign3.equals("-1"))
sign3 = sign1;
else
sign3 = "0";
number1 = Double.valueOf(sign3).doubleValue();
number2 = Double.valueOf(sign2).doubleValue();
switch(operator1){
case '+':
resault = number1 + number2;
break;
case '-':
resault = number1 - number2;
break;
case '*':
resault = number1 * number2;
break;
case '/':
resault = number1 / number2;
break;
case ' ':
resault = Double.valueOf(sign2).doubleValue();
}
operator1 = operator;
sign1 = Double.toString(resault);
}
private void showresault(String sign) {
int j = sign.length() - 1;
String subsign = "";
for (int i = 0; i = j; i++) {
if (sign.charAt(i) == '.')
{
j = i;
break;
}
}
if (j != sign.length() - 1) {
subsign = sign.substring(j+1);
if (Double.valueOf(subsign).doubleValue() 0)
txt.setText(sign);
else
txt.setText(sign.substring(0, j));
}
else
txt.setText(sign);
}
private void opinion(String sign){
txt.setText(sign);
}
public static void main(String[] args) {
Counter counter = new Counter();
}
}
这个是以前自己做的一个计算器,可能不是很完善,注释没写,但代码相对简单,应该可以看明白
Q5: 关于Java编程的习题,不会做求高人指导(应该只是入门课题,我才上大一)
package desc;
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;
/**
* 键盘输入两个数,求和
*
* 附赠:java程序 :求给出的任意两数(a,b)之间的所有素数,输出结果每行按指定个数(c)输出
*
* 素数:指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
*
* @author javaBrid
* @since 2011-10-14
*/
public class TestPrimeNumber {
/**
* 键盘输入两个数,求和
*/
public static int toAdd()
{
int sum = 0;
//控制台输入
Scanner sc = new Scanner(System.in);
//提示信息
String[] message = {"请输入第一个值(回车确定):",
"请输入第二个值(回车确定):"};
//根据index选择message
int index = 0;
//保存输入的值
String str;
String str2;
//正则判断是否是数字,
String regex = "[+|-]?[0-9]+";
int a=0;
int b=0;
while(true)
{
if(index == 2)//两个数都输入后退出输入
{
break;
}
//提示信息
System.out.println(message[index]);
//获取输入值
str2 = str = sc.next();
//如果有"+"或"-",去掉
str = (str.startsWith("+")||str.startsWith("-"))?str.substring(1):str;
//如果是数字
if(str.matches(regex))
{
switch(index)
{
case 0: //a的值
a = str2.startsWith("-")?(- Integer.parseInt(str)):Integer.parseInt(str);
index++;
break;
case 1: //b的值
b = str2.startsWith("-")?(- Integer.parseInt(str)):Integer.parseInt(str);
index++;
break;
default:;
}
}
else
{
System.out.println("输入错误:非数字【"+str+"】,请输入数字");
}
}
sum = a+b;
System.out.println("结果是:("+a+") + ("+b+") = " +sum);
return sum;
}
/**
* 求a和b之间的所有素数
* a b要求 a1b1 ab或ba
* @param a 起始点
* @param b 结束点
* @param c 每行的显示个数
*/
public static void showPrimeNumber(int a,int b,int c)
{
if(a1 b1 c0)
{
//保证list中的元素顺序
int index = 0;
//当i%j==0时,说明这个i不是素数flag = false
boolean flag;
//初始化数据
int m = Math.min(a, b);
int n = Math.max(a, b);
//保存m和n中的素数
List primes = new ArrayList();
for(int i=m;i=n;i++)
{
flag = true;
for(int j=2;ji;j++)
{
if(i%j == 0)
{
flag = false;
break;
}
}
//flag=true时,记录下这个素数
if(flag)
{
primes.add(index++, i);
}
}
//按要求输出结果
System.out.println(m+"和"+n+"之间的所有素数共有【"+primes.size()+"】个(每行显示"+c+"个):");
for(int i=0;iprimes.size();i++)
{
//(i%c==0)?"\n":"") 控制换行,如果这一行是c或c的倍数则换行
System.out.print(((i%c==0 i0)?"\n":"") + primes.get(i)+(i==primes.size()-1?" \n\n":" "));
}
}
else
{
System.out.println("输入有误,检查a和b是否大于1,c是否大于0!");
}
}
/**
* 求a和b之间的所有素数
* a b要求 a1b1 ab或ba
* a,b,c用键盘输入
*
*/
public static void showPrimeAsYours()
{
//控制台输入
Scanner sc = new Scanner(System.in);
//提示信息
String[] message = {"请输入a的值(要求a1,回车确定):",
"请输入b的值(要求b1,回车确定):",
"请输入c的值(要求c0,回车确定):"};
//根据index选择message
int index = 0;
String str;
//正则判断是否是数字,
String regex = "[+]?[0-9]+";
int a=0;
int b=0;
int c=0;
while(true)
{
if(index == 3)
{
break;
}
//提示信息
System.out.println(message[index]);
//获取输入值
str = sc.next();
//如果有"+"号,去掉
str = str.startsWith("+")?str.substring(1):str;
//如果是数字
if(str.matches(regex))
{
switch(index)
{
case 0: //a的值
if(Integer.parseInt(str)1)//确保a1
{
a = Integer.parseInt(str);
index++;
}
else
{
System.out.println("a值输入错误:【"+str+"】,要求a1");
}
break;
case 1: //b的值
if(Integer.parseInt(str)1)//确保b1
{
b = Integer.parseInt(str);
index++;
}
else
{
System.out.println("b值输入错误:【"+str+"】,要求b1");
}
break;
case 2: //c的值
if(Integer.parseInt(str)0)//确保c0
{
c = Integer.parseInt(str);
index++;
}
else
{
System.out.println("c值输入错误:【"+str+"】,要求c1");
}
break;
default:;
}
}
else
{
switch(index)
{
case 0: //a输入错误
System.out.println("a值输入错误:【"+str+"】,要求a1");
break;
case 1: //b输入错误
System.out.println("b值输入错误:【"+str+"】,要求b1");
break;
case 2: //c输入错误
System.out.println("c值输入错误:【"+str+"】,要求c1");
break;
default:;
}
}
}
//输入完毕后,查找素数
TestPrimeNumber.showPrimeNumber(a, b, c);
}
/**
* @param args
*/
public static void main(String[] args)
{
//求输入的两个数字的和
TestPrimeNumber.toAdd();
//输出2和100间的所有素数,每行显示5个
//TestPrimeNumber.showPrimeNumber(2,100,5);
//使用键盘输入a,b,c
//TestPrimeNumber.showPrimeAsYours();
}
}
java中运算器的代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java四则运算代码、java中运算器的代码的信息别忘了在本站进行查找喔。






