您的位置:首页 > 编程语言 > Java开发

Java语言程序设计-基础篇-第八版-第五章

2013-01-27 19:46 369 查看
package chapter5方法;
//求最大公约数;
public class GreatestCommonDivisor {
public static void main(String[] args){
java.util.Scanner input = new java.util.Scanner(System.in);

System.out.print("Enter first integer: ");
int n1 = input.nextInt();
System.out.print("Enter second integer: ");
int n2 = input.nextInt();
System.out.println("The greatest common divisor for " + n1 +
" and " + n2 + " is " + gcd(n1, n2));
}

public static int gcd(int n1, int n2){
int gcd = 1;
int k = 2;
while(k <= n1 && k <= n2){
if (n1 % k == 0 && n2 % k ==0)   //能同时被n1和n2整除;
gcd = k;
k++;
}
return gcd;
}
}


package chapter5方法;

public class Increment {
public static void main(String[] args){
int x = 1;
System.out.println("Befre the call, x is " + x);
increment(x);
System.out.println("After the call, x is " + x);
}

public static void increment(int n) {
n++;
System.out.println("n inside the method is " + n);
}

}


package chapter5方法;

public class PrimeNumberMethod {
public static void main(String[] args){
System.out.println("The first 50 prime numbers are \n");
printPrimeNumbers(50);
}

public static void printPrimeNumbers(int numberOfPrimes){
final int NUMBER_OF_PRIMES_PER_LINE = 10;
int count = 0;
int number = 2;

while (count < numberOfPrimes) {
if (isPrime(number)) {
count++;
if (count % NUMBER_OF_PRIMES_PER_LINE == 0) {
System.out.printf("%-5s\n", number);
}
else
System.out.printf("%-5s", number);
}
number++;
}
}

public static boolean isPrime(int number){
for(int divisor = 2; divisor <= number /2; divisor++) {
if (number % divisor == 0){
return false;
}
}
return true;
}

}


package chapter5方法;

public class TestMax {
public static void main(String[] args){
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println("The maximum between " + i +
" and " + j + " is " + k);
}
public static int max(int num1, int num2){
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
}


package chapter5方法;

public class TestPassByValue {
public static void main(String[] args){
int num1 = 1;
int num2 = 2;
System.out.println("Before invoking the swap method, num1 is " +
num1 + " and num2 is " + num2);
swap(num1, num2);
System.out.println("After invoking the swap method, num1 is " +
num1 + " and num2 is " + num2);
}

public static void swap(int n1, int n2){
System.out.println("\tInside the swap method");
System.out.println("\t\tBefore swapping n1 is " +
n1 + " n2 is " + n2);

int temp = n1;
n1 = n2;
n2 = temp;

System.out.println("\t\tAfter swapping n1 is " +
n1 + " n2 is " + n2);
}
}


package chapter5方法;

public class TestReturnGradeMethod {
public static void main(String[]args){
System.out.print("The grade is " + getGrade(78.6));
System.out.print("\nThe grade is " + getGrade(59.8));
}

public static char getGrade(double score) {
if (score >= 90.0)
return 'A';
else if (score >= 80.0)
return 'B';
else if (score >= 70.0)
return 'C';
else if (score >= 60.0)
return 'D';
else
return 'F';
}

}


package chapter5方法;

public class TestViodMethod {
public static void main(String[] args){
System.out.print("The grade is ");
printGrade(78.5);

System.out.print("The grade is ");
printGrade(59.7);
}

public static void printGrade(double score) {
if (score >= 90.0){
System.out.println('A');
}
else if (score >= 80.0){
System.out.println('B');
}
else if (score >= 70.0){
System.out.println('C');
}
else if (score >= 60.0){
System.out.println('D');
}
else{
System.out.println('F');
}
}
}


package chapter5方法;
import java.util.*;//十进制转换为十六进制!
public class Decimal2HexConversion {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("Enter a decimal number: ");
int decimal = input.nextInt();

System.out.println("The hex number for decimal " +
decimal + " is " + decimalToHex(decimal));
}

public static String decimalToHex(int decimal) {
String hex = "";

while (decimal != 0) {
int hexValue = decimal % 16;
hex = toHexChar(hexValue) + hex;
decimal = decimal / 16;
}
return hex;
}

public static char toHexChar(int hexValue) {
if (hexValue <= 9 && hexValue >= 0)
return (char)(hexValue + '0');
else
return (char)(hexValue - 10 + 'A');
}
}


package chapter5方法;
import java.util.*;
public class PrintCalendar {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Eneter full year (e.g.,2001): ");
int year = input.nextInt();
System.out.print("Eneter nonth in number between 1 an 12: ");
int month = input.nextInt();

printMonth(year, month);
}

public static void printMonth(int year, int month){
printMonthTitle(year, month);
printMonthBody(year, month);
}

public static void printMonthTitle(int year, int month){
System.out.println("         " + getMonthName(month) + " " + year);
System.out.println("----------------------------");
System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
}

public static String getMonthName(int month){
String monthName = "";
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 = "Septemper"; break;
case 10:monthName = "October";break;
case 11:monthName = "November"; break;
case 12:monthName = "December";
}
return monthName;
}

public static void printMonthBody(int year, int month){
int startDay = getStartDay(year, month);
int numberOfDaysInMonth = getNumberOfDaysInMonth(year, month);

int i = 0;
for (i = 0; i < startDay; i++)
System.out.print("   ");

for (i = 1; i <= numberOfDaysInMonth; i++){
System.out.printf("%4d", i);
if ((i + startDay) % 7 == 0)
System.out.println();
}
System.out.println();
}

public static int getStartDay(int year, int month){
final int START_DAY_FOR_JAN_1_1800 = 3;
int totalNumberOfDays = getTotalNumberOfDays(year, month);
return (totalNumberOfDays + START_DAY_FOR_JAN_1_1800) % 7;
}

public static int getTotalNumberOfDays(int year, int month){
int total = 0;
for (int i = 1800; i < year; i++)
if(isLeapYear(i))
total = total + 366;
else
total = total + 365;

for (int i = 1; i < month; i++)
total = total + getNumberOfDaysInMonth(year, i);

return total;
}

public static int getNumberOfDaysInMonth(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) return isLeapYear(year) ? 29 : 28;
return 0;
}

public static boolean isLeapYear(int year){
return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
}
}


package chapter5方法;

public class RandomCharacter {
public static char getRandomCharacter(char ch1, char ch2){
return (char)(ch1 + Math.random() * (ch2 - ch1 + 1));
}

public static char getRandomLowerCaseLetter(){
return getRandomCharacter('a', 'z');
}
public static char getRandomUpperCaseLetter(){
return getRandomCharacter('A', 'Z');
}
public static char getRandomDigitCharacter(){
return getRandomCharacter('0', '9');
}
public static char getRandomCharcter(){
return getRandomCharacter('\u0000', '\uFFFF');
}

}


package chapter5方法;

public class TestMethodOverloading {
public static void main(String[] args){
System.out.println("The maximum between 3 and 4 is " + max(3, 4));
System.out.println("The maximun between 3.0 and 5.4 is " + max(3.0, 5.4));
System.out.println("The maximum between 3.0, 5.4, and 10.14 is " + max(3.0, 5.4, 10.14));
}

public static int max(int num1, int num2){
if (num1 > num2)
return num1;
else
return num2;
}
public static double max(double num1, double num2){
if (num1 > num2)
return num1;
else
return num2;
}

public static double max(double num1, double num2, double num3){
return max(max(num1, num2), num3);
}
}


package chapter5方法;

public class TestRandomCharacter {
public static void main(String args[]){
final int NUMBER_OF_CHARS = 50; //打印的字符数,循环次数;
final int CHARS_PER_LINE = 25;

for (int i = 0; i < NUMBER_OF_CHARS; i++){
char ch = RandomCharacter.getRandomLowerCaseLetter();
if ((i + 1) % CHARS_PER_LINE == 0)
System.out.println(ch); //打印并换行;
else
System.out.print(ch + " "); //打印不换行;

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: