java循环计算源代码,java循环程序代码

java 写的计算器源代码只实现加减乘除四则运算即可

import java.awt.*;

创新互联建站-专业网站定制、快速模板网站建设、高性价比伊吾网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式伊吾网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖伊吾地区。费用合理售后完善,十余年实体公司更值得信赖。

import java.awt.event.*;

import javax.swing.*;

import java.util.Vector;

public class calculator

{

String str1="0"; //运算数1 初值一定为0 为了程序的安全

String str2="0"; //运算数2

String fh="+"; //运算符

String jg="";//结果

//状态开关 重要

int k1=1;//开关1 用于选择输入方向 将要写入str2或 str2

int k2=1;//开关2 符号键 次数 k21说明进行的是2+3-9+8 这样的多符号运算

int k3=1;//开关3 str1 是否可以被清0 ==1时可以 !=1时不能被清0

int k4=1;//开关4 str2 同上

int k5=1;//开关5 控制小数点可否被录入 ==1时可以 !=1 输入的小数点被丢掉

JButton jicunqi; //寄存器 记录 是否连续按下符号键

Vector vt=new Vector(20,10);

JFrame frame=new JFrame("sunshine---计算器");

JTextField jg_TextField=new JTextField(jg,20);//20列

JButton clear_Button=new JButton("清除");

JButton button0=new JButton("0");

JButton button1=new JButton("1");

JButton button2=new JButton("2");

JButton button3=new JButton("3");

JButton button4=new JButton("4");

JButton button5=new JButton("5");

JButton button6=new JButton("6");

JButton button7=new JButton("7");

JButton button8=new JButton("8");

JButton button9=new JButton("9");

JButton button_Dian=new JButton(".");

JButton button_jia=new JButton("+");

JButton button_jian=new JButton("-");

JButton button_cheng=new JButton("*");

JButton button_chu=new JButton("/");

JButton button_dy=new JButton("=");

public static void main(String[] args)

{

calculator calculator=new calculator();

}

calculator()

{

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

JPanel pan=new JPanel();

pan.setLayout(new GridLayout(4,4,5,5));//四行四列 边距为5像素

pan.add(button7);

pan.add(button8);

pan.add(button9);

pan.add(button_chu);

pan.add(button4);

pan.add(button5);

pan.add(button6);

pan.add(button_cheng);

pan.add(button1);

pan.add(button2);

pan.add(button3);

pan.add(button_jian);

pan.add(button0);

pan.add(button_Dian);

pan.add(button_dy);

pan.add(button_jia);

pan.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));//pan对象的边距

JPanel pan2=new JPanel();

pan2.add(jg_TextField);

JPanel pan3=new JPanel(); //为什么要 多此一句呢? 因为我不会设置 按钮的大小

pan3.setLayout(new FlowLayout());

pan3.add(clear_Button);

//clear_Button.setSize(10,10);//设置清零按钮的大小 吗的 不好使 !!

frame.setLocation(300, 200); //主窗口 出现在位置

frame.setResizable(false); //不能调大小

frame.getContentPane().setLayout(new BorderLayout());

frame.getContentPane().add(pan2,BorderLayout.NORTH);

frame.getContentPane().add(pan,BorderLayout.CENTER);

frame.getContentPane().add(pan3,BorderLayout.SOUTH);

frame.pack();

frame.setVisible(true);

//以上是 控件 和 布局

//下面是事件处理 程 序

//--------------- 数 字 键 ----------------

class JianTing implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

String ss=((JButton)e.getSource()).getText();

jicunqi=(JButton)e.getSource();

vt.add(jicunqi);

if (k1==1)

{

if(k3==1)

{

str1="";

k5=1;//还原开关k5状态

}

str1=str1+ss;

//k2=1;

k3=k3+1;

//System.out.println(str1);

jg_TextField.setText(str1);//显示

}

else if(k1==2)

{

if (k4==1)

{

str2="";

k5=1; //还原开关k5状态

}

str2=str2+ss;

//k2=2;

k4=k4+1;

///////////////测试////////////////

jg_TextField.setText(str2);

}

}

}

//--------符 号-----------

class JianTing_fh implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

String ss2=((JButton)e.getSource()).getText();

jicunqi=(JButton)e.getSource();

vt.add(jicunqi);

if(k2==1)

{

k1=2;//开关 k1 为1时,向数1写 为2时,向数2写

k5=1;

fh=ss2;

k2=k2+1;//按符号键的次数

}

else

{

int a=vt.size();

JButton c=(JButton)vt.get(a-2); if(!(c.getText().equals("+"))!(c.getText().equals("-"))!(c.getText().equals("*"))!(c.getText().equals("/")))

{

yuns();

str1=jg;

k1=2;//开关 k1 为1时,向数1写 为2时,向数2写

k5=1;

k4=1;

fh=ss2;

} k2=k2+1;

}

}

}

//--------清除-------

class JianTing_clear implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

jicunqi=(JButton)e.getSource();

vt.add(jicunqi);

k5=1;

k2=1;

k1=1;

k3=1;

k4=1;

str1="0";

str2="0";

fh="";

jg="";

jg_TextField.setText(jg);

vt.clear();

}

}

//----------------等 于 ---------------------

class JianTing_dy implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

jicunqi=(JButton)e.getSource();

vt.add(jicunqi);

yuns();

k1=1; //还原开关k1状态

//str1=jg;

k2=1;

k3=1;//还原开关k3状态

k4=1; //还原开关k4状态

str1=jg; //为7+5=12 +5=17 这种计算做准备

}

}

//----------------小数点 ---------------------

class JianTing_xiaos implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

jicunqi=(JButton)e.getSource();

vt.add(jicunqi);

if(k5==1)

{

String ss2=((JButton)e.getSource()).getText();

if (k1==1)

{

if(k3==1)

{

str1="";

k5=1; //还原开关k5状态

}

str1=str1+ss2;

//k2=1;

k3=k3+1;

//System.out.println(str1);

jg_TextField.setText(str1);//显示

}

else if(k1==2)

{

if (k4==1)

{

str2="";

k5=1; //还原开关k5状态

}

str2=str2+ss2;

//k2=2;

k4=k4+1;

///////////////测试////////////////

jg_TextField.setText(str2);

}

}

k5=k5+1;

}

}

//注册 监听器

JianTing_dy jt_dy=new JianTing_dy();

JianTing jt= new JianTing();//临听数字键

JianTing_fh jt_fh= new JianTing_fh();//临 听符 号键

JianTing_clear jt_c=new JianTing_clear(); //清除键

JianTing_xiaos jt_xs=new JianTing_xiaos();// 小数点 键

button7.addActionListener(jt);

button8.addActionListener(jt);

button9.addActionListener(jt);

button_chu.addActionListener(jt_fh);

button4.addActionListener(jt);

button5.addActionListener(jt);

button6.addActionListener(jt);

button_cheng.addActionListener(jt_fh);

button1.addActionListener(jt);

button2.addActionListener(jt);

button3.addActionListener(jt);

button_jian.addActionListener(jt_fh);

button0.addActionListener(jt);

button_Dian.addActionListener(jt_xs);

button_dy.addActionListener(jt_dy);

button_jia.addActionListener(jt_fh);

clear_Button.addActionListener(jt_c);

//关闭事件处理程序

frame.addWindowListener(new WindowAdapter()

{

public void windowClosing(WindowEvent e)

{

System.exit(0);

}

});

}

//---------------计 算------------------

public void yuns()

{

double a2,b2;//运算数1,2

String c=fh;// 运算符

double jg2=0 ;//结果

if (c.equals(""))

{

//System.out.println("请输入运算符");

jg_TextField.setText("请输入运算符");

}

else

{

System.out.println("str1:"+str1);//调试时 使 用

System.out.println("str2:"+str2);//调试时 使 用

System.out.println("运算符:"+fh);//调试时 使 用

if (str1.equals(".")) //字符串 "." 转换成double型数据时 会出错 所以手工转

str1="0.0";

if (str2.equals("."))

str2="0.0";

a2=Double.valueOf(str1).doubleValue();

b2=Double.valueOf(str2).doubleValue();

System.out.println("double型的a2:"+a2); //调试时 使 用

System.out.println("double型的b2:"+b2); //调试时 使 用

if (c.equals("+"))

{

jg2=a2+b2;

}

if (c.equals("-"))

{

jg2=a2-b2;

}

if (c.equals("*"))

{

jg2=a2*b2;

}

if (c.equals("/"))

{

if(b2==0)

{

jg2=0;//0000000000000 by 0 cu!

}

else

{

jg2=a2/b2;

}

}

System.out.println("double型a2"+fh+"b2结果:"+jg2);

System.out.println();

jg=((new Double(jg2)).toString());

jg_TextField.setText(jg);

}

}

}

