《Java语言程序设计与数据结构》编程练习答案(第三章)(三)
英文名:Introduction to Java Programming and Data Structures, Comprehensive Version, 11th Edition
3.24
public class book {
public static void main(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;
public class book {
public static void main(String[] args)
{
System.out.print("Enter x1, y1, x2, y2, x3, y3, x4, y4: ");
Scanner input = new Scanner(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;
public class book {
public static void main(String[] args)
{
System.out.print("Enter an integer: ");
Scanner input = new Scanner(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;
public class book {
public static void main(String[] args)
{
System.out.print("Enter a point's x- and y- coordinates: ");
Scanner input = new Scanner(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;
public class book {
public static void main(String[] args)
{
Scanner input = new Scanner(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");
else if((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");
else if((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;
public class book {
public static void main(String[] args)
{
Scanner input = new Scanner(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");
else if(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;
public class book {
public static void main(String[] args)
{
Scanner input = new Scanner(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;
public class book {
public static void main(String[] args)
{
Scanner input = new Scanner(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";
else if(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;
public class book {
public static void main(String[] args)
{
System.out.print("Enter three points for p0, p1, and p2: ");
Scanner input = new Scanner(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");
else if(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;
public class book {
public static void main(String[] args)
{
Scanner input = new Scanner(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.");
else if(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;
public class book {
public static void main(String[] args)
{
Scanner input = new Scanner(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+")");
}
}
第三章 完