Các bài tập được biên soạn theo tuần tự các chương tương ứng với phần lý thuyết.Mỗi chương đều được tổ chức thành các phần: mục đích, yêu cầu, nội dung các bài tập vàcuối cùng là bài tập
Mục đích
- Sinh viên làm quen với một trong các môi trường tích hợp phát triển ứng dụng Java: Netbean IDE, Eclipse IDE, …
- Viết chương trình ứng dụng Java đơn giản, làm quen với các lệnh nhập/ xuất dữ liệu qua các thiết bị vào/ra chuẩn (bàn phím/màn hình).
Yêu cầu
- Sinh viên cần trang bị đầy đủ các kiến thức phục vụ cho buổi thực hành.
- Cài đặt JDK và một trong các môi trường tích hợp phát triển (ví dụ: NetBean)
- Làm quen với IDE (ví dụ: Netbean)
- Làm quen với cấu trúc chương trình Java, dự án Java, cách biên dịch, đóng gói, thực thi chương trình Java.
Nội dung thực hành
Tạo một dự án Java đơn giản với Tên: “LAB_01” gồm các lớp đối tượng sau:
1 Lớp “Hello” Xuất lên màn hình dòng chữ “Hello World!”
2 Lớp “NhapLieu” gồm các phương thức nhập dữ liệu kiểu nguyên (int, short, byte, long), kiểu thực (float, double) và kiểu xâu ký tự
3 Lớp “TinhToan” gồm các phương thức sau: a Nhập một số nguyên n ở hệ 10, in ra số tương ứng ở hệ cơ số 2, 8 và 16. b Tính số Fibonacci thứ k (biết số Fibonacci thứ k được tính theo công thức sau:
2 Fibonacci(k)= Fibonacci(k-1) + Fibonacci(k-1) nếu n>2 c Kiểm tra một số có là số chính phương không? (số chính phương là số tích 2 căn bậc II của chính nó) d Kiểm tra một số có là số hoàn hảo không? (số hoàn hảo là số tự nhiên > 1 và bằng tổng các ước thực sự của nó, các ước thực sự của n là các ước của n, ngoại trừ n) e Giải hệ phương trình bậc nhất 2 ẩn f Giải hệ phương trình bậc 2 g Kiểm tra một số có là số nguyên tố không (số nguyên tố là số tự nhiên, >1 và chỉ chia hết cho 1 và chính nó) h Phương thức main(): nhập vào số n và thực hiện các yêu cầu tương ứng với các phương thức từ a) đến g).
4 Viết chương trình C (lập trình hướng chức năng) giải hệ phương trình bậc nhất 1 ẩn So sánh sự giống và khác biệt với chương trình tương ứng viết bằng Java (sử dụng cách tiếp cận hướng đối tượng).
Bài giải mẫu
Viết chương trình nhập vào 2 số nguyên từ bàn phím In ra tổng, hiệu của 2 số đó
//Bai1.java import java.ultil.Scanner; public class Bai1{ public static void main(String args[]){
Scanner w = new Scanner(System.in); int a=0, b=0;
System.out.println(“Nhập số a=”); a=w.nextInt();
System.out.println(“Nhập số b=”); b=w.nextInt();
System.out.println(“Tổng: a+b=”+(a+b)+ “; Hiệu: a-b=”+(a-b));
LAB_02: CÁC THÀNH PHẦN CƠ SỞ CỦA JAVA
Mục đích
Sinh viên có thể lập trình giải các bài toán đơn giản sử dụng các cấu trúc điều khiển của Java
Yêu cầu
- Sinh viên chuẩn bị trước các bài tập thực hành
- Trang bị đầy đủ lý thuyết để hoàn thành nội dung bài LAB
Nội dung thực hành
1 Đóng gói dự án đã tạo ở Lab 01 (dự án “LAB_01”)
2 Tạo dự án có tên “LAB_02” sử dụng lại (import) các lớp trong dự án “LAB_01” Xây dựng các lớp sau trong gói “LAB_02”: a Lớp ToanHoc gồm:
Các phương thức của lớp gồm: o Liệt kê tất cả các số nguyên tố =9) g) Sắp xếp danh sách sinh viên theo thứ tự điểm trung bình giảm dần h) Xếp loại học lực cho sinh viên. i) In ra thông tin của giáo viên chủ nhiệm lớp. j) Phương thức main() thực hiện các yêu cầu tương ứng với các phương thức từ a) đến i).
Bài tập mẫu
Viết chương trình xây dựng lớp KhachHang gồm:
+ Các thuộc tính: Họ tên, địa chỉ, số điện thoại, email
- Các toán tử tạo lập
- Nhập thông tin khách hàng
- Hiển thị thông tin khách hàng
- Phương thức main, nhập vào thông tin của một khách hàng và hiển thị lên màn hình thông tin vừa nhập
// KhachHang.java mport java.io.*; public class KhachHang{
//Toan tu tao lap mac dinh } public KhachHang(String ht,String dc,String sdthoai,String emailAdd){ hoTen=ht; diaChi sdt=sdthoai; email=emailAdd;
DataInputStream stream=new DataInputStream(System.in); try{ s=stream.readLine(); s=s.trim(); s=s.toLowerCase();
System.out.print("-Ho ten : "); //nhap ho ten str=nhapString(); this.hoTen=str;
System.out.print("-Dia chi : "); str=nhapString(); this.diaChi=str;
System.out.print("-So dien thoai : "); str=nhapString(); this.sdt=str;
System.out.print("-Dia chi Email : "); str=nhapString(); this.email=str;
System.out.println(" Ho ten:"+this.hoTen);
System.out.println(" Dia chi:"+this.diaChi);
System.out.println(" So dien thoai:"+this.sdt);
System.out.println(" Email:"+this.email);
} public static void main(String[] args){
KhachHang kh=new KhachHang(); kh.nhapKH(); kh.inKH();
KhachHang k1=new KhachHang("nam","k16", "822", "nam@google.com"); k1.inKH();
Mục đích
- Làm quen với lớp mảng và xâu trong gói java.lang
- Thực hành thành thạo các thao tác trên mảng và các thao tác trên xâu ký tự.
Yêu cầu
- Sinh viên chuẩn bị trước các bài tập
- Trang bị đầy đủ kiến thức để hoàn thành nội dung bài LAB.
Nội dung thực hành
Tạo dự án “LAB_05” gồm các lớp đối tượng sau:
1 Xây dựng lớp “DaySo” gồm:
Các thuộc tính riêng (private) sau đây: o private int n; //số phần tử của dãy o private int m[] ; //lưu trữ các giá trị của dãy
Các toán tử tạo lập: DaySo(int spt), DaySo(int m1[]), DaySo(){}
Các phương thức: o public void inDaySo() //in dãy ra màn hình o public void nhapDaySo()//nhập dãy số từ bàn phím o public void inSoNguyenTo(){} //in ra các số nguyên tố thuộc dãy số o public void inSoHoanHao() o public void sapXepTang() //sắp xếp dãy số theo thứ tự tăng dần o public void sapXepGiam()//sắp xếp dãy theo chiều giảm o public DaySo congDay(DaySo d1)// cộng 2 dãy số
2 Xây dựng lớp “MaTran” gồm:
Các thuộc tính riêng(private): o private int n,m;// số dòng và cột của ma trận o private double M[][]; // lưu trữ các phần tử của ma trận
Các phương thức tạo lập : o public MaTran(){} o public MaTran(int dong,int cot) o public MaTran(double M1[][])
Các phương thức: o public void inMaTran()// in ma trận hiện thời o public void nhapMaTran()// nhập ma trận từ bàn phím o public boolean kiemTraDoiXung()// kiểm tra tính đối xứng của mt qua đường chéo chính. o public MaTran congMaTran(MaTran M1)// cộng 2 ma trận o public MaTran truMaTran(MaTran M1)// trừ 2 ma trận o public MaTran nhanMaTran(MaTran M1) // nhân 2 ma trận o public MaTran sapXepTheoHang() // Sắp xếp các hàng của ma trận theo thứ tự tăng dần o public MaTran sapXepTheoCot() // Sắp xếp các cột của ma trận theo thứ tự tăng dần 3.Xây dựng lớp “Xau” gồm:
Thuộc tính dữ liệu là pvivate String st
Nhập dữ liệu cho xâu: public void nhapXau()
In xâu ra mang hình: public void inXau()
Chuẩn hóa xâu: public String chuanHoa();
Thay thế tất cả các xâu con st1 bằng xâu con st2: o public void thayThe (String st1,String st2)
Nhập vào danh sách các xâu, sắp xếp danh sách giảm dần theo thứ tự từ điển: o public static sapXepXauGiam(String mangXau[])
4.Xây dựng lớp “Main” có các thuộc tính là 3 đối tượng thuộc các lớp tương ứng là
“DaySo”, “MaTran” và “Xau” Thực hiện các thao tác tương ứng với các phương thức của từng đối tượng.
Bài tập mẫu
Xây dựng lớp QLKhachHang (mỗi khách hàng gồm các thông tin cần quản lý như bài tập mẫu chương 3) gồm:
- Các thuộc tính: số lượng khách hàng, mảng các khách hàng
- Các phương thức: o Khởi tạo o Nhập danh sách các khách hàng o Hiển thị lên màn hình danh sách khách hàng o Tìm kiếm khách hàng theo họ hoặc theo tên o Tìm kiếm khách hàng theo địa chỉ
Chương trình import java.io.*; public class QLKhachHang{ int soKH;
//Tao lap mac dinh } public QLKhachHang(int so){ soKH=so; mkh=new KhachHang[so];
DataInputStream stream=new DataInputStream(System.in); try{ s=stream.readLine();
DataInputStream stream=new DataInputStream(System.in); try{ s=stream.readLine(); s=s.trim(); s=s.toLowerCase();
System.out.print("Nhap vao so KHACH HANG : "); n=nhapInt(); this.soKH=n; this.mkh=new KhachHang[n]; for(int i=0;i