java代码示例

Python012

java代码示例,第1张

importjava.awt.*importjava.awt.event.*classShopFrameextendsFrameimplementsActionListener{Labellabel1,label2,label3,label4Buttonbutton1,button2,button3,button4,button5TextAreatextPanelpanel1,panel2staticfloatsum=0.0fShopFrame(Strings){super(s)setLayout(newBorderLayout())label1=newLabel("面纸:3元",Label.LEFT)label2=newLabel("钢笔:5元",Label.LEFT)label3=newLabel("书:10元",Label.LEFT)label4=newLabel("袜子:8元",Label.LEFT)button1=newButton("加入购物车")button2=newButton("加入购物车")button3=newButton("加入购物车")button4=newButton("加入购物车")button5=newButton("查看购物车")text=newTextArea("商品有:"+"\n",5,10)text.setEditable(false)addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.exit(0)}})button1.addActionListener(this)button2.addActionListener(this)button3.addActionListener(this)button4.addActionListener(this)button5.addActionListener(this)panel1=newPanel()panel2=newPanel()panel1.add(label1)panel1.add(button1)panel1.add(label2)panel1.add(button2)panel1.add(label3)panel1.add(button3)panel1.add(label4)panel1.add(button4)panel2.setLayout(newBorderLayout())panel2.add(button5,BorderLayout.NORTH)panel2.add(text,BorderLayout.SOUTH)this.add(panel1,BorderLayout.CENTER)this.add(panel2,BorderLayout.SOUTH)setBounds(100,100,350,250)setVisible(true)validate()}publicvoidactionPerformed(ActionEvente){if(e.getSource()==button1){text.append("一个面纸、")sum=sum+3}elseif(e.getSource()==button2){text.append("一只钢笔、")sum=sum+5}elseif(e.getSource()==button3){text.append("一本书、")sum=sum+10}elseif(e.getSource()==button4){text.append("一双袜子、")sum=sum+8}elseif(e.getSource()==button5){text.append("\n"+"总价为:"+"\n"+sum)}}}publicclassShopping{publicstaticvoidmain(String[]args){newShopFrame("购物车")}}我没用Swing可能显示不出来你的效果。不满意得话我在给你编一个。

下面是根据十进制数转二进制数的算法所写的一段Java程序示例代码:

import java.math.BigDecimal

public class Test {

public static void main(String[] args) {

Test t = new Test()

double d = 8

String s = t.decimal2BinaryStr(d)

System.out.println("十进制数"+d+"转成二进制数为:"+s)

}

/**

* 十进制数转二进制数

* @param d 十进制数

* @return 十进制数转换成二进制的字符串

*/

public String decimal2BinaryStr(double d){

String result = decimal2BinaryStr_Inte(d)

result += decimal2BinaryStr_Deci(d)

return result

}

/**

* 十进制整数部分转二进制数

* @param d 十进制数

* @return 十进制整数部分转换成二进制的字符串

*/

public String decimal2BinaryStr_Inte(double d){

//      return Integer.toBinaryString((int)d)

/*

* 本来利用上面的Integer.toBinaryString(int)就可以得到整数部分的二进制结果,

* 但为了展示十进制转二进制的算法,现选择以下程序来进行转换

*/

String result = ""

long inte = (long)d

int index = 0

while(true){

result += inte%2

inte = inte/2

index++

if(index%4 == 0){

result+=" "

}

if(inte==0){

while(index%4!=0){

result+="0"

index++

}

break

}

}

char[] c = result.toCharArray()

char[] cc = new char[c.length]

for(int i=c.lengthi>0i--){

cc[cc.length-i] = c[i-1]

}

return new String(cc)

}

/**

* 十进制小数部分转二进制

* @param d 十进制数

* @return 十进制小数部分转换成二进制小数的字符串

*/

public String decimal2BinaryStr_Deci(double d){

return decimal2BinaryStr_Deci(d, 0)

}

/**

* 十进制小数部分转二进制

* @param d 十进制数

* @param scale 小数部分精确的位数

* @return 十进制小数部分转换成二进制小数的字符串

*/

public String decimal2BinaryStr_Deci(double d, int scale){

double deci = sub(d,(long)d)

if(deci==0){

return ""

}

//为了防止程序因所转换的数据转换后的结果是一个无限循环的二进制小数,因此给其一个默认的精确度

if(scale==0){

scale = (String.valueOf(deci).length()-2)*4

}

int index = 0

StringBuilder inteStr = new StringBuilder()

double tempD = 0.d

while(true){

if(deci==0 || index==scale){

while(index%4!=0){

inteStr.append("0")

index++

}

break

}

if(index==0){

inteStr.append(".")

}

tempD = deci*2

inteStr.append((int)tempD)

deci = sub(tempD ,(int)tempD)

index++

if(index%4 == 0){

inteStr.append(" ")

}

}

return inteStr.toString()

}

/**

* 提供精确的减法运算。

* @param v1 被减数

* @param v2 减数

* @return 两个参数的差

*/

public static double sub(double v1, double v2) {

BigDecimal b1 = new BigDecimal(Double.toString(v1))

BigDecimal b2 = new BigDecimal(Double.toString(v2))

return b1.subtract(b2).doubleValue()

}

}

例如将十进制数1234.5转成二进制数为:0100 1101 0010.1000