Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 11 additions & 8 deletions hinh_chu_nhat/HinhChuNhat.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,38 @@
import static yan_service.YANConstant.*;
import static yan_service.YANService.*;

/**
* Tóm tắt: Lưu thông tin một hình chữ nhật và xử lý nhập, tính chu vi, diện
* tích, xuất kết quả ra console.
*/
public class HinhChuNhat {
// #region Fields
// Nhóm dữ liệu đầu vào và kết quả tính toán của hình chữ nhật.
private double chieuDai;
private double chieuRong;
private double chuVi;
private double dienTich;
// #endregion

// #region Methods
// Tính chu vi theo công thức 2 * (dài + rộng).
public void tinhChuVi() {
chuVi = 2 * (chieuDai + chieuRong);
}

// Tính diện tích theo công thức dài * rộng.
public void tinhDienTich() {
dienTich = chieuDai * chieuRong;
}

public void nhapChieuDai() {
printAdv(GREEN, "Chiều dài: ", RESET);
chieuDai = numLimit(0, MAX_VALUE);
chieuDai = numLimitEx(0, MAX_VALUE);
}

public void nhapChieuRong() {
printAdv(GREEN, "Chiều rộng: ", RESET);
chieuRong = numLimit(0, MAX_VALUE);
chieuRong = numLimitEx(0, MAX_VALUE);
}

// Nhập đủ dữ liệu rồi cập nhật ngay hai giá trị dẫn xuất.
public void nhapHinhChuNhat() {
nhapChieuDai();
nhapChieuRong();
Expand Down Expand Up @@ -61,9 +66,8 @@ public void xuatHinhChuNhat() {
xuatChuVi();
xuatDienTich();
}
// #endregion

// #region Properties
// Nhóm getter/setter phục vụ tái sử dụng đối tượng trong bài tập khác.
public double getChieuDai() {
return chieuDai;
}
Expand Down Expand Up @@ -95,5 +99,4 @@ public double getDienTich() {
// public void setDienTich(double dienTich) {
// this.dienTich = dienTich;
// }
// #endregion
}
18 changes: 9 additions & 9 deletions hinh_chu_nhat/TinhHinhChuNhat.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,23 @@
import static yan_service.YANConstant.*;
import static yan_service.YANService.*;

/**
* Tóm tắt: Chương trình console nhập nhiều hình chữ nhật rồi in chu vi và diện
* tích của từng hình.
*/
public class TinhHinhChuNhat {
public static void main(String[] args) {
// tit
// In tiêu đề bài trước khi vào vòng nhập liệu chính.
out.println(BLUE_BOLD);
printlnAdv("Bài Tính Hình Chữ Nhật");
// content
run();
}

// Fields
// Danh sách hình chữ nhật được nhập trong một lượt chạy.
private static List<HinhChuNhat> mDSHinhChuNhat;

// Main
// Điều phối nhập số lượng hình, nhập từng hình và xuất kết quả.
private static void run() {
// input
out.println();
printAdv(GREEN, "Nhập vào số hình chữ nhật: ", RESET);
var n = numLimit(1, MAX_VALUE);
Expand All @@ -34,14 +36,12 @@ private static void run() {
hinhChuNhat.nhapHinhChuNhat();
mDSHinhChuNhat.add(hinhChuNhat);
}
// output
out.println(YELLOW);
showntime();
// ctrl
checkOut();
}

// Showntime
// In kết quả đã tính cho toàn bộ hình chữ nhật trong danh sách.
private static void showntime() {
for (var i = 0; i < mDSHinhChuNhat.size(); i++) {
printlnAdv(format("Hình chữ nhật thứ %d", i + 1));
Expand All @@ -50,7 +50,7 @@ private static void showntime() {
}
}

// Check out
// Cho phép người dùng chạy lại bài mà không phải khởi động chương trình.
private static void checkOut() {
if (credit() == 1) {
run();
Expand Down
13 changes: 7 additions & 6 deletions quan_ly_hoc_sinh/BaoHiemYTe.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,20 @@
import static yan_service.YANConstant.*;
import static yan_service.YANService.*;

/**
* Tóm tắt: Lưu thông tin bảo hiểm y tế của học sinh, gồm số phiếu, ngày cấp,
* bệnh viện đăng ký và thời hạn hiệu lực.
*/
public class BaoHiemYTe {
// #region Fields
// Các thuộc tính bám sát thông tin thường có trên thẻ/phiếu BHYT.
private String soPhieu;
private Date ngayCap;
private String tenBVDK;
private Date tuNgay;
private Date denNgay;
private final Scanner mScan = new Scanner(in);
// #endregion

// #region Methods
// Nhóm hàm nhập từng trường giúp luồng nhập chính dễ đọc và dễ kiểm tra.
public void nhapSoPhieu() {
printAdv(GREEN, "Số phiếu BHYT: ", RESET);
soPhieu = mScan.nextLine();
Expand Down Expand Up @@ -78,9 +81,8 @@ public void xuatBaoHiemYTe() {
xuatTuNgay();
xuatDenNgay();
}
// #endregion

// #region Properties
// Getter/setter phục vụ tổng hợp thông tin học sinh ở các lớp khác.
public String getSoPhieu() {
return soPhieu;
}
Expand Down Expand Up @@ -120,5 +122,4 @@ public Date getDenNgay() {
public void setDenNgay(Date denNgay) {
this.denNgay = denNgay;
}
// #endregion
}
13 changes: 7 additions & 6 deletions quan_ly_hoc_sinh/DiemTungMon.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,19 @@
import static yan_service.YANConstant.*;
import static yan_service.YANService.*;

/**
* Tóm tắt: Quản lý điểm thành phần của một môn học trong một học kỳ và tính
* điểm trung bình môn theo trọng số miệng, 15 phút, giữa kỳ, cuối kỳ.
*/
public class DiemTungMon {
// #region Fiedls
// Điểm thành phần và điểm trung bình đã tính của một môn.
private double diemKTMieng;
private double diemKT15Phut;
private double diemKTGiuaKy;
private double diemKTCuoiKy;
private double diemTrungBinhMon;
// #endregion

// #region Methods
// Công thức trọng số: miệng 1, 15 phút 1, giữa kỳ 2, cuối kỳ 3.
public void tinhDiemTrungBinhMon() {
diemTrungBinhMon = (diemKTMieng + diemKT15Phut + diemKTGiuaKy * 2 + diemKTCuoiKy * 3) / 7;
}
Expand Down Expand Up @@ -73,9 +76,8 @@ public void xuatDiemTungMon(String monHoc, int hocKy) {
xuatDiemKTCuoiKy(monHoc, hocKy);
xuatDiemTrungBinhMon(monHoc, hocKy);
}
// #endregion

// #region Properties
// Getter/setter cho điểm thành phần; điểm trung bình chỉ nên tính bằng công thức.
public double getDiemKTMieng() {
return diemKTMieng;
}
Expand Down Expand Up @@ -115,5 +117,4 @@ public double getDiemTrungBinhMon() {
// public void setDiemTrungBinhMon(double diemTrungBinhMon) {
// this.diemTrungBinhMon = diemTrungBinhMon;
// }
// #endregion
}
13 changes: 7 additions & 6 deletions quan_ly_hoc_sinh/HocSinh.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,19 @@
import static yan_service.YANConstant.*;
import static yan_service.YANService.*;

/**
* Tóm tắt: Gộp mã học sinh, thông tin cá nhân, thông tin trường/lớp và thành
* tích học tập thành một hồ sơ học sinh hoàn chỉnh.
*/
public class HocSinh {
// #region Fields
// Mỗi hồ sơ học sinh được chia thành các cụm thông tin nhỏ để dễ quản lý.
private String maHocSinh;
private ThongTinCaNhan thongTinCaNhan;
private ThongTinCoBan thongTinCoBan;
private ThanhTichHocTap thanhTichHocTap;
private final Scanner mScan = new Scanner(in);
// #endregion

// #region Methods
// Nhóm hàm nhập từng phần của hồ sơ học sinh.
public void nhapMaHocSinh() {
printAdv(GREEN, "Mã học sinh: ", RESET);
maHocSinh = mScan.nextLine();
Expand Down Expand Up @@ -66,9 +69,8 @@ public void xuatHocSinh() {
xuatThongTinCoBan();
xuatThanhTichHocTap();
}
// #endregion

// #region Properties
// Getter/setter hỗ trợ màn hình quản lý truy cập từng cụm thông tin.
public String getMaHocSinh() {
return maHocSinh;
}
Expand Down Expand Up @@ -100,5 +102,4 @@ public ThanhTichHocTap getThanhTichHocTap() {
public void setThanhTichHocTap(ThanhTichHocTap thanhTichHocTap) {
this.thanhTichHocTap = thanhTichHocTap;
}
// #endregion
}
20 changes: 10 additions & 10 deletions quan_ly_hoc_sinh/QuanLyHocSinh.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,23 @@
import static yan_service.YANConstant.*;
import static yan_service.YANService.*;

/**
* Tóm tắt: Chương trình console nhập danh sách học sinh, kiểm tra trùng mã và
* in tóm tắt thành tích học tập của từng học sinh.
*/
public class QuanLyHocSinh {
public static void main(String[] args) {
// tit
// In tiêu đề trước khi bắt đầu luồng nhập danh sách.
out.println(BLUE_BOLD);
printlnAdv("Bài Tập Quản Lý Học Sinh");
// content
run();
}

// Fields
// Danh sách học sinh trong một lượt chạy chương trình.
private static List<HocSinh> mDSHocSinh;

// Main
// Điều phối nhập số lượng, nhập từng học sinh, xuất kết quả và hỏi tiếp tục.
private static void run() {
// input
out.println();
printAdv(GREEN, "Nhập vào số học sinh: ", RESET);
var n = numLimit(1, MAX_VALUE);
Expand All @@ -39,14 +41,12 @@ private static void run() {
hocSinh.nhapThanhTichHocTap();
mDSHocSinh.add(hocSinh);
}
// output
out.println(YELLOW);
showntime();
// ctrl
checkOut();
}

// Check regist
// Kiểm tra mã học sinh đã tồn tại trong danh sách hiện tại hay chưa.
private static boolean isRegist(String maHocSinh) {
var isSuccess = false;
for (var hocSinh : mDSHocSinh) {
Expand All @@ -59,7 +59,7 @@ private static boolean isRegist(String maHocSinh) {
return isSuccess;
}

// Showntime
// In phần thành tích học tập theo từng học sinh.
private static void showntime() {
for (var hocSinh : mDSHocSinh) {
printlnAdv(format("%s", toUpperCaseAdv(hocSinh.getThongTinCaNhan().getHoTen())));
Expand All @@ -68,7 +68,7 @@ private static void showntime() {
}
}

// Check out
// Cho phép nhập một danh sách học sinh mới trong cùng phiên chạy.
private static void checkOut() {
if (credit() == 1) {
run();
Expand Down
15 changes: 9 additions & 6 deletions quan_ly_hoc_sinh/ThanhTichHocTap.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,19 @@
import static java.lang.String.*;
import static yan_service.YANService.*;

/**
* Tóm tắt: Tổng hợp kết quả hai học kỳ của học sinh để xác định hạnh kiểm,
* điểm trung bình và xếp loại học lực cả năm.
*/
public class ThanhTichHocTap {
// #region Fields
// Hai học kỳ đầu vào và các kết quả cả năm được tính sau khi nhập.
private TheoKy hocKy1;
private TheoKy hocKy2;
private String hanhKiemCN;
private double diemTrungBinhCN;
private String xepLoaiCN;
// #endregion

// #region Methods
// Xét hạnh kiểm cả năm theo cặp hạnh kiểm học kỳ 1 và học kỳ 2.
public void xetHanhKiemCN() {
var hk1 = hocKy1.getHanhKiem();
var hk2 = hocKy2.getHanhKiem();
Expand Down Expand Up @@ -124,6 +127,7 @@ public void xetHanhKiemCN() {
}
}

// Điểm trung bình cả năm: học kỳ 2 nhân hệ số 2.
public void tinhDiemTrungBinhCN() {
try {
diemTrungBinhCN = (hocKy1.getDiemTrungBinhTCCM() + hocKy2.getDiemTrungBinhTCCM() * 2) / 3;
Expand All @@ -132,6 +136,7 @@ public void tinhDiemTrungBinhCN() {
}
}

// Xếp loại học lực cả năm từ điểm trung bình đã tính.
public void xepLoaiHocLucCN() {
if (diemTrungBinhCN >= 9) {
xepLoaiCN = "Xuất Sắc";
Expand Down Expand Up @@ -193,9 +198,8 @@ public void xuatThanhTichHocTap() {
xuatDiemTrungBinhCN();
xuatXepLoaiHocLucCN();
}
// #endregion

// #region Properties
// Getter/setter cho hai học kỳ; các kết quả cả năm được giữ chỉ đọc.
public TheoKy getHocKy1() {
return hocKy1;
}
Expand Down Expand Up @@ -235,5 +239,4 @@ public String getXepLoaiCN() {
// public void setXepLoaiCN(String xepLoaiCN) {
// this.xepLoaiCN = xepLoaiCN;
// }
// #endregion
}
Loading