成都网站建设设计

将想法与焦点和您一起共享

java销售等级代码 java开发工程师等级划分

java语言实现产销平衡和产销不平衡问题的代码

产销不平衡用NBPSProcedure,平衡用BPSProcedure

站在用户的角度思考问题,与客户深入沟通,找到耒阳网站设计与耒阳网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名注册网站空间、企业邮箱。业务覆盖耒阳地区。

public class ProductSaleBTProb {

public static void main(String[] args) {

float[][] costMatrix=new float[][]{{1.5f,2f,0.3f,3f},{7f,0.8f,1.4f,2f},{1.2f,0.3f,2f,2.5f}};

/*

* 测试行、列位势方法

float[][] ASMatrix=new float[6][7];

ASMatrix[0]=new float[]{20f,0f,80f,0f,0f,0f,0f};

ASMatrix[1]=new float[]{0f,70f,0f,10f,0f,0f,0f};

ASMatrix[2]=new float[]{30f,0f,0f,20f,0f,0f,0f};

doLCPosiPower(costMatrix, ASMatrix, 3, 4);

for(int i=0;i6;i++){

System.out.println(Arrays.toString(ASMatrix[i]));

}

*/

/*

* 测试pw为产地产量,sw为销售地效率,费用矩阵costMatrix

*/

int[] pw=new int[]{100,80,50};

int[] sw=new int[]{50,70,80,30};

int[] rv=BPSProcedure(costMatrix, 3, 4, pw, sw);

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

System.out.print("编号"+rv[i]+"的产地,向编号"+rv[i+1]+"的销地运输:"+rv[i+2]+"\n");

}

/*

*产销不平衡测试

costMatrix=new float[][]{{4f,2f,5f},{3f,5f,3f},{1f,3f,2f}};

int[] pw=new int[]{8,7,4};

int[] sw=new int[]{4,8,5};

int[] rv=NBPSProcedure(costMatrix, 3, 3, pw, sw);

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

System.out.print("编号"+rv[i]+"的产地,向编号"+rv[i+1]+"的销地运输:"+rv[i+2]+"\n");

}

*/

}

//产销平衡运输费用最低问题,保证pw和sw相等

//costMatrix为费用矩阵,pnum为产地个数,即costMatrix的行数,snum为销地个数,即costMatrix的列数

//pw表示不同产地产量,sw表示不同销地销量,由于是float浮点运算,保留2位小数

//返回值没三位表示一个信息,比如{...,0,1,40,1,2,60..}表示编号0的产地向编号1的销售地运输40,编号1的产地向编号2的销售地运输60,

public static int[] BPSProcedure(float[][] costMatrix,int pnum,int snum,int[] pw,int[] sw){

int i,j;

//构造一个分配矩阵,增加3行3列,增加的第1行列表示分配的和,第2行列表示行列差,第3行列表示行、列位势

float[][] ASMatrix=new float[pnum+3][snum+3];

int tmpsum=0; //记录初始解是否分配完毕,

while(tmpsumpnum){

//运用行、列差值法分别求行、列差,对即没有给运量又没有打叉的进行统计

float min1=0,min2=0;

for(i=0;ipnum;i++){

//该行打叉则跳过

if(ASMatrix[i][snum+1]==-1)continue;

min1=0;min2=0;

for(j=0;jsnum;j++){

//如果ij有运量或者已经该行或该列打叉则不统计

if(ASMatrix[i][j]0||ASMatrix[pnum+1][j]==-1)

continue;

else if(min1==0)min1=costMatrix[i][j];

else if(min2==0){

if(min1costMatrix[i][j]){

min2=min1;

min1=costMatrix[i][j];

}else

min2=costMatrix[i][j];

}else{

if(!(min2costMatrix[i][j])) continue;

else if(!(min1costMatrix[i][j]))

min2=costMatrix[i][j];

else{

min2=min1;

min1=costMatrix[i][j];

}

}

}

if(min2!=0) //如果min2有值,则计算差额

ASMatrix[i][snum+1]=Math.round((min2-min1)*100)/100f;

else

ASMatrix[i][snum+1]=min1;

}

for(j=0;jsnum;j++){

//该列打叉则跳过

if(ASMatrix[pnum+1][j]==-1)continue;

min1=0;min2=0;

for(i=0;ipnum;i++){

//如果有运量或者该行打叉则跳过

if(ASMatrix[i][j]0||ASMatrix[i][snum+1]==-1)

continue;

else if(min1==0) min1=costMatrix[i][j];

else if(min2==0){

if(min1costMatrix[i][j]){

min2=min1;

min1=costMatrix[i][j];

}else

min2=costMatrix[i][j];

}else{

if(!(min2costMatrix[i][j])) continue;

else if(!(min1costMatrix[i][j]))

min2=costMatrix[i][j];

else{

min2=min1;

min1=costMatrix[i][j];

}

}

}

if(min2!=0)

ASMatrix[pnum+1][j]=Math.round((min2-min1)*100)/100f;

else

ASMatrix[pnum+1][j]=min1;

}

//找出没有被标记为-1的行、列差额最大的并按照满足一方最大分配,当分配数和等于最大值时对应行列差标记为-1,循环进行,直到分完

float lcpospowmax=-1;

int lindex=-1,cindex=-1;

for(i=0;ipnum;i++){

if(ASMatrix[i][snum+1]==-1)continue;

if(ASMatrix[i][snum+1]!=-1lcpospowmaxASMatrix[i][snum+1]){

lcpospowmax=ASMatrix[i][snum+1];

lindex=i;

}

}

for(j=0;jsnum;j++){

if(ASMatrix[pnum+1][j]==-1)continue;

if(ASMatrix[pnum+1][j]!=-1lcpospowmaxASMatrix[pnum+1][j]){

lcpospowmax=ASMatrix[pnum+1][j]; cindex=j;

}

}

float mincost=0;

//在列上找到最大值

if(cindex!=-1){

lindex=-1;

for(i=0;ipnum;i++){

//如果该位置有运量或者被叉掉则不在统计之内

if(ASMatrix[i][cindex]0||ASMatrix[i][snum+1]==-1)

continue;

else if(mincost==0){

mincost=costMatrix[i][cindex];

lindex=i;

}else{

if(mincostcostMatrix[i][cindex]){

mincost=costMatrix[i][cindex];

lindex=i;

}

}

}

//最终找到lindex、cindex对应格子分配,尽量满足一方

//ASMatrix[pnum][cindex]表示第cindex已经分配数、ASMatrix[lindex][snum]表示已经供应的数量

//需求量和分配量之间的关系,分配后标记每行、列和的格子也相应加上

if((sw[cindex]-ASMatrix[pnum][cindex])(pw[lindex]-ASMatrix[lindex][snum])){

ASMatrix[lindex][cindex]=Math.round((sw[cindex]-ASMatrix[pnum][cindex])*100)/100f;

ASMatrix[pnum+1][cindex]=-1; //该列已经分配完毕

}else if((sw[cindex]-ASMatrix[pnum][cindex])(pw[lindex]-ASMatrix[lindex][snum])){

ASMatrix[lindex][cindex]=Math.round((pw[lindex]-ASMatrix[lindex][snum])*100)/100f;

ASMatrix[lindex][snum+1]=-1;

tmpsum++; //该行生产量分配完毕

}else{

ASMatrix[lindex][cindex]=pw[lindex]-ASMatrix[lindex][snum];

ASMatrix[lindex][snum+1]=-1;

ASMatrix[pnum+1][cindex]=-1;

tmpsum++;

}

ASMatrix[lindex][snum]=Math.round((ASMatrix[lindex][snum]+ASMatrix[lindex][cindex])*100)/100f;

ASMatrix[pnum][cindex]=Math.round((ASMatrix[pnum][cindex]+ASMatrix[lindex][cindex])*100)/100f;

}else if(lindex!=-1){

mincost=0;

cindex=-1;

for(j=0;jsnum;j++){

if(ASMatrix[lindex][j]0||ASMatrix[pnum+1][j]==-1)

continue;

else if(mincost==0){

mincost=costMatrix[lindex][j];

cindex=j;

}else{

if(mincostcostMatrix[lindex][j]){

mincost=costMatrix[lindex][j];

cindex=j;

}

}

}

//最终找到lindex、cindex对应格子分配

if((sw[cindex]-ASMatrix[pnum][cindex])(pw[lindex]-ASMatrix[lindex][snum])){

ASMatrix[lindex][cindex]=Math.round((sw[cindex]-ASMatrix[pnum][cindex])*100)/100f;

ASMatrix[pnum+1][cindex]=-1; //该列已经分配完毕

}else if((sw[cindex]-ASMatrix[pnum][cindex])(pw[lindex]-ASMatrix[lindex][snum])){

ASMatrix[lindex][cindex]=Math.round((pw[lindex]-ASMatrix[lindex][snum])*100)/100f;

ASMatrix[lindex][snum+1]=-1;

tmpsum++; //该行生产量分配完毕

}else{

ASMatrix[lindex][cindex]=pw[lindex]-ASMatrix[lindex][snum];

ASMatrix[lindex][snum+1]=-1;

ASMatrix[pnum+1][cindex]=-1;

tmpsum++;

}

ASMatrix[lindex][snum]=Math.round((ASMatrix[lindex][snum]+ASMatrix[lindex][cindex])*100)/100f;

ASMatrix[pnum][cindex]=Math.round((ASMatrix[pnum][cindex]+ASMatrix[lindex][cindex])*100)/100f;

}

}

//至此,用行列差法找到了初始分配方案ASMatrix[i][j]==0表示叉去的格子,ipnum,jsnum

boolean findSolu=false;

int tmp1=0;

for(i=0;ipnum;i++)

for(j=0;jsnum;j++){

if(ASMatrix[i][j]0)

tmp1+=1;

}

if(tmp1(pnum+snum-1))

findSolu=true;

while(!findSolu){

// 位势法求Rij,如果能找到0的说明要调整,否则找到最优解

doLCPosiPower(costMatrix,ASMatrix,pnum,snum);

//Rij=cij-(ui+vj);对于分派矩阵中空格计算Rij

float rijmin=0; //存放最小的空格校验值

int rijminl=-1,rijminc=-1;

for(i=0;ipnum;i++){

for(j=0;jsnum;j++){

if(!(ASMatrix[i][j]0)((costMatrix[i][j]-ASMatrix[i][snum+2]-ASMatrix[pnum+2][j])rijmin)){

rijmin=Math.round((costMatrix[i][j]-ASMatrix[i][snum+2]-ASMatrix[pnum+2][j])*100)/100f;

rijminl=i;rijminc=j;

}

}

}

//如果校验值小于0,则用闭回路进行调整

if(rijmin0){

//找闭回路,

int rijminOVl=-1,rijminOVc=-1; //rijmin对应点的闭回路的顶点的i、j

boolean find=false;

// 向右边上下找

for(j=rijminc+1;jsnum!find;j++){

if(ASMatrix[rijminl][j]0){

for(i=rijminl+1;ipnum;i++){

if(ASMatrix[i][rijminc]0(ASMatrix[i][j]0)){

rijminOVl=i;rijminOVc=j;

find=true;

break;

}

}

for(i=rijminl-1;i=0;i--){

if(ASMatrix[i][rijminc]0(ASMatrix[i][j]0)){

rijminOVl=i;rijminOVc=j;

find=true;

break;

}

}

}

}

// 向左边上下找

for(j=rijminc-1;j=0!find;j--){

if(ASMatrix[rijminl][j]0){

for(i=rijminl+1;ipnum;i++){

if(ASMatrix[i][rijminc]0(ASMatrix[i][j]0)){

rijminOVl=i;rijminOVc=j;

find=true;

break;

}

}

for(i=rijminl-1;i=0;i--){

if(ASMatrix[i][rijminc]0(ASMatrix[i][j]0)){

rijminOVl=i;rijminOVc=j;

find=true;

break;

}

}

}

}

//记录rijmin闭回路相邻点中最小的,并调整分派矩阵

float minW=ASMatrix[rijminl][rijminOVc]ASMatrix[rijminOVl][rijminc]?

ASMatrix[rijminl][rijminOVc]:ASMatrix[rijminOVl][rijminc];

ASMatrix[rijminl][rijminOVc]=Math.round((ASMatrix[rijminl][rijminOVc]-minW)*100)/100f;

ASMatrix[rijminOVl][rijminc]=Math.round((ASMatrix[rijminOVl][rijminc]-minW)*100)/100f;

ASMatrix[rijminOVl][rijminOVc]=Math.round((ASMatrix[rijminOVl][rijminOVc]+minW)*100)/100f;

ASMatrix[rijminl][rijminc]=minW;

}else

findSolu=true;

}

ListInteger rv=new ArrayListInteger();

for(i=0;ipnum;i++)

for(j=0;jsnum;j++){

if(ASMatrix[i][j]0){

rv.add(i);

rv.add(j);

rv.add((int)ASMatrix[i][j]);

}

}

int[] tmprv=new int[rv.size()];

for(i=0;irv.size();i++){

tmprv[i]=rv.get(i);

}

return tmprv;

}

//根据分配矩阵和费用矩阵求出分配矩阵中的行、列位势,pnum+2、sunm+2表示行、列位势在ASMatrix中的位置

//由于方程组都是cij=ui+vj的形式,根据矩阵可以逐行逐列求解。

public static void doLCPosiPower(float[][] costMatrix,float[][] ASMatrix,int pnum,int snum){

int ansnum=0,lp=snum+2,cp=pnum+2; //lp列位置,cp行位置

boolean[] bs=new boolean[pnum+snum]; //0..pnum-1为行位势

ASMatrix[0][lp]=0; //令u0=0

bs[0]=true;

ansnum+=1;

int i,j;

while(ansnumpnum+snum){

for(i=0;ipnum;i++){ //逐行求解,根据costMatrix[i][j]=ASMatrix[i][lp]+ASMatrix[cp][j]

for(j=0;jsnum!bs[i];j++){ //根据列位势求行位势

if(ASMatrix[i][j]0bs[pnum+j]){

ASMatrix[i][lp]=Math.round((costMatrix[i][j]-ASMatrix[cp][j])*100)/100f;

ansnum+=1;

bs[i]=true;

}

}

if(!bs[i])continue;

for(j=0;jsnum;j++){ //根据行位势求列位势

if(ASMatrix[i][j]0!bs[pnum+j]){

ASMatrix[cp][j]=Math.round((costMatrix[i][j]-ASMatrix[i][lp])*100)/100f;

ansnum+=1;

bs[pnum+j]=true;

}

}

}

}

}

