一、今日学习内容:
今天练习实验四的内容。
二、遇到的问题:
无
三、明日计划:
明天继续练习实验五的习题。
今日练习的具体内容如下:
1点类
定义一个Point类,有两个数据成员:x和y, 分别代表x坐标和y坐标,并有若干成员函数。 定义一个友元函数Distance(), 用于求两点之间的距离。
import java.lang.Math; import java.util.Scanner; import java.text.DecimalFormat; public class point { protected int x; protected int y; public void setvalue(int a,int b) { x=a; y=b; } point(){ } public void output() { System.out.println("x="+x); System.out.println("y="+y); } public int return_x() { return this.x; } public int return_y() { return this.y; } public static double length(point s1,point s2) { double result; result=Math.sqrt((double)((s1.x-s2.x)*(s1.x-s2.x)+(s1.y-s2.y)*(s1.y-s2.y))); return result; } public static void main(String [] args) { System.out.println("请输入一个二维坐标点的值:"); Scanner sc=new Scanner (System.in); int a=sc.nextInt(); int b=sc.nextInt(); point p1=new point(); p1.setvalue(a, b); System.out.println("请输入一个二维坐标点的值:"); int A=sc.nextInt(); int B=sc.nextInt(); point p2=new point(); p2.setvalue(A, B); double s=length(p1,p2); DecimalFormat df=new DecimalFormat("0.00"); System.out.println("两点之间的距离:"+df.format(s)); } }
测试截图:
2.复数类
1、声明一个复数类Complex(类私有数据成员为double型的real和image)
2、定义构造函数,用于指定复数的实部与虚部。
3、定义取反成员函数,调用时能返回该复数的相反数(实部、虚部分别是原数的相反数)。
4、定义成员函数Print(),调用该函数时,以格式(real, image)输出当前对象。
5、编写加法友元函数,以复数对象c1,c2为参数,求两个复数对象相加之和。
6、主程序实现:
(1)读入两个实数,用于初始化对象c1。
(2)读入两个实数,用于初始化对象c2。
(3)计算c1与c2相加结果,并输出。
(4)计算c2的相反数与c1相加结果,并输出。
import java.util.Scanner; public class complex { private int real; private int image; public static void main(String []args) { @SuppressWarnings("resource") Scanner sc=new Scanner(System.in); System.out.println("请输入第一个复数的的实部和虚部:"); int x1=sc.nextInt(); int y1=sc.nextInt(); complex s1=new complex(x1,y1); System.out.println("请输入第二个复数的的实部和虚部:"); int x2=sc.nextInt(); int y2=sc.nextInt(); complex s2=new complex(x2,y2); complex s=new complex(); s=add(s1,s2); System.out.print("s1和s2和的"); s.print(); complex s3=new complex(); complex s4=new complex(); s3=different(s2); s4=add(s1,s3); System.out.print("s2的相反数与s1相加的"); s4.print(); } public void print() { if(image>0) System.out.println("结果是:"+"("+real+","+image+")"); if(image<0) System.out.println("结果是:"+"("+real+","+image+")"); if(image==0) System.out.println("结果是:"+"("+real+",0)"); } complex(int x,int y){ real=x; image=y; } complex(){ } public static complex add(complex c1,complex c2) { //加法 complex c=new complex(); c.real=c1.real+c2.real; c.image=c1.image+c2.image; return c; } public static complex different(complex c) { complex c1=new complex(); c1.real=-c.real; c1.image=-c.image; return c1; } }
测试截图: