Tải bản đầy đủ (.pdf) (73 trang)

Bài tập lập trình hướng đối tượng trong java

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.97 MB, 73 trang )

Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 1

Khối: Đại Học Và Cao Đẳng
Năm 2013


Hướng dẫn:


Bài tập thực hành được chia theo Module


Mỗi Module được thiết kế cho thời lượng là 3

12 tiết thực hành tại lớp
với sự hướng dẫn của giảng viên.


Tùy theo số tiết phân bổ, mỗi tuần học có thể thực hiện nhiều Module.


Sinh viên phải làm tất cả các bài tập trong các Module ở tuần tương ứng.
Những sinh viên chưa hòan tất phần bài tập tại lớp có trách nhiệm tự làm
tiếp tục ở nhà.


Các bài có dấu (*) là các bài tập nâng cao dành cho sinh viên khá giỏi.
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 2




MỤC LỤC
Module 1: Program and Statement 3

Module 2: Objects and Primitive data 22

Module 3: Writing Class 29

Module 4: Enhancing Class 38

Module 5: Array and Collections 43

Module 6: Inheritance 48

Module 7: Exception – IO Stream 51

Module 8: Graphic User Interface 54

Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 3

Module 1: Program and Statement
Nội dung kiến thức thực hành:
+ Sử dụng JDK để biên dịch và thực thi chương trình.
+ Sử dụng Eclipse để soạn thảo, biên dịch và thực thi chương trình.
+ Khai báo và sử dụng biến, đối tượng.
+ Sử dụng các cấu trúc điều khiển.
+ Nhận dữ liệu từ đối số hàm main.



Bài tập 1:

Mục đích:
- Download và cài đặt được JDK.
Yêu cầu:
- Hãy tải và cài đặt JDK
Hướng dẫn:
Để biên dịch được các source code Java, máy tính của chúng ta phải có máy Ảo Java
Để có được máy Ảo Java các bạn vào link bên dưới để download bộ JDK

Sau khi click vào đường link bên trên, danh mục JAVA Kit sẽ hiển thị như hình bên dưới:

Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 4

chọn JDK để Download, sau khi click chọn Download thì một màn hình mới sẽ được hiển thị ra,
trong màn hình mới này tùy vào cấu hình của máy tính mà chúng ta chọn tập tin Download cho
hợp lý.

Giả sử rằng máy tính của bạn 32bits, bạn sẽ chọn Windows x86 để load. Sau khi load và cài đặt
thành công bạn vào Control Panel để kiểm tra xem máy ảo Java đã được cài đặt vào máy hay
chưa. Nếu có biểu tượng Java như hình bên dưới thì coi như bạn đã cài đặt thành công:



Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 5



Bài tập 2:

Mục đích:

- Thiết lập được biến môi trường để chạy java ở cơ chế command-line.
Yêu cầu:

- Hãy thiết lập biến môi trường để chạy được java ở cơ chế command -line
Hướng dẫn:


1. Bấm chuột phải vào biểu tượng Computer/ chọn Properties

2. Một cửa sổ mới hiện lên, chúng ta chọn Advanced System Settings
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 6


3. Cửa sổ System Properties sẽ hiển thị ra, chúng ta vào tab Advanced, click chọn button
Environment Variables…Cửa sổ Environment variables sẽ hiển thị như hình bên dưới:

4. Trong mục System variables, click chọn button New.

Mục Variable name, chúng ta nhập vào biến JAVA_HOME
Mục Variable value, chúng ta copy đường dẫn cài đặt JDK vào đây, trong ví dụ này thì JDK
được cài đặt như hình minh họa. Tức là nếu máy của bạn cài JDK ở đâu thì copy paste đường
dẫn đó vào mục này.
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 7



Sau khi chọn OK, bạn quan sát trong vùng System Variables, biến JAVA_HOME và giá trị của
nó sẽ xuất hiện như hình minh họa bên dưới:

Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 8

5. Bước tiếp theo, các bạn tìm tới biến Path trong mục System variables, click chọn Edit:

Trong mục Variable value, các bạn di chuyển tới cuối, nhập vào các giá trị như hình minh họa :
;%JAVA_HOME%\bin;.;

6. Kiểm tra lại cấu hình có chính xác hay không:
Để kiểm tra xem máy tính của bạn đang cài JDK version bao nhiêu, vào Start/ Run. Hoặc gõ tổ
hợp phím Windows+R để hiển thị cửa sổ Run, trong cửa sổ này các bạn gõ vào lệnh cmd rồi
nhấn phím Enter.


Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 9

Gõ java –version để kiểm tra JDK version.
Gõ javac –version để kiểm tra javac version.


Bài tập 3:


Mục đích:
- Viết được chương trình Java bằng notepad và biên dịch bằng command - line

Yêu cầu:

1. Đánh đoạn code sau sử dụng Notepad:

class Welcome
{
public static void main(String []arg)

{
System.out.println("\nMy first Java Program");
}
}

2. Chọn menu File

Save As và đánh tên file ‘Welcome.java’ (giống tên của class)
3. Chọn Start

Run và đánh lệnh ‘cmd’ vào trong hộp thoại Run
4. Click vào button OK để cửa sổ command prompt xuất hiện. Thay đổi đường dẫn thư mục
lưu file trong bước 3.
5. Biên dịch chương trình sử dụng lệnh ‘javac’
6. Chạy chương trình sử dụng ‘java’

Hướng dẫn:

Bài tập 4:

Mục đích:


- Sử dụng được Eclipse
-
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 10

Yêu cầu:

1.Khởi động Eclipse
Sau khi download và giải nén, các bạn khởi động Eclipse sẽ có giao diện như hình bên dưới:



Để thiết lập Perspective: Vào menu Window / Open Perspective / chọn Other…

Trong cửa sổ Open Perspective các bạn chọn Java sau đó nhấn nút OK.
- Cách tạo Java Project:
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 11


-Vào menu File / New / Java Project

Trong mục Project name của cửa sổ New Java Project: Bạn nhập tên project vào mục này,
sau đó nhấn Finish.
Bây giờ ta tiến hành tạo 1 class tên là HelloTeo113. Các bạn bấm chuột phải vào Project / New/
chọn Class (xem hình minh họa bên dưới).
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 12



Cửa sổ New Java Class sẽ xuất hiện như bên dưới:



Nhấn Finish để tạo Class.
Các bạn quan sát trong hàm main, ở đây Ta viết dòng lệnh:
System.out.println("HI I'm Teo 113");
Hàm này có tác dụng xuất dữ liệu ra màn hình trên những dòng khác nhau.
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 13


Để biên dịch và thực thi chương trình, ta vào menu Run/Run (hoặc nhấn tổ hợp phím Ctrl+ F11)

Sau khi chọn Run, các bạn quan sát cửa sổ Console ở bên dưới, kết quả sẽ được hiển thị ra như
hình minh họa.

- Chú ý: Nếu như trong Project của bạn có chứa Font chữ tiếng việt thì nhớ cấu hình dạng
UTF-8

Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 14

Từ menu Project/ chọn Properties (xem hình minh họa bên trên). Sau khi chọn Properties thì cửa
sổ Properties for test sẽ hiển thị ra (ở đây test là tên Project). Các bạn chọn Resource/ chọn
UTF-8 như hình bên dưới, sau đó chọn OK để thiết lập cấu hình.


Mặc định mỗi một Project, Eclipse thiết lập mặc định “Build Automatically”, Nếu trong có trình
biên dịch mà xuất hiện những lỗi mà chúng ta không hiểu biết nguyên nhân vì sao thì ta có thể

vào menu Project/ Clean

Cửa sổ Clean sẽ xuất hiện như hình bên dưới, nếu muốn clean toàn bộ Project thì bạn chọn
“Clean all projects”, còn nếu muốn chỉ clean những project riêng lẻ thì bạn chọn “clean projects
selected below”. Nhấn OK để tiến hành Clean.
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 15


