Bài tập Lập trình công nghệ Java - Module 1

 Hướng dẫn sử dụng:

 Nhập họ tên Sau đó nhấn nút “Xuất câu chào”

 Tóm tắt yêu cầu

 Thiết kế giao diện người dùng:

 frmManHinhXuatCauChao: FrmXuatCauChao (extends từ

JFrame)

* (Các thể hiện phía dưới đều nằm trong Frame)

 txtHoTen: JTextField (nhập liệu)

 lblCauchao: JLabel (Kết xuất)

 btnXuatCauChao: JButton

 Nhập:

 Họ tên

 Xuất:

 Câu chào

 Qui tắc xử lý:

 Không có

 Thuật giải

 Khai báo biến HoTen nhận giá trị của txtHoTen

pdf64 trang | Chuyên mục: Java | Chia sẻ: dkS00TYs | Lượt xem: 2941 | Lượt tải: 2download
Tóm tắt nội dung Bài tập Lập trình công nghệ Java - Module 1, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
th; 
 this.imageHeight = imageHeight; 
 } 
 @Override 
 public Component getTableCellRendererComponent(JTable 
table, 
 Object value, boolean isSelected, boolean 
hasFocus, 
 int row, int column) { 
 super.getTableCellRendererComponent(table, value, 
 isSelected, hasFocus, row, column); 
 try { 
 BufferedImage image = null; 
 URL url = new URL("file:" + value); 
 image = getScaledImages(ImageIO.read(url), 
 imageWidth, imageHeight); 
 setIcon(new ImageIcon(image)); 
 setHorizontalAlignment(JLabel.CENTER); 
 setText(""); 
 } catch (Exception e) { 
 setText("[No image]"); 
 e.printStackTrace(); 
 } 
 return this; 
 } 
... 
// 
private BufferedImage getScaledImages(BufferedImage in, 
 int WIDTH, int HEIGHT) { 
 BufferedImage out = new BufferedImage(WIDTH, HEIGHT, 
 BufferedImage.TYPE_INT_RGB); 
 Graphics2D g2 = out.createGraphics(); 
 g2.setColor(Color.white); 
 g2.fillRect(0, 0, WIDTH, HEIGHT); 
 double width = in.getWidth(); 
 double height = in.getHeight(); 
 double xScale = WIDTH / width; 
 double yScale = HEIGHT / height; 
 double scale = 1.0; 
 scale = Math.min(xScale, yScale); // scale to fit 
 double x = (WIDTH - width * scale) / 2; 
 double y = (HEIGHT - height * scale) / 2; 
 AffineTransform at = 
 AffineTransform.getTranslateInstance(x, y); 
 at.scale(scale, scale); 
 g2.drawRenderedImage(in, at); 
 g2.dispose(); 
 return out; 
} 
} 
6.2. Quản lý danh bạ điện thoại 
 Yêu cầu: Viết chương trình Quản lý danh bạ điện thoại. 
 Tương tự như bài trên như có thêm một menu “Danh bạ”, 
trong đó có các item: Thêm một liên hệ, Xóa một liên hệ, Tìm 
kiếm liên hệ, Cập nhật liên hệ. 
  Hướng dẫn sử dụng: 
 Xem thông tin các liên hệ trên màn hình chính. 
 Chọn item nào trong menu Danh bạ thì sẽ hiển thị màn hình 
tương ứng. 
 Tóm tắt yêu cầu 
 Thiết kế giao diện người dùng: 
 frmManHinhDanhSach: JFrame 
* (Các thể hiện phía dưới đều nằm trong Frame) 
 mnuDanhmuc: Jmenu 
 mnuIThem: JMenuItem 
 mnuIXoa: JMenuItem 
 mnuICapNhat: JMenuItem 
 mnuITimKiem: JMenuItem 
 tblDanhSachLienHe: JTable 
 Nhập: 
 Không có 
 Xuất: 
 Danh Sách liên hệ 
 Qui tắc xử lý : 
 Không có 
 Thuật giải 
 Đọc nội dung file 
 Phân tách các thành phần thành trong file 
 Tạo nội dung hiển thị cho table, nội dung dưới dạng ma trận 