/*

* 产销不平衡,把它增加产地或者销地转化为平衡问题

* costMatrix费用矩阵,pnum产地个数,snum销地个数

*/

public static int[] NBPSProcedure(float[][] costMatrix,int pnum,int snum,int[] pw,int[] sw){

int pwsum=0,swnum=0;

int i,j;

for(i=0;ipw.length;i++)

pwsum+=pw[i];

for(i=0;isw.length;i++)

swnum+=sw[i];

//产大于销 增加一个销地,单位费用为0

int[] rv;

if(pwsumswnum){

float[][] nCostMatrix=new float[pnum][snum+1];

for(i=0;ipnum;i++)

for(j=0;jsnum;j++)

nCostMatrix[i][j]=costMatrix[i][j];

for(i=0;ipnum;i++)

nCostMatrix[i][snum]=0f;

int[] nsw=new int[snum+1];

for(i=0;isnum;i++)

nsw[i]=sw[i];

nsw[snum]=pwsum-swnum;

rv=BPSProcedure(nCostMatrix, pnum, snum+1, pw, nsw);

}

//销大于产 增加一个产地

else if(pwsumswnum){

float[][] nCostMatrix=new float[pnum+1][snum];

for(i=0;ipnum;i++)

for(j=0;jsnum;j++)

nCostMatrix[i][j]=costMatrix[i][j];

for(j=0;jsnum;i++)

nCostMatrix[pnum][j]=0f;

int[] npw=new int[pnum+1];

for(i=0;ipnum;i++)

npw[i]=pw[i];

npw[pnum]=swnum-pwsum;

rv=BPSProcedure(nCostMatrix, pnum+1, snum, npw, sw);

}else

rv=BPSProcedure(costMatrix, pnum, snum, pw, sw);

return rv;

}

}

