编了一下午java程序,竟然调试出错,看了半天也没检查出错误。
也没人能请教,真是有点郁闷。
无奈!
请朋友帮忙指正!
创建一个Rectangle类,该类拥有属性length和width,每个属性的默认值均为1。该类拥有方法perimeter和area,分别用于计算矩形的周长和面积。该类还有设置和读取属性length和width的方法。设置方法应检查length和width的属性值是否是大于0.0小于20.0的浮点数。编写一个程序测试Rectangle类。
自己编写的源程序:
import javax.swing.JOptionPane;
public class Rectangle{
private float length=1,width=1;
public void perimeter(){
float a;
a=2*(length+width);
System.out.println("矩形的周长是: "+a);
}
public void area(){
float a;
a=length*width;
System.out.println("矩形的面积是: "+a);
}
public void reset(){
String str=JOptionPane.showInputDialog("请输入length值:");
length=Float.parseFloat(str);
String str=JOptionPane.showInputDialog("请输入width值:");
width=Float.parseFloat(str);
}
public void test(){
if(length>0&&length<20)
System.out.println("length是大于0.0小于20.0的浮点数");
else
System.out.println("length不是大于0.0小于20.0的浮点数");
if(width>0&&width<20)
System.out.println("width是大于0.0小于20.0的浮点数");
else
System.out.println("width不是大于0.0小于20.0的浮点数");
public void read(){
System.out.println("length的值是 "+length);
System.out.println("width的值是 "+width);
}
public static void main(String args[]){
int a;
System.out.println("1:计算矩形的周长");
System.out.println("2:计算矩形的面积");
System.out.println("3:重新设置矩形的长和宽");
System.out.println("4:读取矩形的长和宽");
System.out.println("5:检测长、宽值得范围");
String str=JOptionPane.showInputDialog("请选择上述中的一种操作:");
a=Integer.parseInt(str);
switch(a){
case 1:perimeter();break;
case 2:area();break;
case 3:reset();break;
case 4:read();break;
case 5:test();break;
default:System.out.println("Wrong input!");
}
}
}
----------------解决方案--------------------------------------------------------
括号的匹配有问题
----------------解决方案--------------------------------------------------------
这是我改过的:
--------------------------------------------------------
import javax.swing.JOptionPane;
public class Rectangle{
private float length=1,width=1;
public void perimeter(){
float a;
a=2*(length+width);
System.out.println("矩形的周长是: "+a);
}
public void area(){
float a;
a=length*width;
System.out.println("矩形的面积是: "+a);
}
public void reset(){
String str1=JOptionPane.showInputDialog("请输入length值:");
length=Float.parseFloat(str1);
String str2=JOptionPane.showInputDialog("请输入width值:");
width=Float.parseFloat(str2);
}
public void read(){
System.out.println("length的值是 "+length);
System.out.println("width的值是 "+width);
}
public void test(){
if(length>0&&length<20)
System.out.println("length是大于0.0小于20.0的浮点数");
else
System.out.println("length不是大于0.0小于20.0的浮点数");
if(width>0&&width<20)
System.out.println("width是大于0.0小于20.0的浮点数");
else
System.out.println("width不是大于0.0小于20.0的浮点数");
}
public static void main(String args[]){
int a;
System.out.println("1:计算矩形的周长");
System.out.println("2:计算矩形的面积");
System.out.println("3:重新设置矩形的长和宽");
System.out.println("4:读取矩形的长和宽");
System.out.println("5:检测长、宽值得范围");
String str=JOptionPane.showInputDialog("请选择上述中的一种操作:");
a=Integer.parseInt(str);
switch(a){
case 1:new Rectangle().perimeter();break;
case 2:new Rectangle().area();break;
case 3:new Rectangle().reset();break;
case 4:new Rectangle().read();break;
case 5:new Rectangle().test();break;
default:System.out.println("Wrong input!");
}
}
}
-------------------------------------------------------------------
----------------解决方案--------------------------------------------------------
这个程序不好,怎么完成一个任务就自动关闭了。
----------------解决方案--------------------------------------------------------
import javax.swing.JOptionPane;
public class Rectangle{
private float length=1,width=1;
public void perimeter(){
float a;
a=2*(length+width);
System.out.println("矩形的周长是: "+a);
}
public void area(){
float a;
a=length*width;
System.out.println("矩形的面积是: "+a);
}
public void reset(){
String str1=JOptionPane.showInputDialog("请输入length值:");
length=Float.parseFloat(str1);
String str2=JOptionPane.showInputDialog("请输入width值:");
width=Float.parseFloat(str2);
}
public void read(){
System.out.println("length的值是 "+length);
System.out.println("width的值是 "+width);
}
public void test(){
if(length>0&&length<20)
System.out.println("length是大于0.0小于20.0的浮点数");
else
System.out.println("length不是大于0.0小于20.0的浮点数");
if(width>0&&width<20)
System.out.println("width是大于0.0小于20.0的浮点数");
else
System.out.println("width不是大于0.0小于20.0的浮点数");
}
public static void main(String args[]){
int a;
System.out.println("1:计算矩形的周长");
System.out.println("2:计算矩形的面积");
System.out.println("3:重新设置矩形的长和宽");
System.out.println("4:读取矩形的长和宽");
System.out.println("5:检测长、宽值得范围");
System.out.println("0:Exit.");
while (true)
{
String str=JOptionPane.showInputDialog("请选择上述中的一种操作:");
a=Integer.parseInt(str);
switch(a){
case 1:new Rectangle().perimeter();break;
case 2:new Rectangle().area();break;
case 3:new Rectangle().reset();break;
case 4:new Rectangle().read();break;
case 5:new Rectangle().test();break;
case 0:System.exit(0);
default:System.out.println("Wrong input!");
}
}
}
}
----------------解决方案--------------------------------------------------------
还有一点,建议这种题目可以全部用swing来实现,可以试试。
----------------解决方案--------------------------------------------------------
谢谢楼上的朋友,在问一下.二楼朋友改后能编译但不能运行,是怎么回事,难道是我编译器的问题??
----------------解决方案--------------------------------------------------------
提示出错信息为"Exception in thread "main" java.lang.NoClassDefFoundError:Rectangle"
----------------解决方案--------------------------------------------------------
崩溃啊!
我发的贴怎么没人看啊,看楼主好像瞒行的
帮我看一下一个简单的程序,帮忙改一下,行不?谢了!
import java.lang.Math;
public abstract class Area {
public abstract double area();
}
public class RectArea extends Area{
double x,y;
public double area() {
double s1;
s1=x*y;
System.out.println("s1="+s1);
return s1;
}
}
public class RoundArea extends Area{
double z;
public double area(){
double s2;
s2=Math.PI*z*z;
System.out.println("s2="+s2);
return s2;
}
}
public class ImpleArea{
public static void main(String args[]){
RectArea f1=new RectArea();
RoundArea f2=new RoundArea();
try{
System.in.read(double x,double y,double z);
}
catch(Exception e){
System.out.println("error:"+e.toString());
}
f1.area();
f2.area();
}
}
----------------解决方案--------------------------------------------------------
System.in.read(double x,double y,double z);
你这是什么意思?
----------------解决方案--------------------------------------------------------