java计算器16个按钮(要用for循环打出来的)源代码

自己写的,给你参考参考import java.awt.BorderLayout;

import java.awt.FlowLayout;

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.swing.JTextField;public class Counter implements ActionListener{ /**

* @param args

*/

private JFrame frame;

private JTextField field;

private JButton clear_but;

private JButton[] buttons;

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

public Counter() {

frame=new JFrame("计算器t\t\t\t\t\t\t");

field=new JTextField(15);

clear_but=new JButton("C");

buttons=new JButton[25];

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

{

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

}

field.setText("");

}

private void init(){

addEventHandler();

frame.setLayout(new BorderLayout());

JPanel n_panel=new JPanel();

JPanel c_panel=new JPanel();

n_panel.setLayout(new FlowLayout());

frame.add(n_panel,BorderLayout.NORTH);

n_panel.add(field);

n_panel.add(clear_but);

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

for(int i=0;i16;i++)

{

c_panel.add(buttons[i]);

}

frame.add(c_panel, BorderLayout.CENTER);

}

public void showMe(){

init();

frame.setSize(300, 240);

//frame.pack();// frame.setLocation(400,360);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

private void addEventHandler(){

//clear_but.addActionListener(new MyActionListener());

clear_but.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

field.setText("");

}

});

for(int i=0;i16;i++)

{

final int in=i;

buttons[i].addActionListener(this);

// @Override

// public void actionPerformed(ActionEvent e) {

// System.out.print(e.getActionCommand());

// //System.out.print(str.substring(in, in+1));

// }

//

}

}

String num="";

String flag="";

//@Override

public void actionPerformed(ActionEvent e) {

String str=e.getActionCommand();

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

Double a=Double.valueOf(num);

Double b=Double.valueOf(field.getText());

double sum=0;

if(flag.equals("+")){

sum=a+b;

field.setText(sum+"");

}

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

sum=a-b;

field.setText(""+sum);

}

if(flag.equals("*")){

sum=a*b;

field.setText(""+sum);

}

if(flag.equals("/")){

sum=a/b;

field.setText(""+sum);

}

System.out.println(a+flag+b+"="+sum);

}

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

String newtext=field.getText();

newtext+=str;

field.setText(newtext);

//System.out.print(str);

}

else if(str.matches("[+*-/]{1}")){

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

num=field.getText();

field.setText("");

flag=str;

// System.out.print(str);

}

}

public static void main(String[] args) {

new Counter().showMe();

}}

用java的for循环计算1+1/2!+1/3!+1/4!+···的前20项和

package s1;//包名可以不要//

