求助java编程解答!!!!!!!!!!!!!!!!!!!!!!!!!

请问下面的内容怎么编程序!!! 谢谢各位
黄金周森林公园门票优惠:购票10张以下,票价20元:购票11张到20张之间,票价15元:购票21张到30张之间,票价10元:购票31张以上,票价8元.请编写程序,根据购票数量计算票款总额.
求求各位高手了 谢谢``````
怎么都是错的啊`````` 测试都不成功的啊 怎么办啊
能不能帮我再弄一下啊

既然用JAVA,那就来个面向对象的分析

关键处: 需要一个"选择器"来依据数值区间得到一个反馈值,
定义接口

public interface Responsor {
public Object response();
}

定义实现

final public class PriceResponsor implements Responsor{
private int ticketsCount;
public PriceResponsor(int ticketsCount) {
this.ticketsCount = ticketsCount;
}
/**
* business implement
* @return the unit price according as tickets total number
*/
public Integer response() {
if (ticketsCount < 0)
throw new IllegalArgumentException("negative is invalid");

if (ticketsCount < 11) return 20;
if (ticketsCount >= 11 && ticketsCount < 21) return 15;
if (ticketsCount >= 21 && ticketsCount < 31) return 10;
if (ticketsCount >= 31) return 8;
return null;
}

public Integer getTotalPrice() {
Integer I = response();
if (I == null) return null;
return ticketsCount*I;
}
}

演示代码:(从命令行输入一个整数表示票的张数)

final public class TicketPriceDemo {
private static final String USAGE = "TicketPriceDemo [a integer represents the ticketsCount]";
private static final String PARAMETER_TYPE="Parameter should be a integer";
public static void main(String[] args) {
if (args.length != 1) {
System.out.println(USAGE);
System.exit(1);
}

int c = 0;
try {
c = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.out.println(PARAMETER_TYPE+"\r\n"+USAGE);
System.exit(1);
}

PriceResponsor responsor = new PriceResponsor(c);
System.out.println("unit price : " + responsor.response());
System.out.println("total price:" + responsor.getTotalPrice());
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-29
public class Example{
public static void main(String args[]){
BufferedReader br = new Buffered(
new InputStreamReader(System.in));
int ret = Integer.parseInt(br.readLine());
String str = "票价是 ";
if(ret<=10)
System.out.println(str+ret*20);
else if(ret<=20)
System.out.println(str+ret*15);
else if(ret<=30)
System.out.println(str+ret*10);
else
System.out.println(str+ret*8);
}
}
第2个回答  2007-07-02
不错,不错!可以啊,竟然是91年的,我敬佩!

DestroyofLight 少了点东西,这样试试看:
---------------------------------------------
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Example{
public static void main(String args[]){

try
{
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
int ret = Integer.parseInt(br.readLine());
String str = "price is ";
if(ret<=10)
System.out.println(str+ret*20);
else if(ret<=20)
System.out.println(str+ret*15);
else if(ret<=30)
System.out.println(str+ret*10);
else
System.out.println(str+ret*8);
}
catch(Exception exp)
{
System.out.println(exp.getMessage());
}

}
}
----------------------------------------------------
hardneedl 不但结果不错,而且思路很正规,不愧是大哥级人物,这是我的测试结果:你把分给他吧
----------------------------------------------------
unit price : 15
total price:180
相似回答
大家正在搜