Java语言程序设计基础篇 课后答案-机械工业出版社
java语言程序设计基础篇第十版课后答案
第一章1.1public class Test{public static void main(String[]args){System.out.println("Welcome to Java!"); System.out.println("Welcome to Computer Science!");System.out.println("Progr amming is fun.");}}1.2public class Test{public static void main(String[]args){for(int i=0;i<=4;i++){System.out.println("Welcome to Java!");}}}1.3public class Test{public static void main(String[]args){System.out.println("]");System.out.printl n("]");System.out.println("]]");System.out.println("]]");}}public class Test{public static void main(String[]args){System.out.println("A"); System.out.println("A A");System.out.println("AAAAA");System.out.println("A A");}}public class Test{public static void main(String[]args){System.out.println("V V");System.out.println("V V");System.out.println("V V");System.out.println(" V");}}1.4public class Test{public static void main(String[]args){System.out.println("a a^2a^3");System.out.println("111");System.out.println("248");System.out.println("3 927");System.out.println("41664");}}1.5public class Test{public static void main(String[]args){System.out.println((9.5*4.5-2.5*3)/(45.5-3.5) );}}1.6public class Test{public static void main(String[]args){int i=1,sum=0;for(;i<=9;i++)sum+ =i;System.out.println(sum);}1.7public class Test{public static void main(String[]args){System.out.println(4*(1.0-1.0/3+1.0/5-1.0/7+1.0/9-1.0/11));System.out.println(4*(1.0-1.0/3+1.0/5-1.0/7+1.0/9-1.0/11+1.0/13));}}1.8public class Test{public static void main(String[]args){final double PI=3.14; double radius=5.5;System.out.println(2*radius*PI);System.out.println(PI*radius*radius);}}1.9public class Test{public static void main(String[]args){System.out.println(7.9*4.5);System.out.p rintln(2*(7.9+4.5));}}1.10public class Test{public static void main(String[]args){double S=14/1.6;double T=45*60+30;double speed=S/T;System.out.println(speed);}1.11public class Test{public static void main(String[]args){int BN=312032486; //original person numbers double EveryYS,EveryYBP,EveryYDP,EveryYMP;EveryY S=365*24*60*60;EveryYBP=EveryYS/7;EveryYDP=EveryYS/13;Every YMP=EveryYS/45;int FirstYP,SecondYP,ThirdYP,FourthYP,FivthYP;FirstYP=(int)(BN+EveryYBP+EveryYMP-EveryYDP);SecondYP=(int)(FirstYP +EveryYBP+EveryYMP-EveryYDP);ThirdYP=(int)(SecondYP+EveryYBP+Ev eryYMP-EveryYDP);FourthYP=(int)(ThirdYP+EveryYBP+EveryYMP-EveryYD P);FivthYP=(int)(FourthYP+EveryYBP+EveryYMP-EveryYDP);System.out.pri ntln(FirstYP);System.out.println(SecondYP);System.out.println(ThirdYP);Syste m.out.println(FourthYP);System.out.println(FivthYP);}}1.12public class Test{public static void main(String[]args){double S=24*1.6; double T=(1*60+40)*60+35;double speed=S/T;System.out.println(sp eed);}}1.13import java.util.Scanner;public class Test{public static void main(String[]args){Scanner input=new Scan ner(System.in);System.out.println("input a,b,c,d,e,f value please:");double a=input.nextDouble();double b=input.nextDouble();double c=input.nextDouble();double d=input. nextDouble();double e=input.nextDouble();第二章package cn.Testcx;import java.util.Scanner;public class lesson2{public static void main(String[]args){@SuppressWarnings("resource")Scanner in put=new Scanner(System.in);System.out.print("请输入一个摄氏温度:");double Celsius=input.nextDouble();double Fahrenheit=(9.0/5)*Celsius+3 2;System.out.println("摄氏温度:"+Celsius+"度"+"转换成华氏温度为:"+Fahrenheit+"度");System.out.print("请输入圆柱的半径和高:");double radius=input.nextDouble();int higth=input.nextInt();double are as=radius*radius*Math.PI;double volume=areas*higth;System.out.println("圆柱体的面积为:"+areas);System.out.println("圆柱体的体积为:"+volume);System.out.print("输入英尺数:");double feet=input.nextDouble();double meters=feet*0.305;System.out.print ln(feet+"英尺转换成米:"+meters);System.out.print("输入一个磅数:");double pounds=input.nextDouble();double kilograms=pounds*0.454;Syste m.out.println(pounds+"磅转换成千克为:"+kilograms);System.out.println("输入分钟数:");long minutes=input.nextInt();long years=minutes/(24*60*365);long days=(minutes%(24*60*365))/(24*60);System.out.println(minutes+"分钟"+"有"+years+"年和"+days+"天");long totalCurrentTimeMillis=System.currentTimeMillis();long totalSeconds=t otalCurrentTimeMillis/1000;long currentSeconds=totalSeconds%60;long totalM inutes=totalSeconds/60;long currentMinutes=(totalSeconds%(60*60))/60;long currenthours=(totalMinutes/60)%24;System.out.print("输入时区偏移量:");byte zoneOffset=input.nextByte();long currentHour=(currenthours+(zoneOf fset*1))%24;System.out.println("当期时区的时间为:"+currentHour+"时"+currentMinutes+"分"+currentSeconds+"秒");System.out.print("请输入v0,v1,t:");double v0=input.nextDouble();double v1=input.nextDouble();doublet=input.nextDouble();float a=(float)((v1-v0)/t);System.out.println("平均加速度a="+a);System.out.println("输入水的重量、初始温度、最终温度:");double water=input.nextDouble();double initialTemperature=input.nextDou ble();double finalTemperature=input.nextDouble();double Q=water*(finalTemp erature-initialTemperature)*4184;System.out.println("所需热量为:"+Q);System.out.print("输入年数:");int numbers=input.nextInt();long oneYearsSecond=365*24*60*60;Longpop ulation=(long)((312032486+((oneYearsSecond/7.0)+(oneYearsSecond/45.0)-(oneYearsSecond/13.0))*numbers));System.out.println("第"+numbers+"年后人口总数为:"+population);System.out.print("输入速度单位m/s和加速度a单位m/s2:");double v=input.nextDouble();double a1=input.nextDouble();double l engthOfAirplane=(Math.pow(v,2))/(2*a1);System.out.println("最短长度为:"+lengthOfAirplane);System.out.print("输入存入的钱:");double money=input.nextInt();double monthRate=5.0/1200;for(int i=1;i<7; i++){double total=money*(Math.pow(1+monthRate,i));System.out.println("第"+i+"个月的钱为:"+total);//告诉我书上的银行在哪里,我要去存钱,半年本金直接翻6倍、、、}System.out.print("用户请输入身高(英寸)、体重(磅):");double height=input.nextDouble();double weight=input.nextDouble(); double BMI=(weight*0.45359237)/(Math.pow((height*0.0254),2));System.out.println("BMI的值为"+BMI);System.out.print("输入x1和y1:");System.out.print("输入x2和y2:");double x1=input.nextDouble();double y1=input.nextDouble();double x2 =input.nextDouble();double y2=input.nextDouble();double point1=Math.pow((x2-x1),2);double point2=Math.pow((y2-y1),2);double distance=Math.pow((point1+point2),(1.0/2));//也可以Math.pow((point1+point2),0.5)System.out.println("两点间的距离为:"+distance);System.out.print("输入六边形的边长:");double side=input.nextDouble();double area=(3*(Math.pow(3,0.5))*(Math.p ow(side,2)))/2;System.out.println("六边形的面积为:"+area);}}。
《Java语言程序设计(基础篇)》(第10版 梁勇 著)第九章练习题答案
《Java语言程序设计(基础篇)》(第10版梁勇著)第九章练习题答案9.1public class Exercise09_01 {public static void main(String[] args) {MyRectangle myRectangle = new MyRectangle(4, 40);System.out.println("The area of a rectangle with width " +myRectangle.width + " and height " +myRectangle.height + " is " +myRectangle.getArea());System.out.println("The perimeter of a rectangle is " +myRectangle.getPerimeter());MyRectangle yourRectangle = new MyRectangle(3.5, 35.9);System.out.println("The area of a rectangle with width " +yourRectangle.width + " and height " +yourRectangle.height + " is " +yourRectangle.getArea());System.out.println("The perimeter of a rectangle is " +yourRectangle.getPerimeter());}}class MyRectangle {// Data membersdouble width = 1, height = 1;// Constructorpublic MyRectangle() {}// Constructorpublic MyRectangle(double newWidth, double newHeight) {width = newWidth;height = newHeight;}public double getArea() {return width * height;}public double getPerimeter() {return 2 * (width + height);}}9.2public class Exercise09_02 {public static void main(String[] args) {Stock stock = new Stock("SUNW", "Sun MicroSystems Inc."); stock.setPreviousClosingPrice(100);// Set current pricestock.setCurrentPrice(90);// Display stock infoSystem.out.println("Previous Closing Price: " +stock.getPreviousClosingPrice());System.out.println("Current Price: " +stock.getCurrentPrice());System.out.println("Price Change: " +stock.getChangePercent() * 100 + "%");}}class Stock {String symbol;String name;double previousClosingPrice;double currentPrice;public Stock() {}public Stock(String newSymbol, String newName) {symbol = newSymbol;name = newName;}public double getChangePercent() {return (currentPrice - previousClosingPrice) /previousClosingPrice;}public double getPreviousClosingPrice() {return previousClosingPrice;}public double getCurrentPrice() {return currentPrice;}public void setCurrentPrice(double newCurrentPrice) {currentPrice = newCurrentPrice;}public void setPreviousClosingPrice(double newPreviousClosingPrice) { previousClosingPrice = newPreviousClosingPrice;}}9.3public class Exercise09_03 {public static void main(String[] args) {Date date = new Date();int count = 1;long time = 10000;while (count <= 8) {date.setTime(time);System.out.println(date.toString());count++;time *= 10;}}}9.4public class Exercise09_04 {public static void main(String[] args) {Random random = new Random(1000);for (int i = 0; i < 50; i++)System.out.print(random.nextInt(100) + " ");}9.5public class Exercise09_05 {public static void main(String[] args) {GregorianCalendar calendar = new GregorianCalendar();System.out.println("Year is " + calendar.get(GregorianCalendar.YEAR)); System.out.println("Month is " + calendar.get(GregorianCalendar.MONTH)); System.out.println("Date is " + calendar.get(GregorianCalendar.DATE));calendar.setTimeInMillis(1234567898765L);System.out.println("Year is " + calendar.get(GregorianCalendar.YEAR)); System.out.println("Month is " + calendar.get(GregorianCalendar.MONTH)); System.out.println("Date is " + calendar.get(GregorianCalendar.DATE)); }}9.6public class Exercise09_06 {static String output = "";/** Main method */public static void main(String[] args) {Scanner input = new Scanner(System.in);// Prompt the user to enter yearSystem.out.print("Enter full year (i.e. 2001): ");int year = input.nextInt();// Prompt the user to enter monthSystem.out.print("Enter month in number between 1 and 12: ");int month = input.nextInt();// Print calendar for the month of the yearprintMonth(year, month);System.out.println(output);}/** Print the calendar for a month in a year */static void printMonth(int year, int month) {// Get start day of the week for the first date in the monthint startDay = getStartDay(year, month);// Get number of days in the monthint numOfDaysInMonth = getNumOfDaysInMonth(year, month);// Print headingsprintMonthTitle(year, month);// Print bodyprintMonthBody(startDay, numOfDaysInMonth);}/** Get the start day of the first day in a month */static int getStartDay(int year, int month) {// Get total number of days since 1/1/1800int startDay1800 = 3;long totalNumOfDays = getTotalNumOfDays(year, month);// Return the start dayreturn (int)((totalNumOfDays + startDay1800) % 7);}/** Get the total number of days since Jan 1, 1800 */static long getTotalNumOfDays(int year, int month) {long total = 0;// Get the total days from 1800 to year -1for (int i = 1800; i < year; i++)if (isLeapYear(i))total = total + 366;elsetotal = total + 365;// Add days from Jan to the month prior to the calendar month for (int i = 1; i < month; i++)total = total + getNumOfDaysInMonth(year, i);return total;}/** Get the number of days in a month */static int getNumOfDaysInMonth(int year, int month) {if (month == 1 || month==3 || month == 5 || month == 7 ||month == 8 || month == 10 || month == 12)return 31;if (month == 4 || month == 6 || month == 9 || month == 11)return 30;if (month == 2)if (isLeapYear(year))return 29;elsereturn 28;return 0; // If month is incorrect.}/** Determine if it is a leap year */static boolean isLeapYear(int year) {if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100 != 0))) return true;return false;}/** Print month body */static void printMonthBody(int startDay, int numOfDaysInMonth) { // Pad space before the first day of the monthint i = 0;for (i = 0; i < startDay; i++)output += " ";for (i = 1; i <= numOfDaysInMonth; i++) {if (i < 10)output += " " + i;elseoutput += " " + i;if ((i + startDay) % 7 == 0)output += "\n";}output += "\n";}/** Print the month title, i.e. May, 1999 */static void printMonthTitle(int year, int month) {output += " " + getMonthName(month)+ ", " + year + "\n";output += "-----------------------------\n";output += " Sun Mon Tue Wed Thu Fri Sat\n";}/** Get the English name for the month */static String getMonthName(int month) {String monthName = null;switch (month) {case 1: monthName = "January"; break;case 2: monthName = "February"; break;case 3: monthName = "March"; break;case 4: monthName = "April"; break;case 5: monthName = "May"; break;case 6: monthName = "June"; break;case 7: monthName = "July"; break;case 8: monthName = "August"; break;case 9: monthName = "September"; break;case 10: monthName = "October"; break;case 11: monthName = "November"; break;case 12: monthName = "December";}return monthName;}}9.7public class Exercise09_07 {public static void main (String[] args) {Account account = new Account(1122, 20000);Account.setAnnualInterestRate(4.5);account.withdraw(2500);account.deposit(3000);System.out.println("Balance is " + account.getBalance()); System.out.println("Monthly interest is " +account.getMonthlyInterest());System.out.println("This account was created at " +account.getDateCreated());}}class Account {private int id;private double balance;private static double annualInterestRate;private java.util.Date dateCreated;public Account() {dateCreated = new java.util.Date();}public Account(int newId, double newBalance) {id = newId;balance = newBalance;dateCreated = new java.util.Date();}public int getId() {return this.id;}public double getBalance() {return balance;}public static double getAnnualInterestRate() {return annualInterestRate;}public void setId(int newId) {id = newId;}public void setBalance(double newBalance) {balance = newBalance;}public static void setAnnualInterestRate(double newAnnualInterestRate) { annualInterestRate = newAnnualInterestRate;}public double getMonthlyInterest() {return balance * (annualInterestRate / 1200);}public java.util.Date getDateCreated() { return dateCreated;}public void withdraw(double amount) {balance -= amount;}public void deposit(double amount) {balance += amount;}}9.8public class Exercise09_08 {public static void main(String[] args) { Fan1 fan1 = new Fan1();fan1.setSpeed(Fan1.FAST);fan1.setRadius(10);fan1.setColor("yellow");fan1.setOn(true);System.out.println(fan1.toString());Fan1 fan2 = new Fan1();fan2.setSpeed(Fan1.MEDIUM);fan2.setRadius(5);fan2.setColor("blue");fan2.setOn(false);System.out.println(fan2.toString()); }}class Fan1 {public static int SLOW = 1;public static int MEDIUM = 2;public static int FAST = 3;private int speed = SLOW;private boolean on = false;private double radius = 5;private String color = "white";public Fan1() {}public int getSpeed() {return speed;}public void setSpeed(int newSpeed) {speed = newSpeed;}public boolean isOn() {return on;}public void setOn(boolean trueOrFalse) {this.on = trueOrFalse;}public double getRadius() {return radius;}public void setRadius(double newRadius) { radius = newRadius;}public String getColor() {return color;}public void setColor(String newColor) {color = newColor;}@Overridepublic String toString() {return"speed " + speed + "\n"+ "color " + color + "\n"+ "radius " + radius + "\n"+ ((on) ? "fan is on" : " fan is off"); }}public class Exercise09_09 {public static void main(String[] args) {RegularPolygon polygon1 = new RegularPolygon();RegularPolygon polygon2 = new RegularPolygon(6, 4);RegularPolygon polygon3 = new RegularPolygon(10, 4, 5.6, 7.8);System.out.println("Polygon 1 perimeter: " +polygon1.getPerimeter());System.out.println("Polygon 1 area: " + polygon1.getArea());System.out.println("Polygon 2 perimeter: " +polygon2.getPerimeter());System.out.println("Polygon 2 area: " + polygon2.getArea());System.out.println("Polygon 3 perimeter: " +polygon3.getPerimeter());System.out.println("Polygon 3 area: " + polygon3.getArea());}}class RegularPolygon {private int n = 3;private double side = 1;private double x;private double y;public RegularPolygon() {}public RegularPolygon(int number, double newSide) {n = number;side = newSide;}public RegularPolygon(int number, double newSide, double newX, double newY) {n = number;side = newSide;x = newX;y = newY;}public int getN() {return n;}public void setN(int number) {n = number;}public double getSide() {return side;}public void setSide(double newSide) {side = newSide;}public double getX() {return x;}public void setX(double newX) {x = newX;}public double getY() {return y;}public void setY(double newY) {y = newY;}public double getPerimeter() {return n * side;}public double getArea() {return n * side * side / (Math.tan(Math.PI / n) * 4); }}9.10public class Exercise09_10 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("Enter a, b, c: ");double a = input.nextDouble();double b = input.nextDouble();double c = input.nextDouble();QuadraticEquation equation = new QuadraticEquation(a, b, c);double discriminant = equation.getDiscriminant();if (discriminant < 0) {System.out.println("The equation has no roots");}else if (discriminant == 0){System.out.println("The root is " + equation.getRoot1());}else// (discriminant >= 0){System.out.println("The roots are " + equation.getRoot1()+ " and " + equation.getRoot2());}}}class QuadraticEquation {private double a;private double b;private double c;public QuadraticEquation(double newA, double newB, double newC) {a = newA;b = newB;c = newC;}double getA() {return a;}double getB() {return b;}double getC() {return c;}double getDiscriminant() {return b * b - 4 * a * c;}double getRoot1() {if (getDiscriminant() < 0)return 0;else {return (-b + getDiscriminant()) / (2 * a);}}double getRoot2() {if (getDiscriminant() < 0)return 0;else {return (-b - getDiscriminant()) / (2 * a);}}}9.11public class Exercise09_11 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("Enter a, b, c, d, e, f: ");double a = input.nextDouble();double b = input.nextDouble();double c = input.nextDouble();double d = input.nextDouble();double e = input.nextDouble();double f = input.nextDouble();LinearEquation equation = new LinearEquation(a, b, c, d, e, f);if (equation.isSolvable()) {System.out.println("x is " +equation.getX() + " and y is " + equation.getY());}else {System.out.println("The equation has no solution");}}}class LinearEquation {private double a;private double b;private double c;private double d;private double e;private double f;public LinearEquation(double newA, double newB, double newC, double newD, double newE, double newF) {a = newA;b = newB;c = newC;d = newD;e = newE;f = newF;}double getA() {return a;}double getB() {return b;}double getC() {return c;}double getD() {return d;}double getE() {return e;}double getF() {return f;}boolean isSolvable() {return a * d - b * c != 0;}double getX() {double x = (e * d - b * f) / (a * d - b * c);return x;}double getY() {double y = (a * f - e * c) / (a * d - b * c);return y;}}9.12public class Exercise09_12 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("Enter the endpoints of the first line segment: ");double x1 = input.nextDouble();double y1 = input.nextDouble();double x2 = input.nextDouble();double y2 = input.nextDouble();System.out.print("Enter the endpoints of the second line segment: ");double x3 = input.nextDouble();double y3 = input.nextDouble();double x4 = input.nextDouble();double y4 = input.nextDouble();// Build a 2 by 2 linear equationdouble a = (y1 - y2);double b = (-x1 + x2);double c = (y3 - y4);double d = (-x3 + x4);double e = -y1 * (x1 - x2) + (y1 - y2) * x1;double f = -y3 * (x3 - x4) + (y3 - y4) * x3;LinearEquation equation = new LinearEquation(a, b, c, d, e, f);if (equation.isSolvable()) {System.out.println("The intersecting point is: (" +equation.getX() + ", " + equation.getY() + ")");}else {System.out.println("The two lines do not cross ");}}}9.13public class Exercise09_13 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("Enter the number of rows and columns of the array: ");int numberOfRows = input.nextInt();int numberOfColumns = input.nextInt();double[][] a = new double[numberOfRows][numberOfColumns];System.out.println("Enter the array: ");for (int i = 0; i < a.length; i++)for (int j = 0; j < a[i].length; j++)a[i][j] = input.nextDouble();Location location = locateLargest(a);System.out.println("The location of the largest element is " + location.maxValue + " at ("+ location.row + ", " + location.column + ")");}public static Location locateLargest(double[][] a) {Location location = new Location();location.maxValue = a[0][0];for (int i = 0; i < a.length; i++)for (int j = 0; j < a[i].length; j++) {if (location.maxValue < a[i][j]) {location.maxValue = a[i][j];location.row = i;location.column = j;}}return location;}}class Location {int row, column;double maxValue;}9.14public class Exercise09_14 {public static void main(String[] args) {int size = 100000;double[] list = new double[size];for (int i = 0; i < list.length; i++) {list[i] = Math.random() * list.length;}StopWatch stopWatch = new StopWatch();selectionSort(list);stopWatch.stop();System.out.println("The sort time is " + stopWatch.getElapsedTime()); }/** The method for sorting the numbers */public static void selectionSort(double[] list) {for (int i = 0; i < list.length - 1; i++) {// Find the minimum in the list[i..list.length-1]double currentMin = list[i];int currentMinIndex = i;for (int j = i + 1; j < list.length; j++) {if (currentMin > list[j]) {currentMin = list[j];currentMinIndex = j;}}// Swap list[i] with list[currentMinIndex] if necessary;if (currentMinIndex != i) {list[currentMinIndex] = list[i];list[i] = currentMin;}}}}class StopWatch {private long startTime = System.currentTimeMillis(); private long endTime = startTime;public StopWatch() {}public void start() {startTime = System.currentTimeMillis();}public void stop() {endTime = System.currentTimeMillis();}public long getElapsedTime() {return endTime - startTime;}}。
《Java语言程序设计(基础篇)》(第10版 梁勇 著)第三十二章练习题答案
《Java语言程序设计(基础篇)》(第10版梁勇著)第三十二章练习题答案32.1import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javafx.application.Application;import javafx.geometry.Pos;import javafx.scene.Scene;import javafx.scene.control.Button;import bel;import javafx.scene.control.TextField;import yout.BorderPane;import yout.HBox;import yout.VBox;import javafx.stage.Stage;public class Exercise32_01 extends Application {private Button btView = new Button("View");private Button btInsert = new Button("Insert");private Button btUpdate = new Button("Update");private Button btClear = new Button("Clear");private TextField tfID = new TextField();private TextField tfLastName = new TextField();private TextField tfFirstName = new TextField();private TextField tfMi = new TextField();private TextField tfAddress = new TextField();private TextField tfCity = new TextField();private TextField tfState = new TextField();private TextField tfTelephone = new TextField();private Label lblStatus = new Label();// The Statement for processing queriesprivate Statement stmt;@Override // Override the start method in the Application class public void start(Stage primaryStage) {VBox vBox = new VBox(5);HBox hBox1 = new HBox(5);hBox1.getChildren().addAll(new Label("ID"), tfID);HBox hBox2 = new HBox(5);hBox2.getChildren().addAll(new Label("Last Name"), tfLastName, new Label("First Name"), tfFirstName, new Label("MI"), tfMi);tfLastName.setPrefColumnCount(8);tfFirstName.setPrefColumnCount(8);tfMi.setPrefColumnCount(1);HBox hBox3 = new HBox(5);hBox3.getChildren().addAll(new Label("Address"), tfAddress);HBox hBox4 = new HBox(5);hBox4.getChildren().addAll(new Label("City"), tfCity,new Label("State"), tfState);HBox hBox5 = new HBox(5);hBox5.getChildren().addAll(new Label("Telephone"), tfTelephone); vBox.getChildren().addAll(hBox1, hBox2, hBox3, hBox4, hBox5);HBox hBox = new HBox(5);hBox.getChildren().addAll(btView, btInsert, btUpdate, btClear);hBox.setAlignment(Pos.CENTER);BorderPane pane = new BorderPane();pane.setCenter(vBox);pane.setTop(lblStatus);pane.setBottom(hBox);// Create a scene and place it in the stageScene scene = new Scene(pane, 400, 200);primaryStage.setTitle("ExtraExercise32_01"); // Set the stage title primaryStage.setScene(scene); // Place the scene in the stageprimaryStage.show(); // Display the stageinitializeDB();btView.setOnAction(e -> view());btInsert.setOnAction(e -> insert());btUpdate.setOnAction(e -> update());btClear.setOnAction(e -> clear());}private void initializeDB() {try {// Connect to the local InterBase databaseConnection conn = DriverManager.getConnection// ("dbc:odbc:exampleMDBDataSource", "", "" );("jdbc:mysql://localhost/javabook", "scott", "tiger");System.out.println("Database connected\n");lblStatus.setText("Database connected");// Create a statementstmt = conn.createStatement();}catch (Exception ex) {lblStatus.setText("Connection failed: " + ex);}}/**View record by ID*/private void view() {// Build a SQL SELECT statementString query = "SELECT * FROM Staff WHERE ID = "+ "'" + tfID.getText().trim() + "'";try {// Execute queryResultSet rs = stmt.executeQuery(query);loadToTextField(rs);}catch(SQLException ex) {lblStatus.setText("Select failed: " + ex);}}/**Load the record into text fields*/private void loadToTextField(ResultSet rs) throws SQLException { if (rs.next()) {tfLastName.setText(rs.getString(2));tfFirstName.setText(rs.getString(3));tfMi.setText(rs.getString(4));tfAddress.setText(rs.getString(5));tfCity.setText(rs.getString(6));tfState.setText(rs.getString(7));tfTelephone.setText(rs.getString(8));lblStatus.setText("Record found");}elselblStatus.setText("Record not found");}/**Insert a new record*/private void insert() {// Build a SQL INSERT statementString insertStmt ="INSERT INTO Staff(ID, LastName, FirstName, mi, Address, " + " City, State, Telephone) VALUES('" +tfID.getText().trim() + "','" +tfLastName.getText().trim() + "','" +tfFirstName.getText().trim() + "','" +tfMi.getText().trim() + "','" +tfAddress.getText().trim() + "','" +tfCity.getText().trim() + "','" +tfState.getText().trim() + "','" +tfTelephone.getText().trim() + "');";try {stmt.executeUpdate(insertStmt);}catch (SQLException ex) {lblStatus.setText("Insertion failed: " + ex);}lblStatus.setText("record inserted");}/**Update a record*/private void update() {// Build a SQL UPDATE statementString updateStmt = "UPDATE Staff " +"SET LastName = '" + tfLastName.getText().trim() + "'," +"FirstName = '" + tfFirstName.getText().trim() + "'," +"mi = '" + tfMi.getText().trim() + "'," +"Address = '" + tfAddress.getText().trim() + "'," +"City = '" + tfCity.getText().trim() + "'," +"State = '" + tfState.getText().trim() + "'," +"Telephone = '" + tfTelephone.getText().trim() + "' " +"WHERE ID = '" + tfID.getText().trim() + "'";try {stmt.executeUpdate(updateStmt);lblStatus.setText("Record updated");}catch(SQLException ex) {lblStatus.setText("Update failed: " + ex);}}/**Clear text fields*/private void clear() {tfID.setText(null);tfLastName.setText(null);tfFirstName.setText(null);tfMi.setText(null);tfAddress.setText(null);tfCity.setText(null);tfState.setText(null);tfTelephone.setText(null);}/*** The main method is only needed for the IDE with limited* avaFX support. Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}32.2import java.sql.*;import javafx.scene.Scene;import yout.HBox;import javafx.stage.Stage;import javafx.application.Application;public class Exercise32_02 extends Application {private String[] dataName;private double[] data;@Override // Override the start method in the Application class public void start(Stage primaryStage) {initializeDB();ChartModel chartModel = new ChartModel();chartModel.setChartData(dataName, data);PieChart pieChart = new PieChart();BarChart barChart = new BarChart();HBox hBox = new HBox(5);hBox.getChildren().addAll(pieChart, barChart);// Create a scene and place it in the stageScene scene = new Scene(hBox, 420, 80);primaryStage.setTitle("Exercise32_02"); // Set the stage titleprimaryStage.setScene(scene); // Place the scene in the stageprimaryStage.show(); // Display the stagepieChart.setModel(chartModel);barChart.setModel(chartModel);}private void initializeDB() {try {Connection conn = DriverManager.getConnection// ("dbc:odbc:exampleMDBDataSource", "", "" );("jdbc:mysql://localhost/javabook", "scott", "tiger");System.out.println("Database connected\n");// Connect to the sample databaseStatement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery("select deptId, count(*) from Student where deptId is not null group by deptId;");// Count rowsint count = 0;while (rs.next()) {count++;}dataName = new String[count];data = new double[count];// We have to obtain the result set againrs = stmt.executeQuery("select deptId, count(*) from Student where deptId is not null group by deptId;");int i = 0;while (rs.next()) {dataName[i] = rs.getString(1);data[i] = rs.getInt(2);i++;}}catch (Exception ex) {ex.printStackTrace();}}/*** The main method is only needed for the IDE with limited* JavaFX support. Not needed for running from the command line.*/public static void main(String[] args) {launch(args);}}32.3import javafx.application.Application;import javafx.scene.Scene;import javafx.scene.control.Button;import bel;import javafx.scene.control.TextField;import javafx.stage.Stage;import java.sql.*;import javafx.collections.FXCollections;import javafx.geometry.HPos;import boBox;import javafx.scene.control.PasswordField;import yout.BorderPane;import yout.GridPane;public class Exercise32_03 extends Application {@Override // Override the start method in the Application classpublic void start(Stage primaryStage) {// Create a scene and place it in the stageScene scene = new Scene(new DBConnectionPane(), 420, 80);primaryStage.setTitle("DB Connection"); // Set the stage title primaryStage.setScene(scene); // Place the scene in the stage primaryStage.show(); // Display the stage}/*** The main method is only needed for the IDE with limited* JavaFX support. Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}class DBConnectionPane extends BorderPane {private Connection connection;private Label lblConnectionStatus = new Label("No connection");private Button btConnect = new Button("Connect to DB");private ComboBox<String> cboDriver = new ComboBox<>(FXCollections.observableArrayList("com.mysql.jdbc.Driver", "sun.jdbc.odbc.JdbcOdbcDriver","oracle.jdbc.driver.OracleDriver"));private ComboBox<String> cboURL = new ComboBox<>(FXCollections.observableArrayList("jdbc:mysql://localhost/javabook","jdbc:odbc:exampleMDBDataSource","jdbc:oracle:thin:@:1521:ora9i"));private TextField tfUsername = new TextField();private PasswordField pfPassword = new PasswordField();/** Creates new form DBConnectionPanel */public DBConnectionPane() {cboDriver.setEditable(true);cboURL.setEditable(true);GridPane gridPane = new GridPane();gridPane.add(new Label("JDBC Drive"), 0, 0);gridPane.add(new Label("Database URL"), 0, 1);gridPane.add(new Label("Username"), 0, 2);gridPane.add(new Label("Password"), 0, 3);gridPane.add(cboDriver, 1, 0);gridPane.add(cboURL, 1, 1);gridPane.add(tfUsername, 1, 2);gridPane.add(pfPassword, 1, 3);gridPane.add(btConnect, 1, 4);GridPane.setHalignment(btConnect, HPos.RIGHT);this.setTop(lblConnectionStatus);this.setCenter(gridPane);btConnect.setOnAction(e -> connectDB());}private void connectDB() {// Get database information from the user inputString driver = cboDriver.getValue();String url = cboURL.getValue();String username = tfUsername.getText().trim();String password = new String(pfPassword.getText());// Connection to the databasetry {Class.forName(driver);connection = DriverManager.getConnection(url, username, password);lblConnectionStatus.setText("Connected to " + url); }catch (ng.Exception ex) {ex.printStackTrace();}}/** Return connection */public Connection getConnection() {return connection;}}32.4import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javafx.application.Application;import javafx.geometry.Pos;import javafx.scene.Scene;import javafx.scene.control.Button;import bel;import javafx.scene.control.TextField;import javafx.stage.Stage;import javafx.scene.control.ScrollPane;import javafx.scene.control.TextArea;import yout.BorderPane;import yout.HBox;public class Exercise32_04 extends Application {private TextField tfSSN = new TextField();private TextArea taResult = new TextArea();private Label lblStatus = new Label();private Button btShowGrade = new Button("Show Grade");// Statement for executing queriesprivate Statement stmt;@Override // Override the start method in the Application class public void start(Stage primaryStage) {HBox hBox = new HBox(5);hBox.getChildren().addAll(new Label("SSN"), tfSSN,btShowGrade);hBox.setAlignment(Pos.CENTER);BorderPane pane = new BorderPane();pane.setCenter(new ScrollPane(taResult));pane.setTop(hBox);pane.setBottom(lblStatus);// Create a scene and place it in the stageScene scene = new Scene(pane, 420, 80);primaryStage.setTitle("Exercise32_04"); // Set the stage title primaryStage.setScene(scene); // Place the scene in the stage primaryStage.show(); // Display the stageinitializeDB();btShowGrade.setOnAction(e -> showGrade());}private void initializeDB() {try {// Load the JDBC driverClass.forName("com.mysql.jdbc.Driver");System.out.println("Driver loaded");// Establish a connectionConnection connection = DriverManager.getConnection("jdbc:mysql://localhost/javabook", "scott", "tiger");// ("jdbc:oracle:thin:@:1521:ora9i",// "scott", "tiger");System.out.println("Database connected");// Create a statementstmt = connection.createStatement();}catch (Exception ex) {ex.printStackTrace();}}private void showGrade() {String ssn = tfSSN.getText();try {String queryString = "select firstName, mi, " +"lastName, title, grade from Student, Enrollment, Course " +"where Student.ssn = '" + ssn +"' and Enrollment.courseId = Course.courseId " +" and Enrollment.ssn = Student.ssn";ResultSet rset = stmt.executeQuery(queryString);taResult.setText(null);int countRow = 0;while (rset.next()) {String lastName = rset.getString(1);String mi = rset.getString(2);String firstName = rset.getString(3);String title = rset.getString(4);String grade = rset.getString(5);// Display resulttaResult.appendText(firstName + " " + mi +" " + lastName + "'s grade on course " + title + " is " +grade + "\n");countRow++;}if (countRow > 0)lblStatus.setText(countRow + " courses found");elselblStatus.setText("no courses found for this SSN");}catch (SQLException ex) {ex.printStackTrace();}}/*** The main method is only needed for the IDE with limited* JavaFX support. Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}32.5import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import javafx.application.Application;import javafx.geometry.Pos;import javafx.scene.Scene;import javafx.scene.control.Button;import bel;import javafx.scene.control.TextField;import javafx.stage.Stage;import javafx.scene.control.ScrollPane;import javafx.scene.control.TextArea;import yout.BorderPane;import yout.HBox;public class Exercise32_05 extends Application {private TextField tfTableName = new TextField();private TextArea taResult = new TextArea();private Button btShowContents = new Button("Show Contents"); private Label lblStatus = new Label();// Statement for executing queriesprivate Statement stmt;@Override // Override the start method in the Application class public void start(Stage primaryStage) {HBox hBox = new HBox(5);hBox.getChildren().addAll(new Label("Table Name"), tfTableName, btShowContents);hBox.setAlignment(Pos.CENTER);BorderPane pane = new BorderPane();pane.setCenter(new ScrollPane(taResult));pane.setTop(hBox);pane.setBottom(lblStatus);// Create a scene and place it in the stageScene scene = new Scene(pane, 420, 80);primaryStage.setTitle("Exercise32_05"); // Set the stage title primaryStage.setScene(scene); // Place the scene in the stageprimaryStage.show(); // Display the stageinitializeDB();btShowContents.setOnAction(e -> showContents());}private void initializeDB() {try {// Load the JDBC driverClass.forName("com.mysql.jdbc.Driver");System.out.println("Driver loaded");// Establish a connectionConnection connection = DriverManager.getConnection("jdbc:mysql://localhost/javabook", "scott", "tiger");// ("jdbc:oracle:thin:@:1521:ora9i",// "scott", "tiger");System.out.println("Database connected");// Create a statementstmt = connection.createStatement();}catch (Exception ex) {ex.printStackTrace();}}private void showContents() {String tableName = tfTableName.getText();try {String queryString = "select * from " + tableName;ResultSet resultSet = stmt.executeQuery(queryString);ResultSetMetaData rsMetaData = resultSet.getMetaData();for (int i = 1; i <= rsMetaData.getColumnCount(); i++) {taResult.appendText(rsMetaData.getColumnName(i) + " "); }taResult.appendText("\n");// Iterate through the result and print the student nameswhile (resultSet.next()) {for (int i = 1; i <= rsMetaData.getColumnCount(); i++)taResult.appendText(resultSet.getObject(i) + " "); taResult.appendText("\n");}}catch (SQLException ex) {ex.printStackTrace();}}/*** The main method is only needed for the IDE with limited* JavaFX support. Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}32.6import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import javafx.application.Application;import javafx.geometry.Pos;import javafx.scene.Scene;import javafx.scene.control.Button;import boBox;import bel;import javafx.stage.Stage;import javafx.scene.control.ScrollPane;import javafx.scene.control.TextArea;import yout.BorderPane;import yout.HBox;public class Exercise32_06 extends Application {private ComboBox<String> cboTableName = new ComboBox<>(); private TextArea taResult = new TextArea();private Button btShowContents = new Button("Show Contents"); private Label lblStatus = new Label();// Statement for executing queriesprivate Statement stmt;@Override // Override the start method in the Application class public void start(Stage primaryStage) {HBox hBox = new HBox(5);hBox.getChildren().addAll(new Label("Table Name"),cboTableName, btShowContents);hBox.setAlignment(Pos.CENTER);BorderPane pane = new BorderPane();pane.setCenter(new ScrollPane(taResult));pane.setTop(hBox);pane.setBottom(lblStatus);// Create a scene and place it in the stageScene scene = new Scene(pane, 420, 80);primaryStage.setTitle("Exercise32_06"); // Set the stage titleprimaryStage.setScene(scene); // Place the scene in the stageprimaryStage.show(); // Display the stageinitializeDB();btShowContents.setOnAction(e -> showContents());}private void initializeDB() {try {// Load the JDBC driverClass.forName("com.mysql.jdbc.Driver");System.out.println("Driver loaded");// Establish a connectionConnection connection = DriverManager.getConnection("jdbc:mysql://localhost/javabook", "scott", "tiger");// ("jdbc:oracle:thin:@:1521:ora9i",// "scott", "tiger");System.out.println("Database connected");// Create a statementstmt = connection.createStatement();DatabaseMetaData dbMetaData = connection.getMetaData();ResultSet rsTables = dbMetaData.getTables(null, null, null,new String[] {"TABLE"}); System.out.print("User tables: ");while (rsTables.next()) {cboTableName.getItems().add(rsTables.getString("TABLE_NAME")); }cboTableName.getSelectionModel().selectFirst();}catch (Exception ex) {ex.printStackTrace();}}private void showContents() {String tableName = cboTableName.getValue();try {String queryString = "select * from " + tableName;ResultSet resultSet = stmt.executeQuery(queryString);ResultSetMetaData rsMetaData = resultSet.getMetaData();for (int i = 1; i <= rsMetaData.getColumnCount(); i++) {taResult.appendText(rsMetaData.getColumnName(i) + " "); }taResult.appendText("\n");// Iterate through the result and print the student nameswhile (resultSet.next()) {for (int i = 1; i <= rsMetaData.getColumnCount(); i++)taResult.appendText(resultSet.getObject(i) + " "); taResult.appendText("\n");}}catch (SQLException ex) {ex.printStackTrace();}}/*** The main method is only needed for the IDE with limited* JavaFX support. Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}32.7/*Statement for creating a tablecreate table Quiz(questionId int,question varchar(4000),choicea varchar(1000),choiceb varchar(1000),choicec varchar(1000),choiced varchar(1000),answer varchar(5));*/import java.io.*;import java.util.*;import java.sql.*;public class Exercise32_07 {private ArrayList<Quiz> chapters = new ArrayList<Quiz>(); private PreparedStatement pstmt1;static class Quiz {String question = "";String choicea = "";String choiceb = "";String choicec = "";String choiced = "";String answer;String hint;}public static void main(String[] args) {new Exercise32_07();}/** Initialize global variables */public Exercise32_07() {try {readTest(chapters);initializeJdbc();int questionNo = 1;for (Quiz question : chapters) {storeQuiz(questionNo++, question);}}catch (Exception ex) {ex.printStackTrace();}}private void readTest(List<Quiz> testForAChapter) throwsException {// Create a buffered reader for reading questions from a fileBufferedReader in = new BufferedReader(new FileReader("Quiz.txt"));// Quiz countint questionCount = 0;boolean beginningOfQuiz = true; // for the first one// Text line from the question fileString line = "";Quiz question = null;// Read and process each line from the text fileloop:while ((line = in.readLine()) != null) {// Process a blank line in the text fileif (line.length() < 1) {continue;}// Determine question statement and multiple choicesif (line.charAt(0) == 'a' && line.charAt(1) == '.') {question.choicea = line.substring(2);}else if (line.charAt(0) == 'b' && line.charAt(1) == '.') {question.choiceb = line.substring(2);}else if (line.charAt(0) == 'c' && line.charAt(1) == '.') {question.choicec = line.substring(2);}else if (line.charAt(0) == 'd' && line.charAt(1) == '.') {question.choiced = line.substring(2);}else if (line.matches("(\\d)+\\..*")) { // Start a new questionbeginningOfQuiz = true;questionCount++; // Increase question countquestion = new Quiz(); // Create a new testtestForAChapter.add(question); // Add to the listquestion.question += line;}else if(line.toUpperCase().indexOf("ANSWER") == 0) { // End of question section// Extract answer and explanationStringTokenizer st = new StringTokenizer(line.substring(7),".\n\r\t ");question.answer = st.nextToken().toUpperCase();if (st.hasMoreTokens()) {question.hint = st.nextToken("\n\r");}}else if (line.charAt(0) == ' ') { // Process spaces before lineString spaces = "";for (int j = 0;((j < line.length()) && (line.charAt(j) == ' ')); j++) { spaces += " ";}question.question += spaces;question.question += line;}else {if (beginningOfQuiz && Character.isDigit(line.charAt(0)) &&line.charAt(1) == '.') {question.question += line.substring(2);beginningOfQuiz = false;}else if (beginningOfQuiz && Character.isDigit(line.charAt(0)) &&Character.isDigit(line.charAt(1))&& line.charAt(2) == '.') {question.question += line.substring(3);beginningOfQuiz = false;}else {question.question += line;}}}// Close the filein.close();}/** Initialize database connection */private void initializeJdbc() {try {// Load the JDBC driverClass.forName("com.mysql.jdbc.Driver");System.out.println("Driver loaded");// Declare driver and connection string// String connectionString = "jdbc:odbc:exampleMDBDataSource";// For MySQLString connectionString = "jdbc:mysql://localhost/javabook";// For Oracle// String connectionString = "jdbc:oracle:" +//"thin:scott/tiger@:1521:orcl";// Connect to the sample databaseConnection conn = DriverManager.getConnection(connectionString, "scott", "tiger");// Create a statement to insert questionspstmt1 = conn.prepareStatement("insert into Quiz " +"(questionId, question, choicea, choiceb, choicec, choiced, answer)" + "values (?, ?, ?, ?, ?, ?, ?)");}catch (Exception ex) {ex.printStackTrace();}}/** Store a question to the database */private void storeQuiz(int questionNo,Quiz question) throws SQLException {pstmt1.setInt(1, questionNo);pstmt1.setString(2, question.question);pstmt1.setString(3, question.choicea);pstmt1.setString(4, question.choiceb);pstmt1.setString(5, question.choicec);pstmt1.setString(6, question.choiced);pstmt1.setString(7, question.answer);pstmt1.executeUpdate();}}32.8import java.util.*;import java.sql.*;public class Exercise32_08 {private Statement stmt;。
Java语言程序设计(基础篇)原书第十一版 梁勇 第7、8章 课后题答案
7.7统计个位数的数目public class DemoA {public static void main(String[] args) {int num[]=new int[100];int counts[]=new int[10];for (int i=0,n=0;i<100;i++){num [i]=(int)(Math.random()*9);counts[num[i]]++;System.out.print(num[i]+"\t");n++;if (n%10==0){System.out.println();}}System.out.println();for (int j=0;j<10;j++){System.out.print(j+"出现了"+counts[j]+"次\t");}}7.27相同的数组public class List {public static void main(String[] args) {int[] list1= new int[5];int[] list2= new int[5];Scanner in=new Scanner(System.in);System.out.println("请输入第一个数组(5位):");for (int i=0;i<5;i++) { list1[i] = in.nextInt(); }System.out.println("请输入第二个数组(5位):");for (int i=0;i<5;i++){ list2 [i]=in.nextInt(); }equals(list1,list2);}public static boolean equals(int[] list1,int[] list2){Arrays.sort(list1);Arrays.sort(list2);if (Arrays.equals(list1,list2)){ System.out.println("两数组相同"); }else System.out.print("两数组不相同");return false;}}8.1求矩阵中各列数字的和public class SumColumn {public static void main(String[]args){int columnIndex = 0;Scanner input = new Scanner(System.in);System.out.println("请输入一个3×4的数组:");double[][]m=new double[3][4];for(int i=0;i<m.length;i++)for(int j=0;j<m[i].length;j++)m[i][j]=input.nextDouble();sumColumn(m,columnIndex);}public static double sumColumn(double[][]m,int columnIndex ){for( ;columnIndex<m[0].length;columnIndex++ ){double total=0;for(int row=0;row<m.length;row++){total+=m[row][columnIndex];}System.out.println("第" + (columnIndex+1)+ "列的和是"+total);}return 0;}}8.2求矩阵主对角线上的和public class Text {public static void main(String[]args){int columnIndex = 0;Scanner input = new Scanner(System.in);System.out.println("请输入一个4×4的数组:");double[][]m=new double[4][4];for(int i=0;i<m.length;i++)for(int j=0;j<m[i].length;j++)m[i][j]=input.nextDouble();sumColumn(m,columnIndex);}public static double sumColumn(double[][]m,int columnIndex ){ double sum1=0;double sum2=0;for( ;columnIndex<m[0].length;columnIndex++ ){sum1+=m[columnIndex][columnIndex];}for(int i=0,j=3 ;i>4;i++,j-- ){sum2+=m[i][j];}System.out.println("矩阵主对角线之和为:"+(sum1+sum2));return 0;}}。
Java语言程序设计(基础篇)原书第十一版梁勇第12章课后题答案
Java语⾔程序设计(基础篇)原书第⼗⼀版梁勇第12章课后题答案public static void main(String[] args) {Scanner in=new Scanner(System.in);boolean start=true;while (start){try{System.out.println("请输⼊两个整数:");int a=in.nextInt();int b=in.nextInt();System.out.println("a+b="+(a+b));break;}catch(InputMismatchException e){System.out.println("输⼊错误,请重新输⼊!");in.nextLine();}}}}public static void main(String[] args) {try{Scanner in=new Scanner(System.in);System.out.println("请输⼊⼀个16进制字符串:");String hex=in.next();judge(hex);System.out.println("⼗进制数为:"+hexToDecimal(hex));}catch(NumberFormatException e){System.out.println(e.getMessage());}}public static void judge(String str){for (int i=0;iint a=(int)(str.charAt(i));//System.out.println(a);if ((47}else {System.out.println(a);throw new NumberFormatException("请输⼊正确的16进制数");} } }public static int hexToDecimal(String hex){int decimalValue=0;for (int i=0;ichar hexChar=hex.charAt(i);decimalValue=decimalValue*16+hexCharToDecimal(hexChar); }return decimalValue;}public static int hexCharToDecimal(char ch){if (ch>='A'&&ch<='F')return 10+ch-'A';else return ch-'0';}}。
Java程序设计案例教程习题答案完整版机工版.docx
一、选择题A C D C A二、填空题1、Java虚拟机Java字节码垃圾回收机制2、javac java3、.java .class三、简答题1、简述Java语言的发展历史。
答:•1996 年1 月,Sun 发布了JDK 1.0;•1997 年2 月,Sun 发布了JDK1.1;•1998 年12 月,Sun 发布了JDK1.2(Java 2 平台);•1999年6月,Sun重新定义Java技术架构,并将Java 2平台分为三版本:标准版(J2SE)、企业版(J2EE)和微缩版(J2ME);. 2000年5月,Sun分别分布了JDK1.3和1.4;•2004.9, JDK1.5发布,成为Java语言发展史上又一里程碑。
为了表示该版本的重要性,JDK 1.5更名为JDK5;此时,Java的各种版本已经更名,取消其中的数字“2”: J2EE 更名为Java EE, J2SE 更名为Java SE, J2ME 更名为Java ME;•2006年12月,Sun公司发布JDK 6.0:•2010年9月,JDK7.0已经发布,增加了简单闭包功能;•2014年3月,发布JDK8.0,增加了Lambda表达式等新特性;•2017年9月,发布JDK9.0,增加了模块化源码等新特性。
2、简述Java语言的特点。
答:Java语言有如下特点:(1)简单的特性;(2)面向对象的特性;(3)分布式处理的特性;(4)健壮特性;(5)结构中立的特性;(6)安全特性;(7)可移植的特性;(8)解释的特性;(9)高性能的特性;(10)多线程的特性;(11)动态的特性。
3、简述Java虚拟机的工作原理。
答:Java虚拟机包含类加载器、字节码校验器和JIT实时编译器。
类加载器用来取得从网络获取的或存于本地机器上的类文件字节码。
下一步由字节码校验器检查这些类文件是否有正确的格式,以确认在运行时不会有破坏内存的行为。
Java解释器将字节码解释翻译成机器码, 而JIT 编译器也可将字节码转为本地机器码,但它可使原本是解释执行方式的虚拟机提高到编译式的运行效率。
Java语言程序设计(基础篇)原书第十一版-梁勇-第2-3章-课后题答案
2.5编写程序,读入英尺数,将其转换成米数并显示结果package pro0904;import java.util.Scanner;public class Feet {public static void main(String[] args) {Scanner in=new Scanner(System.in);System.out.print("请输入英尺数:");double feet=in.nextDouble();System.out.print(feet+"英尺是"+0.305*feet+"米");}}2.10编写程序,计算将水从初始温度加热到最终温度所需要的能量。
应提示用户输入水的重量,以及水的初始温度和最终温度package pro0904;import java.util.Scanner;public class Energy {public static void main(String[] args) {Scanner in=new Scanner(System.in);System.out.print("请输入水的重量(kg):");double m=in.nextDouble();System.out.print("请输入初始温度:");double t1=in.nextDouble();System.out.print("请输入最终温度:");double t2=in.nextDouble();System.out.print("所需的能量为"+m*(t2-t1)*4184);}}2.13假设你每月向银行账户存100美元,年利率为5%,那么每月利率是0.05/12=0.00417。
编写程序显示六个月后账户上的钱数package pro0904;import java.util.Scanner;public class Money {public static void main(String[] args) {Scanner in=new Scanner(System.in);System.out.print("请输入存取月份:");int month=in.nextInt();double money=0;for (int i=0;i<month;i++){money+=100;money=money*1.00417;System.out.println(money);}System.out.print("六个月后账户上的钱数为"+money);}}2.15编写程序提示用户输入体重(磅为单位),以及身高(英寸为单位),然后显示BMI。
(完整版)Java语言程序设计(基础篇)原书第十版梁勇著第一章答案
第一章1.1 public class Test{public static void main(String[] args){System.out.println("Welcome to Java !");System.out.println("Welcome to Computer Science !");System.out.println("Programming is fun .");}}1.2 public class Test{public static void main(String[] args){for(int i = 0;i <= 4;i++){System.out.println("Welcome to Java !");}}}1.3 public class Test{public static void main(String[] args){System.out.println(" ]");System.out.println(" ]");System.out.println("] ]");System.out.println(" ]]");}}public class Test{public static void main(String[] args){System.out.println(" A");System.out.println(" A A");System.out.println(" AAAAA");System.out.println("A A");}}public class Test{public static void main(String[] args){System.out.println("V V");System.out.println(" V V");System.out.println(" V V");System.out.println(" V");}}1.4 public class Test{public static void main(String[] args){System.out.println("a a^2 a^3");System.out.println("1 1 1");System.out.println("2 4 8");System.out.println("3 9 27");System.out.println("4 16 64");}}1.5 public class Test{public static void main(String[] args){System.out.println((9.5*4.5-2.5*3)/(45.5-3.5));}}1.6 public class Test{public static void main(String[] args){int i = 1,sum = 0;for(;i <= 9;i++)sum += i;System.out.println(sum);}}1.7 public class Test{public static void main(String[] args){System.out.println(4*(1.0-1.0/3+1.0/5-1.0/7+1.0/9-1.0/11));System.out.println(4*(1.0-1.0/3+1.0/5-1.0/7+1.0/9-1.0/11+1.0/13)) ;}}1.8 public class Test{public static void main(String[] args){final double PI = 3.14;double radius = 5.5;System.out.println(2 * radius * PI);System.out.println(PI * radius * radius);}}1.9 public class Test{public static void main(String[] args){System.out.println(7.9 * 4.5);System.out.println(2 * (7.9 + 4.5));}}1.10 public class Test{public static void main(String[] args){double S = 14 / 1.6;double T = 45 * 60 + 30;double speed = S / T;System.out.println(speed);}}1.11public class Test{public static void main(String[] args){int BN = 312032486; //original person numbersdouble EveryYS,EveryYBP,EveryYDP,EveryYMP;EveryYS = 365 * 24 * 60 * 60;EveryYBP = EveryYS / 7;EveryYDP = EveryYS / 13;EveryYMP = EveryYS / 45;int FirstYP,SecondYP,ThirdYP,FourthYP,FivthYP;FirstYP = (int)(BN + EveryYBP + EveryYMP - EveryYDP);SecondYP = (int)(FirstYP + EveryYBP + EveryYMP - EveryYDP);ThirdYP = (int)(SecondYP + EveryYBP + EveryYMP - EveryYDP);FourthYP = (int)(ThirdYP + EveryYBP + EveryYMP - EveryYDP);FivthYP = (int)(FourthYP + EveryYBP + EveryYMP - EveryYDP);System.out.println(FirstYP);System.out.println(SecondYP);System.out.println(ThirdYP);System.out.println(FourthYP);System.out.println(FivthYP);}}1.12 public class Test{public static void main(String[] args){double S = 24 * 1.6;double T = (1 * 60 + 40) * 60 + 35;double speed = S / T;System.out.println(speed);}}1.13 import java.util.Scanner;public class Test{public static void main(String[] args){Scanner input = new Scanner(System.in);System.out.println("input a,b,c,d,e,f value please:");double a = input.nextDouble();double b = input.nextDouble();double c = input.nextDouble();double d = input.nextDouble();double e = input.nextDouble();double f = input.nextDouble();double x,y;x = (e * d - b * f) / (a * d - b * c);y = (a * f - e * c) / (a * d - b * c);System.out.println("The result is x: "+(int)(x * 1000) / 1000.0);System.out.println("The result is y: "+(int)(y * 1000) / 1000.0);}}。
Java语言程序设计(基础篇)(第10版 梁勇著)第一章练习题答案
System.out.println("people of thirdYear = " + thirdYear); System.out.println("people of fourthYear = " + fourthYear); System.out.println("people of fifthYear = " + fifthYear); } }
// 第一章 P26 编程练习题1.1和1.2 (显示三条消息/显示五条消息) public class WelcomeWithThreeMessages { public static void main(String[] args) { System.out.println("Welcome to Java"); System.out.println("Welcome to Computer Science"); System.out.println("Programming is fun"); System.out.println("Welcome System.out.println("Welcome System.out.println("Welcome System.out.println("Welcome System.out.println("Welcome } } to to to to to Java"); Java"); Java"); Java"); Java");
// 第一章 P27 练习题1.10 (以英里计的平均速度) public class AverageSpeed { public static void main(String[] args) { // 45.5分钟等于45分钟30秒 double speedkm = 60 / (45.5 / 14); double speedm = speedkm / 1.6; // m/h代表英里/每小时 System.out.println("averagespeed = " + speedm + "m/h");
《Java语言程序设计-基础篇》第03章答案
《Java语言程序设计-基础篇》第03章答案3.1 答:if(i % 2 == 0) System.out.println(“偶数”); else System.out.println(“奇数”); 3.2 答:当 x = 3, y = 2 时,输出:无输出当x = 3, y = 4 时,输出:z is 7 当 x = 2,y = 2 时,输出:x is 2 3.3 答:等价的语句有:a, c和d 正确缩进的是:c 3.4 答:当 x = 2, y = 3 时,输出:x is 2 当 x = 3, y = 2 时,输出:无输出当 x = 3,y = 3 时,输出:z is 7 3.5 答:等价 3.6 答:switch变量可以是char, byte, short, int。
执行case语句后没有break,则继续执行下一个case语句。
switch可转换为等价的if语句(嵌套),反之不一定可以。
3.7 答:y的值是2。
3.8 答:switch(a){ case 1: x += 5; break; case 2: x += 10; break; case 3: x += 16; break; case 4: x += 34; } 3.9 答:System.out.print(count + (count % 10 == 0 ? “\n“ : ““)); 3.10 答:(a)执行0次,无输出(b)执行9次,输出如下:3 5 7 9 3.11 答:(略)3.12 答:相同,均为45。
3.13 答:for(int i = 1; i System.out.println(i); 3.14 答:无限循环。
3.15 答:不能。
3.16 答:能。
(略)3.17 答:(略)3.18 答:(a)输出:balance is 1 (b)不能结束(编译有错,输出语句执行不到)3.19 答:能。
(略)3.20 答:int i=0; while(iif(i%3==0){ i++; continue; } sum += i; i++; } 3.21 答:(a)主方法如下:public static void main(String[] args) { int sum = 0; int number = 0; while(number number++; sum += number; } System.out.println(“The number is “ + number); System.out.println(“The sum is “ + sum); } (b)主方法如下:public static void main(String[] args) { int sum = 0; int number = 0; while(number number++; if(!(number == 10 || number == 11)) sum += number; } System.out.println(“The number is “ + number); System.out.println(“Thesum is “ + sum); } 3.22 答:执行next:后面的语句。
JAVA语言程序设计(基础篇)答案
3.4import javax.swing.*;public class AdditionTutor{public static void main(String[] args){int number1=(int)(System.currentTimeMillis()%100);int number2=(int)(System.currentTimeMillis()*5%100);String answerString=JOptionPane.showInputDialog("what is "+ number1 +"+ "+ number2+" ?");int answer=Integer.parseInt(answerString);JOptionPane.showMessageDialog(null,number1 +" + "+ number2 +" = "+answer+" is "+(number1+number2==answer));}}3.10import javax.swing.JOptionPane;public class ComputeTaxWithSelectionStatement{public static void main(String[] args){//Prompt the user to enter filing statusString statusString = JOptionPane.showInputDialog("Enter the filing status:\n"+"(0-single filer,1-married jointly,\n"+"2-married separately,3-head of household)");int status = Integer.parseInt(statusString);//Prompt the user to enter taxable incomeString incomeString = JOptionPane.showInputDialog("Enter the taxable income:");double income = Double.parseDouble(incomeString);//Comput taxdouble tax=0;if (status == 0){//Compute tax for single filersif (income <= 6000)tax = income * 0.10;else if (income <= 27950)tax = 6000 * 0.10 + (income - 6000) * 0.15;else if (income <= 67700)tax = 6000 * 0.10 + (27950 - 6000) * 0.15 +(income - 27950) * 0.27;else if (income <= 141250)tax = 6000 * 0.10 + (27950 - 6000) * 0.15 +(67700 - 27950) * 0.27 + (income - 67700) * 0.30;else if (income <=307050)tax = 6000 * 0.10 + (27950 - 6000) * 0.15 +(67700 - 27950) * 0.27 + (141250 - 67700) * 0.30 +(income - 141250) * 0.35;elsetax = 6000 * 0.10 + (27950 - 6000) * 0.15 +(67700 - 27950) * 0.27 + (141250 -67700) * 0.30 +(307050 - 141250) * 0.35 + (income - 307050) * 0.386;}else if (status == 1){//Compute tax for married file jointly if (income <= 12000)tax = income * 0.10;else if (income <= 46700)tax = 12000 * 0.10 + (income - 12000) * 0.15;else if (income <= 112850)tax = 12000 * 0.10 + (46700 - 12000) * 0.15 +(income - 46700) * 0.27;else if (income <= 171950)tax = 12000 * 0.10 + (46700 - 12000) * 0.15 +(112850 - 46700) * 0.27 + (income - 112850) * 0.30;else if (income <= 307050)tax = 12000 * 0.10 + (46700 - 12000) * 0.15 +(112850 - 46700) * 0.27 + (141250 - 112850) * 0.30 +(income - 307050) * 0.35;elsetax = 12000 * 0.10 + (46700 - 12000) * 0.15 +(112850 - 46700 ) * 0.27 + (171950 - 112850) * 0.30 +(307050 - 171950) * 0.35 + (income - 307050) * 0.386;}else if (status == 2){//Compute tax for married separately if (income <= 6000)tax = income * 0.10;else if (income <= 23350)tax = 6000 * 0.10 + (income - 6000) * 0.15;else if (income <= 56425)tax = 6000 * 0.10 + (23350 - 6000) * 0.15 +(income - 23350) * 0.27;else if (income <= 85975)tax = 6000 * 0.10 + (23350 - 6000) * 0.15 +(56425 - 23350) * 0.27 + (income - 56425) * 0.30;else if (income <= 153525)tax = 6000 * 0.10 + (23350 - 6000) * 0.15 +(56425 - 23350) * 0.27 + (85975 - 56425) * 0.30 +(income - 85975) * 0.35;elsetax = 6000 * 0.10 + (23350 - 6000) * 0.15 +(56425 - 23350) * 0.27 + (85975 - 56425) * 0.30 +(153525 - 85975) * 0.35 + (income - 153525) * 0.386;}else if (status == 3){//Compute tax for head of householdif (income <= 10000)tax = income * 0.10;else if (income <= 37450)tax = 10000 * 0.10 + (income - 10000) * 0.15;else if (income <= 96700)tax = 10000 * 0.10 + (37450 - 10000) * 0.15 +(income - 37450) * 0.27;else if (income <= 156600)tax = 10000 * 0.10 + (37450 - 10000) * 0.15 +(96700 - 37450) * 0.27 + (income - 96700) * 0.30;else if (income <= 307050)tax = 10000 * 0.10 + (37450 - 10000) * 0.15 +(96700 - 37450) * 0.27 + (156600 - 96700) * 0.30 +(income - 156600) * 0.35;elsetax = 10000 * 0.10 + (37450 - 10000) * 0.15 +(96700 - 37450) * 0.27 + (156600 - 96700) * 0.30 +(307050 - 156600) * 0.35 + (income - 307050) * 0.386;}else{System.out.println("Error: invalid status");System.exit(0);}//Display the resultJOptionPane.showMessageDialog(null,"Tax is " +(int)(tax * 100) / 100.0);}}4.11public class ZhengChu{public static void main(String[] args){int count=0;for(int i=100;i<=200;i++){if((i%5==0||i%6==0)&&i%30!=0){System.out.print(" "+ i);count++;if(count%10==0)System.out.println();}}}}4.14public class ASCII{public static void main(String[] args){int count = 0;for(int i = 33; i <= 126; i++){count++;char ch = (char)i;System.out.print(" " + ch);if(count % 10 == 0)System.out.println();}}}4.17import javax.swing.JOptionPane;public class FindSalesAmount{/**Main method*/public static void main(String[] args){//The commission soughtString COMMISSION_SOUGHTString = JOptionPane.showInputDialog("Enter the COMMISSION_SOUGHT :");double COMMISSION_SOUGHT = Double.parseDouble(COMMISSION_SOUGHTString);double commission = 0;double salesAmount;for (salesAmount = 0.01;commission <= COMMISSION_SOUGHT;){salesAmount += 0.01; //防止犯off-by-one错误,先判断在做自加!if (salesAmount >= 10000.01)commission =5000 * 0.08 + 5000 * 0.1 + (salesAmount - 10000) * 0.12;else if (salesAmount >= 5000.01)commission = 5000 * 0.08 + (salesAmount - 5000) * 0.10;elsecommission = salesAmount * 0.08;}String output ="The sales amount $" + (int)(salesAmount * 100) / 100.0 +"\n is needed to make a commission of $" + COMMISSION_SOUGHT;JOptionPane.showMessageDialog(null,output);}}5.6import javax.swing.JOptionPane;public class PrintPyramid{public static void main(String[] args){String input = JOptionPane.showInputDialog("Enter the number of lines:");int numberOfLines = Integer.parseInt(input);displayPattern(numberOfLines);}public static void displayPattern(int n){for (int row = 1;row <= n;row++){for (int column = 1;column <= n - row;column++)System.out.print(" ");for (int num = row;num >= 1;num--)System.out.print((num >= 10) ? " " + num : " " + num);System.out.println();}}}5.18public class MathSuanFa{public static void main(String[] args){double A = Math.sqrt(4);double B = (int)Math.sin(2 * Math.PI);double C = (int)Math.cos(2 * Math.PI);double D = (int)Math.pow(2, 2);double E = (int)Math.log(Math.E);double F = (int)(Math.exp(1)*100000)/100000.0;double G = (int)Math.max(2, Math.min(3, 4));double H = (int)Math.rint(-2.5);double I = (int)Math.ceil(-2.5);double J = (int)Math.floor(-2.5);int K = (int)Math.round(-2.5f);int L = (int)Math.round(-2.5);double M = (int)Math.rint(2.5);double N = (int)Math.ceil(2.5);double O = (int)Math.floor(2.5);int P = (int)Math.round(2.5f);int Q = (int)Math.round(2.5);int R = (int)Math.round(Math.abs(-2.5));System.out.println(A +" "+ B +" "+ C +" "+ D +" "+ E +" "+ F +" "+ G +" "+ H +" "+ I +" "+ J +" "+ K +" "+ L +" "+ M +" "+ N +" "+ O +" "+ P +" "+ Q +" "+ R);}}6.9import javax.swing.JOptionPane;public class Array{public static void main (String[] args){String incomeString = JOptionPane.showInputDialog("Enter the number of array size:");int income = Integer.parseInt(incomeString);int arraySize = income;int [] myList = new int [arraySize];int m;for ( m = 0; m < arraySize; m++){String elementString = JOptionPane.showInputDialog("Enter the " + (m + 1) + " element of the array");int element = Integer.parseInt(elementString);myList[m] = element;}int minElement = myList[0];for (int i=1; i < arraySize; i++){if (myList[i] < minElement)minElement = myList[i];}JOptionPane.showMessageDialog(null,"The min element is: " + minElement); }}。
《Java语言程序设计-基础篇》答案-第15章
《Java语言程序设计-基础篇》答案-第15章第15章异常和断言复习题15.1 答:略15.2 答:声明异常是为了在方法中产生异常时,以便通知方法的调用者。
在方法声明的头部使用关键字throws 声明,一个方法可以声明多个异常。
如:public void method() throws IOException, AWTException{ ……}15.3 答:必检异常是Java 强制要求程序员处理的异常,它是Exception 的后代类中除RuntimeException 以外的其他子类及后代类。
免检异常是指程序员不必处理的异常,它是Error 类和RuntimeException 类及它们的后代类。
15.4 答:throw 语句用来抛出异常,一个throw 语句不能同时抛出多个异常。
15.5 答:throws 声明异常;throw 抛出异常。
15.6 答:程序中发生异常后,JVM 会将产生的异常对象在方法调用链中传递并寻找适当的处理异常的方法,如果得不到适当处理,则JVM 中止程序的运行。
15.7 答:使用try-catch 语句捕获,具体参见课本。
15.8 答:statement3不会执行。
如果异常未捕获,statement4语句不会执行。
如果异常被捕获,statement4语句会执行。
如果异常传递给调用者,statement4语句不会执行。
课后答案网ww w.kh da w.c om15.9 答:输出:Rational operation error15.10 答:输出:Rational operation error15.11 答:输出如下:Rational operation error After the method call15.12 答:非GUI 程序中输出异常信息并中止;GUI 程序输出异常信息,并不中止。
原因参见课本P451。
15.13 答:略15.14 答:不会15.15 答:如果异常没有捕获,statement5不会执行。
Java语言程序设计(基础篇)(第10版 梁勇著)第二章练习题答案
《Java语言程序设计(基础篇)》(第10版 梁勇 著) 第二章 基本程序设计 练习题答案
本人在自学编程过程中,发现本书答案很难找,找到的要么不完整、要么错误百出,所以我将自己所做的 练习题答案,提供给有需要者,供大家交流。本章答案均为本人一字一字所敲,答案均经过验证,虽为初学者, 但代码均按照书中规范要求书写,如有错误或更好的建议,请指正交流。
// 第二章 P59 练习题2.1 (将摄氏温度转为华氏温度) import java.util.Scanner;
public class CelsiusToFahrenheit {
public static void main(String[] args) { // 华氏温度和摄氏温度的转换公式为:华氏温度 = (9/5)*摄氏温度+32 Scanner input = new Scanner(System.in);
System.out.print("Enter the time zone offset to GMT: "); long timeZoneOffset = input.nextLong(); // 此处用long还是int?
long totalMilliseconds = System.currentTimeMillis(); long totalSeconds = totalMilliseconds / 1000; long currentSecond = totalSeconds % 60; long totalMinutes = totalSeconds / 60; long currentMinute = totalMinutes % 60; long totalHours = totalMinutes / 60; long currentHour = totalHours % 24; long hour = currentHour + timeZoneOffset;
《Java语言程序设计(基础篇)》(第10版 梁勇 著)第二十一章练习题答案
《Java语言程序设计(基础篇)》(第10版梁勇著)第二十一章练习题答案21.1import java.util.*;public class Exercise21_01 {public static void main(String[] args) {LinkedHashSet<String> set1 = new LinkedHashSet<String>(Arrays.asList( new String[]{"George", "Jim", "John", "Blake", "Kevin", "Michael"}));LinkedHashSet<String> set1Clone1 = (LinkedHashSet<String>)set1.clone(); LinkedHashSet<String> set1Clone2 = (LinkedHashSet<String>)set1.clone();LinkedHashSet<String> set2 = new LinkedHashSet<String>(Arrays.asList( new String[] {"George", "Katie", "Kevin", "Michelle", "Ryan"}));set1.addAll(set2);set1Clone1.removeAll(set2);set1Clone2.retainAll(set2);System.out.println("The union of the two sets is " + set1);System.out.println("The difference of the two sets is " + set1Clone1); System.out.println("The intersection of the two sets is " + set1Clone2); }}21.1附加import java.util.*;public class Exercise21_01Extra {public static void main(String[] args) {System.out.print("Enter a string: ");Scanner input = new Scanner(System.in);String s = input.nextLine();Character[] list1 = {'A', 'E', 'I', 'O', 'U'};Set<Character> vowels = new HashSet<>(Arrays.asList(list1));Set<Character> vowelsInString = new HashSet<>();Set<Character> consonantsInString = new HashSet<>();int numbeOfVowels = 0;int numbeOfConsonants = 0;for (int i = 0; i < s.length(); i++) {char ch = Character.toUpperCase(s.charAt(i));if (Character.isLetter(ch)) {if (vowels.contains(ch)) {if (!vowelsInString.contains(ch)) {vowelsInString.add(ch);numbeOfVowels++;}}else if (!consonantsInString.contains(ch)) {consonantsInString.add(ch);numbeOfConsonants++;}}}System.out.println("The number of vowels is " + numbeOfVowels);System.out.println("The number of consonants is " + numbeOfConsonants); }}21.2import java.util.*;import java.io.*;public class Exercise21_02 {public static void main(String[] args) {if (args.length != 1) {System.out.println("Usage: java Exercise21_02 fullfilename");System.exit(1);}String filename = args[0];// Create a tree set to hold the wordsTreeSet<String> treeSet = new TreeSet<String>();try {Scanner in = new Scanner(new File(filename));String line;while ((line = in.nextLine()) != null) {String[] tokens = line.split("[ |\n|\t|\r|.|,|)|(|-|\"]");for (int i = 0; i < tokens.length; i++)treeSet.add(tokens[i]);}}catch (Exception ex) {System.err.println(ex);}// Get an iterator for the setIterator iterator = treeSet.iterator();// Display mappingsSystem.out.println("\nDisplay words in ascending order ");while (iterator.hasNext()) {System.out.println(iterator.next());}}}21.3import java.util.*;import java.io.*;public class Exercise21_03 {public static void main(String[] args) {// Check usageif (args.length != 1) {System.out.println("Usage: java Exercise21_03 file.java");System.exit(1);}// Array of all Java keywords + true + nullString[] keywordString = {"abstract", "finally", "public", "boolean", "float", "return", "break", "for", "short", "byte","goto", "static", "case", "if", "super", "catch", "implements", "switch", "char", "import", "synchronized", "class","instanceof", "this", "const", "int", "throw", "continue","interface", "throws", "default", "long", "transient", "do","native", "try", "double", "new", "void", "else", "package","volatile", "extends", "private", "while", "final","protected", "true", "null"};Set<String> keywordSet =new HashSet<String>(Arrays.asList(keywordString));int count = 0;try {Scanner input = new Scanner(new File(args[0]));String text = "";while (input.hasNext()) {String line = input.nextLine();line = stripLineComments(line);line = stripLineStringLiterals(line);text += line + " ";}text = stripParagraghComments(text);String[] tokens = text.split("[ \\[,()\\]]");for (String token: tokens) {if (keywordSet.contains(token))count++;}System.out.println("The number of keywords in the program is " + count);}catch (Exception ex) {ex.printStackTrace();}}/* Strip line comments */private static String stripLineComments(String line) {int index = line.indexOf("//");if (index < 0)return line;elsereturn line.substring(0, index);}/* Strip string literals */private static String stripLineStringLiterals(String line) {int start = line.indexOf("\"");int end = line.indexOf("\"", start + 1);while (start > 0 && end > 0) {line = line.substring(0, start) + line.substring(end + 1);start = line.indexOf("\"");end = line.indexOf("\"");}return line;}/* Strip paragraph comments */private static String stripParagraghComments(String text) {int start = text.indexOf("/*");int end = text.indexOf("*/");while (start > 0 && end > 0) {text = text.substring(0, start) + text.substring(end + 2);start = text.indexOf("/*");end = text.indexOf("*/");}return text;}}/** This is an incorrect version. It does not count the case such as (this. Here the this keyword* is not counted. It does not exclude keywords in the comments*import java.util.*;import java.io.*;public class Exercise20_03 {public static void main(String[] args) {// Check usageif (args.length != 1) {System.out.println("Usage: java Exercise20_03 file.java");System.exit(0);}// Array of all Java keywords + true + nullString[] keywordString = {"abstract", "finally", "public","boolean", "float", "return", "break", "for", "short", "byte", "goto", "static", "case", "if", "super", "catch", "implements", "switch", "char", "import", "synchronized", "class","instanceof", "this", "const", "int", "throw", "continue","interface", "throws", "default", "long", "transient", "do","native", "try", "double", "new", "void", "else", "package","volatile", "extends", "private", "while", "final","protected", "true", "null"};Set<String> keywordSet =new HashSet<String>(Arrays.asList(keywordString));int count = 0;try {Scanner input = new Scanner(new File(args[0]));while (input.hasNext()) {String token = input.next();if (keywordSet.contains(token))count++;}System.out.println("The number of keywords in the program is " + count);}catch (Exception ex) {ex.printStackTrace();}}}*/21.4import java.util.Scanner;import java.util.HashSet;import java.util.Arrays;public class Exercise21_04 {public static void main(String[] args) throws Exception {HashSet<Character> set1 = new HashSet<Character>(Arrays.asList( new Character[]{'A', 'E', 'I', 'O', 'U'}));System.out.print("Enter a filename: ");Scanner input = new Scanner(System.in);String filename = input.nextLine();input = new Scanner(new java.io.File(filename));int countVowels = 0;int countConsonants = 0;while (input.hasNext()) {String s = input.nextLine().toUpperCase();for (int i = 0; i < s.length(); i++) {if (set1.contains(s.charAt(i)))countVowels++;else if (Character.isLetter(s.charAt(i)))countConsonants++;}}System.out.println("The number of vowels is " + countVowels + " and consonanats is " +countConsonants);}}21.5/*** Usage: Copy this class to the folder, run it with java JavaToHTMLftim * to generate* HTM file for all the .java file in this folder. The generated .htm files are* stored in the same folder*/import java.util.*;import java.io.*;public class Exercise21_05 {// Array of all Java keywords + true + false + nullstatic String[] keywordString = {"abstract", "assert", "boolean","break", "byte", "case", "catch", "char", "class", "const","continue", "default", "do", "double", "else", "enum","extends", "for", "final", "finally", "float", "goto", "if","implements", "import", "instanceof", "int", "interface","long", "native", "new", "package", "private", "protected","public", "return", "short", "static", "strictfp", "super","switch", "synchronized", "this", "throw", "throws","transient", "try", "void", "volatile", "while","true", "false", "null"};static Set<String> keywordSet =new HashSet<String>(Arrays.asList(keywordString));/** Main method */public static void main(String[] args) throws Exception {// Check usageif (args.length != 2) {System.out.println("Usage: java Exercise20_10 javaSourcefile htmlfile");System.exit(1);}Scanner input = new Scanner(new File(args[0]));PrintWriter output = new PrintWriter(new File(args[1]));JavaToHTML(input, output);}static boolean stringToken = false;static String inputFileName;public static void JavaToHTML(Scanner input, PrintWriter output) { try {output.format("%s\r\n", "<html>");output.format("%s\r\n", "<head>");output.format("%s\r\n","<title>Intro to Java Programming, 6E - " + inputFileName +"</title>");output.format("%s\r\n","<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1252\">");output.format("%s\r\n", "<style type = \"text/css\">");output.format("%s\r\n","body {font-family: \"Courier New\", sans-serif; font-size: 100%; color: black}");output.format("%s\r\n",".keyword {color: #000080; font-weight: bold}");output.format("%s\r\n", ".comment {color: #008000}");output.format("%s\r\n", ".literal {color: #0000ff}");// Match the color in the text// output.format("%s\r\n", ".keyword {color: black; font-weight: bold}");// output.format("%s\r\n", ".comment {color: #77797C}");// output.format("%s\r\n", ".literal {color: #007346; font-weight: bold}");output.format("%s\r\n", "</style>");output.format("%s\r\n", "</head>");output.format("%s\r\n", "<body>");output.format("%s\r\n", "<pre>");String text = "";String temp;// Read all lineswhile (input.hasNext()) {temp = input.nextLine();text += temp + "\r\n";}text = text.replaceAll(">", ">");text = text.replaceAll("<", "<");translateToHTML(text, input, output);output.format("%s\r\n", "</pre>");output.format("%s\r\n", "</body>");output.format("%s\r\n", "</html>");}catch (Exception ex) {System.out.println(ex);}finally {try {input.close();output.close();}catch (Exception ex) {}}}/** Translate Java source code to HTML */static void translateToHTML(String text, Scanner input, PrintWriter output) throws Exception {text = text.replaceAll("// ", "LINECOMMENT");text = text.replaceAll("/\\*", "BLOCKCOMMENT");String token;while (text != null && text.length() > 0) {// * and / are in conflict with /* and //String[] parts = text.split("[%\\+\\-\\*/\r\n\t \\[\\].;(){},]", 2); token = parts[0];if (token.length() > 1 && token.startsWith("LINECOMMENT")) {output.format("%s", "<span class = \"comment\">");parts = text.split("\r\n", 2);text = parts[1];output.format("%s", parts[0].replaceAll("LINECOMMENT", "// "));output.format("%s", "</span>\r\n");continue;}else if (token.length() > 1 && token.startsWith("BLOCKCOMMENT")) {output.format("%s", "<span class = \"comment\">");parts = text.split("\\*/", 2);text = parts[1];output.format("%s", parts[0].replaceAll("BLOCKCOMMENT", "/*") +"*/");output.format("%s", "</span>");continue;}else if (token.length() > 1 && token.matches("'\\w'*")) {output.format("%s", "<span class = \"literal\">");output.format("%s", token);output.format("%s", "</span>");}else if (token.startsWith("\"") && token.endsWith("\"") &&(token.length() > 1)) {output.format("%s", "<span class = \"literal\">" + token+ "</span>");}else if (token.startsWith("'") && token.endsWith("'") &&(token.length() > 1)) {output.format("%s", "<span class = \"literal\">" + token+ "</span>");}else if (token.equals("' '")) {output.format("%s", "<span class = \"literal\">" + token+ "</span>");}else if (token.startsWith("\"") && token.endsWith("\"") &&(token.length() == 1)) {if (stringToken) {output.format("%s", token + "</span>");stringToken = false;}else {output.format("%s", "<span class = \"literal\">" + token); stringToken = true;}}else if (token.startsWith("\"")) {output.format("%s", "<span class = \"literal\">" + token); stringToken = true;}else if (token.endsWith("\"") && (!token.endsWith("\\\""))) { output.format("%s", token);output.format("%s", "</span>");stringToken = false;}else if (token.matches("\\d+")) { // Check if numericoutput.format("%s", "<span class = \"literal\">" + token +"</span>");}else if (!stringToken && keywordSet.contains(token)) {output.format("%s", "<span class = \"keyword\">" + token +"</span>");}else {output.format("%s", token);}if (token.length() < text.length()) {if (text.charAt(token.length()) == '<')output.format("%s", "<");else if (text.charAt(token.length()) == '>')output.format("%s", ">");elseoutput.format("%s", text.charAt(token.length()));}if (parts.length == 2) {text = parts[1];}}}}21.6import java.util.*;public class Exercise21_06 {public static void main(String[] args) {// Create a tree map to hold words and key and count as value TreeMap<Integer, Integer> treeMap = new TreeMap<>();Scanner input = new Scanner(System.in);while (true) {// Enter an integerSystem.out.print("Enter an integer: ");int number = input.nextInt();if (number == 0) break;Integer key = new Integer(number);if (treeMap.get(key) != null) {int value = ((Integer)treeMap.get(key)).intValue();value++;treeMap.put(key, new Integer(value));}else {treeMap.put(key, new Integer(1));}}Integer max = Collections.max(treeMap.values());Set<Integer> keys = treeMap.keySet();Iterator<Integer> iterator = keys.iterator();while (iterator.hasNext()) {Object key = iterator.next();Integer value = (Integer)(treeMap.get(key));if (value.equals(max)) {System.out.println("Number " + key + " occurred most");}}}}21.7import java.util.*;public class Exercise21_07 {public static void main(String[] args) {// Text in a stringString text = "Have a good day. Have a good class. " + "Have a good visit. Have fun!";// Create a hash map to hold words and key and count as value HashMap<String, Integer> hashMap = new HashMap<>();String[] tokens = text.split("[ |.|!|?]");for (String key: tokens) {if (hashMap.get(key) != null) {hashMap.put(key, hashMap.get(key).intValue() + 1);}else {if (key.trim().length() > 0)hashMap.put(key, 1);}}// Get an entry set for the tree mapSet<Map.Entry<String, Integer>> entrySet = hashMap.entrySet();ArrayList<WordOccurrence> list = new ArrayList<>();for (Map.Entry<String, Integer> entry: entrySet) {list.add(new WordOccurrence(entry.getKey(), entry.getValue())); }Collections.sort(list);for (WordOccurrence item: list) {System.out.println(item);}}}class WordOccurrence implements Comparable<WordOccurrence> {String word;int count;public WordOccurrence(String word, int count) {this.word = word;this.count = count;}@Overridepublic int compareTo(WordOccurrence o) {return count - o.count;}@Overridepublic boolean equals(Object o) {return word.equals(((WordOccurrence)o).word);}@Overridepublic String toString() {return word + ": " + count;}}21.8import java.util.*;import java.io.*;public class Exercise21_08 {public static void main(String[] args) {if (args.length != 1) {System.out.println("Usage: java Exercise21_08 fullfilename");System.exit(1);}String filename = args[0];// Create a tree map to hold words as key and count as valueTreeMap<String, Integer> treeMap = new TreeMap<String, Integer>();try {Scanner input = new Scanner(new File(filename));while (input.hasNext()) {String line = input.nextLine();String[] words = line.split("[ @!~{}\\[\\]$#^&*\n\t\r.,;?'\")(]");for (int i = 0; i < words.length; i++) {if (words[i].trim().length() > 0 &&words[i].trim().matches("[A-Z|a-z]+")) {String key = words[i].toLowerCase();if (treeMap.get(key) != null) {int count = treeMap.get(key);count++;treeMap.put(key, count);}else {treeMap.put(key, 1);}}}}}catch (Exception ex) {ex.printStackTrace();}// Get an entry set for the tree mapSet<Map.Entry<String, Integer>> entrySet = treeMap.entrySet();// Display words in alphabetical orderSystem.out.println("\nDisplay words and their count in " + " ascending order of the words");for (Map.Entry<String, Integer> entry: entrySet)System.out.println(entry.getValue() + "\t" + entry.getKey()); }}21.9import java.util.*;public class Exercise21_09 {public static void main(String[] args) {String[][] stateCapital = {{"Alabama", "Montgomery"},{"Alaska", "Juneau"},{"Arizona", "Phoenix"},{"Arkansas", "Little Rock"},{"California", "Sacramento"},{"Colorado", "Denver"},{"Connecticut", "Hartford"},{"Delaware", "Dover"},{"Florida", "Tallahassee"},{"Georgia", "Atlanta"},{"Hawaii", "Honolulu"},{"Idaho", "Boise"},{"Illinois", "Springfield"},{"Indiana", "Indianapolis"},{"Iowa", "Des Moines"},{"Kansas", "Topeka"},{"Kentucky", "Frankfort"},{"Louisiana", "Baton Rouge"},{"Maine", "Augusta"},{"Maryland", "Annapolis"},{"Massachusettes", "Boston"},{"Michigan", "Lansing"},{"Minnesota", "Saint Paul"},{"Mississippi", "Jackson"},{"Missouri", "Jefferson City"},{"Montana", "Helena"},{"Nebraska", "Lincoln"},{"Nevada", "Carson City"},{"New Hampshire", "Concord"},{"New Jersey", "Trenton"},{"New York", "Albany"},{"New Mexico", "Santa Fe"},{"North Carolina", "Raleigh"},{"North Dakota", "Bismark"},{"Ohio", "Columbus"},{"Oklahoma", "Oklahoma City"},{"Oregon", "Salem"},{"Pennslyvania", "Harrisburg"},{"Rhode Island", "Providence"},{"South Carolina", "Columbia"},{"South Dakota", "Pierre"},{"Tennessee", "Nashville"},{"Texas", "Austin"},{"Utah", "Salt Lake City"},{"Vermont", "Montpelier"},{"Virginia", "Richmond"},{"Washington", "Olympia"},{"West Virginia", "Charleston"},{"Wisconsin", "Madison"},{"Wyoming", "Cheyenne"}};Map<String, String> map = new HashMap<String, String>();for (int i = 0; i < stateCapital.length; i++)map.put(stateCapital[i][0].toLowerCase(), stateCapital[i][1]);Scanner input = new Scanner(System.in);System.out.print("Enter a state: ");String state = input.nextLine().toLowerCase().trim();if (map.containsKey(state))System.out.println("The capital is " +map.get(state));elseSystem.out.println("No such state ");}}21.10import java.util.*;import java.io.*;public class Exercise21_10 {public static void main(String[] args) {// Prompt the user to enter a Java source fileScanner input = new Scanner(System.in);System.out.print("Enter a file name: ");String filename = input.nextLine();// Array of all Java keywords + true + nullString[] keywordString = { "abstract", "finally", "public", "boolean", "float", "return", "break", "for", "short", "byte", "goto", "static","case", "if", "super", "catch", "implements", "switch", "char","import", "synchronized", "class", "instanceof", "this", "const","int", "throw", "continue", "interface", "throws", "default", "long","transient", "do", "native", "try", "double", "new", "void", "else","package", "volatile", "extends", "private", "while", "final","protected", "true", "null" };Set<String> keywordSet = newHashSet<String>(Arrays.asList(keywordString));int count = 0;try {input = new Scanner(new File(filename));String text = "";while (input.hasNext()) {String line = input.nextLine();line = stripLineComments(line);line = stripLineStringLiterals(line);text += line + " ";}text = stripParagraghComments(text);TreeMap<String, Integer> map = new TreeMap<String, Integer>();String[] tokens = text.split("[ \\[,()\\]]");for (String token : tokens) {if (keywordSet.contains(token))if (map.get(token) == null) {map.put(token, 1);} else {int value = map.get(token);value++;map.put(token, value);}}// Get all entries into a setSet<Map.Entry<String, Integer>> entrySet = map.entrySet();// Get key and value from each entryfor (Map.Entry<String, Integer> entry: entrySet)System.out.println(entry.getValue() + "\t" + entry.getKey()); } catch (Exception ex) {ex.printStackTrace();}}/* Strip line comments */private static String stripLineComments(String line) {int index = line.indexOf("//");if (index < 0)return line;elsereturn line.substring(0, index);}/* Strip string literals */private static String stripLineStringLiterals(String line) {int start = line.indexOf("\"");int end = line.indexOf("\"", start + 1);while (start > 0 && end > 0) {line = line.substring(0, start) + line.substring(end + 1);start = line.indexOf("\"");end = line.indexOf("\"");}return line;}/* Strip paragraph comments */private static String stripParagraghComments(String text) {int start = text.indexOf("/*");int end = text.indexOf("*/");while (start > 0 && end > 0) {text = text.substring(0, start) + text.substring(end + 2);start = text.indexOf("/*");。
Java语言程序设计基础篇全习题答案1
1. 2. 3. 4.Chapter 1 Introduction to Computers, Programs, and Java A computer is an electronic device that stores and processes data. A computerincludes both hardware and software. In general, hardware is the physical aspect of the computer that can be seen, and software is the invisible instructions that control the hardware and make it work. The hardware of a computer consists of a CPU,cache, memory, hard disk, floppy disk, monitor, printer, and communication devices. The machine language is a set of primitive instructions built into every computer. Assembly language is a low-level programming language in which a mnemonic is used to represent each of the machine language instructions. The high-level languages are English-like and easy to learn and program.The operating system (OS) is a program that manages and controls a computer’s activities. The examples of OS are Windows 98, NT, 2000, XP, or ME. Windows. Application programs such as an Internet browser and a word processor run on top of an operating system.100 in decimal => 64 in hex100 in decimal => 01100100 in binary4340 in decimal => 10F4 in hex4340 in decimal => 1000011110100 in binary2000 in decimal => 7D0 in hex2000 in decimal => 111110100005.1000011001 in binary => 219 in hex1000011001 in binary => 537 in decimal100000000 in binary => 100 in hex 100000000 in binary => 256 in decimal100111 in binary => 27 in hex 100111 in binary => 39 in decimal 6.FEFA9 in hex => 1044393 in decimalFEFA9 in hex => 11111110111110101001 in binary93 in hex => 147 in decimal 93 in hex => 10010011 in binary 2000 in hex => 8192 in decimal7.8.9.10.11.12.13.14.16.17. 2000 in hex => 10000000000000 in binaryDeveloped by a team led by James Gosling at Sun Microsystems in 1991. Originally called Oak, it became Java in 1995 when it was redesigned for developing Internet applications.Java can run on any platform with a Java Virtual Machine. The minimum requirement is the Java Runtime Environment, free from the .The input is the Java source code and the output is the Java bytecode (if compiled successfully).JBuilder by Borland, Sun ONE Studio by Sun, Café by WebGain, Visual Age for Java by IBM are the tools for developing Java programs, not dialects of Java. These tools make developing Java programs easier and more productive.HTML is a markup language for displaying static Web pages. Java is a full-fledged programming language that can be used to develop dynamic Web pages. The Java programs that run from a Web browser are called applets. Java applets must be embedded in HTML files using the <applet> tag.Keywords have specific meaning to the compiler and cannot be used for other purposes in the program such as variables or method names. Examples of keywords are class, static, and void.Java source code is case sensitive. Java keywords are always in lowercase.The source file extension is .java and the bytecode file extension is .class. Comments are used to document what a program is for and how a program is constructed. Comments help the programmers or users to communicate and understand the program. Comments are not programming statements and are ignored by the compiler. In Java, comments are preceded by two forward slashes (//) in a line or enclosed between /* and */ in multiple lines. When the compiler sees //, it ignores all text after // in the same line. When it sees /*, it scans for the next */ and ignores any text between /* and */.15. System.out.println(...);JOptionPane.showMessageDialog(null,“Hello world”);Line 2. Main should be main.Line 2. static is missing.Line 3: Welcome to Java! should be enclosed inside double quotation marks.javac is the JDK command to compile a program program. java is the JDK command to run a program.18.19. Java interpreter cannot find the .class file. Make sure you placed the .class in the right place, and invoked java command with appropriate package name.The class does not have a main method, or the signature of the main method is incorrect.Thank you for evaluating AdreamSoft PDF to Word You can only convert 3 pages with the trial versionTo get all the pages converted, you need to purchase the software from/purchase/buy-pdf-to-word.html。
程序设计教程(机械工业出版社)课后习题答案-第1章-概述
第1章概述1、简述冯•诺依曼计算机的工作模型。
答:冯•诺依曼计算机的工作模型是:待执行的程序从外存装入到内存中,CPU从内存中逐条地取程序中的指令执行;程序执行中所需要的数据从内存或从外设中获得,程序执行中产生的中间结果保存在内存中,程序的执行结果通过外设输出。
2、简述寄存器、内存以及外存的区别。
答:寄存器主要用于记录下一条指令的内存地址、当前指令的执行状态以及暂时保存指令的计算结果供下一(几)条指令使用,其作用主要是减少访问内存的次数,提高指令的执行效率。
内存用于存储计算机程序(指令和数据),内存由许多存储单元构成,每个存储单元都有一个地址,对存储单元的访问是通过其地址来进行的,与寄存器相比,内存的容量要大得多,但指令访问内存单元所花费的时间比访问寄存器要多得多。
外存是大容量的低速存储部件,用于永久性地存储程序、数据以及各种文档等信息,存储在外存中的信息通常以文件形式进行组织和访问,外存储了在容量和速度上与内存不同,另一个区别在于内存中存储的是正在运行的程序和正在使用的数据,外存中存储的则是大量的、并非正在使用的程序和数据。
3、CPU能执行哪些指令?答:CPU所能执行的指令通常有:算术指令:实现加、减、乘、除等运算。
比较指令:比较两个操作数的大小。
数据传输指令:实现CPU的寄存器、内存以及外设之间的数据传输。
执行流程控制指令:用于确定下一条指令的内存地址,包括转移、循环以及子程序调用/返回等指令。
4、什么是软件?软件是如何分类的?答:计算机软件是计算机系统中的程序以及有关的文档。
程序是对计算任务的处理对象(数据)与处理规则(算法)的描述;文档是为了便于人理解程序所需的资料说明,供程序开发与维护使用。
软件通常可以分为系统软件、支撑软件和应用软件。
系统软件居于计算机系统中最靠近硬件的一级,它与具体的应用领域无关,其他软件一般要通过系统软件发挥作用,如操作系统属于系统软件。
支撑软件是指支持软件开发与维护的软件,一般由软件开发人员使用,如软件开发环境就是典型的支撑软件。
Java语言程序设计(基础篇)原书第十一版 梁勇 第5、6章 课后题答案
System.out.println("Month\t\tCD Value");
for (int i=1;i<month+1;i++){
money=money+money*rate/1200;
System.out.println(i+"\t\t"+money);
}
mean=sum/10;
double a=num-Math.pow(sum,2)/i;
standard=Math.pow(a/(i-1),0.5);
System.out.println("平均值是:"+mean);
System.out.print("方差是:"+standard);
}
}
5.47商业:检测ISBN-13
System.out.print("请输入10个数:");
Scanner in=new Scanner(System.in);
for (i=0;i<10;i++) {
list[i] = in.nextDouble();
sum += list[i];
num += Math.pow(list[i],2);
char d7=str.charAt(6);char d8=str.charAt(7);char d9=str.charAt(8);
char d10=str.charAt(9);char d11=str.charAt(10);char d12=str.charAt(11);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JFrame frame = new Exercise13_8();
frame.setSize(300, 300);
frame.setTitle("Exercise13_8");
(int)(yCenter - radius * Math.sin(7 * 2 * Math.PI / 8)));
// Draw the polygon
g.drawPolygon(polygon);
}
}
import javax.swing.*;
*/
public static void main(String[] args) {
Java语言程序设计
5 / 81
// TODO 自动生成方法存根
Exercise13_11 frame = new Exercise13_11();
frame.setTitle("Exercise13.11");
import javax.swing.*;
import java.awt.*;
public class Exercise13_2 extends JFrame {
// Create two buttons
private OvalButton jbtOk = new OvalButton("OK");
import java.awt.*;
public class Exercise13_11 extends JFrame {
public Exercise13_11(){
add(new SquareFunction());
}
/**
* @param args
Java语言程序设计
1 / 81
&
[编程练习题答案]Java语言程序设计(基础篇)(进阶篇)第13、14、
15、24、25、26、28、29、30、31章部分习题答案,奇数题和部分
双数题是我自己做的,在此和大家分享(^_^~
Chapter 13 Exercise 13.2 / 13.8 / 13.11
g.drawLine(this.getWidth()-30, this.getHeight()-25,
this.getWidth()-10, this.getHeight()-20);
g.drawString("X", this.getWidth()-10, this.getHeight()-30);
polygon.addPoint((int)(xCenter + radius * Math.cos(5 * 2 * Math.PI
/ 8)),
(int)(yCenter - radius * Math.sin(5 * 2 * Math.PI / 8)));
polygon.addPoint((int)(xCenter + radius * Math.cos(6 * 2 * Math.PI
int yCenter = getHeight() / 2;
int radius =
(int) (Math.min(getWidth(), getHeight()) * 0.4);
// Create a Polygon object
Polygon polygon = new Polygon();
double scaleFactor = 0.01;
for (int x=-100; x<=100; x++){
p.addPoint(x+this.getWidth()/2,
g.drawLine(this.getWidth()/2, 20, this.getWidth()/2,
this.getHeight()-5);
g.drawLine(this.getWidth()/2, 20, this.getWidth()/2-5, 35);
}
}
class OctagonPanel extends JPanel {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int xCenter = getWidth() / 2;
/ 8)),
(int)(yCenter - radius * Math.sin(2 * 2 * Math.PI / 8)));
polygon.addPoint((int)(xCenter + radius * Math.cos(3 * 2 * Math.PI
/ 8)),
// Add points to the polygon
polygon.addPoint(xCenter + radius, yCenter);
polygon.addPoint((int)(xCenter + radius * Math.cos(2 * Math.PI / 8)),
// Draw an oval
super.paintComponent(g);
g.drawOval(5, 5, getWidth() - 10, getHeight() - 10);
}
/** Override get method for preferredSize */
(int)(yCenter - radius * Math.sin(2 * Math.PI / 8)));
polygon.addPoint((int)(xCenter + radius * Math.cos(2 * 2 * Math.PI
Java语言程序设计
4 / 81
/ 8)),
(int)(yCenter - radius * Math.sin(6 * 2 * Math.PI / 8)));
polygon.addPoint((int)(xCenter + radius * Math.cos(7 * 2 * Math.PI
/ 8)),
g.drawLine(this.getWidth()/2, 20, this.getWidth()/2+5, 35);
g.drawString("Y", this.getWidth()/2 + 10, 30);
Polygon p = new Polygon();
return new Dimension(100, 50);
}
}
Java语言程序设计
3 / 81
import java.awt.*;
import javax.swing.*;
public class Exercise13_8 extends JFrame {
g.drawLine(10, this.getHeight()-20, this.getWidth()-10,
this.getHeight()-20);
g.drawLine(this.getWidth()-30, this.getHeight()-15,
this.getWidth()-10, this.getHeigquareFunction extends JPanel {
public SquareFunction(){
}
protected void paintComponent(Graphics g){
super.paintComponent(g);
Exercise13_2 frame = new Exercise13_2();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
(int)(yCenter - radius * Math.sin(3 * 2 * Math.PI / 8)));
polygon.addPoint((int)(xCenter + radius * Math.cos(4 * 2 * Math.PI
/ 8)),
(int)(yCenter - radius * Math.sin(4 * 2 * Math.PI / 8)));
// Add buttons to the frame
getContentPane().add(jbtOk);
getContentPane().add(jbtCancel);
}
/** Main method */
public static void main(String[] args) {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public Exercise13_8() {
getContentPane().add(new OctagonPanel());
}
}
class OvalButton extends JButton {
public OvalButton() {
}
public OvalButton(String text) {
super(text);
}
protected void paintComponent(Graphics g) {