You are on page 1of 21

package Hihi;

import java.text.DateFormat;
import java.text.NumberFormat;
import java.util.Calendar;
import java.util.Locale;

public class Sach {


private int maSach;
private String tuaSach;
private double giaSach;
private Calendar ngayNhap;
private String tacGia ;

public Sach(int maSach, String tuaSach, double giaSach, Calendar ngayNhap,


String tacGia) {
this.maSach = maSach;
this.tuaSach = tuaSach;
this.giaSach = giaSach;
this.ngayNhap = ngayNhap;
this.tacGia = tacGia;
}

public int getMaSach() {


if(maSach < 0)
return 111 ;
return maSach;
}
public void setMaSach(int maSach) {
this.maSach = maSach;
}
public String getTuaSach() {
if(tuaSach == null)
return "XXX" ;
return tuaSach;
}
public void setTuaSach(String tuaSach) {
if(tuaSach != null)
this.tuaSach = tuaSach;
}

public double getGiaSach() {


if(giaSach <= 0 )
return 1000 ;
return giaSach;
}
public void setGiaSach(double giaSach) {
if(giaSach > 0)
this.giaSach = giaSach;
}

public Calendar getNgayNhap() {


if(ngayNhap.after(Calendar.getInstance()))
return Calendar.getInstance() ;
return ngayNhap;
}
public void setNgayNhap(Calendar ngayNhap) {
if(ngayNhap.before(Calendar.getInstance()))
this.ngayNhap = ngayNhap;
}

public String getTacGia() {


if(tacGia == null)
return "Nhom tac gia" ;
return tacGia;
}
public void setTacGia(String tacGia) {
if(tacGia != null)
this.tacGia = tacGia;
}

Locale lc = new Locale ("vi","VN") ;


NumberFormat nf = NumberFormat.getCurrencyInstance() ;
DateFormat df = DateFormat.getDateInstance(3, lc) ;
@Override
public String toString(){
return String.format("%-10d |%-10s |%-10s |%-10s |%-10s |",
getMaSach(),getTuaSach(),nf.format(getGiaSach()),df.format(getNgayNhap().getT
ime()),getTacGia()) ;
}
}

//--------------------------------------------------------------------
package Hihi;

public class thuVienSach {


private Sach[] sach ;
public int soLuongSach ;
public int maxSach ;

public thuVienSach(int maxSach){


this.maxSach = maxSach ;
sach = new Sach[maxSach] ;
soLuongSach = 0 ;
}

public boolean themSach(Sach s){


if(soLuongSach < maxSach){
for (int i = 0; i < soLuongSach; i++) {
if(sach[i].getMaSach() == s.getMaSach())
return false ;
}
sach[soLuongSach++] = s ;
return true ;
}
return false ;
}

public double giaTriTongSach(int soLuongSach){


if (soLuongSach == 0)
return 0 ;
return sach[soLuongSach-1].getGiaSach() + giaTriTongSach(soLuongSach-1)
;
}

public void sapXep(){


for(int i = 0 ; i < soLuongSach - 1 ; i++){
for(int j = i + 1 ; j < soLuongSach ; j++){
if(sach[i].getTuaSach().compareToIgnoreCase(sach[j].getTuaSach()) > 0
){
Sach temp = sach[i] ;
sach[i] = sach[j] ;
sach[j] = temp ;
}
}
}
}

public Sach timSach(int maSach){


for(int i = 0 ; i < soLuongSach ; i++){
if(sach[i].getMaSach() == maSach){
return sach[i] ;
}
}
return null ;
}

public boolean xoaSach(int maSach){


for(int i = 0 ; i < soLuongSach ; i++){
if(sach[i].getMaSach() == maSach){
for(int j = i ; j < soLuongSach - 1 ; j++){
sach[j] = sach[j+1] ;
}
soLuongSach-- ;
return true ;
}
}
return false ;
}
public boolean capNhatGiaSach(int maSach , double giaSach){
for(int i = 0 ; i < soLuongSach ; i++){
if(sach[i].getMaSach() == maSach){
sach[i].setGiaSach(giaSach);
return true ;
}
}
return false ;
}

public Sach[] getAll(){


return sach ;
}
}

