• 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();
            }
        }
    
    }

    测试截图:

       

  • 相关阅读:
    HDU 1873 看病要排队(结构体+优先队列)
    优先队列
    栈和队列
    Light OJ 1214 Large Division (大数取模)
    LightOJ 1078 Integer Divisibility (同余定理)
    51nod 1513-3的幂的和(费马小定理+快速幂)
    51nod 1256 乘法逆元(扩展欧几里得)
    格式测试
    点Point 圆Circle 圆柱Cylinder的继承与派生
    JUC 并发编程--04 常用的辅助类CountDownLatch , CyclicBarrier , Semaphore , 读写锁 , 阻塞队列,CompletableFuture(异步回调)
  • 原文地址:https://www.cnblogs.com/Lizhichengweidashen/p/13547154.html
Copyright © 2020-2023  润新知