英文名:Introduction to Java Programming and Data Structures, Comprehensive Version, 11th Edition
3.24
publicclassbook{publicstaticvoidmain(String[] args){int num =(int)(Math.random()*13);int dick =(int)(Math.random()*4);
String[] nums ={"Ace","2","3","4","5","6","7","8","9","10","Jack","Queen","King"};
String[] dicks ={"Clubs","Diamonds","Hearts","Spades"};
System.out.println("The card you picked is "+nums[num]+" of "+dicks[dick]);}}
3.25
import java.util.Scanner;publicclassbook{publicstaticvoidmain(String[] args){
System.out.print("Enter x1, y1, x2, y2, x3, y3, x4, y4: ");
Scanner input =newScanner(System.in);double x1 = input.nextDouble();double y1 = input.nextDouble();double x2 = input.nextDouble();double y2 = input.nextDouble();double x3 = input.nextDouble();double y3 = input.nextDouble();double x4 = input.nextDouble();double y4 = input.nextDouble();double a = y1-y2;double b = x2-x1;double c = y3-y4;double d = x4-x3;double e =(y1-y2)*x1-(x1-x2)*y1;double f =(y3-y4)*x3-(x3-x4)*y3;double jb = a*d-b*c;if(jb==0)
System.out.println("The two lines are parallel");else
System.out.println("The intersecting point is at ("+(e*d-b*f)/jb+", "+(a*f-e*c)/jb+")");}}
3.26
import java.util.Scanner;publicclassbook{publicstaticvoidmain(String[] args){
System.out.print("Enter an integer: ");
Scanner input =newScanner(System.in);int n = input.nextInt();
System.out.println("Is "+n+" divisible by 5 and 6? "+(n%5==0&&n%6==0));
System.out.println("Is "+n+" divisible by 5 or 6? "+(n%5==0||n%6==0));
System.out.println("Is "+n+" divisible by 5 or 6, but not both? "+(n%5==0^n%6==0));}}
3.27
import java.util.Scanner;publicclassbook{publicstaticvoidmain(String[] args){
System.out.print("Enter a point's x- and y- coordinates: ");
Scanner input =newScanner(System.in);double x = input.nextDouble();double y = input.nextDouble();if(x>=0&&x<=200&&y>=0&&y<=100-0.5*x)
System.out.println("The point is in the triangle");else
System.out.println("The point is not in the triangle");}}
3.28
import java.util.Scanner;publicclassbook{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);
System.out.print("Enter r1's center x-, y-coordinates, width, and height: ");double x1 = input.nextDouble();double y1 = input.nextDouble();double w1 = input.nextDouble();double h1 = input.nextDouble();
System.out.print("Enter r2's center x-, y0coordinates, width, and height: ");double x2 = input.nextDouble();double y2 = input.nextDouble();double w2 = input.nextDouble();double h2 = input.nextDouble();if((x1+w1/2>=x2+w2/2)&&(x1-w1/2<=x2-w2/2)&&(y1+h1/2>=y2+h2/2)&&(y1-h1/2<=y2-h2/2))
System.out.println("r2 is inside r1");elseif((x2-w2/2>x1+w1/2)||(x2+w2/2<x1-w1/2)||(y2-h2/2>y1+h1/2)||(y2+h2/2<y1-h1/2))
System.out.println("r2 does not overlap r1");elseif((x2+w2/2>=x1+w1/2)&&(x2-w2/2<=x1-w1/2)&&(y2+h2/2>=y1+h1/2)&&(y2-h2/2<=y1-h1/2))
System.out.println("r1 is inside r2");else
System.out.println("r2 overlaps r1");}}
3.29
import java.util.Scanner;publicclassbook{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);
System.out.print("Enter circle's center x-, y-coordinates, and radius: ");double x1 = input.nextDouble();double y1 = input.nextDouble();double r1 = input.nextDouble();
System.out.print("Enter circle2's center x-, y-coordinates, and radius: ");double x2 = input.nextDouble();double y2 = input.nextDouble();double r2 = input.nextDouble();if(Math.pow((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2),0.5)<=Math.abs(r1-r2))
System.out.println("circle2 is inside circle1");elseif(Math.pow((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2),0.5)<=r1+r2)
System.out.println("circle2 overlaps circle1");else
System.out.println("circle2 does not overlap circle1");}}
3.30
import java.util.Scanner;publicclassbook{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);
System.out.print("Enter the time zone offset to GMT:");long offset = input.nextLong();long totalMilliseconds = System.currentTimeMillis();
totalMilliseconds+=offset*60*60*1000;long totalSeconds = totalMilliseconds/1000;long currentSecond = totalSeconds%60;long totalMinutes = totalSeconds/60;long currentMinute = totalMinutes%60;long totalHours = totalMinutes/60;long currentHour = totalHours%24;
String tail ="AM";if(currentHour>12){
currentHour-=12;
tail="PM";}
System.out.println("Current time is "+currentHour+":"+currentMinute+":"+currentSecond+" "+tail);}}
3.31
import java.util.Scanner;publicclassbook{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);
System.out.print("Enter the exchange rate from dollar to RMB: ");double rate = input.nextDouble();
System.out.print("Enter 0 to convert dollars to RMB and 1 vice versa: ");int sig = input.nextInt();double in =0;double out =0;
String moneyType ="";if(sig==0)
moneyType="dollar";elseif(sig==1)
moneyType="RMB";else
System.out.println("Incorrect input");if(sig==0||sig==1){
System.out.print("Enter the "+moneyType+" amount: ");
in = input.nextDouble();if(sig==0){
out = in*rate;
System.out.println("$"+in+" is "+out+" yuan");}else{
out = in/rate;
System.out.println(in+" yuan is $"+out);}}}}
3.32
import java.util.Scanner;publicclassbook{publicstaticvoidmain(String[] args){
System.out.print("Enter three points for p0, p1, and p2: ");
Scanner input =newScanner(System.in);double x0 = input.nextDouble();double y0 = input.nextDouble();double x1 = input.nextDouble();double y1 = input.nextDouble();double x2 = input.nextDouble();double y2 = input.nextDouble();double result =(x1-x0)*(y2-y0)-(x2-x0)*(y1-y0);if(result>0)
System.out.println("p2 is on the left side of the line");elseif(result==0)
System.out.println("p2 is on the same line");else
System.out.println("p2 is on the right side of the line");}}
3.33
import java.util.Scanner;publicclassbook{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);
System.out.print("Enter weight and price for package 1: ");double w1 = input.nextDouble();double p1 = input.nextDouble();
System.out.print("Enter weight and price for package 2: ");double w2 = input.nextDouble();double p2 = input.nextDouble();double av1 = p1/w1;double av2 = p2/w2;if(av1<av2)
System.out.println("Package 1 has a better price.");elseif(av1==av2)
System.out.println("Two packages have the same price.");else
System.out.println("Package 2 has a better price.");}}
3.34
import java.util.Scanner;publicclassbook{publicstaticvoidmain(String[] args){
Scanner input =newScanner(System.in);
System.out.print("Enter three points for p0, p1, and p2: ");double x0 = input.nextDouble();double y0 = input.nextDouble();double x1 = input.nextDouble();double y1 = input.nextDouble();double x2 = input.nextDouble();double y2 = input.nextDouble();if((x1-x0)*(y2-y0)-(x2-x0)*(y1-y0)==0&&x2>=x0&&x2<=x1)
System.out.println("("+x2+", "+y2+") is on the line segment from ("+x0+", "+y0+") to ("+x1+", "+y1+")");else
System.out.println("("+x2+", "+y2+") is not on the line segment from ("+x0+", "+y0+") to ("+x1+", "+y1+")");}}