Microsoft Word Tai Lieu Lap Trinh Huong Doi Tuong JAVA 2019 doc Tài liệu Thực hành Lập trình Hướng đối tượng Java Bộ môn Công nghệ Thông tin Trang 1 THỰC HÀNH TUẦN 1, 2, 3, 4, 5 GIỚI THIỆU CHUNG VỀ JA.
Trang 1THỰC HÀNH TUẦN 1, 2, 3, 4, 5
GIỚI THIỆU CHUNG VỀ JAVA
I Cài đặt Netbean
Yêu cầu hệ thống
Để cài đặt Netbeans IDE hệ thống cần những yêu cầu sau:
• Os : Windows 7 (32 bit hoặc 64 bit), Ubuntu 10 trở lên, Mac OS 10.7 trở lên
• CPU : Pentium IV trở lên
• Ram : Ít nhất 1GB
• Ổ đĩa trống: Ít nhất 1GB
Phần mềm cần thiết
Để cài đặt Netbeans IDE ta cần chuẩn bị:
Java SE Development Kit (JDK)
Netbeans IDE
Các bước cài đặt
Để cài đặt Netbeans IDE chúng ta cần làm theo các bước như sau:
Bước 1 : Ta cần cài đặt Java SE Development Kit(JDK) trước mới cài đặt được Netbeans
IDE Đầu tiên các bạn vào link download JDK ở phía trên để download JDK về máy Bạn
cần Accept License Agreement trước sau đó chọn bản cài đặt phù hợp với hệ thống máy của
mình
Bước 2: Sau khi download JDK bạn khởi chạy Java SE Development Kit lên nhấn Next để
tiếp tục
Bước 3: Để nguyên mặc định nhấn Next để tiếp tục
Bước 4: Quá trình cài đặt hiện ra bạn chờ 1 tí xíu để tiếp tục bước tiếp theo
Bước 5: Bạn để nguyên mặc định nhấn Next để tiếp tục
Bước 6: Bạn đợi quá trình cài đặt diễn ra
Bước 7: Cài đặt xong bạn nhấn Close để hoàn thành bước cài đặt JDK
Bước 8: Sau khi download Netbeans IDE Bạn khởi chạy Netbeans IDE để cài đặt nhấn Customize để vào phần tiếp theo hoặc nhấn Next để tiến tới bước 11
Trang 2Bước 9: Bạn nên chọn hết các phần lựa chọn sau đó nhấn OK để tiếp tục
Bước 10: Bạn nhấn Next để tiếp tục
Bước 11: Bạn chọn vào I accept the terms in the license agreement như hình sau đó nhấn Next để tiếp tục
Bước 12: Để mặc định nhấn Next để tiếp tục(3 lần)
Bước 13: Bạn nên chọn Check for Updates để NetBeans luôn được cập nhật phiên bản mới nhất sau đó nhấn Install để cài đặt
Bước 14: Quá trình cài đặt diễn ra bạn vui lòng chờ đợi
Bước 15: Nhấn Finish để kết thúc quá trình cài đặt
Bước 16: Khi cài đặt xong bạn khởi chạy Netbeans IDE lên nếu giao diện xuất hiện thì đã
Bước 3: Bạn chọn mục Advanced sau đó chọn Environment Variables
Bước 4: Bạn chọn New như trong hình
Bước 5: Bạn điền thông tin vào
• Variable name: JAVA_HOME
• Variable value: bạn điền đường dẫn file JDK lúc đầu bạn cài đặt thông thường sẽ là C:\Program File\Java\jdkxxx (xxx tương ứng với phiên bản mà bạn đã cài đặt)
• Sau đó bạn nhấn OK để hoàn thành
Trang 3II Chạy bài ví dụ “Hello.java”
a Mở chương trình Netbean IDE
b Tạo Project để quản lý các file thực thi
Bước 1: Vào File > New Project… hoặc phím tắt Ctrl + Shift + N
Bước 2: Chọn loại Project(ở đây chọn Java Class Library)
Trang 4Bước 3:
- Đặt tên Project
- Chọn thư mục chứa Project
Bước 4: Tạo lớp Hello.java
Chuột phải lên Project vừa tạo, chọn như hình
Form mới xuất hiện yêu cầu nhập tên Class cần tạo
Trang 5c Các bước thực hiện viết chương trình Java
- Tạo Project chứa các class
Trang 6Tại lớp Java cần chạy, chuột phải chọn Run File hoặc nhấn tổ hợp phím Shift + F6 để
chạy chương trình
III Bài tập:
1 Viết chương trình định dạng số thập phân
Mã nguồn tham khảo
import java.text.DecimalFormat;
public class DecimalFormat3 {
public static void main(String args[])
Với cách này nên viết riêng class ThuVien để thuận tiện sử dụng nhiều lần hơn
Mã nguồn tham khảo:
Trang 7Khi muốn sử dụng, ta chỉ cần gọi:
int a = ThuVien.getInt(“Nhap chieu dai:”);
2 Viết chương trình giải phương trình bậc 2
Bước 2: Nếu a ≠ 0 thì
Bước 2.1: Tính delta = b2 - 4ac
Bước 2.2:
Nếu delta <0 thì vô nghiệm
Nếu delta = 0 thì có 1 nghiệm x = -b/2/a
Nếu delta > 0 thì có hai nghiệm phân biệt
Trang 8public class PhuongTrinhBacHaii {
public static void main(String[] args) {
//Tao cac bien de giai phuong trinh bac 2
float a, b, c, x1, x2, del;
//Tao doi tuong Scanner de nhap du lieu
Scanner input = new Scanner(System.in);
}
}
}
Trang 9- Đầu vào : Chiều dài và chiều rộng
- Đầu ra : Chu vi và diện tích hình chữ nhật
- Phương pháp :
o Công thức tính chu vi hình chữ nhật : (chiều dài + chiều rộng) x 2
o Công thức tính diện tích hình chữ nhật : chiều dài x chiều rộng
4 Viết chương trình nhập vào 3 số được nhập vào có phải là 3 cạnh tam giác? Nếu đúng là 3 cạnh tam giác, cho biết tam giác loại gì? Vuông, cân, đều, thường?
5 Viết chương trình tính tổng các số chẵn từ 2 đến N(nguyên dương nhập từ bàn phím)
9 Viết chương trình in ra dãy số Fibonaci là dãy số tự nhiên có số sau bằng tổng
2 số đi liền trước nó: 0,1,1,2,3,5,8,13 cho đến n
10 Viết hàm tinhDTBC nhận đối số là một mảng số thực các điểm số từ 0 đến 10 Tính và trả về điểm trung bình của các điểm số Nếu có điểm số không hợp lệ thì hàm trả về giá trị -1 Viết chương trình để gọi hàm này trong hàm main và với một mảng điểm khai báo và khởi gán sẵn, in ra số liệu mảng và kết quả gọi hàm
import java.io.*;
import java.util.*;
class MangSoNguyen {
public static void main(String[] args) {
// khoi tao mang so nguyen gom 10 phan tu
int[] array_int = new int[10];
// khoi tao cac gia tri ngau nhien cho mang so nguyen
for (int i = 0; i < array_int.length; i++)
array_int[i] = (int) (Math.random()*50);
//tinh tong cac so nguyen ngau nhien trong mang
int sum=0;
Trang 10for (int i = 0; i < array_int.length; i++)
sum+=array_int[i];
// hien thi ket qua
for (int i = 0; i < array_int.length; i++)
System.out.println("So thu " + i+ " la:" + array_int[i]);
System.out.println(" Tong 10 so nguyen ngau nhien la : " + sum);
18 Viết chương trình thực hiện các thao tác sau đối với một chuỗi cho trước:
“Write a Java program very easily”
- Đếm số lượng ký tự a có trong chuỗi
- Kiểm tra chuỗi có chứa từ “Java”
- Kiểm tra chuỗi có bằng đầu bằng từ “Write””
- Kiểm tra chuỗi có kết thúc bằng từ “easily”
19 Viết chương trình cho nhập vào 1 chuỗi và in ra chuỗi đảo ngược
20 Viết chương trình in ra ngày, tháng, năm hiện tại
21 Viết hàm biến đổi số thập phân thành chuỗi nhị phân 8 bít
22 Viết hàm biến đối chuỗi nhị nhân thành số thập phân
23 Viết hàm chuẩn hóa một chuỗi họ tên: viết hoa ký tự đầu tiên, loại bỏ ký tự không phải là ký tự chữ a-z, giữa họ, chữ lót và tên chỉ có 1 ký tự trắng
Trang 11BÀI THỰC HÀNH TUẦN 6, 7, 8, 9, 10
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG JAVA
1 Viết chương trình tạo một lớp có tên FirstClass, có 1 thuộc tính có tên msg và 2 phương thức có tên getMsg và setMsg lần lượt lấy và gán nội dung thuộc tính msg
public class FirstClass {
//Khai báo thuộc tính msg của lớp
public static void main(String[] args) {
FirstClass f = new FirstClass("Hello");
Trang 12float x, y Thuộc tính là toạ độ điểm
Point2D() Khởi tạo phương thức mặc định
Point2D(float, float) Phương thức khởi tạo 2 đối số
void move(float dx, float dy) Di chuyển điểm đến vị trí mới
(x+dx, y+dy) float distance(Point) Tính khoảng cách 2 điểm, áp dụng công thức
void display() Hiển thị vị trí của điểm ra màn hình
public class Point2D {
public double distance(Point2D A) {
return Math.sqrt(Math.pow(this.x - A.x, 2) + Math.pow(this.y
- A.y, 2));
}
d = (x2− x1)2+ ( y2− y1)2
Trang 13public void display() {
//Hien thi toa do diem A vi tri moi
System.out.println("Toa do moi cua A la: ");
float a, b, c Thuộc tính là 3 cạnh của tam giác
Triangle(float,float,float) Hàm khởi tạo 3 cạnh của tam giác
isTriangle() Kiểm tra 3 cạnh có hợp lý
isEquilateral() Kiểm tra có phải là tam giác đều
isIsosceles() Kiểm tra có phải là tam giác cân
isRight() Kiểm tra có phải là tam giác vuông
isRightIsosceles() Kiểm tra có phải là tam giác vuông cân getType() Trả lại kiểu tam giác(vuông, cân, đều,…)
display() Hiển thị 3 cạnh, kiểu tam giác và diện tích
Trang 146 Viết chương trình tạo lớp Time biểu diễn thời gian với ba thuộc tính giây, phút, giờ(second, minute, hour) và các phương thức gồm khởi tạo, lấy và thiết lập giá trị thuộc tính, tăng giờ phút giây lên 1 đơn vị Tại hàm main tạo đối tượng lớp Time
có giá trị giờ, phút, giây 7,0,0 và sau đó dùng vòng lặp while vô hạng để hiển thị đồng hồ
public class Time {
private int hour;
private int minute;
private int second;
public Time(int h, int m, int s) {
public String toString() {
return ((hour == 12 || hour == 0) ? 12 : hour % 12) + ":" + (minute < 10 ? 0 + minute : minute) + ":" + (second < 10 ? 0 + second : second) + " " + (hour < 12 ? "AM" : "PM");
Trang 15public static void main(String[] args) {
Time t = new Time(7, 0, 0);
Trang 167 Viết chương trình tạo và sử dụng lớp Fraction để biểu diễn lớp phân số gồm các phương thức sau:
a Fraction(): Hàm khởi tạo mặc định
b Fraction(int numerator, int denominator): Hàm khởi tạo giá trị tử số và mẫu số
c add(Fraction): Cộng hai phân số
d sub(Fraction): Trừ hai phân số
e mul(Fraction): Nhân hai phân số
f div(Fraction): Chia hai phân số
g inverse(): Nghịch đảo phân số
h reduce(): Tối giản phân số
i display(): Hiển thị phân số theo dạng “tử số / mẫu số”
8 Tạo lớp Person gồm 3 thuộc tính name, age, address và các phương thức khởi tạo, hiển thị các thông tin thuộc tính Tạo lớp Employee kế thừa lớp Person có thêm 2 thuộc tính salary và rate, các phương thức khởi tạo, tính tổng lương và hiển thị thông tin nhân viên
class Person {
private String name;
private int age;
private String address;
public Person(String name, int age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
public String display() {
return "Name: " + name + " Age: " + age + " Address: " + address;
}
}
public class Employee extends Person {
private float salary;
private float rate;
public Employee(String name, int age, String address, float salary, float rate) {
super(name, age, address);
this.salary = salary;
this.rate = rate;
Trang 17}
public float sumSalary(){
return salary * rate;
}
public String display() {
return super.display() + " Sum Salary: " + sumSalary();
}
public static void main(String[] args) {
Employee em = new Employee("Dung",18,"48 Cao Thang", 1490000,2.34f);
Person(String, int, String) Hàm khởi tạo với 3 đối số
getName() Trả về giá trị thuộc tính name
setName(String) Thiết lập giá trị mới cho thuộc tính name getAge() Trả về giá trị thuộc tính age
setAge(int) Thiết lập giá trị mới cho thuộc tính age getAddress() Trả về giá trị thuộc tính address
setAddress(String) Thiết lập giá trị mới cho thuộc tính
address display() Hiển thị giá trị các thuộc tính
Tạo lớp Student dẫn xuất từ lớp Person, có thêm các thuộc tính math, physics, chemistry, average và các phương thức như trong bảng sau
Student(String name, int age, String
address, float math, float physics, float
Hàm khởi tạo các thuộc tính của lớp
Trang 18chemistry)
getAverage() Trả về điểm trung bình
getMath() Trả về giá trị thuộc tính Math
display() Hiển thị giá trị các thuộc tính
10 Khai báo lớp Shape là lớp trừu tượng(abtract) như sau:
abstract class Shape {
public abstract double area();
public String toString() {
return "Area: " + area();
}
}
Xây dựng lớp Rectangle và Circle kế thừa lớp Shape định nghĩa hình chữ nhật và hình tròn
public class TestShape {
public static void main(String args[]) {
Shape vec[] = {new Circle(3), new Rectangle(4, 5), new Circle(4)};
for (int index = 0; index < vec.length; index++) {
System.out.println(vec[index]);
}
}
}
abstract class Shape {
public abstract double area();
public String toString() {
return "Area: " + area();
}
}
class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double w, double h) {
width = w;
height = h;
}
Trang 19public double area() {
return width * height;
}
}
class Circle extends Shape {
private double radius;
public Circle(double r) {
radius = r;
}
public double area() {
return Math.PI * radius * radius;
}
}
11 Tạo lớp hình chữ nhật, có phương thức tính diện tích Viết chương trình tạo một mảng gồm 10 đối tượng của lớp hình chữ nhật, sau đó sắp xếp mảng theo chiều tăng dần của diện tích các đối tượng hình chữ nhật
public class RectangleTest {
public static void main(String[] args) {
Rectangles vec[] = new Rectangles[10];
double randomWidth = 0, randomHeight = 0;
for (int i = 0; i < vec.length; i++) {
abstract class Shapes {
abstract double area();
Trang 20public String toString() {
return "Area: " + area();
public double area() {
return width * height;
}
public int compareTo(Object other) {
Shapes otherRect = (Shapes) other;
return (int) (this.area() - otherRect.area());
}
}
12 Viết chương trình quản lý sinh viên gồm các chức năng cơ bản:
a Nhập danh sách sinh viên;
b Xem danh sách sinh viên;
c Sắp xếp và hiển thị danh sách sinh viên theo chiều tăng dần của điểm trung bình;
d Tìm kiếm sinh viên theo tên
Giả sử mỗi sinh viên được mô tả gồm 3 thuộc tính: id, name, aver
public class StudentManagement {
Vector list = new Vector();
public StudentManagement() {
while (true) {
System.out.println("1 Nhap danh sach sinh vien");
System.out.println("2 Xem danh sach sinh vien");
Trang 21System.out.println("3 Sap xep sinh vien tang dan theo DTB");
System.out.println("4 Tim sinh vien theo ten");
num = ThuVien.getInt("Nhap so luong sinh vien: ");
for (int i = 1; i <= num; i++) {
System.out.println("Nhap thong tin thu: " + i);
int id = ThuVien.getInt("ID: ");
String name = ThuVien.getString("Ten: ");
float aver = ThuVien.getFloat("DTB: ");
Student st = new Student(id, name, aver);
list.add(st);
}
}
public void view() {
//Lay danh sach sinh vien va luu tru o vEnum
Enumeration vEnum = list.elements();
int i = 1;
while (vEnum.hasMoreElements()) {
Student st = (Student) vEnum.nextElement();
System.out.println("Id: " + st.getId() + ", Ten: " + st.getName() + ", DTB: " + st.getAver());
i++;
}
}
public void sort() {
Student[] st = new Student[list.size()];
Trang 22for (int i = 0; i < st.length; i++) {
System.out.println("Id: " + st[i].getId() + ", Ten: " + st[i].getName() + ", DTB: " + st[i].getAver());
}
}
public void search() {
String name = ThuVien.getString("Nhap ten sinh vien can tim kiem: ");
Enumeration vEnum = list.elements();
System.out.println("Thong tin tim kiem duoc: ");
class Student implements Comparable {
private int id;
private String name;
private float aver;