Các bạn để ý rằng, nếu như muốn tự mình Build Project thì hãy unchecked “Build
Automatically”. Lúc này các mục Build All, Build Project…sẽ được hiển thị cho phép chúng ta
chọn lựa chúng.


Một số editing template hay dùng:
Gõ sysout sau đó nhấn Ctrl-Spacebar sẽ cho System.out.println();
Gõ main sau đó nhấn Ctrl-Spacebar sẽ cho public static void main(String[] args) {}
….Để tìm hiểu thêm, vào menu Window->Reference
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 16



Các phím tắt hay dùng: Trong Eclipse, vào menu Help->Key Assitst hoặc nhấn tổ hợp
Ctrl-Shift-L để hiển thị.
1. Thực thi chương trình:
Nhấn chuộ phải lên lớp cần chạy, chọn menu Run As-> Java Application.


2. Mở Project trong Eclipse

Eclipse không hỗ trợ mở project trực tiếp nên bạn không có kiểu “double-click-for –
open” thường thấy, mà bạn phải import project vào workspace như sau:
Vào menu File->Import rồi chọn như hình

Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 17

Nhấn Next. Sau đó nhấn nút Browse để tìm đến thư mục chứa project.

Chọn Project cần import rồi nhấn Finish

3. Export file jar tự chạy(executable jar file) trong eclipse
Nhấn chuột phải lên Project cần export, chọn Export.

Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 18

Chọn Runnable JAR file như hình. Nhấn Next

Chọn Lauch configuration. Chọn thư mục chứa cũng như tên file jar. Nhấn Finish.
Thực thi jar file dưới dạng command-line:


Nếu Project của bạn ở cơ chế GUI thì bạn có thể mở file jar của bạn bằng Java Plaform
SE library như hình.



Hướng dẫn:


Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 19

Bài tập 5:

Mục đích:

- Thao tác với toán tử trong Java.
Yêu cầu:
import java.util.*;
public class MathOps {
//method to print a string and an int
static void printInt(String s, int i) {
System.out.println(s + " = " + i);
}
//method to print a string and a float
static void printFloat(String s, float f) {
System.out.println(s + " = " + f);
}
public static void main(String[] args) {
Random random = new Random();
int i, j, k;
//Choose value from 1 to 100
j = random.nextInt (100) + 1;
k = random.nextInt (100) + 1;
printInt("j", j);
printInt("k" , k);
i = j + k; printInt("j + k", i);
i = j - k; printInt("j - k", i);
i = j/ k; printInt("j/k", i);

i = j * k; printInt("j * k", i);
i = j % k; printInt("j % k", i);
j %= k; printInt("j %= k" , j);
// Floating-point number tetts
float u, v, w; // also applies to doubles
v = random.nextFloat ();
w = random.nextFloat ();
printFloat("v", v);
printFloat("w", w);
u = v + w; printFloat("v + w", u); // contd…
u = v - w; printFloat("v - w", u);
u = v * w; printFloat("v * w", u);
u = v / w; printFloat("v/w", u);
//The following also works for char, byte, short, int, long, and double
u += v; printFloat("u += v", u);
u -= v; printFloat("u -= v", u);
u *= v; printFloat("u *= v", u);
u /= v; printFloat("u /= v", u);
}
}
Kết quả được xuất ra là gì? Giải thích các toán tử trên.
Hướng dẫn:
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 20

Bài tập 6:

Mục đích:

- Thao tác với toán tử tự động tăng giảm

Yêu cầu:

public class AutoInc_DecOps {
public static void main(String[] args) {
int i = 1;
System.out.println("i : " + i);
System.out.println("++i : " + ++i); // Pre-increment
System.out.println("i++ : " + i++); // Post-increment
System.out.println("i : " + i);
System.out.println(" i : " + i); // Pre-decrement
System.out.println("i : " + i ); // Post-decrement
System.out.println("i : " + i);
}

}

Kết quả được xuất ra là gì? Giải thích.