//------------------------------------------------------------------------------
package Hihi;

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class mainJob {


public static void main(String[] args) {
Sach s1 = new Sach(1, "Tua sach 1", -1000, new GregorianCalendar(2023,
Calendar.DECEMBER, 11), "Tac gia 1") ;
Sach s2 = new Sach(2,null, 2000, new GregorianCalendar(2022,
Calendar.NOVEMBER, 12), "Tac gia 2") ;
Sach s3 = new Sach(3, "Tua sach 3", 3000, new GregorianCalendar(2021,
Calendar.OCTOBER, 13), "Tac gia 3") ;

try (Scanner sc = new Scanner(System.in)) {


int soLuongSach ;
do{
System.out.print("Nhap so luong sach : ");
soLuongSach = sc.nextInt() ;
if(soLuongSach <= 0)
System.out.println("So luong sach phai lon hon 0");
}while(soLuongSach <= 0) ;

thuVienSach thuVien = new thuVienSach(soLuongSach) ;

int choose ;
do{
menu() ;
System.out.print("Nhap lua chon : ");
choose = sc.nextInt() ;
switch(choose){
case 1 :
if(thuVien.themSach(s2))
System.out.println("Them sach s2 thanh cong") ;
else{
System.out.println("Them sach s2 that bai !");
System.out.print("Thu vien day hoac ma sach da ton tai") ;
}
if(thuVien.themSach(s1))
System.out.println("Them sach s1 thanh cong") ;
else{
System.out.println("Them sach s1 that bai !");
System.out.print("Thu vien day hoac ma sach da ton tai") ;
}
if(thuVien.themSach(s3))
System.out.println("Them sach s3 thanh cong") ;
else{
System.out.println("Them sach s3 that bai !");
System.out.print("Thu vien day hoac ma sach da ton tai") ;
}
break ;
case 2 :
System.out.println("Gia tri tong sach hien co : " +
thuVien.giaTriTongSach(thuVien.soLuongSach));
break ;
case 3 :
thuVien.sapXep();
System.out.println("Sap xep thanh cong");
break ;
case 4 :
System.out.print("Nhap ma sach can tim : ");
int maSachTim = sc.nextInt() ;
Sach sachTim = thuVien.timSach(maSachTim) ;
if(sachTim != null)
System.out.println(sachTim);
else
System.out.println("Khong tim thay sach");
break ;
case 5 :
System.out.print("Nhap ma sach can cap nhat : ");
int maSachCapNhat = sc.nextInt() ;
double giaSachMoi ;
do{
System.out.print("Nhap gia sach moi : ");
giaSachMoi = sc.nextDouble() ;
if(giaSachMoi <= 0)
System.out.println("Gia sach phai lon hon 0");
}while(giaSachMoi <= 0) ;
if(thuVien.capNhatGiaSach(maSachCapNhat, giaSachMoi))
System.out.println("Cap nhat thanh cong");
else
System.out.println("Khong tim thay sach");
break ;
case 6 :
System.out.print("Nhap ma sach can xoa : ");
int maSachXoa = sc.nextInt() ;
if(thuVien.xoaSach(maSachXoa))
System.out.println("Xoa sach thanh cong");
else
System.out.println("Khong tim thay sach");
break ;
case 7 :
for(int i = 0 ; i < thuVien.soLuongSach ; i++){
System.out.println(thuVien.getAll()[i]);
}
break ;
case 0 :
System.out.println("Thoat chuong trinh");
break ;
default :
System.out.println("Nhap sai lua chon");
break ;
}
}while(choose != 0) ;
}
}

public static void menu(){

System.out.println("========================================");
System.out.println("1. Them sach hien co ");
System.out.println("2. Thong ke gia tri sach hien co ");
System.out.println("3. Sap xep sach theo tua sach");
System.out.println("4. Tim sach theo ma sach");
System.out.println("5. Cap nhat gia sach theo ma sach");
System.out.println("6. Xoa sach theo ma sach") ;
System.out.println("7. Danh sach sach hien co");
System.out.println("0. Thoat chuong trinh");

System.out.println("========================================");
System.out.println();
}

}
//-------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
package soMay22_NguyenThanhTu_22691321_DHKTPM18ATT;

public abstract class NhanVien {


protected String maNV,hoTen,dienThoai;
protected double luongCanBan;
public String getMaNV() {
return maNV;
}
public void setMaNV(String maNV) {
this.maNV = maNV;
}
public String getHoTen() {
return hoTen;
}
public void setHoTen(String hoTen) {
this.hoTen = hoTen;
}
public String getDienThoai() {
return dienThoai;
}
public void setDienThoai(String dienThoai) {
this.dienThoai = dienThoai;
}
public double getLuongCanBan() {
return luongCanBan;
}
public void setLuongCanBan(double luongCanBan) {
this.luongCanBan = luongCanBan;
}
public NhanVien(String maNV, String hoTen, String dienThoai, double
luongCanBan) {
setDienThoai(dienThoai);
setHoTen(hoTen);
setLuongCanBan(luongCanBan);
setMaNV(maNV);
}
public NhanVien() {
setDienThoai("chua xac dinh");
setHoTen("Chua xac dinh");
setLuongCanBan(0);
setMaNV("abc");
}
@Override
public String toString() {
return "NhanVien [maNV=" + maNV + ", hoTen=" + hoTen + ",
dienThoai=" + dienThoai + ", luongCanBan="
+ luongCanBan + "]";
}
public abstract double getLuongNV();
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((maNV == null) ? 0 : maNV.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
NhanVien other = (NhanVien) obj;
if (maNV == null) {
if (other.maNV != null)
return false;
} else if (!maNV.equals(other.maNV))
return false;
return true;
}

}
//----------------------------------------------------------------------------------------
package soMay22_NguyenThanhTu_22691321_DHKTPM18ATT;

import java.util.ArrayList;
import java.util.List;

public class CongTy {


private List<NhanVien> ds;
public CongTy(){
ds=new ArrayList<NhanVien>();
}
public boolean themNhanVien(NhanVien x) {
if(ds.contains(x)) return false;
ds.add(x);
return true;
}
public NhanVien timKiem(String maNV) {
for (NhanVien x: ds) {
if (x.getMaNV().equalsIgnoreCase(maNV)) return x;
}
return null;
}
boolean xoaNhanVien(String maNV) {
for (NhanVien x:ds) {
if (timKiem(maNV)!=null) {
ds.remove(x);
return true;
}
}
return false;
}
boolean capNhatNhanVien(String maNV,String hoTen) {
for (NhanVien x:ds) {
if (timKiem(maNV)!=null){
x.setMaNV(maNV);
x.setHoTen(hoTen);
return true;
}
}
return false;
}
public String xuatDSNVHanhChinh() {
String s="";
for (NhanVien x:ds) {
s+=x+"\n";
}
return s;
}
}
//-----------------------------------------------------------------------------------------
package soMay22_NguyenThanhTu_22691321_DHKTPM18ATT;

