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)

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