网站建设资讯

NEWS

网站建设资讯

大学java算术测试代码 JAVA计算器代码

求JAVA做的计算器完整代码,Applet实现。

下面两个可以么,是我做实验答辩时用到的!

在顺庆等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、成都网站制作 网站设计制作定制网站开发,公司网站建设,企业网站建设,品牌网站设计,营销型网站,成都外贸网站制作,顺庆网站建设费用合理。

import java.awt.*;//AWT核心包

import java.awt.event.*;//提供事件类和监听器

public class Counter extends Frame implements ActionListener

{

TextField t=new TextField("");//文本框

Panel p1=new Panel();//new一个panel,用于存放数字键和符号键。

Panel p2=new Panel();//new一个panel,用于存放开方、平方、和清除键。

Button[] b=new Button[10];//实例化Button对象

Button bAdd=new Button("加");

Button bSub=new Button("减");

Button bMul=new Button("乘以");

Button bPoint=new Button(".");

Button bDiv=new Button("除以");

Button bEqual=new Button("等於");

Button bSqrt=new Button("开方");

Button bPow=new Button("平方");

Button bNull=new Button("清除");

String str1="";     //str1和str2存放两个输入的数

String str2="";

String operator=null;   //存放加减乘除以及开平方的符号

boolean first=true;    //检验输入的是否为第一个数

int countOper=0;    //累计输入符号的个数,连加连减等操作中会用到

double result=0.0;    //暂存结果

double num1=0.0,num2=0.0;  //两个输入的数做运算时转化为double存放

boolean error=false;   //检验除数是否为0

//构造方法

public Counter()

{

Frame s=new Frame("计算器");//创建Frame

for(int i=0;i10;i++)//利用for循环将数字键添加进p1中

{

b[i]=new Button(String.valueOf(i));

p1.add(b[i]);

b[i].setActionCommand("number");

b[i].setForeground(new Color(150,20,20));

b[i].addActionListener(this);//调用addActionListener()方法注册事件监听器

}

p1.add(bPoint);

bPoint.setActionCommand("number");

p1.add(bAdd); //数字键,符号键放置在panel的p1中

p1.add(bSub);

p1.add(bMul);

p1.add(bDiv);

p1.add(bEqual);

p2.add(bSqrt);//开方键,平方键,清除键放置在panel的p2中

p2.add(bPow);

p2.add(bNull);

bAdd.setActionCommand("oper");

bSub.setActionCommand("oper");

bMul.setActionCommand("oper");

bDiv.setActionCommand("oper");

bAdd.setForeground(Color.red);//为组键设计颜色

bSub.setForeground(Color.red);

bMul.setForeground(Color.red);

bDiv.setForeground(Color.red);

bPoint.setForeground(Color.black);

bEqual.setForeground(Color.red);

bSqrt.setForeground(Color.blue);

bPow.setForeground(Color.blue);

bNull.setForeground(Color.blue);

bAdd.addActionListener(this);//调用addActionListener()方法注册事件监听器

bSub.addActionListener(this);

bMul.addActionListener(this);

bDiv.addActionListener(this);

bPoint.addActionListener(this);

bEqual.addActionListener(this);

bSqrt.addActionListener(this);

bPow.addActionListener(this);

bNull.addActionListener(this);

p1.setLayout(new GridLayout(4,4,5,5));//网格布局管理器,把容器根据行数和列数分成同样大小的单元,

//每个单元可容纳一个组件,并且此组件会填满网格单元,不能控

//制其占据网格的大小。4、4为网格的行、列数。5、5为组建之间的

//间距

p2.setLayout(new FlowLayout());//用FlowLayout布局管理器将组建默认剧中排放,默认间隙为5个像素

add(t,"North");      //frame的north放置输入框,panel放置在center和south

add(p1,"Center");//将p1添加到Center中

add(p2,"South");//将p2添加到South中

setLocation(400,200);//设计按钮尺寸

setSize(200,200);//设计窗口尺寸

setBackground(new Color(20,200,10));//设置Frame的背景,默认为白色

setVisible(true);//设置Frame设置为可见

addWindowListener(new WindowAdapter(){   //关闭窗口功能

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

}

//实现接口ActionListener

public void actionPerformed(ActionEvent e)

{

Button temp=(Button)e.getSource();

if(e.getActionCommand().equals("number"))

{

if(first)

{

str1=str1+temp.getLabel();

t.setText(str1);//将输入的str1显示在文本框中

}

else

{

str2=str2+temp.getLabel();

t.setText(str2);//将输入的str2显示在文本框中

}

}

else if(e.getActionCommand().equals("oper"))

{

if(str1=="")    //如果还没有输入数就点击运算符执行if

{

countOper=0;//若此,则将计数清零

first=true;

}

else

{

countOper++;//计算输入符号的个数

if(countOper1)//若输入的符号个数多余一个,则可以进行计算

{

getResult();

}

operator=temp.getLabel();//存放加减乘除以及开方、平方的符号

first=false;

}

}

else if(e.getActionCommand().equals("开方"))

{

double d=Math.sqrt(Double.parseDouble(str1));

str1=String.valueOf(d);//将计算出来的结果再次传给str1,为连计算准备

t.setText(String.valueOf(d));//将计算出来的结果传至文本框中

first=false;//置为false,即已输入第一个数

}

else if(e.getActionCommand().equals("平方"))

{

double f=Math.pow(Double.parseDouble(str1),2);

str1=String.valueOf(f);

t.setText(String.valueOf(f));

first=false;

}

else if(e.getActionCommand().equals("清除"))

{

str1="";//清空

str2="";

t.setText("");//将文本框清空

countOper=0;//将按键计数器清零

first=true;

error=false;

}

else if(e.getActionCommand().equals("等於"))

{

if((str1=="")||(str2==""))   //两个数没有输全就点击等号,执行if

{

countOper=0;//将按键计数器清零

first=true;

}

else

{

getResult();

countOper=0;

}

}

}

//运算结果的方法

public void getResult()

{

num1=Double.parseDouble(str1);

num2=Double.parseDouble(str2);

if(operator.equals("加"))

{

result=num1+num2;

}

else if(operator.equals("减"))

{

result=num1-num2;

}

else if(operator.equals("乘以"))

{

result=num1*num2;

}

else if(operator.equals("除以"))

{

if(num2==0.0)    //除数为0的处理方法

{

error=true;

}

else

{

result=num1/num2;

}

}

if(error)

{

t.setText("error");

}

else

{

t.setText(String.valueOf(result));

str1=String.valueOf(result);  //运算后把结果放入str1中,str2清空,为连加连减等操作做准备

str2="";

}

}

//主方法

public static void main(String[] args)

{

new Counter();//创建一个对象"计算器"

}

}

import   java.awt.*;

import   java.awt.event.*;

import   javax.swing.*;

class   CalculatorPanel   extends   JPanel

implements   ActionListener

{     public   CalculatorPanel()

{     setLayout(new   BorderLayout());

display   =   new   JTextField("0");

display.setEditable(false);

add(display,   "North");

JPanel   p   =   new   JPanel();

p.setLayout(new   GridLayout(4,   4));

String   buttons   =   "789/456*123-0.=+";

for   (int   i   =   0;   i      buttons.length();   i++)

addButton(p,   buttons.substring(i,   i   +   1));

add(p,   "Center");

}

private   void   addButton(Container   c,   String   s)

{     JButton   b   =   new   JButton(s);

c.add(b);

b.addActionListener(this);

}

public   void   actionPerformed(ActionEvent   evt)

{     String   s   =   evt.getActionCommand();

if   ('0'   =   s.charAt(0)      s.charAt(0)   =   '9'

||   s.equals("."))

{     if   (start)   display.setText(s);

else   display.setText(display.getText()   +   s);

start   =   false;

}

else

{     if   (start)

{     if   (s.equals("-"))

{   display.setText(s);   start   =   false;   }

else   op   =   s;

}

else

{     calculate(Double.parseDouble(display.getText()));

op   =   s;

start   =   true;

}

}

}

public   void   calculate(double   n)

{     if   (op.equals("+"))   arg   +=   n;

else   if   (op.equals("-"))   arg   -=   n;

else   if   (op.equals("*"))   arg   *=   n;

else   if   (op.equals("/"))   arg   /=   n;

else   if   (op.equals("="))   arg   =   n;

display.setText(""   +   arg);

}

private   JTextField   display;

private   double   arg   =   0;

private   String   op   =   "=";

private   boolean   start   =   true;

}

public   class   CalculatorApplet   extends   JApplet

{     public   void   init()

{     Container   contentPane   =   getContentPane();

contentPane.add(new   CalculatorPanel());

}

}

java 计算器代码

import javax.swing.*;

import javax.swing.border.Border;

import java.awt.*;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import java.math.BigDecimal;

import java.math.RoundingMode;

import java.util.HashMap;

/**

* 我的计算器。Cheshi 继承于 JFrame,是计算器的界面

c*/

public class Cheshi extends JFrame {

private Border border = BorderFactory.createEmptyBorder(5, 5, 5, 5);

private JTextField textbox = new JTextField("0");

private CalculatorCore core = new CalculatorCore();

private ActionListener listener = new ActionListener() {

public void actionPerformed(ActionEvent e) {

JButton b = (JButton) e.getSource();

String label = b.getText();

String result = core.process(label);

textbox.setText(result);

}

};

public Cheshi(String title) throws HeadlessException {

super(title); // 调用父类构造方法

setupFrame(); // 调整窗体属性

setupControls(); // 创建控件

}

private void setupControls() {

setupDisplayPanel(); // 创建文本面板

setupButtonsPanel(); // 创建按钮面板

}

// 创建按钮面板并添加按钮

private void setupButtonsPanel() {

JPanel panel = new JPanel();

panel.setBorder(border);

panel.setLayout(new GridLayout(4, 5, 3, 3));

createButtons(panel, new String[]{

"7", "8", "9", "+", "C",

"4", "5", "6", "-", "CE",

"1", "2", "3", "*", "", // 空字符串表示这个位置没有按钮

"0", ".", "=", "/", ""

});

this.add(panel, BorderLayout.CENTER);

}

/**

* 在指定的面板上创建按钮

*

* @param panel 要创建按钮的面板

* @param labels 按钮文字

*/

private void createButtons(JPanel panel, String[] labels) {

for (String label : labels) {

// 如果 label 为空,则表示创建一个空面板。否则创建一个按钮。

if (label.equals("")) {

panel.add(new JPanel());

} else {

JButton b = new JButton(label);

b.addActionListener(listener); // 为按钮添加侦听器

panel.add(b);

}

}

}

// 设置显示面板,用一个文本框来作为计算器的显示部分。

private void setupDisplayPanel() {

JPanel panel = new JPanel();

panel.setLayout(new BorderLayout());

panel.setBorder(border);

setupTextbox();

panel.add(textbox, BorderLayout.CENTER);

this.add(panel, BorderLayout.NORTH);

}

// 调整文本框

private void setupTextbox() {

textbox.setHorizontalAlignment(JTextField.RIGHT); // 文本右对齐

textbox.setEditable(false); // 文本框只读

textbox.setBackground(Color.white); // 文本框背景色为白色

}

// 调整窗体

private void setupFrame() {

this.setDefaultCloseOperation(EXIT_ON_CLOSE); // 当窗体关闭时程序结束

this.setLocation(100, 50); // 设置窗体显示在桌面上的位置

this.setSize(300, 200); // 设置窗体大小

this.setResizable(false); // 窗体大小固定

}

// 程序入口

public static void main(String[] args) throws Exception {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

Cheshi frame = new Cheshi("我的计算器");

frame.setVisible(true); // 在桌面上显示窗体

}

}

/**

* 计算器核心逻辑。这个逻辑只能处理 1~2 个数的运算。

*/

class CalculatorCore {

private String displayText = "0"; // 要显示的文本

boolean reset = true;

private BigDecimal number1, number2;

private String operator;

private HashMapString, Operator operators = new HashMapString, Operator();

private HashMapString, Processor processors = new HashMapString, Processor();

CalculatorCore() {

setupOperators();

setupProcessors();

}

// 为每种命令添加处理方式

private void setupProcessors() {

processors.put("[0-9]", new Processor() {

public void calculate(String command) {

numberClicked(command);

}

});

processors.put("\\.", new Processor() {

public void calculate(String command) {

dotClicked();

}

});

processors.put("=", new Processor() {

public void calculate(String command) {

equalsClicked();

}

});

processors.put("[+\\-*/]", new Processor() {

public void calculate(String command) {

operatorClicked(command);

}

});

processors.put("C", new Processor() {

public void calculate(String command) {

clearClicked();

}

});

processors.put("CE", new Processor() {

public void calculate(String command) {

clearErrorClicked();

}

});

}

// 为每种 operator 添加处理方式

private void setupOperators() {

operators.put("+", new Operator() {

public BigDecimal process(BigDecimal number1, BigDecimal number2) {

return number1.add(number2);

}

});

operators.put("-", new Operator() {

public BigDecimal process(BigDecimal number1, BigDecimal number2) {

return number1.subtract(number2);

}

});

operators.put("*", new Operator() {

public BigDecimal process(BigDecimal number1, BigDecimal number2) {

return number1.multiply(number2);

}

});

operators.put("/", new Operator() {

public BigDecimal process(BigDecimal number1, BigDecimal number2) {

return number1.divide(number2, 30, RoundingMode.HALF_UP);

}

});

}

// 根据命令处理。这里的命令实际上就是按钮文本。

public String process(String command) {

for (String pattern : processors.keySet()) {

if (command.matches(pattern)) {

processors.get(pattern).calculate(command);

break;

}

}

return displayText;

}

// 当按下 CE 时

private void clearErrorClicked() {

if (operator == null) {

number1 = null;

} else {

number2 = null;

}

displayText = "0";

reset = true;

}

// 当按下 C 时,将计算器置为初始状态。

private void clearClicked() {

number1 = null;

number2 = null;

operator = null;

displayText = "0";

reset = true;

}

// 当按下 = 时

private void equalsClicked() {

calculateResult();

number1 = null;

number2 = null;

operator = null;

reset = true;

}

// 计算结果

private void calculateResult() {

number2 = new BigDecimal(displayText);

Operator oper = operators.get(operator);

if (oper != null) {

BigDecimal result = oper.process(number1, number2);

displayText = result.toString();

}

}

// 当按下 +-*/ 时(这里也可以扩展成其他中间操作符)

private void operatorClicked(String command) {

if (operator != null) {

calculateResult();

}

number1 = new BigDecimal(displayText);

operator = command;

reset = true;

}

// 当按下 . 时

private void dotClicked() {

if (displayText.indexOf(".") == -1) {

displayText += ".";

} else if (reset) {

displayText = "0.";

}

reset = false;

}

// 当按下 0-9 时

private void numberClicked(String command) {

if (reset) {

displayText = command;

} else {

displayText += command;

}

reset = false;

}

// 运算符处理接口

interface Operator {

BigDecimal process(BigDecimal number1, BigDecimal number2);

}

// 按钮处理接口

interface Processor {

void calculate(String command);

}

}

java编写算术运算测试

我这个程序可以实现加减乘除求余等功能,界面化操作,简单好看,希望对你有用!

import java.awt.*;

import java.awt.event.*;

import java.lang.StrictMath;

public class AddMyFrame extends Frame{

TextField t1,t2,t3;

Label l2;

Choice ch = new Choice();

Button b1;

public AddMyFrame(String str){

super(str);

setBackground(Color.gray);

setLayout(new FlowLayout());

setSize(400,150);

addWindowListener(new WindowAdapter(){

public void windowClosed(WindowEvent e){

System.exit(0);

}

public void windowClosing(WindowEvent e){

System.exit(0);

}

});

initFrame();

}

public void initFrame(){

t1=new TextField(6);

t2=new TextField(6);

t3=new TextField(7);

ch.add("+");

ch.add("-");

ch.add("*");

ch.add("/");

ch.add("%");

ch.add("Sqrt");

l2=new Label("=");

b1=new Button("确定");

ButtonEvent be=new ButtonEvent();

t1.addKeyListener(be);

add(t1);

add(ch);

t2.addKeyListener(be);

add(t2);

add(l2);

add(t3);

b1.addActionListener(be);

add(b1);

}

public static void main(String [] atg){

AddMyFrame m1=new AddMyFrame("常用计算器");

m1.setVisible(true);

}

//------------------------------------------------

class ButtonEvent extends KeyAdapter implements ActionListener{

public void actionPerformed(ActionEvent e){

addMethod();

}

public void addMethod(){

int t1Value=0;

int t2Value=0;

double t3Value=0;

try{

t1Value=Integer.parseInt(t1.getText());

}catch(Exception ex){

t1Value=0;

t1.setText("0");

}

try{

t2Value=Integer.parseInt(t2.getText());

}catch(Exception ex){

t2Value=0;

t2.setText("0");

}

if(ch.getSelectedItem()==("+")){

t3Value=t1Value+t2Value;

t3.setText(String.valueOf(t3Value));

}

else if(ch.getSelectedItem()==("-")){

t3Value=t1Value-t2Value;

t3.setText(String.valueOf(t3Value));

}

else if(ch.getSelectedItem()==("*")){

t3Value=t1Value*t2Value;

t3.setText(String.valueOf(t3Value));

}

else if(ch.getSelectedItem()==("/")){

t3Value=t1Value/t2Value;

t3.setText(String.valueOf(t3Value));

}

else if(ch.getSelectedItem()==("%")){

t3Value=t1Value%t2Value;

t3.setText(String.valueOf(t3Value));

}

else if(ch.getSelectedItem()==("Sqrt")){

t3Value=t1Value*t2Value;

t3Value=Math.sqrt(t3Value);

t3.setText(String.valueOf(t3Value));

}

}

public void keyReleased(KeyEvent e){

addMethod();

}

}

}

//常用计算器版权@playlong2009先生2009/12/5

JAVA 编写计算器 要代码最简单的

学java的时候自己编的,很简单,能够连续输入计算式后进行计算

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.text.NumberFormat;

import java.util.ArrayList;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JTextField;

/**简易计算器,能够进行简单的计算

*

* @see 2008.12.9

*/

public class CalculatorA

implements ActionListener{

private JFrame frame;

private JTextField field;

private JButton[] allButtons;

private JButton clearButton;

// private JButton backButton;

String result="";//保存结果

StringBuilder sb = new StringBuilder();//保存要进行的计算式

int x = 0; //用来判断上一次的事件类型

String str = "123+456-789*0.=/";

ArrayListString arrayList = new ArrayListString();//保存计算式,通过方法进行运算

public CalculatorA(){

frame = new JFrame("我的计算器v1.1");

frame.setLocation(300,300);

field = new JTextField(25);

allButtons = new JButton[16];

for(int i=0;iallButtons.length;i++){

allButtons[i]= new JButton(str.substring(i,i+1));

}

clearButton = new JButton("CLEAR");

// backButton = new JButton("——");

init();

setFondAndColor();

addEventHander();

}

public void init(){

frame.setLayout(new BorderLayout());

JPanel northPanel = new JPanel();

JPanel centerPanel = new JPanel();

JPanel southPanel = new JPanel();

northPanel.setLayout(new FlowLayout());

centerPanel.setLayout(new GridLayout(4,4));

southPanel.setLayout(new FlowLayout());

northPanel.add(field);

for(int i=0;iallButtons.length;i++){

centerPanel.add(allButtons[i]);

}

southPanel.add(clearButton);

//southPanel.add(backButton);

frame.add(northPanel,BorderLayout.NORTH);

frame.add(centerPanel,BorderLayout.CENTER);

frame.add(southPanel,BorderLayout.SOUTH);

}

//设置输入字体

public void setFondAndColor(){

field.setFont(new Font("宋体",Font.BOLD,24));

field.setBackground(new Color(100,200,200));

field.setForeground(Color.RED);

//设置字体从右起始

field.setHorizontalAlignment(JTextField.RIGHT);

}

public void showMi(){

frame.pack();

frame.setResizable(false);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void addEventHander(){

for(int i=0;iallButtons.length;i++){

allButtons[i].addActionListener(this);

}

clearButton.addActionListener(this);

// backButton.addActionListener(this);

}

@Override

public void actionPerformed(ActionEvent e) {

String str = e.getActionCommand();//取得当前事件返回的值

if("0123456789.".indexOf(str)!=-1){

if(x == 0){ //当x为0时表示还没有进行输入

result=str;

sb.append(str);

field.setText(str);

x = 1;

}

else if(x == 1){

result = result +str;

sb.append(str);

field.setText(result);

x = 1;

}

else if(x == 2){

sb.delete(0,sb.length());

result = result+str;

sb.append(str);

field.setText(result);

x = 1;

}

else if(x == 3){

result = str;

sb.delete(0,sb.length());

arrayList.clear();

field.setText(str);

sb.append(str);

field.setText(str);

x = 1;

}

else if(x == 4){

result ="";

sb.delete(0,sb.length());

arrayList.clear();

result = str;

sb.append(str);

field.setText(str);

x = 1;

}

else{

result = result +str;

sb.append(str);

field.setText(result);

x = 1;

}

}

else if("+*-/".indexOf(str)!=-1){

if(x == 0){

field.setText("");

x = 2;

}

else if(x == 1){

result = result + str;

arrayList.add(sb.toString());

arrayList.add(str);

sb.append(str);

field.setText(result);

x = 2;

}

else if(x == 2){

x = 2;

}

else if(x == 3){

field.setText(result+str);

arrayList.add(result);

arrayList.add(str);

result = result+str;

x = 2;

}

else if(x == 4){

result ="";

sb.delete(0,sb.length());

arrayList.clear();

x = 2;

}

else{

field.setText(result+str);

arrayList.add(result);

arrayList.add(str);

result = result+str;

x = 2;

}

}

else if("=".equals(str)){

if(x == 0){

field.setText("0");

arrayList.clear();

result = "0";

x = 3;

}

else if(x == 1){

try{

arrayList.add(sb.toString());

arrayList = getResult(arrayList);

result = arrayList.get(0);

field.setText(result);

arrayList.clear();

x = 3;

}catch(Exception e1){

field.setText("数据格式异常");

x = 0;

}

}

else if(x == 2){

field.setText("数据格式错误.....");

arrayList.clear();

x = 0;

}

else if(x == 3){

field.setText(result);

x = 3;

}

else if(x == 4){

result ="";

sb.delete(0,sb.length());

arrayList.clear();

x = 3;

}

else {

try{

arrayList.add(sb.toString());

arrayList = getResult(arrayList);

result = arrayList.get(0);

field.setText(result);

arrayList.clear();

x = 3;

}catch(Exception e1){

field.setText("数据格式异常");

x = 0;

}

}

}

else if("CLEAR".equals(str)){

arrayList.clear();

field.setText("0");

arrayList.add("0");

x = 4;

}

else{

if(result.length()1){

result = result.substring(0,result.length()-1);

if(sb.length()0){

sb.delete(sb.length()-1,sb.length());

}

else {

sb.delete(0,1);

}

field.setText(result);

x = 5;

}

else{

result = "";

sb.delete(0,sb.length());

arrayList.clear();

field.setText("0");

x = 0;

}

}

}

public static ArrayListString getResult(ArrayListString list){

String res = null;

String[] s = {"/","*","-","+"};

int i=0;

if(list.size()1){

for(;is.length;){

if(s[i].equals("/")){

for(int j=0;jlist.size();j++){

if(list.get(j).equals(s[i])){

res = Double.toString(Double.parseDouble(list.get(j-1))/Double.parseDouble(list.get(j+1)));

//本地的数据格式

NumberFormat nf = NumberFormat.getInstance();

res = nf.format(Double.parseDouble(res));

res = getChange(res);

list.set(j-1,res);

list.remove(j);

list.remove(j);

getResult(list);

}

}

i++;

}

else if(s[i].equals("*")){

for(int j=0;jlist.size();j++){

if(list.get(j).equals(s[i])){

res = Double.toString(Double.parseDouble(list.get(j-1))*Double.parseDouble(list.get(j+1)));

NumberFormat nf = NumberFormat.getInstance();

res = nf.format(Double.parseDouble(res));

res = getChange(res);

list.set(j-1,res);

list.remove(j);

list.remove(j);

getResult(list);

}

}

i++;

}

else if(s[i].equals("-")){

for(int j=0;jlist.size();j++){

if(list.get(j).equals(s[i])){

res = Double.toString(Double.parseDouble(list.get(j-1))-Double.parseDouble(list.get(j+1)));

NumberFormat nf = NumberFormat.getNumberInstance();

res = nf.format(Double.parseDouble(res));

res = getChange(res);

list.set(j-1,res);

list.remove(j);

list.remove(j);

getResult(list);

}

}

i++;

}

else {

for(int j=0;jlist.size();j++){

if(list.get(j).equals(s[i])){

res = Double.toString(Double.parseDouble(list.get(j-1))+Double.parseDouble(list.get(j+1)));

NumberFormat nf = NumberFormat.getInstance();

res = nf.format(Double.parseDouble(res));

res = getChange(res);

list.set(j-1,res);

list.remove(j);

list.remove(j);

getResult(list);

}

}

i++;

}

}

}

return list;

}

//对数字字符串进行排除不必要符号

public static String getChange(String res){

String s_temp = "";

char[] c = new char[res.length()];

for(int k=0;kc.length;k++){

c[k] = res.charAt(k);

}

for(int k=0;kc.length;k++){

if((c[k]= '0' c[k]= '9')|| c[k] == '.'){

s_temp += c[k];

}

}

return s_temp;

}

public static void main(String[] args){

new CalculatorA().showMi();

}

}

求java代码,要求做一个测试类,实现以下功能之一。最好三个功能都有。

import java.util.*;

public class Admin {//管理类

Scanner in=new Scanner(System.in);

String msg="\t编号\t姓名\t年龄\tJava\tC#\tHtml\tSql\t总分\t平均分";

public void print(Student[] arr){//输出方法

System.out.println(msg);

for(int i=0;iarr.length;i++){

if(arr[i]!=null){

arr[i].setSum();

arr[i].setAvg();

System.out.println(arr[i]);

}

}

}

public boolean exist(int num,Student stu){//判断存在方法

if(stu!=null){

if(stu.getNum()==num){

return true;

}else{

return false;

}

}

return false;

}

public void create(String name,int age,Student[] arr){//添加方法

Student stu=new Student();

stu.setName(name);

stu.setAge(age);

int i=this.setIndex(arr);

stu.setNum(i);

if(i==9999){

System.out.println("添加学生人数已达到上限,不能再添加了!");

}else{

arr[i]=stu;

}

this.print(arr);

}

public int setIndex(Student[] arr){// 返回下标

for(int i=0;iarr.length;i++){

if(arr[i]==null){

return i;

}

}

return 9999;

}

public void select(int num,Student[] arr){//查找方法

System.out.println(msg);

for(int i=0;iarr.length;i++){

/*if(arr[i]!=null){

if(arr[i].getNum()==num){

System.out.println(arr[i]);

return;

}

}*/

if(this.exist(num, arr[i])){

System.out.println(arr[i]);

return;

}

}

System.out.println("\t---!没有这个学生的存在!---\t");

}

public void update(int num,Student[] arr){//更新方法

for(int i=0;iarr.length;i++){

if(this.exist(num, arr[i])){

System.out.println("请输入修改的姓名:");

arr[i].setName(in.next());

System.out.println("请输入修改的年龄:");

arr[i].setAge(in.nextInt());

System.out.println("---更新信息成功---");

this.print(arr);

return;

}

}

System.out.println("---更新信息失败---");

}

public void delete(int num,Student[] arr){//删除方法

for(int i=0;iarr.length;i++){

if(this.exist(num, arr[i])){

arr[i]=null;

System.out.println("---删除信息成功---");

this.print(arr);

return;

}

}

System.out.println("---删除信息失败---");

}

public void input(int num,Student[] arr){//输入方法

for(int i=0;iarr.length;i++){

if(this.exist(num, arr[i])){

System.out.println("请输入"+arr[i].getName()+"学生的java成绩:");

if(in.hasNextInt()){

arr[i].setJava(in.nextInt());

}

//arr[i].setJava(in.nextInt());

System.out.println("请输入"+arr[i].getName()+"学生的c_sharp成绩:");

if(in.hasNextInt()){

arr[i].setC_sharp(in.nextInt());

}

//arr[i].setC_sharp(in.nextInt());

System.out.println("请输入"+arr[i].getName()+"学生的html成绩:");

if(in.hasNextInt()){

arr[i].setHtml(in.nextInt());

}

//arr[i].setHtml(in.nextInt());

System.out.println("请输入"+arr[i].getName()+"学生的sql成绩:");

if(in.hasNextInt()){

arr[i].setSql(in.nextInt());

}

//arr[i].setSql(in.nextInt());

this.print(arr);

break;

}

}

}

public void couseSort(int num,Student[] arr){//学科排序方法

if(num==1){

for(int i=0;iarr.length-1;i++){

for(int j=i+1;jarr.length;j++){

if(arr[i]!=nullarr[j]!=null){

if(arr[i].getJava()arr[j].getJava()){

Student t=arr[i];

arr[i]=arr[j];

arr[j]=t;

}

}

}

}

}else if(num==2){

for(int i=0;iarr.length;i++){

for(int j=i+1;jarr.length;j++){

if(arr[i]!=nullarr[j]!=null){

if(arr[i].getC_sharp()arr[j].getC_sharp()){

Student t=arr[i];

arr[i]=arr[j];

arr[j]=t;

}

}

}

}

}else if(num==3){

for(int i=0;iarr.length;i++){

for(int j=i+1;jarr.length;j++){

if(arr[i]!=nullarr[j]!=null){

if(arr[i].getHtml()arr[j].getHtml()){

Student t=arr[i];

arr[i]=arr[j];

arr[j]=t;

}

}

}

}

}else if(num==4){

for(int i=0;iarr.length;i++){

for(int j=i+1;jarr.length;j++){

if(arr[i]!=nullarr[j]!=null){

if(arr[i].getSql()arr[j].getSql()){

Student t=arr[i];

arr[i]=arr[j];

arr[j]=t;

}

}

}

}

}

this.print(arr);

}

public void sumSort(Student[] arr){//总分排序方法

for(int i=0;iarr.length;i++){

for(int j=i+1;jarr.length;j++){

if(arr[i]!=nullarr[j]!=null){

if(arr[i].getSum()arr[j].getSum()){

Student t=arr[i];

arr[i]=arr[j];

arr[j]=t;

}

}

}

}

this.print(arr);

}

}

public class Student {//学生类

private int num;

private String name;

private int age;

private int java;

private int c_sharp;

private int html;

private int sql;

private int sum;

private double avg;

public int getNum(){

return num;

}

public void setNum(int num){

this.num=num;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public int getJava() {

return java;

}

public void setJava(int java) {

this.java = java;

}

public int getC_sharp() {

return c_sharp;

}

public void setC_sharp(int c_sharp) {

this.c_sharp = c_sharp;

}

public int getHtml() {

return html;

}

public void setHtml(int html) {

this.html = html;

}

public int getSql() {

return sql;

}

public void setSql(int sql) {

this.sql = sql;

}

public int getSum() {

return sum;

}

public void setSum() {

this.sum =this.java+this.c_sharp+this.html+this.sql;

}

public double getAvg() {

return avg;

}

public void setAvg() {

this.avg = this.sum/4;

}

public String toString(){

String msg="\t"+this.num+"\t"+this.name+"\t"+this.age+"\t"+this.java+"\t"+this.c_sharp+"\t"+this.html+"\t"+this.sql+"\t"+this.sum+"\t"+this.avg+"\t";

return msg;

}

}

import java.util.*;

public class Main {//主

public static void main(String[] args){

Scanner in=new Scanner(System.in);

System.out.println("---请定义学生的人数---");

Student[] stuArr=new Student[in.nextInt()];

Admin adminStu=new Admin();

while(true){

System.out.println("---选择你要执行的功能---");

System.out.println("0:添加一个学生");

System.out.println("1:查找一个学生");

System.out.println("2:根据编号更新信息");

System.out.println("3:根据编号删除学生");

System.out.println("4:根据编号输入成绩");

System.out.println("5:根据某门学科排序");

System.out.println("6:根据总分进行排序");

System.out.println("7:退出系统");

//int number =in.nextInt();//判断

String opt=in.next();

if(opt.equals("0")){

System.out.println("---执行添加方法---");

System.out.println("请输入学生的姓名:");

String name=in.next();

System.out.println("请输入学生的年龄:");

int age=in.nextInt();

adminStu.create(name,age,stuArr);

//adminStu.print(stuArr);

}else if(opt.equals("1")){

System.out.println("---执行查找方法---");

System.out.println("请输入学生的编号:");

int num=in.nextInt();

adminStu.select(num, stuArr);

}else if(opt.equals("2")){

System.out.println("---执行更新方法---");

System.out.println("请输入学生的编号:");

int num=in.nextInt();

/*System.out.println("请输入修改的姓名:");

String name=in.next();

System.out.println("请输入修改的年龄:");

int age=in.nextInt();*/

adminStu.update(num, stuArr);

//adminStu.print(stuArr);

}else if(opt.equals("3")){

System.out.println("---执行删除方法---");

System.out.println("请输入学生的编号:");

int num=in.nextInt();

adminStu.delete(num, stuArr);

//adminStu.print(stuArr);

} else if(opt.equals("4")){

System.out.println("---执行输入方法---");

System.out.println("请输入学生的编号:");

int num=in.nextInt();

adminStu.input(num, stuArr);

}else if(opt.equals("5")){

System.out.println("---执行学科排序方法---");

System.out.println("请选择需排序的学科:1.java、2.c_sharp、3.html、4.sql");

int num=in.nextInt();

adminStu.couseSort(num, stuArr);

}else if(opt.equals("6")){

System.out.println("---执行总分排序方法---");

adminStu.sumSort(stuArr);

}else if(opt.equals("7")){

System.out.println("--程序已退出--");

//break;//退出循环

System.exit(0);//退出程序

}

}

}

}

这是我以前编写的一个微型学生管理系统,希望可以给你点思路。休息时间不多就懒。

求大神帮忙编两个java代码(学生java作业)

第一题: 元素的复制

import java.util.Arrays;

public class ArrayDemo {

public static void main(String[] args) {

int[] scores = {91,85,98,62,78,93};

int[] newScores=Arrays.copyOfRange(scores, 0, 5);//复制元素, 左开右闭区间[0,5)

System.out.println(Arrays.toString(newScores));//调用数组工具类的方法转成字符串并打印

}

}

第二题: 这题虽然使用集合更方便 , 但却是非常好的一维数组的训练题目.

解法一: 集合解决 随机产生7个不重复的数字很简单

import java.util.HashSet;

import java.util.Random;

public class NumberTest {

public static void main(String[] args) {

HashSetInteger set=  new HashSetInteger();//元素不可重复的无序集合

Random rd=new Random();//随机产生器

while(set.size()7) {

set.add(rd.nextInt(36)+1);//产生1~36的随机数

//如果元素重复, 那么添加不上去

}

System.out.println(set);

}

}

解法二:一维数组 ,解决产生7个数字, 并升序排列

int[]      nums 数组存储1~36个数组

boolean[] flags 数组存储的是和nums数组一一对应的true或者false,如果使用了就标记为true.,如果没有使用标记为false,

例如 随机产生了一个下标0  ,那么查看flags[0] ,如果是true, 那么说明该元素已经使用了,重新产生一个随机数, 如果是false ,那么表示nums[0]没有被使用

具体代码如下(稍微留个尾巴, 就是中不中的判断, 可以把两个数组都升序排序,然后元素一一比较,全部相同就是中了)

import java.util.Arrays;

import java.util.Random;

public class NumberDemo {

public static void main(String[] args) {

int[] nums= new int[36];//长度为36的数组 ,默认全是0

for (int i = 0; i  nums.length; i++) {//利用for循环赋值1~36

nums[i]=i+1;

}

boolean[] flags=new boolean[nums.length];//长度和nums相同的数组,默认值全是false ,表示全部没有使用过

//用boolean值表示对应的nums里的元素是否被使用

int[] result=new int[7];//存储结果

Random rd = new Random();

for (int i = 0; i  result.length; i++) {

int temp=rd.nextInt(nums.length);//随机产生下标

//System.out.println(Arrays.toString(result));

if(flags[temp]) {//如果已经被使用,那么i-1,并在此循环

i--;

//System.out.println("号码"+nums[temp]+"已经存在.再次循环");

}else {

result[i]=nums[temp];

flags[temp]=true;//标记true表示已经使用了

}

}

System.out.println("原始排序:"+Arrays.toString(result));

Arrays.sort(result);//升序排列

System.out.println("升序排列:"+Arrays.toString(result));

}

}


分享标题:大学java算术测试代码 JAVA计算器代码
本文网址:http://cdweb.net/article/hijoho.html