Java - Viết chương trình quản lý giao dịch nhà đất.
Xây dựng chương trình quản lý danh sách các giao dịch nhà đất. Thông tin bao gồm:
- Giao dịch đất: Mã giao dịch, ngày giao dịch (ngày, tháng, năm), đơn giá, loại đất (loại A, B, C), diện tích. Nếu là loại B, C thì thành tiền = diện tích * đơn giá. Nếu là loại A thì thành tiền = diện tích * đơn giá * 1.5.
- Giao dịch nhà: Mã giao dịch, ngày giao dịch (ngày, tháng, năm), đơn giá, loại nhà (cao cấp, thường), địa chỉ, diện tích. Nếu là loại nhà cao cấp thì thành tiền = diện tích * đơn giá, nếu là loại thường thì thành tiền = diện tích * đơn giá * 90%.
Viết chương trình thực hiện các yêu cầu sau:
- Xây dựng các lớp với quan hệ thừa kế.
- Nhập xuất danh sách các giao dịch.
- Tính trung bình thành tiền của giao dịch đất.
- Xuất ra các giao dịch của tháng 9 năm 2013.
Bài giải
-------------------- ######## --------------------
GiaoDich.java
package baitapquanlynhadat;
import java.util.Scanner;
public class GiaoDich {
private String maGiaoDich, ngayGiaoDich;
private long donGia;
private float dienTich;
Scanner scanner = new Scanner(System.in);
public GiaoDich() {
super();
}
public GiaoDich(String maGiaoDich, String ngayGiaoDich, long donGia, float dienTich) {
super();
this.maGiaoDich = maGiaoDich;
this.ngayGiaoDich = ngayGiaoDich;
this.donGia = donGia;
this.dienTich = dienTich;
}
public String getMaGiaoDich() {
return maGiaoDich;
}
public void setMaGiaoDich(String maGiaoDich) {
this.maGiaoDich = maGiaoDich;
}
public String getNgayGiaoDich() {
return ngayGiaoDich;
}
public void setNgayGiaoDich(String ngayGiaoDich) {
this.ngayGiaoDich = ngayGiaoDich;
}
public long getDonGia() {
return donGia;
}
public void setDonGia(long donGia) {
this.donGia = donGia;
}
public float getDienTich() {
return dienTich;
}
public void setDienTich(float dienTich) {
this.dienTich = dienTich;
}
public void nhap() {
System.out.print("Nhập mã giao dịch: ");
maGiaoDich = scanner.nextLine();
System.out.print("Nhập ngày giao dịch (ngày/tháng/năm): ");
ngayGiaoDich = scanner.nextLine();
System.out.print("Nhập đơn giá: ");
donGia = Long.parseLong(scanner.nextLine());
System.out.print("Nhập diện tích: ");
dienTich = Float.parseFloat(scanner.nextLine());
}
@Override
public String toString() {
return "Mã giao dịch: " + this.maGiaoDich + ", ngày giao dịch: " + this.ngayGiaoDich +
", đơn giá: " + this.donGia + ", diện tích: " + this.dienTich;
}
}
GiaoDichDat.java
package baitapquanlynhadat;
public class GiaoDichDat extends GiaoDich {
private String loaiDat;
public GiaoDichDat() {
super();
}
public GiaoDichDat(String loaiDat) {
super();
this.loaiDat = loaiDat;
}
public String getLoaiDat() {
return loaiDat;
}
public void setLoaiDat(String loaiDat) {
this.loaiDat = loaiDat;
}
public void nhap() {
super.nhap();
System.out.print("Nhập loại đất (A/B/C): ");
loaiDat = scanner.nextLine();
}
@Override
public String toString() {
return super.toString() + ", loại đất: " + this.loaiDat;
}
}
GiaoDichNha.java
package baitapquanlynhadat;
public class GiaoDichNha extends GiaoDich {
private String loaiNha, diaChi;
private int choose;
public GiaoDichNha() {
super();
}
public GiaoDichNha(String loaiNha, String diaChi) {
super();
this.loaiNha = loaiNha;
this.diaChi = diaChi;
}
public String getLoaiNha() {
return loaiNha;
}
public void setLoaiNha(String loaiNha) {
this.loaiNha = loaiNha;
}
public String getDiaChi() {
return diaChi;
}
public void setDiaChi(String diaChi) {
this.diaChi = diaChi;
}
public void nhap() {
super.nhap();
System.out.print("Nhập địa chỉ: ");
diaChi = scanner.nextLine();
System.out.print("Nhập loại nhà (0: cao cấp, 1: thường): ");
choose = scanner.nextInt();
switch (choose) {
case 0:
loaiNha = "cao cấp";
break;
case 1:
loaiNha = "thường";
break;
default:
System.out.println("Chọn số không hợp lệ.");
break;
}
}
@Override
public String toString() {
return super.toString() + ", loại nhà: " + this.loaiNha + ", địa chỉ: " + this.diaChi;
}
}
Main.java
package baitapquanlynhadat;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
ArrayList<GiaoDichNha> arrGiaoDichNha = new ArrayList<>();
ArrayList<GiaoDichDat> arrGiaoDichDat = new ArrayList<>();
int soGiaoDichDat = 0, soGiaoDichNha = 0;
long tongTienGiaoDichDat = 0, trungBinhThanhTien = 0;
Scanner scanner = new Scanner(System.in);
System.out.print("Nhập số giao dịch đất: ");
soGiaoDichDat = scanner.nextInt();
System.out.print("Nhập số giao dịch nhà: ");
soGiaoDichNha = scanner.nextInt();
System.out.println("Nhập thông tin giao dịch đất:");
for (int i = 0; i < soGiaoDichDat; i++) {
System.out.println("Nhập thông tin giao dịch đất thứ " + (i + 1) + ":");
GiaoDichDat giaoDichDat = new GiaoDichDat();
giaoDichDat.nhap();
arrGiaoDichDat.add(giaoDichDat);
}
System.out.println("Nhập thông tin giao dịch nhà:");
for (int i = 0; i < soGiaoDichNha; i++) {
System.out.println("Nhập thông tin giao dịch nhà thứ " + (i + 1) + ":");
GiaoDichNha giaoDichNha = new GiaoDichNha();
giaoDichNha.nhap();
arrGiaoDichNha.add(giaoDichNha);
}
System.out.println("---Thông tin các giao dịch đất---");
for (int i = 0; i < arrGiaoDichNha.size(); i++) {
System.out.println(arrGiaoDichDat.get(i).toString());
}
System.out.println("---Thông tin các giao dịch nhà---");
for (int i = 0; i < arrGiaoDichNha.size(); i++) {
System.out.println(arrGiaoDichNha.get(i).toString());
}
for (int i = 0; i < arrGiaoDichDat.size(); i++) {
if (arrGiaoDichDat.get(i).getLoaiDat().equalsIgnoreCase("A")) {
tongTienGiaoDichDat += arrGiaoDichDat.get(i).getDienTich() *
arrGiaoDichDat.get(i).getDonGia() * 1.5;
} else if (arrGiaoDichDat.get(i).getLoaiDat().equalsIgnoreCase("B") ||
arrGiaoDichDat.get(i).getLoaiDat().equalsIgnoreCase("C")) {
tongTienGiaoDichDat += arrGiaoDichDat.get(i).getDienTich() *
arrGiaoDichDat.get(i).getDonGia();
}
}
trungBinhThanhTien = tongTienGiaoDichDat / (arrGiaoDichDat.size());
System.out.println("Trung bình thành tiền của giao dịch đất = " + trungBinhThanhTien);
// xuất ra các giao dịch của tháng 9 năm 2013
System.out.println("Các giao dịch đất của tháng 9 năm 2013: ");
for (int i = 0; i < arrGiaoDichDat.size(); i++) {
String[] dateGiaoDichDat = arrGiaoDichDat.get(i).getNgayGiaoDich().split("/");
if (dateGiaoDichDat[1].equals("9") && dateGiaoDichDat[2].equals("2013")) {
System.out.println(arrGiaoDichDat.get(i).toString());
}
}
System.out.println("Các giao dịch nhà của tháng 9 năm 2013: ");
for (int i = 0; i < arrGiaoDichNha.size(); i++) {
String[] dateGiaoDichNha = arrGiaoDichNha.get(i).getNgayGiaoDich().split("/");
if (dateGiaoDichNha[1].equals("9") && dateGiaoDichNha[2].equals("2013")) {
System.out.println(arrGiaoDichNha.get(i).toString());
}
}
}
}
Kết quả sau khi biên dịch chương trình:

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Câu hỏi thường gặp liên quan:
- Java - Viết chương trình quản lý thông tin các chuyến xe.
- Java - Viết chương trình quản lý sách trong thư viện.
- Java - Viết chương trình quản lý giao dịch nhà đất.
- Java - Viết chương trình tính chu vi, diện tích hình vuông.
- Java - Xây dựng chương trình vẽ hình đơn giản (câu hỏi 1)

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng