2020.8.29
学习内容
1.三维坐标向量类
设计一个描述三维坐标的向量类vector3D,成员如下:
数据成员:
- 三个坐标x,y,z,float类型,私有访问属性
公有函数成员:
-
三个参数均有默认值的构造函数,默认值为0,0,0;
-
完成输入输出,输出格式为(x, y, z);
-
完成加法+、减法-、数乘*运算;
在主函数中定义两个vector3D类对象v1,v2,均不带参数,之后输入数字1或2选择为v1输入赋值,还是为v1和v2输入赋值,对v1和v2进行加、减运算,对v1进行数乘运算,乘数由用户输入,最后输出三种运算结果。
1 import java.util.Scanner;
2 //三维向量坐标类
3 public class Vector3D {
4 private float x;
5 private float y;
6 private float z;
7 public Vector3D() {
8 this.x=0;
9 this.y=0;
10 this.z=0;
11 }
12 public Vector3D(float x, float y, float z) {
13 this.x = x;
14 this.y = y;
15 this.z = z;
16 }
17 public void input() {
18 Scanner in=new Scanner(System.in);
19 x=in.nextFloat();
20 y=in.nextFloat();
21 z=in.nextFloat();
22 }
23 public void display() {
24 System.out.println("("+x+","+y+","+z+")");
25 }
26 //加法
27 public Vector3D add(Vector3D v) {
28 float a=x+v.x;
29 float b=y+v.y;
30 float c=z+v.z;
31 Vector3D p=new Vector3D(a,b,c);
32 return p;
33 }
34 //减法
35 public Vector3D sub(Vector3D v) {
36 float a=x-v.x;
37 float b=y-v.y;
38 float c=z-v.z;
39 Vector3D p=new Vector3D(a,b,c);
40 return p;
41 }
42 //数乘
43 public Vector3D mul(float n) {
44 float a=x*n;
45 float b=y*n;
46 float c=z*n;
47 Vector3D p=new Vector3D(a,b,c);
48 return p;
49 }
50 public static void main(String[] args) {
51 int n;
52 Vector3D v1=new Vector3D();
53 Vector3D v2=new Vector3D();
54 Scanner in=new Scanner(System.in);
55 System.out.println("1.为三维向量v1赋值并进行数乘运算");
56 System.out.println("2.为三维向量v1、v2赋值并进行加、减运算");
57 System.out.print("请输入你要进行的操作编号:");
58 n=in.nextInt();
59 if(n==1) {
60 float t;
61 Vector3D v;
62 System.out.print("请输入v1的三维坐标:");
63 v1.input();
64 System.out.print("请输入乘数:");
65 t=in.nextFloat();
66 v=v1.mul(t);
67 System.out.print("数乘结果为:");
68 v.display();
69 }
70 if(n==2) {
71 System.out.print("请输入v1的三维坐标:");
72 v1.input();
73 System.out.print("请输入v2的三维坐标:");
74 v2.input();
75 System.out.print("相加结果为:");
76 (v1.add(v2)).display();
77 System.out.print("相减结果为:");
78 (v1.sub(v2)).display();
79 }
80 }
81 }




浙公网安备 33010602011771号