(Object[][]) mỗi dòng là một liên hệ, các thành phần mỗi 
dòng lần lược là "Hình ảnh", "Họ tên", "ĐTDĐ", "Hành 
động" 
 Hiển thị hình ảnh bằng cách tạo TableCellRender cho cột 
"hình ảnh" và "hành động" 
 Chọn menu Thêm, hiển thị màn hình thêm liên hệ 
 Xử lý thêm liên hệ, cập nhật nội dung file 
 Chọn menu Xóa, thực hiện xóa liên hệ, cập nhật nội dung file 
 Chọn menu Cập nhật, hiển thị màn hình cập nhật liên hệ 
 Xử lý cập nhật liên hệ, cập nhật nội dung file 
 Chọn menu Tìm kiếm, hiển thị màn hình tìm kiếm 
 Xử lý tìm kiếm liên hệ 
 Hướng dẫn 
 Không có 
7.1. Thực hiện tính toán hai phân số 
 Yêu cầu: Xây dựng chương trình Tính toán hai phân số 
Gồm có: 
 phân số thứ nhất (tử số, mẫu số) và phân số thứ hai (tử số, 
mẫu số) 
 combobox 4 phép tính: +, -, *, / cho người dùng chọn 
 Hướng dẫn sử dụng: 
 Nhập vào phân số thứ nhất (tử số, mẫu số) và phân số thứ 2 
(tử số, mẫu số), chọn 1 trong 4 phép tính. Nhấn nút “Tính” 
=> Hiển thị kết quả lên phân số kết quả (tử số, mẫu số) 
 Tóm tắt yêu cầu 
 Thiết kế giao diện người dùng: 
 frmManHinhTinhToanPhanSo: FrmTinhToanPhanSo (extend 
từ JFrame) 
* (Các thể hiện phía dưới đều nằm trong Frame) 
 txtTuSo1: JTextField (nhập liệu) 
 txtMauSo1: JTextField (nhập liệu) 
 txtTuSo2: JTextField (nhập liệu) 
 txtMauSo2: JTextField (nhập liệu) 
 cmbPhepTinh: JComboBox (chọn) 
 txtKetQua: JTextField (nhập liệu) 
 btnTinh: Jbutton (Xử lý tính) 
 btnLamLai: Jbutton (Xử lý làm lại) 
 Nhập: 
 Tử số phân số 1 
 Mẫu số phân số 1 
 Tử số phân số 2 
 Mẫu số phân số 2 
 Chọn phép tính 
 Xuất: 
 Kết quả tính toán 2 phân số 
 Qui tắc xử lý : 
 Xây dựng class PhanSo 
 Xử lý tính toán trên hai đối tượng có kiểu là PhanSo 
 Thuật giải 
 Khai báo biến tuSo1 nhận kết quả từ txtTuSo1 
 Khai báo biến mauSo1 nhận kết quả từ txtMauSo1 
 Khởi tạo phanSo1 (kiểu PhanSo) từ tuSo1, mauSo1 
 Khai báo biến tuSo2 nhận kết quả từ txtTuSo2 
 Khai báo biến mauSo2 nhận kết quả từ txtMauSo2 
 Khởi tạo phanSo2 (kiểu PhanSo) từ tuSo2, mauSo2 
 Khai báo biến phepTinh nhận giá trị từ cmbPhepTinh 
 Tính toán 2 phân số theo phép tính 
 Hướng dẫn 
Hàm tính toán 2 phân số theo phép tính 
private PhanSo tinh(String phepToan, PhanSo phanSo1, 
 PhanSo phanSo2){ 
 if("+".equals(phepToan)){ 
 return tinhTong(phanSo1, phanSo2); 
 }else if("-".equals(phepToan)){ 
 return tinhHieu(phanSo1, phanSo2); 
 }else if("*".equals(phepToan)){ 
 return tinhTich(phanSo1, phanSo2); 
 }else if("/".equals(phepToan)){ 
 return tinhThuong(phanSo1, phanSo2); 
 } 
 return null; 
} 
Các Hàm tính toán 2 phân số 
private PhanSo tinhTong(PhanSo phanSo1, PhanSo phanSo2){ 
 int kqTuSo = phanSo1.getTuSo() * phanSo2.getMauSo() 
 + phanSo2.getTuSo() * phanSo1.getMauSo(); 
 int kqMauSo = phanSo1.getMauSo() * phanSo2.getMauSo(); 
 PhanSo kq = new PhanSo(kqTuSo, kqMauSo); 
 return kq; 
} 
private PhanSo tinhHieu(PhanSo phanSo1, PhanSo phanSo2){ 
 int kqTuSo = phanSo1.getTuSo() * phanSo2.getMauSo() 
 - phanSo2.getTuSo() * phanSo1.getMauSo(); 
 int kqMauSo = phanSo1.getMauSo() * phanSo2.getMauSo(); 
 PhanSo kq = new PhanSo(kqTuSo, kqMauSo); 
 return kq; 
} 
private PhanSo tinhTich(PhanSo phanSo1, PhanSo phanSo2){ 
 int kqTuSo = phanSo1.getTuSo() * phanSo2.getTuSo(); 
 int kqMauSo = phanSo1.getMauSo() * phanSo2.getMauSo(); 
 PhanSo kq = new PhanSo(kqTuSo, kqMauSo); 
 return kq; 
} 
private PhanSo tinhThuong(PhanSo phanSo1, PhanSo phanSo2){ 
 int kqTuSo = phanSo1.getTuSo() * phanSo2.getMauSo(); 
 int kqMauSo = phanSo1.getMauSo() * phanSo2.getTuSo(); 
 PhanSo kq = new PhanSo(kqTuSo, kqMauSo); 
 return kq; 
} 
7.2. Quản lý Danh bạ thoại 
 Yêu cầu: Xây dựng chương trình Quản lý danh bạ điện thoại 
 Tương tự như bài “Quản lý danh bạ điện thoại” của chương 6, 
nhưng nội dung các phần tử trong mảng Liên hệ của tập tin 
khi được đọc sẽ tái cấu trúc và gán vào một đối tượng của 
class LienHe. 
 Tất cả các liên hệ sẽ được quản lý bằng mảng các phần tử có 
kiểu class LienHe 
 Hướng dẫn sử dụng: 
 Không có 
 Tóm tắt yêu cầu 
 Thiết kế giao diện người dùng: 
 Tương tự 6.2 
 Nhập: 
 Không có 
 Xuất: 
 Danh sách liên hệ 
 Qui tắc xử lý : 
 Xây dựng class LienHe 
 Xử lý các đối tượng của class LienHe trong mảng. 
 Thuật giải 
 Không có 
 Hướng dẫn 
 Không có 
7.3. Hóa đơn bán hàng 
 Yêu cầu: Xây dựng chương trình nhập xuất thông tin hóa đơn 
bán hàng của một siêu thị 
 Thông tin hóa đơn gồm có: số hóa đơn, ngày lập hóa đơn, 
danh sách hàng hóa được mua trong hóa đơn 
 Thông tin hàng hóa gồm có: tên hàng hóa, đơn vị tính, đơn 
giá, số lượng mua 
 Xây dựng chương trình có giao diện như sau, nhập thông tin 
hóa đơn và xuất thông tin hóa đơn ra màn hình 
  Hướng dẫn sử dụng: 
 Nhập thông tin hóa đơn và thông tin các hàng hóa trong hóa 
đơn. Nhấn nút “Xuất hóa đơn” để xem thông tin của hóa đơn. 
 Nhấn nút “Làm lại” để xóa các thông tin trên màn hình 
 Tóm tắt yêu cầu 
 Thiết kế giao diện người dùng: 
 Thiết kế màn hình Nhập hóa đơn bán hàng 
