《Java语言程序设计(基础篇)》(第10版 梁勇 著)第十七章练习题答案

合集下载

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版 梁勇 著)第九章练习题答案

《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程序设计(雍俊海)课后部分标准答案

java程序设计(雍俊海)课后部分标准答案

第一章1 • 1谁是java语言创始人J a mes Gosli n g, J a va语言的创始人之一1.2j ava语言有哪些优缺点?P 2页(1)简单性(2)网络特性(3)面向对象性(4)平台无关性/可移植性(5)鲁棒性也指程序稳定性(6)安全性(7)多线程性,采用多线程机制是提高程序运行效率的方法,但增加了程序的设计难度(8)解释性,缺点,解释执行语言要不编译执行语言需要额外的语句解释不龙及运行时间。

1. 4请简述环境变相path和c 1 asspa t h作用环境变量运行路径(path)和类路径(classpath)1. 5java程序可以分为几种,分别是什么?两种,应用程序和小应用程序applt1. 6 査看j ava 在线帮助文档,列举岀system, o ut. pr i n tl n 和s ys t em. out. print 的不同点。

S y s t em. o u t. printin 自动换行,system, ou t . print 不自动换行。

1.7试着编写一个j ava程序,在控制台窗口中输岀如下信息。

Publ i c clas s TestPubli c sta t i c void m a in(strng args[]){ system, out. print In (M*** **** *次* **** *** ****");s ys t em. o ut・ pr i ntln(v ** p ra c ti c e makes pe r f e c t ,?):system・ ou t ・ p ri n tin ( ” ******* ***** ***** * **次”);}1.8编写一个j ava程序,在网页中显示如下信息。

import ja v a ・ a w t .Graph i cs;import javax. swing・ JAppl e t;p u b 1 i c c 1 ass J_H e lloAp p let extend s JA p plet{pu b lie v o i d p a i nt (Gr a phics g){g. cle a rRect (0, 0F g e t W i d th() > g etH e igh t ());g . draw S trin g ( "** * * **** **** * * * * * * 次 ** *** * * * ********** * * ************", ] 0, 2 0);g. d rawStri n g (" * * 熟能生巧",10, 30);g. dra w Stri ng ( " * **** * **** * 次 ********** * *** * *** * **** * * 次*************", ] 0, 40);}}网页:< h tml><head><t i tie >java 小程序 </ t itle> </h e ad> <body><APP LET CODE「J_Hel 1 oAp p let. class' WIDTH二〃200〃h e i g ht = '40,z> </appl e t > <BR></bo d y></html>1. 9请阐述编写j a va程序的具体步骤:第二章:2.2 U"算下而java表达式的值,并写出表达式结果在j ava中的数据类型(1)1+4/5+ ( i nt) 5. 2/2. 5=3. 0 //数据类型:浮点类型(2)1+4/5+ ( i nt) (5.2/2. 5)=3 / / 数据类型:整型(3)1+4/5 + 5. 2/2. 5=3. 08 //数据类型:浮点类型(4 ) 1. 0+4/5+5. 2/2. 5=3. 08 //数据类型:浮点类型(5)1+4/5. 0 +5.2/2. 5=3. 8 8 //数据类型:浮点类型(6)设已定义了变量i nt a =12,请计算表达式(++a) + (a++)因为a=12则 + +a=13现在护1 3所以a++二1 3所以表达式(++a)+(a++)=2 6 //数据类型:整型(7)10 >>2=2 //数据类型:整型(8)10&1 1 |12结果为t rue //数据类型:布尔型(9)5“7结果为2 即为真(10)(-5)1 (^5)结果为一5 //数据类型:整型J N字节码正确结果。

Java语言程序设计基础篇(第10版) 梁勇 课后习题答案

Java语言程序设计基础篇(第10版) 梁勇 课后习题答案

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 !");
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.11 public class Test{ public static void main(String[] args){ int BN = 312032486; //original person numbers double 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();

java语言程序设计基础篇第十版练习答案精编

java语言程序设计基础篇第十版练习答案精编

j a v a语言程序设计基础篇第十版练习答案精编Document number:WTT-LKK-GBB-08921-EIGG-2298601import class Exercise14_01 extendsApplication {@Override Not needed for running from the command line.*/public static void main(String[] args) {launch(args);}}02import class Exercise14_02 extends Application {@Override Not needed for running from the command line.*/public static void main(String[] args) {launch(args);}}03import class Exercise14_03 extends Application {@Override One is to use the hint in the book.ArrayList<Integer> list = new ArrayList<>(); for (int i = 1; i <= 52; i++) {(i);}HBox pane = new HBox(5);;().add(new ImageView("image/card/" + (0) +".png"));().add(new ImageView("image/card/" + (1) +".png"));().add(new ImageView("image/card/" + (2) +".png"));Not needed for running from the command line.*/public static void main(String[] args) {launch(args);}}04import class Exercise14_04 extends Application {@Override dd(txt);}Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}05import class Exercise14_05 extends Application {@Override dd(txt);}Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}05import class Exercise14_05 extends Application {@Override dd(txt);}Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}06import class Exercise14_06 extends Application {@Override dd(rectangle);}}Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}07import class Exercise14_07 extends Application {@Override Not needed for running from the command line.*/public static void main(String[] args) {launch(args);}}08import class Exercise14_08 extends Application {@Override ng"), j, i);}}Not needed for running from the command line.*/public static void main(String[] args) {launch(args);}}09import class Exercise14_09 extends Application {@Override Not needed for running from the command line.*/public static void main(String[] args) {launch(args);}}class FanPane extends Pane {double radius = 50;public FanPane() {Circle circle = new Circle(60, 60, radius);;;getChildren().add(circle);Arc arc1 = new Arc(60, 60, 40, 40, 30, 35);; ddAll(arc1, arc2, arc3, arc4);}}10import class Exercise14_10 extends Application {@Override ddAll, ;Arc arc2 = new Arc(100, 140, 50, 20, 180, 180); ;;().addAll(ellipse, arc1, arc2,new Line(50, 40, 50, 140), new Line(150, 40, 150, 140));Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}11import class Exercise14_11 extends Application {@Override ddAll(circle, ellipse1, ellipse2,circle1, circle2, line1, line2, line3, arc);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}12import class Exercise14_12 extends Application {@Override ddAll(r1, text1, r2, text2, r3, text3, r4, text4);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}13import class Exercise14_13 extends Application {@Override ddAll(arc1, text1, arc2, text2, arc3, text3, arc4, text4);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}14import class Exercise14_14 extends Application {@Override ddAll(r1, r2, line1, line2, line3, line4);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}15import class Exercise14_15 extends Application {@Override ddAll(polygon, text);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}16import class Exercise14_16 extends Application {@Override ind().divide(3));().bind());().bind().divide(3));;Line line2 = new Line(0, 0, 0, 0);().bind().multiply(2).divide(3));().bind());().bind().multiply(2).divide(3));;Line line3 = new Line(0, 0, 0, 0);().bind().divide(3));().bind().divide(3));().bind());;Line line4 = new Line(0, 0, 0, 0);().bind().multiply(2).divide(3));().bind().multiply(2).divide(3));().bind());;().addAll(line1, line2, line3, line4);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}17import class Exercise14_17 extends Application {@Override ddAll(arc, line1, line2, line3, circle, line4, line5, line6, line7, line8);Not needed for running from the command line.*/public static void main(String[] args) {launch(args);}}18import class Exercise14_18 extends Application {@Override ddAll(polyline, line1, line2,line3, line4, line5, line6, text1, text2);Not needed for running from the command line.*/public static void main(String[] args) {launch(args);}}19import class Exercise14_19 extends Application {@Override ddAll(polyline1, polyline2, line1,line2,line3, line4, line5, line6, text1, text2,text3,text4, text5, text6, text7);Not needed for running from the command line.*/public static void main(String[] args) {launch(args);}}20import class Exercise14_20 extends Application {@Override dd(new Line(x1, y1, x2, y2));dd(new Line(x2, y2, (x2 + (arctan + set45) * arrlen)),((y2)) + (arctan + set45) * arrlen)));().add(new Line(x2, y2, (x2 + (arctan - set45) * arrlen)),((y2)) + (arctan - set45) * arrlen)));}/*** 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);}}21import class Exercise14_21 extends Application {@Override istance(x2, y2) + "");().addAll(circle1, circle2, line, text);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}22import class Exercise14_22 extends Application {@Override ddAll(circle1, circle2, line, text1, text2);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}23import class Exercise14_23 extends Application {@Override ddAll(r1, r2, text);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}24import class Exercise14_24 extends Application {@Override ddAll(polygon, new Circle(x5, y5, 10), text);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}25import class Exercise14_25 extends Application {@Override ddAll(circle, polygon);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}}26import class Exercise14_26 extends Application {@Override ddAll(clock1, clock2);Not needed for running from the command line. */public static void main(String[] args) {launch(args);}27import class Exercise14_27 extends Application {@OverrideNot needed for running from the command line. */public static void main(String[] args) {launch(args);}}class DetailedClockPane extends Pane {private int hour;private int minute;private int second;lear();getChildren().addAll(circle, sLine, mLine, hLine);dd(new Line(xOuter, yOuter, xInner, yInner));}dd(text);}}}28import class Exercise14_28 extends Application {@OverrideNot needed for running from the command line.*/public static void main(String[] args) {launch(args);}}class ClockPaneWithBooleanProperties extends Pane { private int hour;private int minute;private int second;private boolean hourHandVisible = true;private boolean minuteHandVisible = true; private boolean secondHandVisible = true;public boolean isHourHandVisible() {return hourHandVisible;}public void setHourHandVisible(boolean hourHandVisible) {= hourHandVisible;paintClock();}public boolean isMinuteHandVisible() {return minuteHandVisible;}public void setMinuteHandVisible(boolean minuteHandVisible) {= minuteHandVisible;paintClock();}public boolean isSecondHandVisible() {return secondHandVisible;public void setSecondHandVisible(boolean secondHandVisible) {= secondHandVisible;paintClock();}lear();getChildren().addAll(circle, t1, t2, t3, t4);if (secondHandVisible) {getChildren().add(sLine);}if (minuteHandVisible) {getChildren().add(mLine);}if (hourHandVisible) {getChildren().add(hLine);}}}import class Exercise14_29 extends Application {final static double HGAP = 20;final static double VGAP = 20;final static double RADIUS = 5;final static double LENGTH_OF_SLOTS = 40;final static double LENGTH_OF_OPENNING = 15;final static double Y_FOR_FIRST_NAIL = 50;final static double NUMBER_OF_SLOTS = 9;final static double NUMBER_OF_ROWS =NUMBER_OF_SLOTS - 2;@Override dd(c);}}dd(new Line(x, y, x, y + LENGTH_OF_SLOTS)); }dd(new Line(centerX - (NUMBER_OF_ROWS - 1) * HGAP / 2 - HGAP,y + LENGTH_OF_SLOTS, centerX -(NUMBER_OF_ROWS - 1) * HGAP / 2 + NUMBER_OF_ROWS * HGAP,y + LENGTH_OF_SLOTS));dd(new Line(centerX + HGAP / 2,Y_FOR_FIRST_NAIL + RADIUS,centerX - (NUMBER_OF_ROWS - 1) * HGAP / 2 + NUMBER_OF_ROWS * HGAP, y));().add(new Line(centerX - HGAP / 2,Y_FOR_FIRST_NAIL + RADIUS,centerX - (NUMBER_OF_ROWS - 1) * HGAP / 2 - HGAP, y));dd(new Line(centerX - HGAP / 2,Y_FOR_FIRST_NAIL + RADIUS,centerX - HGAP / 2, Y_FOR_FIRST_NAIL - LENGTH_OF_OPENNING));().add(new Line(centerX + HGAP / 2,Y_FOR_FIRST_NAIL + RADIUS,centerX + HGAP / 2, Y_FOR_FIRST_NAIL - LENGTH_OF_OPENNING));Not needed for running from the command line.*/public static void main(String[] args) { launch(args);}}。

Java语言程序设计课后习题答案全集

Java语言程序设计课后习题答案全集

Java语言程序设计课后习题答案全集Java语言程序设计是一门广泛应用于软件开发领域的编程语言,随着其应用范围的不断扩大,对于掌握Java编程技巧的需求也逐渐增加。

为了帮助读者更好地掌握Java编程,本文将提供Java语言程序设计课后习题的全集答案,供读者参考。

一、基础知识题1. 代码中的注释是什么作用?如何使用注释.答:注释在代码中是用来解释或者说明代码的功能或用途的语句,编译器在编译代码时会自动忽略注释。

在Java中,有三种注释的方式:- 单行注释:使用"// " 可以在代码的一行中加入注释。

- 多行注释:使用"/* */" 可以在多行中添加注释。

- 文档注释:使用"/** */" 可以添加方法或类的文档注释。

2. 什么是Java的数据类型?请列举常见的数据类型。

答:Java的数据类型用来指定变量的类型,常见的数据类型有:- 基本数据类型:包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)、布尔型(boolean)。

- 引用数据类型:包括类(class)、接口(interface)、数组(array)等。

二、代码编写题1. 编写Java程序,输入两个整数,求和并输出结果。

答:```javaimport java.util.Scanner;public class SumCalculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个整数:");int num1 = scanner.nextInt();System.out.print("请输入第二个整数:");int num2 = scanner.nextInt();int sum = num1 + num2;System.out.println("两个整数的和为:" + sum);}}```三、综合应用题1. 编写Java程序,实现学生信息管理系统,要求包括以下功能:- 添加学生信息(姓名、年龄、性别、学号等);- 修改学生信息;- 删除学生信息;- 查询学生信息。

(完整版)Java语言程序设计(基础篇)原书第十版梁勇著第一章答案

(完整版)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语言程序设计课后习题答案全集

Java语言程序设计课后习题答案全集

J a v a语言程序设计课后习题答案全集Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】指出JAVA语言的主要特点和JAVA程序的执行过程。

答:(1)强类型;(2)编译和解释;(3)自动无用内存回收功能;(4)面向对象;(5)与平台无关;(6)安全性;(7)分布式计算;(8)多线程;程序执行过程如图所示:编写源文件,编译器编译源文件转换成字节码,解释器执行字节码。

说出开发与运行JAVA程序的重要步骤。

答:(1)编写源文件:使用一个文本编译器,如Edit或记事本,不可以使用Word.将编好的源文件保存起来,源文件的扩展名必须是.java;(2)编译Java源文件:使用Java编译器编译源文件得到字节码文件;(3)运行Java程序:Java程序分为两类——Java应用程序必须通过Java解释器来解释执行其字节码文件;Java小应用程序必须通过支持Java标准的浏览器来解释执行。

如何区分应用程序和小应用程序答:应用程序在与源文件名字相同的类中,有main()方法,该方法代表应用程序的入口; 小应用程序必须有一个Applet类的子类,该类称作主类,必须用public修饰。

说出JAVA源文件的命名规则。

答:源文件命名规则和类命名规则一样,所有的单词首字母都用大写字母,且必须和源文件的public类同名。

JAVA语言使用什么字符集共有多少个不同的字符答:Java语言使用Unicode字符集,共有65535个字符。

JAVA语言标识符的命名规则是什么(1)由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字字符组成(2)限定标识符的第一个字符不能是数字字符(3)不能和关键字重名(4)长度不能超过255个字符JAVA有那些基本数据类型,它们的常量又是如何书写的指出下列内容哪些是JAVA语言的整型常量,哪些是浮点数类型常量,哪些两者都不是。

整型常量: 4)0xABCL,8)003,10)077,12)056L浮点数类型常量:3)-1E-31,5).32E31 13)0.,14).0两者都不是: 1),2),6),7),9),11)第二章 运算和语句Java 的字符能参加算术运算吗可以。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Java语言程序设计(基础篇)》(第10版梁勇著)第十七章练习题答案17.1import java.io.*;import java.util.*;public class Exercise17_01 {public static void main(String[] args) throws IOException {try (Formatter output =new Formatter(new FileOutputStream("Exercise17_01.txt", true)); ) {for (int i = 0; i < 100; i++)output.format("%d", (int)(Math.random() * 100000));}}}17.2import java.io.*;public class Exercise17_02 {public static void main(String[] args) throws IOException {try (DataOutputStream output =new DataOutputStream(new FileOutputStream("Exercise17_02.dat", true));) {for (int i = 0; i < 100; i++)output.writeInt((int)(Math.random() * 100000));}System.out.println("Done");}}17.3import java.io.*;public class Exercise17_03 {/** Main method */public static void main(String[] args) {// Read dataint count = 0;try ( // Declare and create data input and output streamsDataInputStream dis =new DataInputStream(new FileInputStream("Exercise17_03.dat"));) {int total = 0;while (dis.available() > 0) {int temp = dis.readInt();total += temp;count++;System.out.print(temp + " ");}System.out.println("\nCount is " + count);System.out.println("\nTotal is " + total);}catch (FileNotFoundException ex) {System.out.println("File not found");}catch (IOException ex) {System.out.println(ex.getMessage());}}}17.4import java.io.*;public class Exercise17_04 {public static void main(String[] args) throws IOException {try (BufferedReader input = new BufferedReader(new FileReader(args[0])); DataOutputStream output = new DataOutputStream(newFileOutputStream(args[1]));) {String line;while ((line = input.readLine()) != null)output.writeUTF(line);}try (InputStream input1 = new FileInputStream(args[0]);InputStream input2 = new FileInputStream(args[1]);) {System.out.println(args[0] + "'s size is " + input1.available() + " bytes");System.out.println(args[1] + "'s size is " + input2.available() + " bytes");}}}17.5import java.io.*;public class Exercise17_05 {public static void main(String[] args) throws IOException {try (ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("Exercise17_05.dat"));) {output.writeObject(new int[]{1, 2, 3, 4, 5});output.writeObject(new java.util.Date());output.writeDouble(5.5);}}}17.6import java.io.*;public class Exercise17_06 {public static void main(String[] args) throws IOException {try (ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream("Exercise17_06.dat"));) {output.writeObject(new Loan(2.5, 5, 1000));output.writeObject(new Loan(3.5, 5, 2000));output.writeObject(new Loan(4.5, 5, 3000));output.writeObject(new Loan(5.5, 5, 4000));output.writeObject(new Loan(6.5, 5, 5000));}}}17.7import java.io.*;public class Exercise17_07 {public static void main(String[] args) {int total = 0;int count = 0;try (ObjectInputStream input = new ObjectInputStream(new BufferedInputStream( new FileInputStream("Exercise17_07.dat")));) {while (true) {Loan loan = (Loan)(input.readObject());total += loan.getLoanAmount();count++;}}catch (EOFException ex) {System.out.println("Number of loan objects is " + count);System.out.println("Total loan amount is " + total);}catch (Exception ex) {ex.printStackTrace();}}}17.8import java.io.*;public class Exercise17_08 {public static void main(String[] args) throws IOException {try (RandomAccessFile raf = new RandomAccessFile("Exercise17_08.dat", "rw"); ) {int count = 0;if (raf.length() > 0)count = raf.readInt();raf.seek(0);raf.writeInt(++count);System.out.println("Current count is " + count);}}}17.9import java.io.*;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.GridPane;import yout.HBox;import javafx.stage.Stage;public class Exercise17_09 extends Application {// Specify the size of five string fields in the recordfinal static int NAME_SIZE = 32;final static int STREET_SIZE = 32;final static int CITY_SIZE = 20;final static int STATE_SIZE = 2;final static int ZIP_SIZE = 5;final static int RECORD_SIZE =(NAME_SIZE + STREET_SIZE + CITY_SIZE + STATE_SIZE + ZIP_SIZE);// Access address.dat using RandomAccessFileprivate RandomAccessFile raf;// Text fieldsprivate TextField tfName = new TextField();private TextField tfStreet = new TextField();private TextField tfCity = new TextField();private TextField tfState = new TextField();private TextField tfZip = new TextField();// Buttonsprivate Button btAdd = new Button("Add");private Button btFirst = new Button("First");private Button btNext = new Button("Next");private Button btPrevious = new Button("Previous");private Button btLast = new Button("Last");private Button btUpdate = new Button("Update");public Exercise17_09() {// Open or create a random access filetry {raf = new RandomAccessFile("address.dat", "rw");}catch(IOException ex) {ex.printStackTrace();System.exit(1);}}@Overridepublic void start(Stage primaryStage) {tfState.setPrefColumnCount(2);tfZip.setPrefColumnCount(4);tfCity.setPrefColumnCount(12);// Pane p1 for holding labels Name, Street, and CityGridPane p1 = new GridPane();p1.setAlignment(Pos.CENTER);p1.setHgap(5);p1.setVgap(5);p1.add(new Label("Name"), 0, 0);p1.add(new Label("Street"), 0, 1);p1.add(new Label("City"), 0, 2);p1.add(tfName, 1, 0);p1.add(tfStreet, 1, 1);HBox p2 = new HBox(5);p2.getChildren().addAll(tfCity, new Label("State"), tfState, new Label("Zip"), tfZip);p1.add(p2, 1, 2);// Add buttons to a paneHBox p3 = new HBox(5);p3.getChildren().addAll(btAdd, btFirst, btNext, btPrevious, btLast, btUpdate);p3.setAlignment(Pos.CENTER);// Add p1 and p3 to a border paneBorderPane borderPane = new BorderPane();borderPane.setCenter(p1);borderPane.setBottom(p3);// Create a scene and place it in the stageScene scene = new Scene(borderPane, 400, 120);primaryStage.setTitle("Exercise17_09"); // Set the stage title primaryStage.setScene(scene); // Place the scene in the stage primaryStage.show(); // Display the stage// Display the first record if existstry {if (raf.length() > 0) readAddress(0);}catch (IOException ex) {ex.printStackTrace();}btAdd.setOnAction(e -> {try {writeAddress(raf.length());}catch (Exception ex) {}});btFirst.setOnAction(e -> {try {if (raf.length() > 0) readAddress(0);}catch (IOException ex) {}});btNext.setOnAction(e -> {try {long currentPosition = raf.getFilePointer();if (currentPosition < raf.length())readAddress(currentPosition);}catch (IOException ex) {}});btPrevious.setOnAction(e -> {try {long currentPosition = raf.getFilePointer();if (currentPosition - 2 * RECORD_SIZE > 0)// Why 2 * 2 * RECORD_SIZE? See the follow-up remarksreadAddress(currentPosition - 2 * 2 * RECORD_SIZE);elsereadAddress(0);}catch (IOException ex) {}});btLast.setOnAction(e -> {try {long lastPosition = raf.length();if (lastPosition > 0)// Why 2 * RECORD_SIZE? See the follow-up remarksreadAddress(lastPosition - 2 * RECORD_SIZE);}catch (IOException ex) {}});btUpdate.setOnAction(e -> {try {writeAddress(raf.getFilePointer() - 2 * RECORD_SIZE); }catch (IOException ex) {}});}/** Write a record at the end of the file */public void writeAddress(long position) {try {raf.seek(position);FixedLengthStringIO.writeFixedLengthString(tfName.getText(), NAME_SIZE, raf);FixedLengthStringIO.writeFixedLengthString(tfStreet.getText(), STREET_SIZE, raf);FixedLengthStringIO.writeFixedLengthString(tfCity.getText(), CITY_SIZE, raf);FixedLengthStringIO.writeFixedLengthString(tfState.getText(), STATE_SIZE, raf);FixedLengthStringIO.writeFixedLengthString(tfZip.getText(), ZIP_SIZE, raf);}catch (IOException ex) {ex.printStackTrace();}}/** Read a record at the specified position */public void readAddress(long position) throws IOException {raf.seek(position);String name = FixedLengthStringIO.readFixedLengthString(NAME_SIZE, raf);String street = FixedLengthStringIO.readFixedLengthString(STREET_SIZE, raf);String city = FixedLengthStringIO.readFixedLengthString(CITY_SIZE, raf);String state = FixedLengthStringIO.readFixedLengthString(STATE_SIZE, raf);String zip = FixedLengthStringIO.readFixedLengthString(ZIP_SIZE, raf);tfName.setText(name);tfStreet.setText(street);tfCity.setText(city);tfState.setText(state);tfZip.setText(zip);}/*** 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 FixedLengthStringIO {/** Read fixed number of characters from a DataInput stream */ public static String readFixedLengthString(int size,DataInput in) throws IOException {// Declare an array of characterschar[] chars = new char[size];// Read fixed number of characters to the arrayfor (int i = 0; i < size; i++)chars[i] = in.readChar();return new String(chars);}/** Write fixed number of characters to a DataOutput stream */ public static void writeFixedLengthString(String s, int size,DataOutput out) throws IOException {char[] chars = new char[size];// Fill in string with characterss.getChars(0, s.length(), chars, 0);// Fill in blank characters in the rest of the arrayfor (int i = Math.min(s.length(), size); i < chars.length; i++) chars[i] = ' ';// Create and write a new string padded with blank charactersout.writeChars(new String(chars));}}17.10import java.io.*;public class Exercise17_10 {public static void main(String[] args) throws Exception {// Check usageif (args.length != 2) {System.out.println("Usage: java Exercise17_10 SourceFile numberOfPieces");System.exit(1);}try (BufferedInputStream input = new BufferedInputStream(new FileInputStream( new File(args[0])));) {int numberOfPieces = Integer.parseInt(args[1]);System.out.println("File size: " + input.available() + " bytes");long fileSize = input.available();int splitFileSize = (int)Math.ceil(1.0 * fileSize / numberOfPieces);for (int i = 1; i <= numberOfPieces; i++) {try (BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(new File(args[0] + "." + i)));) {int value;int count = 0;// What is wrong if these two conditions are placed in a different order?while (count++ < splitFileSize && (value = input.read()) != -1) { output.write(value);}}}}}}17.11import java.io.*;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.GridPane;import yout.HBox;import yout.VBox;import javafx.stage.Stage;public class Exercise17_11 extends Application {private TextField tfInputFile = new TextField();private TextField tfNumberOfFiles = new TextField();private Button btBrowse = new Button("Browse");private Button btStart = new Button("Start");@Overridepublic void start(Stage primaryStage) {GridPane gridPane = new GridPane();gridPane.add(new Label("Enter or choose a file: "), 0, 0);gridPane.add(tfInputFile, 1, 0);gridPane.add(new Label("Specify the number of smaller files: "), 0, 1); gridPane.add( tfNumberOfFiles, 1, 1);HBox hBox = new HBox(5);hBox.getChildren().add(btStart);hBox.setAlignment(Pos.CENTER);VBox vBox = new VBox(5);vBox.getChildren().addAll(new Label("If you split a file named temp.txt into 3 smaller files, \nthe three smaller files are temp.txt.1, temp.txt.2, and temp.txt.3."),gridPane, hBox);// Create a scene and place it in the stageScene scene = new Scene(vBox, 400, 120);primaryStage.setTitle("Exercise17_11"); // Set the stage titleprimaryStage.setScene(scene); // Place the scene in the stageprimaryStage.show(); // Display the stagebtStart.setOnAction(e -> {splitFile(tfInputFile.getText(),Integer.parseInt(tfNumberOfFiles.getText()));});}public void splitFile(String filename, int numberOfPieces) {try (BufferedInputStream input = new BufferedInputStream(new FileInputStream(new File(filename)));) {System.out.println("File size: " + input.available() + " bytes");long fileSize = input.available();int splitFileSize = (int) Math.ceil(1.0 * fileSize / numberOfPieces);for (int i = 1; i <= numberOfPieces; i++) {try (BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(new File(filename + "." + i)));) {int value;int count = 0;// What is wrong if these two conditions are placed in a different// order?while (count++ < splitFileSize && (value = input.read()) != -1) { output.write(value);}}}} catch (IOException 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);}}17.12import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;public class Exercise17_12 {public static void main(String[] args) throws Exception {// Check usageif (args.length < 2) {System.out.println("Usage: java Exercise17_12 SourceFile1 ... SoureFilen TargetFile"); System.exit(1);}try (// The last file TargetFile is for outputBufferedOutputStream output = new BufferedOutputStream( new FileOutputStream(new File(args[args.length - 1]))); ) {for (int i = 0; i < args.length - 1; i++) {try (BufferedInputStream input = new BufferedInputStream( new FileInputStream(new File(args[i])));) {int value;while ((value = input.read()) != -1) {output.write(value);}}}}}}17.13import java.io.*;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.GridPane;import yout.HBox;import yout.VBox;import javafx.stage.Stage;public class Exercise17_13 extends Application {private TextField tfInputFile = new TextField();private TextField tfNumberOfFiles = new TextField();private Button btBrowse = new Button("Browse");private Button btStart = new Button("Start");@Overridepublic void start(Stage primaryStage) {GridPane gridPane = new GridPane();gridPane.add(new Label("Enter or choose a file: "), 0, 0);gridPane.add(tfInputFile, 1, 0);gridPane.add(new Label("Specify the number of smaller files: "), 0, 1); gridPane.add( tfNumberOfFiles, 1, 1);HBox hBox = new HBox(5);hBox.getChildren().add(btStart);hBox.setAlignment(Pos.CENTER);VBox vBox = new VBox(5);vBox.getChildren().addAll(new Label("If the base file is named temp.txt with three pieces, \ntemp.txt.1, temp.txt.2, and temp.txt.3 are combined into temp.txt."),gridPane, hBox);// Create a scene and place it in the stageScene scene = new Scene(vBox, 400, 120);primaryStage.setTitle("Exercise17_13"); // Set the stage titleprimaryStage.setScene(scene); // Place the scene in the stageprimaryStage.show(); // Display the stagebtStart.setOnAction(e -> {joinFile(tfInputFile.getText(),Integer.parseInt(tfNumberOfFiles.getText()));});}public void joinFile(String filename, int numberOfPieces) {try (// The last file TargetFile is for outputBufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(new File(filename)));) {for (int i = 1; i <= numberOfPieces; i++) {try (BufferedInputStream input = new BufferedInputStream(new FileInputStream(new File(filename + "." + i)));) {int value;while ((value = input.read()) != -1) {output.write(value);}}}}catch (IOException 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);}}17.14import java.util.Scanner;import java.io.*;public class Exercise17_14 {public static void main(String[] args) throws Exception {Scanner input = new Scanner(System.in);System.out.print("Enter a file to encrypt: ");File inputFile = new File(input.nextLine());System.out.print("Enter the output file: ");File outputFile = new File(input.nextLine());try (BufferedInputStream in = new BufferedInputStream(new FileInputStream(inputFile));BufferedOutputStream output = new BufferedOutputStream( new FileOutputStream(outputFile));) {int value;while ((value = in.read()) != -1) {output.write(value + 5);}}}}17.15import java.util.Scanner;import java.io.*;public class Exercise17_15 {public static void main(String[] args) throws Exception {Scanner input = new Scanner(System.in);System.out.print("Enter an encrypted file: ");File inputFile = new File(input.nextLine());System.out.print("Enter the output file: ");File outputFile = new File(input.nextLine());try (BufferedInputStream in = new BufferedInputStream( new FileInputStream(inputFile));BufferedOutputStream output = new BufferedOutputStream( new FileOutputStream(outputFile));) {int value;while ((value = in.read()) != -1) {output.write(value - 5);}}}}17.16import java.io.*;import java.util.Scanner;public class Exercise17_16 {public static void main(String[] args) throws Exception {Scanner input = new Scanner(System.in);System.out.print("Enter a filename: ");String filename = input.nextLine();int[] counts = new int[128];try (BufferedInputStream fileInput = new BufferedInputStream( new FileInputStream(new File(filename)));) {int r;while ((r = fileInput.read()) != -1 ) {counts[(byte)r]++;}}System.out.printf("%15s%15s\n", "ASCII Code", "Counts");for (int i = 0; i < counts.length; i++)if (counts[i] != 0)System.out.printf("%15d%15d\n", i, counts[i]);}}17.17import java.io.*;public class Exercise17_17 {public static void main(String[] args) throws Exception {BitOutputStream output = new BitOutputStream(newFile("Exercise17_17.dat"));output.writeBit("010000100100001001101");output.close();System.out.println("Done");}public static class BitOutputStream {private FileOutputStream output;private int value;private int count = 0;private int mask = 1; // The bits are all zeros except the last onepublic BitOutputStream(File file) throws IOException {output = new FileOutputStream(file);}public void writeBit(char bit) throws IOException {count++;value = value << 1;if (bit == '1')value = value | mask;if (count == 8) {output.write(value);count = 0;}}public void writeBit(String bitString) throws IOException {for (int i = 0; i < bitString.length(); i++)writeBit(bitString.charAt(i));}/** Write the last byte and close the stream. If the last byte is not full, right-shfit with zeros */public void close() throws IOException {if (count > 0) {value = value << (8 - count);output.write(value);}output.close();}}}17.18import java.io.*;import java.util.Scanner;public class Exercise17_18 {public static void main(String[] args) throws IOException {Scanner input = new Scanner(System.in);System.out.print("Enter a file name: ");String filename = input.nextLine();FileInputStream in = new FileInputStream(filename);int value;while ((value = in.read()) != -1) {System.out.print(getBits(value));}in.close();}public static String getBits(int value) {String result = "";int mask = 1;for (int i = 7; i >= 0; i--) {int temp = value >> i;int bit = temp & mask;result = result + bit;}return result;}}17.19import java.io.*;import java.util.Scanner;public class Exercise17_19 {public static void main(String[] args) throws IOException { Scanner input = new Scanner(System.in);System.out.print("Enter a file name: ");String filename = input.nextLine();FileInputStream in = new FileInputStream(filename);int value;while ((value = in.read()) != -1) {System.out.print(getHex(getBits(value)));}}/** Convert the 8-bit string to a 2-digit hex number */ public static String getHex(String bitString) {// Get the first half hex numberint value = (bitString.charAt(0) - '0') * 8 +(bitString.charAt(1) - '0') * 4 +(bitString.charAt(2) - '0') * 2 +(bitString.charAt(3) - '0') * 1;String result = "" + toHexChar(value);// Get the second half hex numbervalue = (bitString.charAt(4) - '0') * 8 +(bitString.charAt(5) - '0') * 4 +(bitString.charAt(6) - '0') * 2 +(bitString.charAt(7) - '0') * 1;return result + toHexChar(value);}/** Convert an integer to a single hex digit in a character */ public static char toHexChar(int hexValue) {if (hexValue <= 9 && hexValue >= 0)return (char)(hexValue + '0');else// hexValue <= 15 && hexValue >= 10return (char)(hexValue - 10 + 'A');}public static String getBits(int value) {String result = "";int mask = 1;for (int i = 7; i >= 0; i--) {int temp = value >> i;int bit = temp & mask;result = result + bit;}return result;}}17.20import java.io.*;import javafx.application.Application;import javafx.geometry.Pos;import javafx.scene.Scene;import javafx.scene.control.Button;import bel;import javafx.scene.control.ScrollPane;import javafx.scene.control.TextArea;import javafx.scene.control.TextField;import yout.BorderPane;import javafx.stage.Stage;public class Exercise17_20 extends Application {private TextField tfFilename = new TextField();private Button btSave = new Button("Save the change");private TextArea taBits = new TextArea();public void start(Stage primaryStage) {BorderPane pane1 = new BorderPane();pane1.setLeft(new Label("Enter a file: "));pane1.setCenter(tfFilename);BorderPane pane = new BorderPane();pane.setTop(pane1);pane.setCenter(new ScrollPane(taBits));pane.setBottom(btSave);BorderPane.setAlignment(btSave, Pos.CENTER);// Create a scene and place it in the stageScene scene = new Scene(pane, 400, 120);primaryStage.setTitle("Exercise17_20"); // Set the stage title primaryStage.setScene(scene); // Place the scene in the stage primaryStage.show(); // Display the stagetaBits.setWrapText(true);tfFilename.setOnAction(e -> {try {FileInputStream in = newFileInputStream(tfFilename.getText().trim());String s = "";int value;while ((value = in.read()) != -1) {s += getBits(value);}in.close();taBits.setText(s);}catch (IOException ex) {ex.printStackTrace();}});btSave.setOnAction(e -> {try {BitOutputStream output = new BitOutputStream(newFile(tfFilename.getText().trim()));output.writeBit(taBits.getText().trim());output.close();}catch (IOException ex) {ex.printStackTrace();}});}public static String getBits(int value) {String result = "";int mask = 1;for (int i = 7; i >= 0; i--) {int temp = value >> i;int bit = temp & mask;result = result + bit;}return result;}public static class BitOutputStream {private FileOutputStream output;private int value;private int count = 0;private int mask = 1; // The bits are all zeros except the last onepublic BitOutputStream(File file) throws IOException {output = new FileOutputStream(file);}public void writeBit(char bit) throws IOException {count++;value = value << 1;if (bit == '1')value = value | mask;if (count == 8) {output.write(value);count = 0;}}public void writeBit(String bitString) throws IOException {for (int i = 0; i < bitString.length(); i++)writeBit(bitString.charAt(i));}/** Write the last byte and close the stream. If the last byte is not full, right-shfit with zeros */public void close() throws IOException {if (count > 0) {value = value << (8 - count);output.write(value);}output.close();}}/*** 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);}}17.21import java.io.*;import javafx.application.Application;import javafx.geometry.Pos;import javafx.scene.Scene;import javafx.scene.control.Button;import bel;import javafx.scene.control.ScrollPane;import javafx.scene.control.TextArea;import javafx.scene.control.TextField;import yout.BorderPane;import javafx.stage.Stage;public class Exercise17_21 extends Application {private TextField tfFilename = new TextField();private Button btSave = new Button("Save the change");private TextArea taBits = new TextArea();public void start(Stage primaryStage) {BorderPane pane1 = new BorderPane();pane1.setLeft(new Label("Enter a file: "));pane1.setCenter(tfFilename);BorderPane pane = new BorderPane();pane.setTop(pane1);pane.setCenter(new ScrollPane(taBits));pane.setBottom(btSave);BorderPane.setAlignment(btSave, Pos.CENTER);// Create a scene and place it in the stageScene scene = new Scene(pane, 400, 120);primaryStage.setTitle("Exercise17_21"); // Set the stage title primaryStage.setScene(scene); // Place the scene in the stage primaryStage.show(); // Display the stagetaBits.setWrapText(true);tfFilename.setOnAction(e -> {try {FileInputStream in = newFileInputStream(tfFilename.getText().trim());String s = "";int value;while ((value = in.read()) != -1) {s += getHex(getBits(value));}in.close();taBits.setText(s);}catch (IOException ex) {ex.printStackTrace();}});btSave.setOnAction(e -> {try {BitOutputStream output = new BitOutputStream(newFile(tfFilename.getText().trim()));output.writeBit(toBits(taBits.getText().trim()));output.close();}。

相关文档
最新文档