Bài 11 - Bài tập quản lý một danh sách học sinh, nhân viên, khách hàng bằng Arraylist

  Bài 11, (yêu cầu chung: xác định private, public, protected cho từng thuộc tính/phương thức của mỗi lớp, cài đặt constructor có tham số v...

 
Bài 11, (yêu cầu chung: xác định private, public, protected cho từng thuộc tính/phương thức của mỗi lớp, cài đặt constructor có tham số và không có tham số)
Giả sử cần xây dựng chương trình quản lý cho một học viện nghiên cứu giảng dạy và ứng dụng. Đối tượng quản lý bao gồm các sinh viên đang theo học, các nhân viên đang đi làm ở học viện, các khách hàng đến giao dịch mua bán sản phẩm ứng dụng. Dựa vào đặc tính của từng đối tượng, người quản lý cần đưa ra cách thức đánh giá khác nhau.
Hãy xây dựng các lớp sau:
  • Lớp person: bao gồm họ tên, địa chỉ, phương thức toString()
  • các lớp Student, employee, customer( mô tả dưới đây) kế thừa lớp person.
  • lớp student: bao gồm các thuộct tính điểm môn học 1, điểm môn học 2 và các phương thức: tính điểm TB, đánh giá, overriding, phương thức toString trả về bảng điểm của sinh viên(gồm thông tin thuộc tính và điểm trung bình)
  • lớp Employee: bao gồm thuộc tính heSoLuong, và các phương thức tính lương, đánh giá, overriding, phương thức toString trả về bảng lương của nhân viên(gồm thông tin thuộc tính đối tượng và tiền lương).
  • lớp Customer: bao gồm thuộc tính tên công ty, giá trị hoá đơn, đánh giá và phương thức toString trả về thông tin hoá đơn cho khách hàng( gồm các thuộc tính của đối tượng)
lớp có một biến danh sách để lưu sinh viên, nhân viên, khách hàng( dùng 1 biến array person), biến lưu tổng số người trong danh sách, constructor mặc định khởi tạo array với dung lượng cho trước, phương thức thêm một người vào danh sách(thông số person), xoá 1 người khỏi danh sách(nhận thông số là họ tên của người cần xoá), sắp xếp danh sách theo thứ tự họ tên, phương thức xuất danh sách. Khi danh sách đầy thì tự động tăng dung lượng lên 50%.
Viết lớp cho phương thức main cho phần kiểm nhiệm. Giao tiếp với người dùng bằng menu( thể hiện tính đa hình bằng cách nhập vào thông tin là sinh viên, nhân viên hay khách hàng).

Code đầy đủ

Phần dưới có thể thiếu, tải về đây để đúng yêu cầu bài
Các bạn lấy code chấm thì để ý giúp mình, giống nhau thầy cô để ý nhé!
Hướng dẫn chia sẻ để mở nội dung: https://i.imgur.com/hivGtuF.mp4


Tạo Class PERSON

package TH4.bai11;
import java.util.Scanner;
public class PERSON {
public String hoTen, diaChi;
public PERSON() {
hoTen = "";
diaChi = "";
}
public PERSON(String hoTen, String diaChi) {
this.hoTen = hoTen;
this.diaChi = diaChi;
}
public void nhap() {
Scanner sc = new Scanner(System.in);
System.out.print("Nhap ho ten: ");
hoTen = sc.nextLine();
System.out.print("Nhap dia chi: ");
diaChi = sc.nextLine();
}
public void xuat() {
System.out.printf("\nHo ten: %s", hoTen);
System.out.printf("Dia chi: %s\n", diaChi);
}
public String getDiaChi() {
return diaChi;
}
public String getHoTen() {
return hoTen;
}
public void setDiaChi(String diaChi) {
this.diaChi = diaChi;
}
public void setHoTen(String hoTen) {
this.hoTen = hoTen;
}
@Override
public String toString() {
return "PERSON{" +
"hoTen='" + hoTen + '\'' +
", diaChi='" + diaChi + '\'' +
'}';
}
}

Tạo class student 

package TH4.bai11;
import java.util.Scanner;
public class STUDENT extends PERSON {
public float diem1, diem2;
public STUDENT(){
super();
diem2 = 0.2f;
diem1 = 0.2f;
}
public STUDENT(float diem1, float diem2) {
this.diem1 = diem1;
this.diem2 = diem2;
}
public void nhap(){
Scanner sc = new Scanner(System.in);
super.nhap();
System.out.print("Nhap diem 1: ");
diem1= sc.nextFloat();
System.out.print("Nhap diem 2: ");
diem2 = sc.nextFloat();
}
public float diemTB() {
return (diem1+diem2)/2;
}
public void xuat() {
super.xuat();
System.out.printf("Diem 1: %.2f\n",diem1);
System.out.printf("Diem 2: %.2f\n",diem2);
}
public float getDiem1() {
return diem1;
}
public float getDiem2() {
return diem2;
}
public void setDiem1(float diem1) {
this.diem1 = diem1;
}
@Override
public void setDiaChi(String diaChi) {
super.setDiaChi(diaChi);
}
@Override
public String toString() {
return "STUDENT{" +
"hoTen=" + hoTen +
", diaChi=" + diaChi +
", diem1='" + diem1 + '\'' +
", diem2='" + diem2 + '\'' +
'}';
}
}

Tạo class EMPLOYEE

package TH4.bai11;
import java.util.Scanner;
public class EMPLOYEE extends PERSON{
public float hSL, luong;
public EMPLOYEE(){
super();
hSL= 0.2f;
}
public EMPLOYEE(float hSL) {
this.hSL = hSL;
}
public float gethSL() {
return hSL;
}
public void sethSL(float hSL) {
this.hSL = hSL;
}
public void nhap(){
Scanner sc = new Scanner(System.in);
super.nhap();
System.out.print("Nhap he so luong: ");
hSL= sc.nextFloat();
luong = hSL*1650000;
}
public void tinhLuong(){
luong = hSL*1650000;
}
public void xuat() {
super.xuat();
System.out.printf("He so luong: %.2f\n",hSL);
System.out.printf("luong: %.2f\n",luong);
}
@Override
public String toString() {
return "EMPLOYEE{" +
"Hoten=" + hoTen +
", diaChi=" + diaChi +
", heSL='" + hSL + '\'' +
", luong='" + luong + '\'' +
'}';
}
}

Tạo class CUSTOMER

package TH4.bai11;
import java.util.Scanner;
public class CUSTOMER extends PERSON {
public String tenCTy;
public float giaTriHD, tienThue, tienNop;
public CUSTOMER() {
super();
tenCTy = "";
giaTriHD = 0.2f;
}
public CUSTOMER(String tenCTy, float giaTriHD) {
this.giaTriHD = giaTriHD;
this.tenCTy = tenCTy;
}
public String getTenCTy() {
return tenCTy;
}
public float getGiaTriHD() {
return giaTriHD;
}
public void setGiaTriHD(float giaTriHD) {
this.giaTriHD = giaTriHD;
}
public void setTenCTy(String tenCTy) {
this.tenCTy = tenCTy;
}
public void nhap(){
Scanner sc = new Scanner(System.in);
super.nhap();
System.out.print("Nhap ten cong ty: ");
tenCTy= sc.nextLine();
System.out.print("Nhap gia tri hop dong: ");
giaTriHD = sc.nextFloat();
}
public void tinhTienThue(){
tienThue = (float)0.1*giaTriHD;
}
public void tinhTienNop() {
tienNop = (float)1.1*giaTriHD;
}
public void xuat() {
super.xuat();
System.out.printf("Ten cong ty: %s\n",tenCTy);
System.out.printf("Gia tri hD: %.2f\n",giaTriHD);
System.out.printf("Tien thue: %.2f\n",tienThue);
System.out.printf("Tien nop: %.2f\n",tienNop);
}
@Override
public String toString() {
return "CUSTOMER{" +
"hoTen='" + hoTen + '\'' +
", diaChi=" + diaChi +
", giaTriHD=" + giaTriHD +
", tenCongTy=" + tenCTy +
", tienThue=" + tienNop +
", tienNop='" + tienNop + '\'' +
'}';
}
}

Tạo lớp DANHSACH để quản lý

package TH4.bai11;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.*;
public class DANHSACH {
public float tongLuong =0.2f;
ArrayList<PERSON> DS;
public void nhapDS() {
Scanner sc = new Scanner(System.in);
int i, j, n;
do {
System.out.print("Nhap so nguoi: ");
n = sc.nextInt();
} while(n<=0);
DS = new ArrayList<PERSON>(n);
for(i=0; i<n;i++) {
System.out.print("Nhap nguoi(1:hoc sinh, 2:nhan vien, 3:khach hang) : ");
j= sc.nextInt();
if(j==1){
STUDENT x = new STUDENT();
x.nhap();
DS.add(x);
}
else if(j == 2) {
EMPLOYEE x = new EMPLOYEE();
x.nhap();
x.tinhLuong();
tongLuong += x.luong;
DS.add(x);
}
else if(j==3) {
CUSTOMER x = new CUSTOMER();
x.nhap();
DS.add(x);
}
else i--;
}
}
public void inDS() {
System.out.print("\nDanh sach vua nhap:");
for (PERSON x:DS) {
x.xuat();
}
}
public void xoa() {
PERSON person = null;
Scanner sc = new Scanner(System.in);
String p;
System.out.print("\nNhap vao ten muon xoa: ");
p = sc.nextLine();
for(int i=0; i<DS.size();i++) {
if(p.equals(DS.get(i).hoTen)==true) {
person = DS.get(i);
DS.remove(i);
break;
}
}
}
public void tongLuong() {
System.out.printf("\nTong luong nhan vien la: %.2f", tongLuong);
}
public void SV8() {
for(PERSON x:DS) {
if(x instanceof STUDENT && ((STUDENT) x).diemTB()>8) {
x.xuat();
}
}
}
}

Kết quả test:



COMMENTS

BLOGGER
Tên

bài viết hay,4,Bài viết khác,1,cấu trúc dữ liệu và giải thuật,3,fithou,36,ghim,4,giải tích 2,1,Hướng dẫn,5,Lập trình C,1,lập trình hướng đối tượng,3,Lập trình java,1,phần mềm,2,phần mềm lập trình,2,sách,1,tác phẩm đồ họa,3,tản mạn,4,Thiết kế web,3,thực hành lập trình cơ sở,18,thực hành lập trình hướng đối tượng,16,
ltr
item
Blog NDanh: Bài 11 - Bài tập quản lý một danh sách học sinh, nhân viên, khách hàng bằng Arraylist
Bài 11 - Bài tập quản lý một danh sách học sinh, nhân viên, khách hàng bằng Arraylist
https://1.bp.blogspot.com/-g-7NQHDElYQ/XuWFWdTr22I/AAAAAAAAg3k/qJxpeyUeFIk8v-eT_t5qN3HdalfbV9CNwCK4BGAsYHg/d/banner-blog.png
https://1.bp.blogspot.com/-g-7NQHDElYQ/XuWFWdTr22I/AAAAAAAAg3k/qJxpeyUeFIk8v-eT_t5qN3HdalfbV9CNwCK4BGAsYHg/s72-c-d/banner-blog.png
Blog NDanh
https://blog.ndanh.com/2020/03/bai-11-bai-tap-quan-ly-mot-danh-sach.html
https://blog.ndanh.com/
https://blog.ndanh.com/
https://blog.ndanh.com/2020/03/bai-11-bai-tap-quan-ly-mot-danh-sach.html
true
1596452775547375681
UTF-8
Tải tất cả bài viết Không tìm thấy bài viết nào XEM TẤT CẢ Đọc thêm Trả lời Hủy trả lời Xóa Bởi Trang chủ PAGES POSTS Xem tất cả Bài viết đề xuất CHỦ ĐỀ LƯU TRỮ SEARCH TẤT CẢ BÀI VIẾT Không tìm thấy nội dung của bạn Quay về trang chủ Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow CHIA SẺ ĐỂ XEM NỘI DUNG Bước 1: Chia sẻ lên facebook chế độ công khai Bước 2: Vào facebook, ấn vào bài đã chia sẻ công khai để hiện nội dung! Click Copy All Code Select All Code Code của bạn đã được copy Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content