frmManHinhNhapHoaDon: FrmNhapHoaDon (extend từ 
JFrame) 
 * (Các thể hiện phía dưới đều nằm trong Frame) 
 txtSoHoaDon: JTextField (nhập liệu) 
 txtNgayHoaDon: JTextField (nhập liệu) 
 txtSoLuongHoaDon: JTextField (nhập liệu) 
 txtTenHangHoa: JTextField (nhập liệu) 
 txtDonViTinh: JTextField (nhập liệu) 
 txtDonGia: JTextField (nhập liệu) 
 txtSoLuong: JTextField (nhập liệu) 
 btnThemHoaDon: JButton (xử lý thêm hóa đơn) 
 btnThemHangHoa: Jbutton (xử lý thêm hàng hóa) 
 btnXuatHoaDon: JButton (xử lý xuất hóa đơn) 
 btnLamLai: JButton (xử lý làm lại) 
 Thiết kế màn hình Thông tin hóa đơn 
dlgHienThiHoaDon: DlgHienThiHoaDon (extend từ JDialog) 
 * (Các thể hiện phía dưới đều nằm trong Frame) 
 lblSoHoaDon: JLabel (hiển thị) 
 lblNgayHoaDon: JLabel (hiển thị) 
 tblDSHangHoa: JTable (hiển thị) 
 btnOK: JButton (xử lý đóng màn hình) 
 Nhập: 
 Nhập các thông tin hóa đơn, hàng hóa 
 Xuất: 
 Thông tin hóa đơn 
 Qui tắc xử lý : 
 Xây dựng class HoaDon và class HangHoa 
 Xử lý class. 
 Thuật giải 
 Không có 
 Hướng dẫn 
 Không có 
8.1. Đổi ngoại tệ 
 Yêu cầu: Viết chương trình Đổi ngoại tệ 
 Gọi sử dụng Dịch vụ “Tỷ giá” trên Internet 
 Hướng dẫn sử dụng: 
 Nhập vào số tiền (USD, Yên, Euro), chọn Tỷ giá. Nhấn “Tính 
tiền” => Hiển thị thành tiền VNĐ tương ứng với số tiền đã 
nhập. 
 Tóm tắt yêu cầu 
 Thiết kế giao diện người dùng: 
frmManHinhTyGia: FrmTyGia (extend từ JFrame) 
 * (Các thể hiện phía dưới đều nằm trong Frame) 
 tblDsTyGia: JTable (hiển thị) 
 txtNhapTien: JTextField (nhập liệu) 
 cmbLoaiTienTe: JComboBox (chọn giá trị) 
 txtThanhTienVNDMua: JTextField (hiển thị) 
 txtThanhTienVNDBan: JTextField (hiển thị) 
 txtTinhTien: JButton (xử lý tính tiền VND) 
 Nhập: 
 Giá trị tiền cần qui đổi 
 Chọn loại tiền tệ 
 Xuất: 
 Giá mua, giá bán theo loại tiền tệ 
 Qui tắc xử lý : 
 Thành tiền = giá ngoại tệ * giá trị nhập 
 Thuật giải 
 Lấy thông tin tỷ giá từ 
 Xử lý kết quả trả về, khai báo biền mapTyGia chứa 
kết quả xử lý 
 Hiển thị kết quả lên table 
 Khai báo biến nhận giá trị từ txtNhapGiaTri 
 Khai báo biền loaiTienTe nhận giá trị từ cmbLoaiTienTe 
 Xử lý tính giá mua, giá bán theo loại tiền tệ 
 Hướng dẫn 
Hàm lấy thông tin từ request url 
private String layTyGia() throws IOException { 
 URL tyGiaUrl = new 
URL(""); 
URLConnection yc = tyGiaUrl.openConnection(); 
 BufferedReader in = new BufferedReader(new 
InputStreamReader(yc.getInputStream())); 
 String input = in.readLine(); 
 in.close(); 
 return input; 
} 

File đính kèm:

  • pdfBài tập Lập trình công nghệ Java - Module 1.pdf
Tài liệu liên quan