Hướng dẫn:

Bài tập 7:

Mục đích:

- Thao tác với toán tử logic
Yêu cầu:

import java.util.*;
public class Rel_LogOps {
public static void main(String[] args) {

Random random = new Random();
int i = random.nextInt (100);
int j = random.nextInt (100);
// Using Relational Operators
System.out.println("i = " + i);
System.out.println("j = " + j);
System.out.println("i > j is " + (i > j));
System.out.println("i < j is " + (i < j));
System.out.println("i >= j is " + (i >= j));
System.out.println("i <= j is " + (i <= j));
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 21

System.out.println("i == j is " + (i == j));
System.out.println("i != j is " + (i != j));
//Using Logical Operators
System.out.println("(i < 10) && (j<10) is " +
((i<10)&&(j<10)) );
System.out.println("(i < 10) || (j<10) is " +
((i<10)||(j<10)) );
}
}
Kết quả được xuất ra là gì? Giải thích
Hướng dẫn:

Bài tập 8:

Mục đích:

- Ôn luyện lại cấu trúc điều khiển

Yêu cầu:

a) Viết chương trình in ra tổng của 10 số chẵn đầu tiên (sử dụng vòng lặp for hoặc while)
b) Viết chương trình in ra những số lẻ từ 1 đến 99.
c) Viết chương trình xuất ra tổng các số là bội số của 7 (từ 1 đến 100)
d) Viết chương trình in ra tổng 1+2+3….+n với n được nhập từ tham số command line
e) Viết chương trình in ra tổng 1+3+5….+n nếu n là số chẳn, 2+4+6+….n nếu n là số lẻ.
Giá trị n được nhập vào từ tham số command line
f) Viết chương trình in ra giá trị lớn nhất và nhỏ nhất trong một dãy các giá trị user đã nhập
vào từ tham số command line.
g) Viết chương trình giải phương trình bậc 1 với hệ số a, b được nhập vào bởi user từ tham
số command line.
h) Viết chương trình đọc một giá trị nguyên từ bàn phím và in ra số đó là số chẵn, lẻ hoặc
zero
i) Viết chương trình in ra bội số của 3 từ 300 đến 3
j) Viết chương trình in ra số lần kí tự „a‟ xuất hiện trong một chuỗi.
k) Vẽ các hình bên dưới:

Hướng dẫn:
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 22

Module 2: Objects and Primitive data
Nội dung kiến thức thực hành:
- Dùng lớp Scanner để nhập dữ liệu
- Sử dụng lớp Math
- Sử dụng lớp String, lớp Character
- Viết hàm (method)
- Viết hàm overload
Bài tập 1:


Mục đích:

- Sử dụng lớp Scanner để nhập
số.

- Định dạng
xuất.

- Sử dụng lớp
Math.

Yêu cầu:
Viết chương trình tính thể tích và diện tích bề mặt của một hình cầu với bán kính r nhập vào
(r>=0). Kết quả chỉ cần lấy 4 chữ số thập phân. Công thức tính:
Thể tích =

Diện tích bề mặt =
4PI*r
2

HD: Dùng lớp
DecialFormat
để định dạng kết quả với 4 chữ số thập phân:
DecialFormat
df = new
DecialFormat
("0.####");

Hướng dẫn:


Bài tập 2:

Mục đích:

Yêu cầu:

Viết chương trình cho nhập vào kích thước 3 cạnh a, b, c của một tam giác. Tính và
xuất diện tích của tam giác, sử dụng công thức Heron. Trước khi tính phải kiểm tra xem 3
số a, b, c có lập thành một tam giác không (a, b, c lập thành tam giác khi tổng 2 số bất kỳ
luôn lớn hơn số còn lại).
HD: Diện tích = , biết s bằng 1/2 chu vi tam giác.
Hướng dẫn:
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 23

Bài tập 3:

Mục đích:

Yêu cầu:

Viết chương trình tính khoảng cách giữa 2 điểm có tọa độ (x
1
,y
1
) và (x
2
,y
2

), biết công thức để
tính khoảng cách là: distance =
Hướng dẫn:

Bài tập 4:

Mục đích:

+ Nhập chuỗi.
+ Lấy từng kí tự trong chuỗi.
Yêu cầu:
Viết chương trình cho nhập một chuỗi và in ra các ký tự trong chuỗi đó ra màn hình,
mỗi ký tự trên một dòng.
HD: dùng hàm charAt(int)

Hướng dẫn:

Bài tập 5:

Mục đích:

Yêu cầu:
Viết chương trình cho nhập một chuỗi và đếm số khoảng trắng có trong chuỗi đó.
HD: dùng hàm
isSpace(char)
của lớp
Character
để kiểm tra
khoảng
trắng.

Hướng dẫn:

Bài tập 6:

Mục đích:

Yêu cầu:
Viết chương trình cho nhập một chuỗi và in ra các ký tự chữ cái (a-z hoặc A-Z) có trong
chuỗi.
HD: dùng hàm
isLetter(char)
của lớp
Character
để kiểm tra chữ cái.
Hướng dẫn:
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 24

Bài tập 7:

Mục đích:
- So sánh 2 chuỗi
Yêu cầu:
Viết chương trình cho nhập vào hai chuỗi, kiểm tra xem hai chuỗi có bằng nhau không,
không phân biệt chữ hoa chữ thường.

Hướng dẫn:

Bài tập 8:


Mục đích:
- Nối chuỗi
Yêu cầu:
Viết chương trình cho nhập một chuỗi và một số nguyên n. Chương trình in ra một chuỗi
mới là chuỗi được ghép từ n lần chuỗi đã nhập. Nếu n<2 thì xuất ra chuỗi gốc. Ví dụ nhập “hi”
và 4, kết quả xuất ra “hihihihi”.
Hướng dẫn:

Bài tập 9:

Mục đích:
- Tách chuỗi
Yêu cầu:
Viết chương trình cho nhập vào một chuỗi, tách chuỗi này thành các chuỗi con dựa
vào khoảng trắng, xuất kết quả thành từng dòng.
Ví dụ: nhập s = Xin Chao ban!
Xuất kết quả:
Xin
Chao
ban!
Hướng dẫn:

Bài tập 10 :

Mục đích:
- Viết hàm
Yêu cầu:
Đại Học Công Nghệ Đồng Nai Khoa Công Nghệ Thông Tin
Trang 25


(i) Viết một hàm có tên square, hàm có 1 tham số x kiểu số thực. Hàm này tính toán và
trả về bình phương của x.
(ii) Đưa hàm trên vào một chương trình và nó được gọi thực hiện bởi hàm main. Test
hàm vừa viết bằng cách thực hiện vài lần, mỗi lần với các giá trị truyền khác nhau.

Hướng dẫn:


Bài tập 11:

Mục đích:

Yêu cầu:
Viết chương trình trong đó có một hàm sẽ nhận một tham số nguyên, hàm trả về giá trị
false nếu số đó là số chẵn, ngược lại trả về giá trị true.
Test hàm vừa viết bằng cách thực hiện vài lần, mỗi lần với các giá trị truyền khác nhau.

Hướng dẫn:
-
Bài tập 12:

Mục đích:

Yêu cầu:
Viết chương trình giải phương trình bậc hai ax
2
+ bx + c = 0, viết hàm tính delta.
Hướng dẫn:

Bài tập 13:


Mục đích:

Yêu cầu:
Viết hàm alarm in ra các chuỗi “Alarm!”, mỗi chuỗi trên một dòng. Hàm alarm có
một tham số kiểu số nguyên biểu thị cho số dòng cần in, nếu số này nhỏ hơn 1 thì in ra câu
thông báo lỗi.
Test hàm vừa viết bằng cách thực hiện vài lần, mỗi lần với giá trị truyền khác nhau.
Hướng dẫn:

Bài tập 14:

Mục đích:
Yêu cầu:

×