public class s1{

public static void main(String[]args) {

double a,b,c,sum=0;//因为有小数所以是double类型//

while(true){

for(a=2;a=20;a++) {

c=(1/a);//计算每一次循环的结果//

sum=sum+c;//累计每一次的//

}

sum=sum+1;//加上1//

System.out.println(+sum);//输出结果//

break;//结束while循环//

}

}

循环结果为:3.5977396571436824

JAVA题~循环计算 n+(n-1)+(n-2)+…+3+2+1

首先这是一个等差数列..

int n;

System.out.println("请输入数值n的值:");

Scanner inT= new Scanner(System.in);//输入一个数

n = inT.nextInt();//将输入的数赋值给n

int sum = n;

String str = Integer.toString(n);

for (int i=1;i=n-1;i++){

str += "+"+"("+Integer.toString(n)+"-"+Integer.toString(n-i)+")";

sum += (n-i);

}

System.out.println("表达式为:"+str);

System.out.println("结果:"+sum);

运行结果为:

请输入n的值:5

表达式为:5+(5-4)+(5-3)+(5-2)+(5-1)

结果:15

求助:循环赛—java源代码

以前的!

====代码====

package com;

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.List;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JList;

import javax.swing.JPanel;

import javax.swing.JTextField;

/**

* 网球赛

* @author Cris

* @ClassName: Match

* @Version

* @ModifiedBy

* @Copyright @ 2010 HL Technology Inc.

* @date 2011-5-24 上午11:29:39

* @description

*/

public class Match implements ActionListener{

private JFrame f;

private JTextField tf;

private JPanel container;

private JList myList ;

private JLabel message;

private JButton b;

/**

* @author Cris

* @title: main

* @date 2011-5-23 上午11:07:27

* @param args void

*/

public static void main(String[] args) {

Match t = new Match();

t.go();

}

public void go(){

f = new JFrame("比赛");

f.setLocation(100, 200);

f.setSize(600,500);

container = new JPanel(new BorderLayout());

f.setContentPane(container);

JPanel title = new JPanel(new FlowLayout());

tf = new JTextField(10);

title.add(tf);

b = new JButton("确定");

b.addActionListener(this);

title.add(b);

message = new JLabel();

title.add(message);

container.add(title,BorderLayout.NORTH);

myList = new JList();

container.add(myList,BorderLayout.CENTER);

f.setVisible(true);

}

/**

* 显示比赛结果

* @author Cris

* @title: show

* @date 2011-5-24 上午11:31:05

* @param n void

*/

private void show(int n){

Cris c = new Cris(n);

ListListString[] result = c.getResult();

String[] str = new String[result.size()];

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

StringBuilder sb = new StringBuilder();

sb.append("第").append(i+1).append("天: ");

ListString[] matchList = result.get(i);

for(String[] match : matchList){

sb.append("[").append(match[0]).append("-").append(match[1]).append("] ");

}

str[i] = sb.toString();

}

myList.setListData(str);

message.setText("");

f.setVisible(true);

}

/**

* 清空数据

* @author Cris

* @title: clear

* @date 2011-5-24 上午11:30:36 void

*/

private void clear(){

String[] str = {""};

myList.setListData(str);

message.setText("");

}

public void actionPerformed(ActionEvent e) {

clear();

String s = tf.getText();

if (s == null || "".equals(s = s.trim()) ) {

message.setText("请输入一个偶数");

}

try {

int n = Integer.parseInt(s);

if (n = 0 || n % 2 != 0) {

message.setText("请输入一个偶数");

}else{

show(n);

}

} catch (Exception ex) {

message.setText("请输入一个偶数");

}

f.setVisible(true);

}

}

第二个类:

package com;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.LinkedList;

import java.util.List;

import java.util.Map;

import java.util.Random;

public class Cris {

/**选手数量*/

private int n ;

/**各个运动员还没进行的比赛 key:球员名称,value:需进行的比赛集合*/

private MapString, ListString[] playerMacth ;

/**球员人名*/

private String[] players ;

/**最终每天的比赛分布集合*/

private ListListString[] result;

/**所有可选的比赛*/

private ListListString[] allMatchData[];

/**每天的比赛*/

ListString[] dayMatch ;

/**一个随机对象*/

private Random r;

/**当前运算到的天数*/

private int nowDay;

public Cris(int n){

this.n = n;

playerMacth = new HashMapString, ListString[]();;

result = new ArrayListListString[]();

allMatchData = new LinkedList[n-1];

r = new Random();

init();

go();

}

/**

* 初始化球员

* @author Cris

* @title: init

* @date 2011-5-23 下午04:22:32 void

*/

private void init(){

//定义球员人名,以数字代表,从1开始

players = new String[n];

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

//定义球员的名字

players[i] = String.valueOf(i+1);

//存放每个球员要进行的比赛的集合

ListString[] matchList = new LinkedListString[]();

//球员赛事集合

playerMacth.put(players[i], matchList);

//球员集合,不变

// playerListConst.add(players[i]);

}

//定义每个人的比赛

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

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

String[] match = {players[i],players[j]};//定义一个比赛

//把此赛事添加到相应球员需比赛集合中

playerMacth.get(players[i]).add(match);

playerMacth.get(players[j]).add(match);

}

}

}

/**

* 随机获得一个当前天数可进行的比赛组合,并把此比赛组合从总集合中移除

* 如果当前天数无比赛,则先获得比赛,再随机

* @author Cris

* @title: getNowDayMatch

* @date 2011-5-24 上午09:48:23

* @return ListString[]

*/

private ListString[] getNowDayMatch(){

if (allMatchData[nowDay] == null) {

setAllMatchNowDay();

}

if (! allMatchData[nowDay].isEmpty()) {

int index = r.nextInt(allMatchData[nowDay].size());

ListString[] list = allMatchData[nowDay].get(index);

allMatchData[nowDay].remove(index);

return list;

}else {

return null;

}

}

/**

* 取消前一天的比赛

* @author Cris

* @title: cancelYesterday

* @date 2011-5-24 上午09:56:12 void

*/

private void cancelYesterday(){

//清空当前天数的可选比赛组合

allMatchData[nowDay] = null ;

//时间恢复到前一天

nowDay--;

//获得前一天的比赛

ListString[] matchList = result.get(nowDay);

//取消前一天的比赛

result.remove(nowDay);

//恢复每个运动员未进行的比赛

for(String[] match : matchList){

playerMacth.get(match[0]).add(match);

playerMacth.get(match[1]).add(match);

}

}

public void go(){

//循环比赛天数

for ( nowDay = 0; nowDay n -1; ) {

//1.随机一个比赛

ListString[] matchList = getNowDayMatch();

//无比赛组合 ,返回上一天 取消上一天的比赛,时间回退到前一天,跳过此次循环

if (matchList == null) {

cancelYesterday();

continue;

}

//3遍历比赛 去除运动员 去除运动员的未进行比赛

for(String[] match : matchList){

playerMacth.get(match[0]).remove(match);

playerMacth.get(match[1]).remove(match);

}

result.add(matchList);

nowDay++;

}

}

/**

* 从1号队员开始,获得当前天数所有可组合的赛事

* @author Cris

* @title: setAllMatchNowDay

* @date 2011-5-24 上午09:42:51 void

*/

private void setAllMatchNowDay(){

allMatchData[nowDay] = new LinkedListListString[]();

int n = 1;//1号运动员

//此运动员未进行的比赛

ListString[] matchList = playerMacth.get(String.valueOf(n));

for(String[] match : matchList){

ListString[] selectedList = new ArrayListString[]();

selectedList.add(match);

doDetAllMatchNowDay(n+1, selectedList);

}

}

/**

* 今天比赛的所有组合

* @author Cris

* @title: doDetAllMatchNowDay

* @date 2011-5-24 上午09:46:05

* @param playerNum

* @param selectedList void

*/

private void doDetAllMatchNowDay(int playerNum,ListString[] selectedList){

//运动员名称

String player = String.valueOf(playerNum);

boolean flag = true;

//判断此运动员是不是已被选过

for(String[] match : selectedList){

if (match[0].equals(player) || match[1].equals(player)) {

flag = false;

break;

}

}

//已被选过

if ( flag == false) {

//最后一个人员

if (playerNum == n) {

allMatchData[nowDay].add(selectedList);

}else{

doDetAllMatchNowDay(playerNum+1, selectedList);

}

return;

}

//此运动员未进行的比赛

ListString[] matchList = playerMacth.get(player);

//此运动员可选择的比赛

ListString[] canDoList = new ArrayListString[]();

for(String[] match : matchList){

flag = true;

for(String[] selected : selectedList){

if(match[0].equals(player)){

if(match[1].equals(selected[0])){

flag = false;

}else if(match[1].equals(selected[1])){

flag = false;

}

}else{

if(match[0].equals(selected[0])){

flag = false;

}else if(match[0].equals(selected[1])){

flag = false;

}

}

}

if (flag) {

canDoList.add(match);

}

}

//遍历此运动员可选择的比赛

for(String[] match : canDoList){

ListString[] newList = copyArrayList(selectedList);

//记录当前比赛

newList.add(match);

//最后一个人员

if (playerNum == n) {

allMatchData[nowDay].add(newList);

}else{

doDetAllMatchNowDay(playerNum+1, newList);

}

}

}

/**

* 复制集合

* @author Cris

* @title: copyArrayList

* @date 2011-5-24 上午09:24:44

* @param list

* @return ListString[]

*/

private ListString[] copyArrayList(ListString[] list){

ListString[] newList = new ArrayListString[]();

for(String[] s : list){

newList.add(s);

}

return newList;

}

public ListListString[] getResult() {

return result;

}

}

分享名称:java循环计算源代码,java循环程序代码
标题URL:https://www.cdcxhl.com/article30/dsijspo.html

成都网站建设公司_创新互联,为您提供微信公众号网站导航云服务器响应式网站做网站网站设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司