public class NhanVienBanHang extends NhanVien{


private double doanhSoBH;
public double getDoanhSoBH() {
return doanhSoBH;
}

public void setDoanhSoBH(double doanhSoBH){


if (this.doanhSoBH<0) this.doanhSoBH=0;
else this.doanhSoBH = doanhSoBH;
}
public NhanVienBanHang(String maNV, String hoTen, String dienThoai,
double luongCanBan, double doanhSoBH) {
super(maNV, hoTen, dienThoai, luongCanBan);
setDoanhSoBH(doanhSoBH);
}
@Override
public double getLuongNV() {
if (doanhSoBH>=20000000) return getLuongCanBan()
+getDoanhSoBH()*0.03;
return getLuongCanBan();
}

@Override
public String toString() {
return "NhanVienBanHang [doanhSoBH=" + doanhSoBH + ",
maNV=" + maNV + ", hoTen=" + hoTen + ", dienThoai="
+ dienThoai + ", luongCanBan=" + luongCanBan +
"]"+"Luong nv"+ getLuongNV();
}

}
//--------------------------------------------------------------------------------
package soMay22_NguyenThanhTu_22691321_DHKTPM18ATT;

public class NhanVienHanhChinh extends NhanVien {


@Override
public double getLuongNV() {
return getLuongCanBan()*getHeSoLuong();
}
private double heSoLuong;
public double getHeSoLuong() {
return heSoLuong;
}
public void setHeSoLuong(double heSoLuong) throws Exception {
if (heSoLuong<1.66||heSoLuong>8.69) throw new Exception("Loi");
else this.heSoLuong = heSoLuong;
}
public NhanVienHanhChinh(String maNV, String hoTen, String dienThoai,
double luongCanBan, double heSoLuong) throws Exception {
super(maNV, hoTen, dienThoai, luongCanBan);
setHeSoLuong(heSoLuong);
}
@Override
public String toString() {
return "NhanVienHanhChinh [heSoLuong=" + heSoLuong + ",
maNV=" + maNV + ", hoTen=" + hoTen + ", dienThoai="
+ dienThoai + ", luongCanBan=" + luongCanBan +
"]"+"Luong nv: "+getLuongNV();
}

}
//--------------------------------------------------------------------------------
package soMay22_NguyenThanhTu_22691321_DHKTPM18ATT;

public class Test {


public static void main(String[] args) throws Exception {
CongTy x=new CongTy();
x.themNhanVien(new NhanVienBanHang("1X2", "Nguyen Van A",
"0906855147",1500000, 20000000));
x.themNhanVien(new NhanVienBanHang("1X3", "Nguyen Van G",
"0906855239",1100000, 30000000));
x.themNhanVien(new NhanVienBanHang("1G1", "Nguyen Van D",
"0906855140",1100000, 19000000));
x.themNhanVien(new NhanVienBanHang("1GX", "Nguyen Van E",
"0806855140",900000, 39000000));
x.themNhanVien(new NhanVienBanHang("1XX", "Nguyen Van F",
"0706855140",2500000, 8000000));
x.themNhanVien(new NhanVienHanhChinh("DXD", "Nguyen Van
B", "0906855146",1500000,7.6));
x.themNhanVien(new NhanVienHanhChinh("1X4", "Nguyen Van C",
"0906855145",1300000, 4.2));
x.themNhanVien(new NhanVienHanhChinh("1XD", "Nguyen Van
F", "0906855146",2000000,8.5));
x.themNhanVien(new NhanVienHanhChinh("2X3", "Nguyen Van
X", "0906855146",2500000,5.1));
x.themNhanVien(new NhanVienHanhChinh("3X3", "Nguyen Van
Y", "0906855146",3000000,5));
System.out.println("danh sach nv: ");
System.out.println(x.xuatDSNVHanhChinh());
System.out.println("danh sach nhan vien sau khi xoa manv=1X2:");
if (x.xoaNhanVien("1X2")==false) System.out.println("Khong tim
thay trong danh sach");
else x.xoaNhanVien("1X2");
System.out.println(x.xuatDSNVHanhChinh());
System.out.println("Danh sach sau khi cap nhat nhan vien 1X4:");
x.capNhatNhanVien("1X4","Tu");
System.out.println(x.xuatDSNVHanhChinh());

}
}

You might also like