一 Java博客作业( 二 )


第三次作业第一题

一  Java博客作业

文章插图
7-1点线形系列1-计算两点之间的距离(10分)
输入两个点的坐标,计算两点之间的距离
输入格式:
4个类型的实数,两个点的x,y坐标,依次是x1、y1、x2、y2,两个点的坐标之间以空格分隔,每个点的x,y坐标以英文“,”分隔 。例如:0,0 1,1或0.1,-0.3 +3.5,15.6 。
若输入格式非法,输出"Wrong " 。
若输入格式合法但坐标点的数量超过两个,输出“wrongof ” 。
输出格式:
计算所得的两点之间的距离 。例如:1.40951
类图:
大概思路:
Point函数是对字符串数据的转换,legal函用来判断输入数据是否合法,这里学习了正则表达式,表达式写的比较简单,这题的算法也比较简单,
若输入格式非法,输出"Wrong " 。若输入格式合法但坐标点的数量超过两个,输出“wrongof ” 。
源码(具体代码分析写在注释里):
【一Java博客作业】import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner s = new Scanner(System.in);String str = s.nextLine();String[] dj = str.split(" ");boolean a =false;for(int i=0;i2)//前两个点的输入合法,但输入多个坐标时System.out.print("wrong number of points");}elseSystem.out.print("Wrong Format");}else System.out.print("Wrong Format");}}class P {double Point(String r) {//这个地方开始想复杂了,后面其实可以强制转换成数字的,符号也可以double tran = 0;int len = r.length();if (r.charAt(0) == '+') {r = r.substring(1, len);tran = Double.parseDouble(r);}if (r.charAt(0) == '-') {r = r.substring(0, len);tran = Double.parseDouble(r);}if(Character.isDigit(r.charAt(0))){r = r.substring(0);tran = Double.parseDouble(r);}return tran;}boolean legal(String x) {String w = "[+-]?(\\d+)(\\.\\d+)?$";//判断输入for(int i=1;i1&&x.charAt(1)!='.')return false;}if(x.matches(w))//匹配return true;elsereturn false; }}
第三次作业第二题
7-2 点线形系列2-线的计算 (42 分)
用户输入一组选项和数据,进行与直线有关的计算 。选项包括:
1:输入两点坐标,计算斜率,若线条垂直于X轴,输出"Slope does not exist" 。
2:输入三个点坐标,输出第一个点与另外两点连线的垂直距离 。
3:输入三个点坐标,判断三个点是否在一条线上,输出true或者false 。
4:输入四个点坐标,判断前两个点所构成的直线与后两点构成的直线是否平行,输出true或者false.
5:输入四个点坐标,计算输出前两个点所构成的直线与后两点构成的直线的交点坐标,x、y坐标之间以英文分隔",",并输出交叉点是否在两条线段之内(不含四个端点)的判断结果(true/false),判断结果与坐标之间以一个英文空格分隔 。若两条线平行,没有交叉点,则输出"islines,have nopoint" 。
输入格式:
基本格式:选项+":"+坐标x+","+坐标y+" "+坐标x+","+坐标y 。