Java - Viết chương trình quản lý sách trong thư viện.
Thư viện X quản lý danh sách các loại sách. Thông tin về các loại sách:
- Sách giáo khoa: Mã sách, đơn giá, số lượng, nhà xuất bản, tình trạng (mới, cũ). Nếu tình trạng sách là mới thì thành tiền = số lượng * đơn giá. Nếu tình trạng sách là cũ thì thành tiền = số lượng * đơn giá * 50%.
- Sách tham khảo: Mã sách, đơn giá, số lượng, nhà xuất bản, thuế, thành tiền = số lượng * đơn giá + thuế.
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 chức năng thừa kế.
- Nhập xuất danh sách các loại sách.
- Tính tổng thành tiền cho từng loại.
- Tính trung bình cộng đơn giá của các sách tham khảo.
- Xuất ra các sách giáo khoa của nhà xuất bản X.
Bài giải
-------------------- ######## --------------------
Sach.java
package baitapquanlysach; import java.text.SimpleDateFormat; import java.util.Scanner; public class Sach { private String maSach, nhaXuatBan; private double donGia; private int soLuong; Scanner scanner = new Scanner(System.in); public Sach() { super(); } public Sach(String maSach, String nhaXuatBan, double donGia, int soLuong) { super(); this.maSach = maSach; this.nhaXuatBan = nhaXuatBan; this.donGia = donGia; this.soLuong = soLuong; } public String getMaSach() { return maSach; } public void setMaSach(String maSach) { this.maSach = maSach; } public String getNhaXuatBan() { return nhaXuatBan; } public void setNhaXuatBan(String nhaXuatBan) { this.nhaXuatBan = nhaXuatBan; } public double getDonGia() { return donGia; } public void setDonGia(double donGia) { this.donGia = donGia; } public int getSoLuong() { return soLuong; } public void setSoLuong(int soLuong) { this.soLuong = soLuong; } public void nhapSach() { System.out.print("Nhập mã sách: "); maSach = scanner.nextLine(); System.out.print("Nhập tên nhà xuất bản: "); nhaXuatBan = scanner.nextLine(); System.out.print("Nhập đơn giá: "); donGia = scanner.nextDouble(); System.out.print("Nhập số lượng: "); soLuong = scanner.nextInt(); } @Override public String toString() { return "Mã sách: " + this.maSach + ", tên nhà xuất bản: " + this.nhaXuatBan + ", đơn giá: " + this.donGia + ", số lượng: " + this.soLuong; } }
SachGiaoKhoa.java
package baitapquanlysach; public class SachGiaoKhoa extends Sach { private String tinhTrang; private int number; private double thanhTien; public SachGiaoKhoa() { super(); } public SachGiaoKhoa(String tinhTrang, int number) { super(); this.tinhTrang = tinhTrang; this.number = number; } public String getTinhTrang() { return tinhTrang; } public void setTinhTrang(String tinhTrang) { this.tinhTrang = tinhTrang; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } public String tinhTrangSach(int x) { switch (number) { case 0: tinhTrang = "cũ"; break; case 1: tinhTrang = "mới"; break; default: break; } return tinhTrang; } public void nhapSach() { super.nhapSach(); System.out.print("Nhập tình trạng sách (0 - cũ/ 1 - mới): "); number = scanner.nextInt(); } public String toString() { return super.toString() + ", tình trạng sách: " + this.tinhTrangSach(number); } }
SachThamKhao.java
package baitapquanlysach; public class SachThamKhao extends Sach { private double thue, thanhTien; public SachThamKhao() { super(); } public SachThamKhao(double thue) { super(); this.thue = thue; } public double getThue() { return thue; } public void setThue(double thue) { this.thue = thue; } public void nhapSach() { super.nhapSach(); System.out.print("Nhập thuế: "); thue = scanner.nextDouble(); } @Override public String toString() { return super.toString() + ", thuế: " + this.thue; } }
Main.java
package baitapquanlysach; import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { ArrayList<SachGiaoKhoa> arrSachGiaoKhoa = new ArrayList<>(); ArrayList<SachThamKhao> arrSachThamKhao = new ArrayList<>(); int soSachGiaoKhoa, soSachThamKhao; double tongTienSachGiaoKhoa = 0, tongTienSachThamKhao = 0, tongDonGiaSachThamKhao = 0, trungBinhCongDonGia = 0; Scanner scanner = new Scanner(System.in); System.out.print("Nhập số sách giáo khoa: "); soSachGiaoKhoa = scanner.nextInt(); System.out.print("Nhập số sách tham khảo: "); soSachThamKhao = scanner.nextInt(); System.out.println("Nhập thông tin sách giáo khoa:"); for (int i = 0; i < soSachGiaoKhoa; i++) { System.out.println("Nhập thông tin quyển sách thứ " + (i + 1) + ":"); SachGiaoKhoa sachGiaoKhoa = new SachGiaoKhoa(); sachGiaoKhoa.nhapSach(); arrSachGiaoKhoa.add(sachGiaoKhoa); } System.out.println("Nhập thông tin sách tham khảo:"); for (int i = 0; i < soSachThamKhao; i++) { System.out.println("Nhập thông tin quyển sách thứ " + (i + 1) + ":"); SachThamKhao sachThamKhao = new SachThamKhao(); sachThamKhao.nhapSach(); arrSachThamKhao.add(sachThamKhao); } for (int i = 0; i < arrSachGiaoKhoa.size(); i++) { if (arrSachGiaoKhoa.get(i).getNumber() == 0) { tongTienSachGiaoKhoa += arrSachGiaoKhoa.get(i).getSoLuong() * arrSachGiaoKhoa.get(i).getDonGia() * 50 / 100; } else if (arrSachGiaoKhoa.get(i).getNumber() == 1) { tongTienSachGiaoKhoa += arrSachGiaoKhoa.get(i).getSoLuong() * arrSachGiaoKhoa.get(i).getDonGia(); } } System.out.println("Tổng tiền sách giáo khoa = " + tongTienSachGiaoKhoa); for (int i = 0; i < arrSachThamKhao.size(); i++) { tongTienSachThamKhao += arrSachThamKhao.get(i).getSoLuong() * arrSachThamKhao.get(i).getDonGia() + arrSachThamKhao.get(i).getThue(); } System.out.println("Tổng tiền sách tham khảo = " + tongTienSachThamKhao); System.out.println("-----Thông tin sách giáo khoa-----"); for (int i = 0; i < arrSachGiaoKhoa.size(); i++) { System.out.println(arrSachGiaoKhoa.get(i).toString()); } System.out.println("-----Thông tin sách tham khảo-----"); for (int i = 0; i < arrSachThamKhao.size(); i++) { System.out.println(arrSachThamKhao.get(i).toString()); } System.out.println("---Trung bình cộng đơn giá các sách tham khảo---"); for (int i = 0; i < arrSachThamKhao.size(); i++) { tongDonGiaSachThamKhao += arrSachThamKhao.get(i).getDonGia(); trungBinhCongDonGia = tongDonGiaSachThamKhao / arrSachThamKhao.size(); } System.out.println("Trung bình cộng đơn giá các sách tham khảo = " + trungBinhCongDonGia); System.out.println("---Các sách giáo khoa của nhà xuất bản X---"); for (int i = 0; i < arrSachGiaoKhoa.size(); i++) { if (arrSachGiaoKhoa.get(i).getNhaXuatBan().equalsIgnoreCase("X")) { System.out.println(arrSachGiaoKhoa.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)