Java暑期学习第四十八天日报

一、今日学习内容:

今天练习实验六的内容。

二、遇到的问题:

三、明日计划:

明天继续练习实验六的习题。

 

今日练习的具体内容如下:

 

1.三维坐标向量类

设计一个描述三维坐标的向量类vector3D,成员如下:

数据成员:

  • 三个坐标x,y,z,float类型,私有访问属性

    公有函数成员:

  • 三个参数均有默认值的构造函数,默认值为0,0,0;

  • 重载输入输出运算符,输出格式为(x, y, z);

  • 重载加法+、减法-、数乘*(乘数在前,乘数为float类型)这三个运算符;

     

    在主函数中定义两个vector3D类对象v1,v2,均不带参数,之后输入数字1或2选择为v1输入赋值,还是为v1和v2输入赋值,对v1和v2进行加、减运算,对v1进行数乘运算,乘数由用户输入,最后输出三种运算结果。

 

import java.util.Scanner;
public class vector3D {
    private float x;
    private float y;
    private float z;
    public vector3D add(vector3D v) {
        vector3D v1=new vector3D();
        v1.x=this.x+v.x;
        v1.y=this.y+v.y;
        v1.z=this.z+v.z;
        return v1;
        
    }
    public vector3D Subtraction(vector3D v) {
        vector3D v1=new vector3D();
        v1.x=this.x-v.x;
        v1.y=this.y-v.y;
        v1.z=this.z-v.z;
        return v1;
        
    }
    public vector3D Multiplication(float m) {
        vector3D v1=new vector3D();
        v1.x=this.x*m;
        v1.y=this.y*m;
        v1.z=this.z*m;
        return v1;
        
    }
    public void display() {
        System.out.println("("+x+","+y+","+z+")");
    }
    public void setvalue(float a,float b,float c) {
        x=a;
        y=b;
        z=c;
    }
    public static void main(String[] args) {
        vector3D v1=new vector3D();
        vector3D v2=new vector3D();
        vector3D v3=new vector3D();
        vector3D v4=new vector3D();
        Scanner sc=new Scanner(System.in);
        Scanner sc1=new Scanner(System.in);
        Scanner sc2=new Scanner(System.in);
        System.out.println("1.为v1进行赋值:");
        System.out.println("2.为v1和v2进行赋值:");
        System.out.println("请输入你的选择:");
        int n=sc2.nextInt();
        if(n==1) {
            System.out.println("请输入一个三维向量的坐标:");
            float a=sc.nextFloat();
            float b=sc.nextFloat();
            float c=sc.nextFloat();
            v1.setvalue(a, b, c);
            System.out.println("请输入要进行数乘的数:");
            float m=sc.nextFloat();
            v3=v1.Multiplication(m);
            System.out.print("数乘结果为:");
            v3.display();
        }
        if(n==2) {
        
        System.out.println("请输入一个三维向量的坐标:");
        float a=sc.nextFloat();
        float b=sc.nextFloat();
        float c=sc.nextFloat();
        
        v1.setvalue(a, b, c);
        System.out.println("请输入一个三维向量的坐标:");
        
        float a1=sc1.nextFloat();
        float b1=sc1.nextFloat();
        float c1=sc1.nextFloat();
        
        v2.setvalue(a1, b1, c1);
        
        v3=v1.add(v2);
        System.out.println("两个向量相加得:");
        v3.display();
        v4=v1.Subtraction(v2);
        System.out.println("两个向量相减得:");
        v4.display();
        }
    }

}

 

测试截图:

   

 

posted on 2020-08-22 21:20  桑榆非晚柠月如风  阅读(107)  评论(0编辑  收藏  举报