2009年6月15日 星期一

Lab 29 : Hanoi Tower

The pseudocode for Hanoi Tower is as follows:

solve(N, Src, Aux, Dst)
if N is 0 return
solve(N-1, Src, Dst, Aux)
Move N from Src to Dst
solve(N-1, Aux, Src, Dst)


Write the Java program based on the pseudocode in the above.

Lab 28 : Factorial

Write a Java program that computes N! where N is a positive integer.

Hint:

public static long factorial(int n)


Lab 27 : Recursive method

Write a recursive method to compute Fibonacci series.

Hint:

1.
fib(n)=fib(n-1)+fib(n-2)

2.
public static long fib(int n)


2009年6月1日 星期一

Lab 26 : Modular Sorting

Write a sort method which takes a double array as parameter
and returns the sorted array. Call this method in a main program.

Hint: The lab is a rewriting of Lab Sorting
to make the sorting procedure a reusable method।

main Class:


Array Class:

Lab 25 : Array

Study Display 6।1, and then write a program that can sort numbers in ascending order.

2009年5月25日 星期一

Lab 24 : Static Method II

Define a Complex class with a static method for computing complex addition। Use (2+3i)*(4+5i) in your test.

main:


Complex Class:

Lab 23 : Magic Parking Tower

A parking tower is out of order someday. If you park a Benz, you will end up with a Torben. Write a program to simulate this scenario. First create a class called CarParked which has a static method called outOfOrder. Name an object called yourCar, which happens to be a Benz. Your program should contain a class called CarParked and a test program called CarParkedDemo which test the method by CarParked.outOfOrder(yourCar).

Hint: You may study Display 5.14 to get some ideas.

main:

CarParked Class:

2009年5月11日 星期一

Lab 23 : Static Method

Define a Complex class with a static method for computing complex addition। Use (2+3i)+(4+5i) in your test.

Lab 22 : Math methods

Compute the following mathematical functions.

Math.round(3.2)
Math.round(3.6)
Math.floor(3.2)
Math.floor(3.6)
Math.ceil(3.2)
Math.ceil(3.6)

Lab 21 : Finding the max of three numbers

Write a static method that computes the maximum of three float numbers।

2009年5月10日 星期日

Homework 10

Do Project 7 of Chapter 4।

main Class:





Temperature Class:




2009年5月4日 星期一

Lab 20 : Java Constructor

Write constructors in the lab Fraction Addition

main Class:



Fraction Class:

Lab 19 : Method Overloading

依據Class definition 3,修改程式使其接受三種setDatedate1।setDate(1,2,2008);date2.setDate("February",2, 2008);date3.setDate(2008);

main Class:

EqualsAndToString Class:



2009年5月3日 星期日

Homework 9

Do project 2 of Chapter 4.

強烈要求同學一定要親自動手做,鼓勵同學將理論與實作密切配合。
相信只要同學真正的努力用功,縱使資質稍差,應該都可以學到Java程式設計之知識

main Class:


Fraction Class:


2009年4月27日 星期一

Lab 18 : Class definition 3

Do Display 4.7 (3rd, 2nd ed.) or 4.5 (1st ed.). Then use Display 4.8 to call 4.7.

Question
In Display 4।7, if the method setDate has the parameter as setDate(int month, int day, int year), what kind of changes should be made in its body of codes?

main:


DateFourthTry Class:

Lab 19 : Lab ADT

Define a Complex class and write an object oriented program to compute (2+3i)+(4+5i) in Java.
The methods should include an access and a mutator।

main:

ADT Class:

2009年4月25日 星期六

Homework 8 : Fraction Multiplication

Write a program to implement a method that can multiply 2 fractions. You will implement a class called Fraction consisting of a numerator and a denominator. The multiplication of
2 fractions should be equal to a fraction.
Use 1/2 * 1/3 as the test.

Hints:
Fraction f1, f2;
f1।multiply(f2);

兩數相乘後利用輾轉相除法取分子、分母的最大公因數進行約分




1/2 * 1/3 = 1/6

8/7 * 3/4 = 6/7

2009年4月13日 星期一

Lab 17 : Fraction equality test

Write a program to implement a method that can check whether 2 fractions are equal. You will implement a class called Fraction consisting of a numerator and a denominator. The equality test of 2 fractions should return a boolean value.

Use the following as the tests.

* 1/2, 2/4
* 5/6, 6/7


Hints:
Fraction f1, f2;
f1.equals(f2);

Lab 16 : Fraction Addition

Write a program to implement a method that can do additions of 2 fractions. You will implement a class called Fraction consisting of a numerator and a denominator. The additions of
2 fractions should be equal to a fraction.
Use 1/2+1/3 as the test.

Hints:
Fraction f1, f2;
f1.add(f2);

2009年3月30日 星期一

Homework 7 : counter

Define a class called Counter whose objects count things. An object of this class records a count that is a nonnegative integer. Include methods to set the counter to 0, to increase the count by 1, and to decrease the count by 1. Include an accessor method that returns the current count value and a method that outputs the count to the screen. Write a program to test


counter.reset();
counter.inc();
counter.inc();
counter.dec();
counter.output();

Lab 15 : class definition 2

Study Display 4.4 (2nd ed. and 3rd ed.) or Display 4.2 & Display 4.3 (1st ed.) and then
1. Comment out date.setDate(6, 17, year); by
// date.setDate(6, 17, year);
2. At the next line below, add date.readInput();
3. Run the program again. Fix any problems you may encouter along the way
.
4. At the last line of your program, add System.out.println(date.mon
th);
and see what happens. Why?

因為month在DateThirdTry.java使用private的宣告,所以受到保護僅限在該Class使用。

Lab 14 : class definition

Study Display 4.1 and then do Self-Test Exercise 1.





2009年3月27日 星期五

Homework 6

Write a program to calculate average income by gender based on the following data, where F stands for female and M for male.

F 62,000
M 25,000
F 38,000
F 43,000
M 65,000
M 120,000
F 80,000
M 30,100

You should be able to allow users to type in a whole line such as F 80,000 followed by next line M 30,100।