TRƯỜNG ĐẠI HỌC MỞ HÀ NỘIKHOA CÔNG NGHỆ THÔNG TIN ---BÁO CÁO BÀI TẬP LỚN MÔN KĨ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG NHÓM 14 CHỦ ĐỀ : QUẢN LÝ HỒ SƠ BỆNH ÁN ĐIỀU TRỊ TẠI BỆNH VIỆN- BỆNH NHÂN,
Trang 1TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-BÁO CÁO BÀI TẬP LỚN
MÔN KĨ THUẬT LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
NHÓM 14
CHỦ ĐỀ : QUẢN LÝ HỒ SƠ BỆNH ÁN ĐIỀU TRỊ TẠI BỆNH VIỆN- BỆNH NHÂN, BỆNH ĐIỀU TRỊ, BÁC SỸ ĐIỀU TRỊ,
PHIẾU ĐIỀU TRỊ.
Giáo viên HD: Ths Trịnh Thị Xuân
Sinh viên thực hiện gồm:
• Lâm Văn Tài ( trưởng nhóm)
• Nguyễn Tuấn Anh
• Ngô Quý Vinh
• Nguyễn Hữu Lớp tín chỉ: 7E1011.22-2.20232024.2.0_LT
Hà Nội, 2024
Mục lục
• Các đối tượng cần quản
lý 2
• Sơ đồ các lớp bài
toán 3
III Các thao tác, chức năng bài
Trang 2IV Chương
trình 4
V Kiểm thử chương
trình 13
VI Kết
luận 18
I Các đối tượng cần quản lý
Trong chung cư cần theo dõi thu phí hàng tháng của các căn hộ
Các đối tượng cần quản lý gồm: Bệnh Nhân, Bệnh điều trị, Bác sỹ điều trị,
Phiếu điều trị.
Trang 3-Bệnh Nhân gồm các thông tin: Số điện thoại, họ tên, Email, địa chỉ, giới tính, tuổi.
-Bác sỹ điều trị gồm các thông tin:Số điện thoại, họ tên, Email, vị trí công việc.
-Bệnh Điều Trị gồm các thông tin: Mã bệnh, tên bệnh , dịch vụ điều trị, số lượng, đơn giá.
-Phiếu điều trị gồm các thông tin: Mã phiếu , ngày lập phiếu, thông tin bệnh nhân, bệnh điều trị, bác sĩ.
Các thao tác xử lý gồm:
-Nhập và lưu danh sách phiếu điều trị
-Tính tổng tiền tất cả các hóa đơn trong phiếu điều trị
-Sắp xếp danh sách phiếu điều trị theo tổng tiền giảm dần
-In danh sách phiếu điều trị có tổng tiền trên 500.000 đồng
-Tìm kiếm hóa đơn(phiếu điều trị) của bệnh nhân
_
HÓA ĐƠN PHÍ ĐIỀU TRỊ
Mã phiếu: 2024.22.0002 – Ngày lập: 22/02/2024
Bệnh Nhân: Nguyễn Thúy Hạnh Số điện thoại: 09873676363
Email: hanhxx@gmail.com Giới tính: Nữ
Tuổi: 25 Địa chỉ: Hà Nội
STT Mã
bệnh Tên bệnh Dịch vụ Đơn giá lượngSố Thành tiền
1 SR Sâu răng Nhổ răng 300.000 1 300.000
2 VL Viêm lợi Thuốc viêm 200.000 1 200.000
Tổng 500.000
Bằng chữ: năm trăm nghìn Việt Nam đồng
Bác sĩ điều trị Khách hàng
Nguyễn Văn Anh (kí)
0922245367
vananh@gmail.com
Trang 4Bác sĩ nha khoa
II Sơ đồ các lớp bài toán
Các lớp được xây dựng của bài toán như hình mình họa sau:
Thông tin chi tiết các lớp như sau:
*class Nguoi – lớp cơ sở:
-Thuộc tính: dienThoai(số điện thoại), hoTen(họ tên), email(Email)
-Phương thức: nhap( ), xuat( ), …
*class BenhNhan – lớp dẫn xuất – kế thừa từ lớp Nguoi:
-Thuộc tính: tuoi(tuổi), gioiTinh(giới tính), diaChi(địa chỉ)
-Phương thức: nhap( ), xuat( ), ……
*class BacSi – lớp dẫn xuất – kế thừa từ lớp Nguoi:
-Thuộc tính: vitrilam( vị trí làm)
-Phương thức: nhap( ), xuat( ), …………
*class BenhDieuTri:
-Thuộc tính: maBenh( mã bệnh), tenBenh( tên bệnh), dichVu(dịch
vụ) ,soLuong( số lượng), donGia( đơn giá)
-Phương thức: nhap( ), xuat( ), thanhTien( ), ……
*class PhieuDieuTri:
-Thuộc tính: maPhieu(mã phiếu), ngayLap(ngày lập), thông tin bệnh nhân, bác sĩ điều trị, lstBenh(danh sách bệnh và dịch vụ điều trị), …
-Phương thức: nhap( ), xuat( ), tongTien( ),……….…
III Các thác tác, chức năng bài toán
Chương trình khi chạy thực hiện các chức năng sau:
-Nhập danh sách hóa đơn từ bàn phím
-In danh sách hóa đơn đã nhập
-Tính tổng tiền của tất cả hóa đơn đã nhập
-Sắp xếp danh sách các hóa đơn theo vị trí giảm dần của tổng tiền
Trang 5-In danh sách phiếu có tổng tiền trên 500k.
IV Chương trình
1 Class Nguoi
package baitaplon;
import java.util.Scanner;
public class Nguoi {
//Mô tả thuộc tính lớp
private String HoTen;
private String DienThoai;
private String email;
void nhap(){
Scanner sc = new Scanner(System.in);
System.out.print("Nhap ho ten: ");
HoTen = sc.nextLine();
System.out.print("Nhap so dien thoai: ");
DienThoai = sc.nextLine();
System.out.print("Nhap email: ");
email = sc.nextLine();
}
void xuat(){
System.out.printf("\n %15s %12s %25s", HoTen, DienThoai, email); }
}
2 Class BacSi
package baitaplon;
import java.util.Scanner;
public class BacSi extends Nguoi{
private String ViTri;
public String getViTri() {
return ViTri;
}
Trang 6public void setViTri(String ViTri) { this.ViTri = ViTri;
}
void nhap(){
super.nhap();
Scanner sc = new Scanner(System.in); System.out.print("Nhap vi tri lam: "); ViTri = sc.nextLine();
}
void xuat(){
super.xuat();
System.out.printf("%35s", ViTri); }
}
3 Class BenhNhan
package baitaplon;
import java.util.Scanner;
public class BenhNhan extends Nguoi{ private float Tuoi;
private String GioiTinh;
private String DiaChi;
@Override
void nhap(){
super.nhap();
Scanner sc = new Scanner(System.in); System.out.print("Nhap dia chi: "); DiaChi = sc.nextLine();
System.out.print("Nhap gioi tinh: "); GioiTinh = sc.nextLine();
System.out.print("Nhap tuoi: "); Tuoi = sc.nextFloat();
Trang 7}
@Override
void xuat(){
super.xuat();
System.out.printf("%5.0f %5s %10s", Tuoi, GioiTinh, DiaChi); }
}
4 Class BenhDieuTri
package baitaplon;
import java.util.Scanner;
public class BenhDieuTri {
private String MaBenh;
private String TenBenh;
private String DichVu;
private int SoLuong;
private float DonGia;
public String getMaBenh() {
return MaBenh;
}
public void setMaBenh(String MaBenh) {
this.MaBenh = MaBenh;
}
public String getTenBenh() {
return TenBenh;
}
public void setTenBenh(String TenBenh) {
this.TenBenh = TenBenh;
}
public String getDichVu() {
return DichVu;
}
Trang 8public void setDichVu(String DichVu) {
this.DichVu = DichVu;
}
public int getSoLuong() {
return SoLuong;
}
public void setSoLuong(int SoLuong) {
this.SoLuong = SoLuong;
}
public float getDonGia() {
return DonGia;
}
public void setDonGia(float DonGia) {
this.DonGia = DonGia;
}
void nhap(){
Scanner sc = new Scanner(System.in);
System.out.print("Nhap ma benh: ");
MaBenh = sc.nextLine();
System.out.print("Nhap ten benh: ");
TenBenh = sc.nextLine();
System.out.print("Nhap dich vu: ");
DichVu = sc.nextLine();
System.out.print("Nhap so luong: ");
SoLuong = sc.nextInt();
System.out.print("Nhap don gia: ");
DonGia = sc.nextFloat();
}
void xuat(){
System.out.printf("\n %7s %15s %15s %5d %10.0f %10.0f", MaBenh, TenBenh, DichVu, SoLuong, DonGia, thanhTien());
Trang 9}
float thanhTien() {return SoLuong*DonGia;} }
5 Class PhieuDieuTri
package baitaplon;
import java.util.ArrayList;
import java.util.Scanner;
public class PhieuDieuTri {
ArrayList<BenhDieuTri> lstBenh;
private String MaPhieu;
private String NgayLap;
BenhNhan bn;
BacSi bs;
void nhap(){
Scanner sc = new Scanner(System.in); int n;
System.out.print("\nNhap ma phieu:"); MaPhieu = sc.nextLine();
System.out.print("Nhap ngay lap:"); NgayLap = sc.nextLine();
System.out.println("Thong tin benh nhan:");
bn = new BenhNhan();
bn.nhap();
System.out.println("Thong tin bac si:");
bs = new BacSi();
bs.nhap();
System.out.print("Nhap so luong dich vu:");
n = sc.nextInt();
lstBenh = new ArrayList();
for (int i=0;i<n;i++){
BenhDieuTri bdt = new BenhDieuTri();
Trang 10System.out.print("\n");
bdt.nhap();
lstBenh.add(bdt);
}
}
void xuat(){
System.out.println("\n -");
System.out.print("Ma phieu: " + MaPhieu);
System.out.print(" Ngay lap: "+ NgayLap);
System.out.print("\nBenh nhan:");
bn.xuat();
System.out.print("\nBac si dieu tri:");
bs.xuat();
System.out.print("\nDanh sach dich vu:");
for (BenhDieuTri bdt: lstBenh)
bdt.xuat();
System.out.print("\nTong: " + TongTien());
}
float TongTien(){
int i;
float tong = 0;
for (BenhDieuTri bdt: lstBenh){
tong = tong + bdt.thanhTien();
}
return tong;
}
}
6 Class PhieuDieuTriComparator
package baitaplon;
import java.util.Comparator;
public class PhieuDieuTriComparator implements Comparator<PhieuDieuTri>{
Trang 11public int compare(PhieuDieuTri o1, PhieuDieuTri o2){
if (o1.TongTien() == o2.TongTien())
return 0;
else if (o1.TongTien() < o2.TongTien())
return 1;
else
return -1;
}
}
7 Class Main
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class QuanLyHoSoBenhAn {
public static void main(String[] args) {
ArrayList<PhieuDieuTri> lstPDT = new ArrayList();
int n, chon;
Scanner sc = new Scanner(System.in);
do {
System.out.print("\n -");
System.out.print("\n 1 Nhap danh sach phieu dieu tri.");
System.out.print("\n 2 In danh sach phieu dieu tri.");
System.out.print("\n 3 Tinh tong tien tat ca phieu dieu tri."); System.out.print("\n 4 Sap xep danh sach theo tong tien giam dan."); System.out.print("\n 5 In danh sach phieu có tong tien tren 500k."); System.out.print("\n 0 Thoat");
System.out.print("\n Moi ban chon yeu cau:");
chon = sc.nextInt();
switch(chon){
Trang 12case 1: //Nhập danh sách
System.out.print("Nhap so phieu: ");
n=sc.nextInt();
for (int i=0;i<n;i++){
PhieuDieuTri pdt = new PhieuDieuTri();
pdt.nhap();
lstPDT.add(pdt);
}
break;
case 2: //In danh sách
System.out.println("\nDanh sach phieu dieu tri:"); for (PhieuDieuTri pdt: lstPDT){
pdt.xuat();
}
break;
case 3: //Tổng tiền tất cả phiếu
float s=0;
for (PhieuDieuTri pdt: lstPDT)
s = s + pdt.TongTien();
System.out.print("Tong tien tat ca phieu dieu tri: " +s); break;
case 4: //Sắp xếp theo tổng tiền tăng dần
Collections.sort(lstPDT, new PhieuDieuTriComparator()); System.out.print("\n Danh sach sau khi sap xep \n"); for(PhieuDieuTri pdt: lstPDT )
pdt.xuat();
break;
Trang 13
case 5: //In danh sách phiếu có tổng tiền trên 500k
for (PhieuDieuTri pdt: lstPDT){
if (pdt.TongTien()>500000)
pdt.xuat();
}
break;
case 0:
System.exit(0);
}
}while(chon!=0);
}
}
V Kiểm thử chương trình
VI Kết luận
Qua bài tập lớn giúp chúng em cải thiện về cách lập danh sách dữ liệu, tính tổng số tiền, sắp xếp danh sách và in danh sách theo yêu cầu