Java程序,以交互方式显示几何图形中的形状数量
问题描述:
我有这个Java程序应该显示三角形,梯形和六角形的几何形状的边数。我设法创建了这样的代码,当我运行java Shape时,它会同时显示所有形状和边,但我希望使它交互,以便可以提示用户输入她想要的形状,并返回它的边数,Java的哪些功能最能做到这一点?Java程序,以交互方式显示几何图形中的形状数量
public abstract class Shape {
public abstract void numberOfSides();
public static void main(String[] args)
{
System.out.println("The Geometrical characteristics of the figures are as follows");
Trapezoid t=new Trapezoid();
Triangle tg=new Triangle();
Hexagon h=new Hexagon();
t.numberOfSides();
tg.numberOfSides();
h.numberOfSides();
}
}
class Trapezoid extends Shape {
public void numberOfSides()
{
System.out.println("Trapezoid~It is geometrical figure with an attribute of 4 sides (Of which two are parallel and with no angles)");
}
}
class Triangle extends Shape {
public void numberOfSides()
{
System.out.println("Triangle~It is geometrical figure with an attribute of 3 sides");
}
}
class Hexagon extends Shape {
public void numberOfSides()
{
System.out.println("Hexagon-It is geometrical figure with an attribute of 6 sides");
}
}
这是我的新线试图实现以上,其称存在错误,过时的方法以后。
import java.io.*;
public abstract class Shape {
public abstract void numberOfSides();
public static void main(String[] args)
{
System.out.println("Enter the name of the Shape");
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
try {
String shapeName = br.readLine();
if (br.equals ("Trapezoid"))
{Trapezoid t = new Trapezoid();
t.numberOfSides();
}
else if (br.equals ("Triangle"))
{Triangle tg = new Triangle();
tg.numberOfSides();
}
else if (br.equals ("Hexagon"))
{Hexagon h = new Hexagon();
h.numberOfSides();
}
}
}
class Trapezoid extends Shape {
public void numberOfSides()
{
System.out.println("Trapezoid~It is geometrical figure with an attribute of 4 sides (Of which two are parallel and with no angles)");
}
}
class Triangle extends Shape {
public void numberOfSides()
{
System.out.println("Triangle~It is geometrical figure with an attribute of 3 sides");
}
}
class Hexagon extends Shape {
public void numberOfSides()
{
System.out.println("Hexagon-It is geometrical figure with an attribute of 6 sides");
}
}
答
来读取你将要使用的缓冲阅读器的用户输入。然后,您需要根据用户输入条件调用您的方法。
ex。
System.out.println("Enter the name of the shape");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String shapeName = br.readLine();
if(br.equals("Trapezoid") {
Trapezoid t = new Trapezoid();
t.numberOfSides();
}
//...
一旦你写了代码,你可以实现一个菜单供用户选择他们想要的形状。代码看起来像这样。
System.out.println("Select one of the following shapes. \n 1) Trapezoid \n 2) Triangle \n 3) Hexagon");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String shapeName = br.readLine();
if(br.equals("Trapezoid" || br.equals("1") {
Trapezoid t = new Trapezoid();
t.numberOfSides();
}
// ...
@EsotericNonsence上面的mehod产生一个错误,显示使用obdolete方法,为什么会这样呢? – 2013-03-25 23:05:57
如果你告诉我它说的过时的方法,我会更容易告诉你这意味着什么。你的代码是否编译并运行? – EsotericNonsense 2013-03-26 02:42:07
我hava把已编译的新代码,但拒绝有效运行,因为我提到的错误,它没有明确指出错误。 – 2013-03-26 11:50:20