帮忙看看2个程序错在哪?
1.基本的类使用class Person{
private String name;
private Integer age;
public String getname()
{ return name; }
public void setname(String nn)
{ name=nn; }
public Integer getage()
{ return age; }
public void setage(Integer i)
{ age=i; }
}
public class TestPerson
{
public static void main(String args[]){
Person d=new Person();
d.setname("Murphysom");
d.setage(22);
System.out.println("本人姓名:"+d.getname());
System.out.println("本人年龄:"+d.getage());
}
提示红字部分,不能用Int 类型。
2.计程车费用计算:
import java.util.*;
class Taxi{
float len; //公里
float start_price; //起价
float start_len; //起始里程
float per_price; //每公里价格
float price; //总价
}
public set_price(){
int curr_hour=Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
if(curr_hour=7&&curr_hour<=23) {
start_price=10;
per_price=1.2f; }
else{
start_price=11;
per_perice=1.4f;
} }
public void calc(float len){
this.len=len;
set_price();
if(len<=start_len)price=start_price;
else
price=start_price+per_price*(len-start_len);
price=Math.round(price);
}
public void show(){
System.out.println("起价:"+start_price);
System.out.println("起始公里:"+start_len);
System.out.println("每公里价格"+per_price);
System.out.println("里程"+len);
System.out.println("==============================");
System.out.println("总价:"+price); }
public class calctaxi{
public static void main(String args[]){
Taxi ta1=new Taxi();
int len=0;
try
{
len=Integer.parseInt(args[0]);
}
catch(NumberFormatException ee){
System.out.println("请输入合法公里数!");
return;
}
ta1.calc(len);
ta1.show();
}
}
我实在看不出来了
[ 本帖最后由 yuanxl33 于 2010-4-11 16:41 编辑 ]
----------------解决方案--------------------------------------------------------
我也是新手。不过你的那个第一个程序 少了一个 }
----------------解决方案--------------------------------------------------------
我是初学者,进来看看
class Person{
private String name;
private Integer age;
public String getname()
{ return name; }
public void setname(String nn)
{ name=nn; }
public Integer getage()
{ return age; }
public void setage(Integer i)
{ age=i; }
}
public class TestPerson
{
public static void main(String args[]){
Person d=new Person();
d.setname("Murphysom");
d.setage(22);
System.out.println("本人姓名:"+d.getname());
System.out.println("本人年龄:"+d.getage());
}
}
这个我不知道你那个错误“提示红字部分,不能用Int 类型”怎么回事,我在最后加了个过括号,程序能运行出来了。
第二个,我有些代码卡看不懂,没学过,但是“if(curr_hour=7&&curr_hour<=23)”这句话很费解,既要等于7又要小于23???,所以会提示运算符不能用于int,boolean,应该是 if(curr_hour》=7&&curr_hour<=23)”吧。“per_perice=1.4f;”多了个“e”,打错了吧,
其他的
class Taxi{
float len; //公里
float start_price; //起价
float start_len; //起始里程
float per_price; //每公里价格
float price; //总价
}我把最后的括号去掉了,在 System.out.println("总价:"+price); }}后又加了一个,
不知道这样子该对不对,我编译能通过,但是运行出错了。
----------------解决方案--------------------------------------------------------
补充,第二个改好后可以运行的,呵呵。运行的时候同学说不能输java calctaxi,要有个什么参数,所以随便输了数字java calctaxi 11,运行成功,(又学了一招)
----------------解决方案--------------------------------------------------------
第一题主函数少了一个}:
1.基本的类使用
class Person{
private String name;
private Integer age;
public String getname()
{ return name; }
public void setname(String nn)
{ name=nn; }
public Integer getage()
{ return age; }
public void setage(Integer i)
{ age=i; }
}
public class TestPerson
{
public static void main(String args[]){
Person d=new Person();
d.setname("Murphysom");
d.setage(22);
System.out.println("本人姓名:"+d.getname());
System.out.println("本人年龄:"+d.getage());
}
}
第二题:
1、public set_price()这个方法错了。没有返回类型和void是构造函数的写法,因此,这个普通方法应该加void:
public void set_price(){}
2、if(curr_hour=7&&curr_hour<=23) 这个也错了。这个是if条件句,它所判断的是布尔型值:true和flase。不能出现赋
值语句,因此,要改为:if(curr_hour==7&&curr_hour<=23)
3、 public set_price(){
int curr_hour=Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
if(curr_hour=7&&curr_hour<=23) {
start_price=10;
per_price=1.2f; }
else{
start_price=11;
per_perice=1.4f;
} }
这里面per_perice=1.4f变量名写错了,要改为:per_price=1.4f
4、len=Integer.parseInt(args[0]);这个也有问题:
第一个方法: args是主函数自定义的一个数组:
在cmd命令里运行时,要输入数组的值,要不然args[0]为空,
第二个方法:把代码改写成如下代码:
public class calctaxi{
public static void main(String args[]){
Scanner input=new Scanner(System.in);//要加入的地方
Taxi ta1=new Taxi();
int len=0;
try
{
System.out.println("请输入公里数!");
len=Integer.parseInt(input.next());//要改写的地方
}
catch(NumberFormatException ee){
System.out.println("请输入合法公里数!");
return;
}
ta1.calc(len);
ta1.show();
}
}
----------------解决方案--------------------------------------------------------
import java.util.*;
class Taxi
{
float len; //公里
float start_price; //起价
float start_len; //起始里程
float per_price; //每公里价格
float price; //总价
public void set_price() {
int curr_hour=Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
if(curr_hour>=7&&curr_hour<=23) {
start_price=10;
per_price=1.2f; }
else{ start_price=11;
per_price=1.4f;
} }
public void calc(float len) {
this.len=len;
set_price();
if(len<=start_len)price=start_price;
else
price=start_price+per_price*(len-start_len);
price=Math.round(price);
}
public void show(){
System.out.println("起价:"+start_price);
System.out.println("起始公里:"+start_len);
System.out.println("每公里价格"+per_price);
System.out.println("里程"+len);
System.out.println("==============================");
System.out.println("总价:"+price); }
}
public class calctaxi{
public static void main(String args[]){
Taxi ta1=new Taxi();
int len=0;
try
{
len=Integer.parseInt(args[0]);
}
catch(NumberFormatException ee){
System.out.println("请输入合法公里数!");
return;
}
ta1.calc(len);
ta1.show();
}
}
第二题我找到了,结合楼上各位的提示
float price; //总价
后面的括号应该放在public class calctaxi{
之前。另外 运行calctaxi的时候 得顺手输入 里程数
比如 java calctaxi 3
感谢大家的帮忙
第一题的括号是我漏了,源代码里有的
但是在JDK1.42上就是提示错误。跑来同学这边装了1.50的就可以。晕倒
[ 本帖最后由 yuanxl33 于 2010-4-12 00:52 编辑 ]
----------------解决方案--------------------------------------------------------
但是算法还是有问题
前3公里应该按起步价格算
所以还不算成功
----------------解决方案--------------------------------------------------------
搞定了,结贴
----------------解决方案--------------------------------------------------------
。。。。
----------------解决方案--------------------------------------------------------
呵呵呵,建议楼主以后写程序规范点!!!这样会给你减少很多麻烦!!!
----------------解决方案--------------------------------------------------------