系统要求:
本系统分为6个类
主基类 shape
一级子类 cycle rectangle
二级子类 cube cylinder
用户 *** 作类 User
测试主类(main方法) test
要求实现功能:
通过User类的对象可以实现但不限于如下功能
0.显示系统菜单
1.创建图形,图形包括圆形,矩形,立方体,圆柱
2.对于各个图形均可求得面积与周长
3.可以浏览目前所有已经存在的图形与其信息
4.退出系统
shape类:
package System2; public class shape { shape() { } public double area() { return 0; } public double perimeter() { return 0; } public void show() {} }一级子类
cycle类
package System2; public class cycle extends shape { private double x,y,r; public cycle() { super(); x=0;y=0;r=0; } public cycle(double a,double b,double c) { this.x=a; this.y=b; this.r=c; } @Override public double area() { return r*Math.PI*r; } @Override public double perimeter() { return 2*Math.PI*r; } @Override public void show() { System.out.println("是圆形:"); System.out.println("圆心:("+x+","+y+") 半径"+r); } public double getX() { return x; } public void setX(double x) { this.x = x; } public double getY() { return y; } public void setY(double y) { this.y = y; } public double getR() { return r; } public void setR(double r) { this.r = r; } }
rectangle 类
package System2; public class rectangle extends shape { private double len,wid,x,y; public rectangle() { super(); len=0;wid=0;x=0;y=0; } public rectangle(double a,double b,double c,double d) { this.len=a; this.wid=b; this.x=c; this.y=d; } @Override public double area() { return len*wid; } @Override public double perimeter() { return 2*(len+wid); } @Override public void show() { System.out.println("是矩形:"); System.out.println("中心位置:("+x+","+y+") 长"+len+"宽"+wid); } public double getLen() { return len; } public void setLen(double len) { this.len = len; } public double getWid() { return wid; } public void setWid(double wid) { this.wid = wid; } public double getX() { return x; } public void setX(double x) { this.x = x; } public double getY() { return y; } public void setY(double y) { this.y = y; } }二级子类
cube 类
package System2; // public class cube extends rectangle { private double h; public cube() { super(); h=0; } public cube(double a,double b,double c,double d,double e) { super(a,b,c,d); this.h=e; } @Override public double area() { return 2*(getLen()*h+getWid()*h+getLen()*getWid()); } @Override public double perimeter() { return 4*(getLen()+getWid()+h); } @Override public void show() { System.out.println("是长方体:"); System.out.println("底面中心位置:"+getX()+","+getY()+" 长"+getLen()+" 宽"+getWid()+" 高为:"+h); } }
cylinder 类
package System2; public class cylinder extends cycle { private double h; public cylinder() { super(); h=0; } public cylinder(double a,double b,double c,double d) { super(a,b,c); this.h=d; } @Override public double area() { return 2*(getR()*getR()*Math.PI)+2*Math.PI*getR()*h; } @Override public double perimeter() { return 4*Math.PI*getR()+2*h; } @Override public void show() { System.out.println("是一个圆柱"); System.out.println("地面圆的圆心:"+getX()+","+getY()+" 半径"+getR()); System.out.println("圆柱高:"+h); } }用户 *** 作类
User 类
package System2; import java.util.*; public class User { Scanner cin=new Scanner(System.in); shape s[]=new shape[100]; double a[]=new double[5]; int size=-1; public User() {} public void menu() { System.out.println("*****图形类对象的管理*****"); System.out.println("---------------------"); System.out.println("1.创建一个圆"); System.out.println("2.创建一个矩形"); System.out.println("3.创建一个长方体"); System.out.println("4.创建一个圆柱体"); System.out.println("5.显示已经创建的图形"); System.out.println("6.求各图形面积之和"); System.out.println("7.退出系统"); System.out.println("---------------------"); } public void creat_cycle() { System.out.println("创建一个圆形,请输入圆心 和 半径"); for(int i=0;i<3;i++) { a[i]=cin.nextDouble(); } cycle c=new cycle(a[0],a[1],a[2]); s[++size]=c; s[size].show(); System.out.println("创建完毕"); } public void creat_rectangle() { System.out.println("创建一个矩形,请输入中心 和 长与宽"); for(int i=0;i<4;i++) { a[i]=cin.nextDouble(); } rectangle r=new rectangle(a[0],a[1],a[2],a[3]); s[++size]=r; s[size].show(); System.out.println("创建完毕"); } public void creat_cube() { System.out.println("创建一个长方体,请输入底面中心 和 长与宽和长方体的高"); for(int i=0;i<5;i++) { a[i]=cin.nextDouble(); } cube cu=new cube(a[0],a[1],a[2],a[3],a[4]); s[++size]=cu; s[size].show(); System.out.println("创建完毕"); } public void creat_cylinder() { System.out.println("创建一个圆柱,请输入底面圆心 和 半径还有高"); for(int i=0;i<4;i++) { a[i]=cin.nextDouble(); } cylinder cy=new cylinder(a[0],a[1],a[2],a[3]); s[++size]=cy; s[size].show(); System.out.println("创建完毕"); } public void show_shape() { if(size==-1) System.out.println("尚未创建图形!"); for(int i=0;i<=size;i++) { System.out.print("第"+(i+1)+"个图形"); s[i].show(); } } public void col_area() { double sum=0; for(int i=0;i<=size;i++) { System.out.print("第"+(i+1)+"个图形的面积为: "+s[i].area()); sum+=s[i].area(); } System.out.print("总面积为:"+sum); } }测试主类(main方法)
package System2; import java.util.*; public class test { public static void main(String[] args) { Scanner cin=new Scanner(System.in); User u=new User(); u.menu(); int chose=1; while(chose!=7) { chose=cin.nextInt(); switch(chose) { case 1: u.creat_cycle(); break; case 2: u.creat_rectangle(); break; case 3: u.creat_cube(); break; case 4: u.creat_cylinder(); break; case 5: u.show_shape(); break; case 6: u.col_area(); break; case 7: System.out.println("已退出系统,欢迎下次使用"); break; default: System.out.println("错误输入,请输入1-7之间的整数"); } } cin.close(); } }
请于同一包下逐个分类使用
能力仍是初学,希望各位多多指教
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)