java编写中顾客信息分等级怎么写

将成绩分为几个等级,且每个等级都有一个标记符,然后使用switch case来匹配标记符分别来判断,即可实现。 示例: switch(表达式){ case 常量表达式1: //执行语句1; break; case 常量表达式2: //执行语句2; break; default: //执行语句; break; }

在java中,修为每升100,等级就升1的代码

原理:用一个数除以,除它本身和1以外的所有数,都不能整除;

public static void main(String args[])

{

int i, j; //声明变量i,j;

int sum=0; //声明sum初始值为0;

for (i = 2; i = 100; i++) //1至100的数,被除数

{

for (j = 2; j i; j++) //除数

{

if (i % j == 0) {

break; //如果余数为0这跳出if跳到第一个for循环,再次执行

}

if (j =(i-1)) //满足第一个if并满足第二个if则输出i的值

{ sum=sum+i; //所有素数相加;

System.out.println(i);//输出i的值

}

}

System.out.println("所有素数何为"+sum);

}

}

1+xjava证书编码

1+X职业技能等级证书编码采用24位数字编码结构。

1.第1位为证书类型代码,面向职业院校在校学生的职业技能等级证书取值为1,面向社会成员的职业技能等级证书取值为2。

2.第2-7位为证书对应的职业技能等级标准代码,表示标准主要面向的职业技能领域。

3.第8-10位为开发职业技能等级证书的职业教育培训评价组织代码。

4.第11-12位为证书等级及拓展代码,其中第11位为等级代码,初级为1,中级为2,高级为3;第12位为预留的等级拓展位,目前统一暂定为5;未来可限据需要拓展,如在初级中拓展一级、二_等。

5.第13-14位为考核站点所在区域代码,取值见区域代码对照表。

6.第1b750位为所在区域内考核站点序列号,由三位数字(不足三位时在前面加零补足r组成%.尔同区域份别从0C开始编排,

7.第18-19位为证书考核年份代码,如2019年考核证书的年份代码为19,2020年考核证书的年份代码为20,以此类推n

8.第20-24位为证书核发序列号,按照每年度该考核站点考核通过的证书各等级从000-99999依次顺序取值。

以上第1、4、b、6、1、8条有关编码由培训评价组织根据规则确定,第2、3条由教育部职业技术教育中心研究所赋码。

求基础级java代码,150-200行,自己写的

我有计算器程序

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;

/**

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

*/

public class Calculator extends JFrame {

/**

*

*/

private static final long serialVersionUID = 1L;

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 Calculator(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());

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

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

}

}

/**

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

*/

class CalculatorCore {

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

boolean reset = true;

int MaxLen = 30;

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) {

try {

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

displayText = result.toString();

} catch (RuntimeException e) {

clearClicked();//将计算器置为初始状态

JOptionPane.showMessageDialog(null,"不能用零作除数","出错了",JOptionPane.OK_OPTION);

//e.printStackTrace();

}

}

}

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

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 {

if(displayText.length() MaxLen)

displayText += command;

else

JOptionPane.showMessageDialog(null,"输入的数字太长了","出错了",JOptionPane.OK_OPTION);

}

reset = false;

}

// 运算符处理接口

interface Operator {

BigDecimal process(BigDecimal number1, BigDecimal number2);

}

// 按钮处理接口

interface Processor {

void calculate(String command);

}

}


文章标题:java销售等级代码 java开发工程师等级划分
分享网址:http://chengdu.cdxwcx.cn/article/dodhdip.html