一、今日学习内容:
今天练习实验六的内容。
二、遇到的问题:
无
三、明日计划:
明天继续练习实验六的习题。
今日练习的具体内容如下:
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(); } } }
测试截图: