Java编程
1、要求:* 运输公司计算运费,总运费=距离s*基本运费p*重量w*优惠金额d;
* s<250没有优惠;250<=s<500,优惠2%;500<=s<1000,优惠5%;1000<=s<2000,优惠8%;2000<=s<3000,优惠10%;
* 3000<=s,优惠15%;
实现一:
package com.task02;
/*
* 运输公司计算运费,总运费=距离s*基本运费p*重量w*优惠金额d
* s<250没有优惠;250<=s<500,优惠2%;500<=s<1000,优惠5%;1000<=s<2000,优惠8%;2000<=s<3000,优惠10%
* 3000<=s,优惠15%
*/
public class ComputePriceIF {
public static void main(String[] args) {
// TODO Auto-generated method stub
//使用命令行参数进行对数组赋值
int c,s;
double p,w,f,d;
s=Integer.parseInt(args);
p=Double.parseDouble(args);
w=Double.parseDouble(args);
if(s<250){
c=0;
}else if(s<500){
c=2;
}else if(s<1000){
c=5;
}else if(s<2000){
c=8;
}else if(s<3000){
c=10;
}else c=15;
d=(double)c/100; //将int型变量c强制转换成 Double型,然后运算后,赋值给变量d
f=s*p*w*(1-d);
System.out.println("距离为:"+s);
System.out.println("基本运费为:"+p);
System.out.println("重量为:"+w);
System.out.println("优惠:"+d);
System.out.println("运费为:"+f);
}
}
实现二
package com.task02;
import javax.swing.JOptionPane;
/*
* 运输公司计算运费,总运费=距离s*基本运费p*重量w*优惠金额d
* s<250没有优惠;250<=s<500,优惠2%;500<=s<1000,优惠5%;1000<=s<2000,优惠8%;2000<=s<3000,优惠10%
* 3000<=s,优惠15%
*/
public class ComputePriceIF {
public static void main(String[] args) {
// TODO Auto-generated method stub
//通过java.swing.JOptionPane类实现对话框方式向用户发出输入或输出消息
//showInputDialog()方法:用于提示要求某些输入
//showMessageDialog()方法:告知用户某事已经发生
int c,s = 0;
double p = 0,w = 0,f,d;
s=Integer.parseInt(JOptionPane.showInputDialog("请输入运输的距离",new Integer(s)));
p=Double.parseDouble(JOptionPane.showInputDialog("请输入运输公司的基本单价",new Double(p)));
w=Double.parseDouble(JOptionPane.showInputDialog("请输入运输公司的货物重量",new Double(w)));
if(s<250){
c=0;
}else if(s<500){
c=2;
}else if(s<1000){
c=5;
}else if(s<2000){
c=8;
}else if(s<3000){
c=10;
}else c=15;
d=(double)c/100; //将int型变量c强制转换成 Double型,然后运算后,赋值给变量d
f=s*p*w*(1-d);
System.out.println("距离为:"+s);
System.out.println("基本运费为:"+p);
System.out.println("重量为:"+w);
System.out.println("优惠:"+d);
System.out.println("运费为:"+f);
}
}
执行:
一般情况下,浮点型不能用来运算,尤其牵涉到价格,会产生误差
lz 可以试试10 2.22.2
看看返回结果对不对
是这样的
距离为:10
基本运费为:2.2
重量为:2.2
优惠:0.0
运费为:48.400000000000006
1、要求
* 程序中给定一个1-100的被猜整数,从键盘上反复输入整数进行试猜。
* 未猜中时,提示数量过大或多小;猜中时,指出猜的次数
实现
package com.task02;
import javax.swing.JOptionPane;
public class GuessGame {
/*
* 程序中给定一个1-100的被猜整数,从键盘上反复输入整数进行试猜。
* 未猜中时,提示数量过大或多小;猜中时,指出猜的次数
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int realnumber=20;
int guessnumber=0;
int count=0;
boolean guessflag=false;
while(guessflag!=true){
guessnumber=Integer.parseInt(JOptionPane.showInputDialog("请输入一个整数进行猜想!",new Integer(guessnumber)));
if(guessnumber != realnumber){
if(guessnumber > realnumber){
count++;
System.out.println("您输入的数字太大了,请重新猜!");
}else if(guessnumber < realnumber){
count++;
System.out.println("您输入的数字太小了,请重新猜!");
}
}else {
count++;
System.out.println("恭喜您猜对了,您共猜了:"+count+"次。");
guessflag=true;
}
}
}
}
* 程序随意给定一个1-100的被猜整数,从键盘上反复输入整数进行试猜。
* 未猜中时,提示数量过大或多小;猜中时,指出猜的次数
* 允许最大竞猜次数为3次
package com.task02;
import javax.swing.JOptionPane;
public class GuessGame {
/*
* 程序随意给定一个1-100的被猜整数,从键盘上反复输入整数进行试猜。
* 未猜中时,提示数量过大或多小;猜中时,指出猜的次数
* 允许最大竞猜次数为3次
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//随机给定1-100的整数,Math.random() 为0-1 Double类型。需要强制转换int类型
int realnumber=(int) (Math.random()*100+1);
int guessnumber=0;
int count=0;
boolean guessflag=false;
while(guessflag!=true && count<3){
guessnumber=Integer.parseInt(JOptionPane.showInputDialog("请输入一个整数进行猜想,允许最大竞猜次数为3次!",new Integer(guessnumber)));
if(guessnumber != realnumber){
if(guessnumber > realnumber){
count++;
System.out.println("您输入的数字太大了,请重新猜!");
}else if(guessnumber < realnumber){
count++;
System.out.println("您输入的数字太小了,请重新猜!");
}
}else {
count++;
System.out.println("恭喜您猜对了,您共猜了:"+count+"次。");
guessflag=true;
}
}
if(guessflag !=true && count==3){
System.out.println("您共猜了"+count+"次,已经超过了允许竞猜的最大次数!游戏结束!!!");
}
}
}
页:
[1]