Tải bản đầy đủ (.docx) (54 trang)

BTL LTHDT HaNoi OpenUniversity

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (640.54 KB, 54 trang )

TRƯỜ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 : LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Đề bài : Quản lí kinh doanh quần áo.
Giảng viên hướng dẫn : Mai Thị Thúy Hà
Sinh viên thực hiện : Nguyễn Tiến Khoa 2110A01
Lê Minh Thắng 2110A01
Tăng Xuân Điệp 2110A01

Hà Nội – 2022
1


PHÂN CƠNG BÀI TẬP LỚN
Họ Tên

Cơng Việc

Nguyễn Tiến Khoa

Phân tích bài toán,
Sơ Đồ lớp
CODE
Lập bộ Test, Viết
báo cáo

Tăng Xuân Điệp
Lê Minh Thắng


Thời
Gian

2

Ghi Chú
Hoàn Thành
Hoàn Thành
Hoàn Thành


MỤC LỤC
I. XÁC ĐỊNH BÀI TỐN....................................................................2
1. Phát biểu bài tốn.......................................................................2
2. Mục đích..................................................................................... 2
II.Xác Định Sơ Đồ Lớp Của Bài Tốn.................................................3
1.Xác định các lớp được cài đặt.......................................................3
2.Quan hệ của các lớp......................................................................5
3.Sơ Đồ Quan Hệ.............................................................................5
III.CODE............................................................................................ 6
 Lớp ConNguoi........................................................................... 6
 Lớp KhachHang.......................................................................8
 Lớp DSKH................................................................................9
 Lớp NhanVien.........................................................................12
 Lớp DSNV...............................................................................14
 Lớp SanPham..........................................................................17
 Lớp DSSP................................................................................20
 Lớp HoaDon............................................................................22
 Lớp DSHD............................................................................... 26
 Lớp Main................................................................................. 30

IV.TEST CHƯƠNG TRÌNH...............................................................34

1


I. XÁC ĐỊNH BÀI TỐN
1. Phát biểu bài tốn.
Phân tích đề bài: “Bài tốn quản lý kinh doanh quần áo.”
Cơng việc quản lý kinh doanh quần áo tại cửa hàng quần áo
là vơ cùng cần thiết khi có rất nhiều thông tin quần áo cần
được ghi nhận và cập nhật thông tin mỗi ngày như: mã quần
áo, tên quần áo, xuất xứ, số lượng, đơn giá. Trong khi đó, ta
cũng phải quản lý thông tin của khách hàng: họ tên, địa chỉ,
số điện thoại. Khơng thể thiếu đó là hóa đơn bán hàng: mã
hóa đơn, tên nhân viên, số mặt hàng, ngày lập và danh sách
các sản phẩm đã mua của hố đơn để kiểm tra hoạt động
bn bán và doanh thu mỗi ngày. Việc tạo ra một chương
trình hay phần mềm hộ trỡ bán hàng giúp tăng hiệu quả hoạt
động kinh doanh nói chung và việc bán quần áo tại cửa hàng
kinh doanh quần áo nói riêng.
2. Mục đích.
Hỗ trợ việc quản lý sản phẩm và quản lý hoạt động bán hàng
chính xác, nhanh chóng và hiệu quả.
Lợi ích
 Tiết kiệm thời gian, nhân lực.
 Dữ liệu luôn mang tính nhất quán, được cập nhật thường
xuyên.
 Hỗ trợ tra cứu và lập báo cáo nhanh chóng, chính xác.
Các u cầu chi tiết
 Có Menu gọi các chức năng của bài toán

 Đọc ghi các file dữ liệu
 Đọc ghi theo thống kê
Các chức năng
Cụ thể ở thao tác quản lý hóa đơn bán hàng:
 Nhập
 Xuất
2


 Xóa
 Thêm
 Sắp xếp
 Cập nhật
 Tìm kiếm
 Lưu trữ
 Đọc, ghi File
 Lọc theo u cầu
 Tính tốn
II.Xác Định Sơ Đồ Lớp Của Bài Toán.
1.Xác định các lớp được cài đặt.
 Con Người
Các thuộc tính.
 Họ Tên
 Giới Tính
 Địa Chỉ
Phương thức.
 Khởi tạo có tham số và khơng tham số.
 Getter/ Setter cho từng thuộc tính.
 Nhân Viên extends Con Người
Các thuộc tính.

 Mã NV
 Lương
 HSL
 Lương Cơ bản
Phương thức.
 Khởi tạo có tham số và khơng tham số.
 Getter/ Setter cho từng thuộc tính.
 Nhập, Hiện Nhân Viên
 DSNV
Các thuộc tính.
3












 ArrayList<Nhân Viên>
Phương thức.
 Tìm Kiếm, Đọc ghi File Nhập xuất.
Khách Hàng extends Con Người
Các thuộc tính.
 Mã KH
 Số Điện Thoại

Phương thức.
 Khởi tạo có tham số và khơng tham số.
 Getter/ Setter cho từng thuộc tính.
 Nhập, Hiện Khách Hàng
DSNV
Các thuộc tính.
 ArrayList<Khách Hàng>
Phương thức.
 Tìm Kiếm, Đọc ghi File Nhập xuất.
Sản Phẩm
Các Thuộc Tính
 Mã Sản Phẩm
 Tên Sản Phẩm
 Đơn Giá
 Size (Interface)
 Số Lượng
Phương thức
 Khởi tạo có tham số và khơng tham số.
 Getter/ Setter cho từng thuộc tính.
 Nhập, Hiện Sản Phẩm
ISize
Các thuộc tính.
 Size S, M, L , XL, XXL.
DSSP
Các thuộc tính.
 ArrayList<Sản Phẩm>
Phương thức.
 Tìm Kiếm, Đọc ghi File Nhập xuất.
4



 Hóa Đơn extend Khách Hàng
Các thuộc tính
 Mã Hóa Đơn
 Ngày Lập
 Tên Nhân Viên
 ArrayList<Sản Phẩm>
Phương Thức
 Khởi tạo có tham số và khơng tham số.
 Getter/ Setter cho từng thuộc tính.
 Nhập, Hiện , Tổng tiền Hóa Đơn
 Danh Sách Hóa Đơn
Các Thuộc tính
 ArrayList<Hóa Đơn>
Phương Thức
 Nhập, Hiện DSHD, đọc File, ghi File, tìm kiếm,
Xóa, Thêm, Sửa, Sắp Xếp, Lọc Hóa Đơn,tính
tổng.
 Main.
2.Quan hệ của các lớp.
*Lớp KhachHang, NhanVien kế thừa từ lớp ConNguoi.
*Implements các lớp ConNguoi,NhanVien, SanPham, HoaDon,
KhachHang từ lớp Serializable.
3.Sơ Đồ Quan Hệ.

5


III.CODE
 Lớp ConNguoi

import java.io.Serializable;
import java.util.Scanner;
public class ConNguoi implements Serializable {
private String GioiTinh;
private String SDT;
private String DiaChi;
public String getGioiTinh() {
return GioiTinh;
}
public void setGioiTinh(String GioiTinh) {
this.GioiTinh = GioiTinh;
}
public String getSDT() {
6


return SDT;
}
public void setSDT(String SDT) {
this.SDT = SDT;
}
public String getDiaChi() {
return DiaChi;
}
public void setDiaChi(String DiaChi) {
this.DiaChi = DiaChi;
}
public ConNguoi(String GioiTinh, String SDT, String DiaChi) {
this.GioiTinh = GioiTinh;
this.SDT = SDT;

this.DiaChi = DiaChi;
}
public ConNguoi(){
}
public void Nhap(){
System.out.print("Nhập giới tính: ");
GioiTinh = new Scanner(System.in).nextLine();
System.out.print("Nhập số điện thoại: ");
SDT = new Scanner(System.in).nextLine();
System.out.print("Nhập địa chỉ: ");
DiaChi = new Scanner(System.in).nextLine();
}
public void Hien(){
System.out.printf("\nGiới tính: %s", GioiTinh);
System.out.printf("\nSố điện thoại: %s", SDT);
7


System.out.printf("\nĐịa chỉ: %s", DiaChi);
}
}
 Lớp KhachHang
import java.io.Serializable;
import java.util.Scanner;

public class KhachHang extends ConNguoi implements Serializable{
private String MaKH;
private String TenKH;
public String getMaKH() {
return MaKH;

}
public void setMaKH(String MaKH) {
this.MaKH = MaKH;
}
public String getTenKH() {
return TenKH;
}
public void setTenKH(String TenKH) {
this.TenKH = TenKH;
}
public KhachHang(String MaKH, String TenKH, String GioiTinh,
String SDT, String DiaChi) {
super(GioiTinh, SDT, DiaChi);
this.MaKH = MaKH;
this.TenKH = TenKH;
8


}
public KhachHang(){
super();
}
@Override
public void Nhap(){
System.out.print("Nhập mã khách hàng: ");
MaKH = new Scanner(System.in).nextLine();
System.out.print("Nhập tên khách hàng: ");
TenKH = new Scanner(System.in).nextLine();
super.Nhap();
}

@Override
public void Hien(){
System.out.printf("Mã khách hàng: %s", MaKH);
System.out.printf("\nTên khách hàng: %s", TenKH);
super.Hien();
}
public void HienB(){
System.out.printf("|%-15s|%-20s|%-12s|%-10s|%10s|\n",MaKH,TenKH,super.getSDT(),super.getDiaChi(),super.getGio
iTinh());
}
}
 Lớp DSKH
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
9


import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;
public class DSKH {
ArrayList<KhachHang> dskh = new ArrayList<>();
public void NhapDSKH(){
int slkh;
do{
System.out.print("Nhập số lượng khách hàng: ");

slkh = new Scanner(System.in).nextInt();
}while(slkh<0);
for(int i=0; iSystem.out.println("===================================
=============");
System.out.println("Nhập khách hàng thứ "+(i+1));
KhachHang kh = new KhachHang();
kh.Nhap();
dskh.add(kh);
}
}
public void HienDSKH(){
System.out.println("Danh sách khách hàng ");
System.out.println("----------------------------------------------------------------------------");
System.out.printf("|%-15s|%-20s|%-12s|%-10s|%-10s|\n","Mã
khách hàng","Tên khách hàng","SĐT","Địa chỉ","Giới tính");
for(KhachHang kh : dskh){
kh.HienB();
}

10


System.out.println("---------------------------------------------------------------------------");
}
public void GhiFileDS(String FNAME) throws
FileNotFoundException, IOException{
File fname = new File(FNAME);
FileOutputStream fout = new FileOutputStream(fname);
ObjectOutputStream out = new ObjectOutputStream(fout);

out.writeObject(dskh);
out.close();
fout.close();
System.out.println("Ghi File thành công.");
}
public void docFileDS(String FNAME) throws
FileNotFoundException, IOException, ClassNotFoundException{
File fname = new File(FNAME);
FileInputStream fin = new FileInputStream(fname);
ObjectInputStream in = new ObjectInputStream(fin);
dskh = new ArrayList<>();
dskh = (ArrayList)in.readObject();
fin.close();
in.close();
System.out.println("Đọc File thành công.");
}
public void TimKiemMaKH(){
String MaKH;
int dem=0;
System.out.print("Nhập mã khách hàng: ");
MaKH = new Scanner(System.in).nextLine();
11


for(KhachHang kh : dskh){
if(kh.getMaKH().equals(MaKH)){
dem++;
kh.Hien();
}
}

if(dem==0){
System.out.println("Khơng có mã khách hàng thỏa mãn.\n");
}
}
}
 Lớp NhanVien
import java.io.Serializable;
import java.util.Scanner;
public class NhanVien extends ConNguoi implements Serializable {
private String MaNV;
private String TenNV;
private int LuongCB;
private float HSL;
private float Luong;
public String getMaNV() {
return MaNV;
}
public void setMaNV(String MaNV) {
this.MaNV = MaNV;
}
public int getLuongCB() {
return LuongCB;
}
12


public void setLuongCB(int LuongCB) {
this.LuongCB = LuongCB;
}
public float getHSL() {

return HSL;
}
public void setHSL(float HSL) {
this.HSL = HSL;
}
public float getLuong() {
return Luong=HSL*LuongCB;
}
public void setLuong(float Luong) {
this.Luong = Luong;
}
public String getTenNV() {
return TenNV;
}
public void setTenNV(String TenNV) {
this.TenNV = TenNV;
}
public NhanVien(String MaNV, int LuongCB, float HSL, float
Luong, String GioiTinh, String SDT, String DiaChi, String TenNV)
{
super(GioiTinh, SDT, DiaChi);
this.MaNV = MaNV;
this.LuongCB = LuongCB;
this.HSL = HSL;
this.Luong = Luong;
this.TenNV = TenNV;
13


}

public NhanVien(){
super();
}
@Override
public void Nhap(){
System.out.print("Nhập mã nhân viên: ");
MaNV = new Scanner(System.in).nextLine();
System.out.print("Nhập tên nhân viên: ");
TenNV = new Scanner(System.in).nextLine();
super.Nhap();
System.out.print("Nhập lương cơ bản: ");
LuongCB = new Scanner(System.in).nextInt();
System.out.print("Nhập hệ số lương: ");
HSL = new Scanner(System.in).nextFloat();
}
@Override
public void Hien(){
System.out.printf("\n|%-20s", MaNV);
System.out.printf("|%-30s", TenNV);
System.out.printf("|%-10d", LuongCB);
System.out.printf("|%-10.1f", HSL);
System.out.printf("|%-10.0f", getLuong());
}

}
 Lớp DSNV

14



import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;

public class DSNV {
ArrayList<NhanVien> dsnv = new ArrayList<>();
public void NhapDSNV(){
int slnv;
do{
System.out.print("Nhập số lượng nhân viên: ");
slnv = new Scanner(System.in).nextInt();
}while(slnv<0);
for(int i=0; iSystem.out.println("==================================
==============");
System.out.println("Nhập nhân viên thứ "+(i+1));
NhanVien nv = new NhanVien();
nv.Nhap();
dsnv.add(nv);
}
}
public void HienDSNV(){
System.out.println("\nDanh sách nhân viên: ");
System.out.println("------------------------------------------------");

System.out.printf("\n|%-20s", "Mã Nhân Viên");
System.out.printf("|%-30s", "Tên Nhân Viên");
15


System.out.printf("|%-10s", "Lương CB");
System.out.printf("|%-10s","Hệ số");
System.out.printf("|%-10s","Lương");
for(NhanVien nv : dsnv){
nv.Hien();
}
}
public void GhiFileDS(String FNAME) throws
FileNotFoundException, IOException{
File fname = new File(FNAME);
FileOutputStream fout = new FileOutputStream(fname);
ObjectOutputStream out = new ObjectOutputStream(fout);
out.writeObject(dsnv);
out.close();
fout.close();
System.out.println("Ghi File thành công.");
}
public void docFileDS(String FNAME) throws
FileNotFoundException, IOException, ClassNotFoundException{
File fname = new File(FNAME);
FileInputStream fin = new FileInputStream(fname);
ObjectInputStream in = new ObjectInputStream(fin);
dsnv = new ArrayList<>();
dsnv = (ArrayList)in.readObject();
fin.close();

in.close();
System.out.println("Đọc File thành công.");
}
public void TimKiemMaNV(){
16


String MaNV;
int dem=0;
System.out.print("Nhập mã nhân viên cần tìm: ");
MaNV = new Scanner(System.in).nextLine();
for(NhanVien nv : dsnv){
if(nv.getMaNV().equals(MaNV)){
dem++;
nv.Hien();
}
}
if(dem==0){
System.out.println("Khơng có mã nhân viên thỏa mãn.\n");
}
}
}
 Lớp SanPham
import java.io.Serializable;
import java.util.Scanner;
public class SanPham implements Serializable, ISize {
private String MaSP;
private String TenSP;
private String Size;
private float DonGia;

private int SoLuong;
public String getMaSP() {
return MaSP;
}
public void setMaSP(String MaSP) {
this.MaSP = MaSP;
}
17


public String getTenSP() {
return TenSP;
}
public void setTenSP(String TenSP) {
this.TenSP = TenSP;
}
public float getDonGia() {
return DonGia;
}
public void setDonGia(float DonGia) {
this.DonGia = DonGia;
}
public int getSoLuong() {
return SoLuong;
}
public void setSoLuong(int SoLuong) {
this.SoLuong = SoLuong;
}
public SanPham(){
}

public SanPham(String MaSP, String TenSP, float DonGia, int
SoLuong) {
this.MaSP = MaSP;
this.TenSP = TenSP;
this.DonGia = DonGia;
this.SoLuong = SoLuong;
}

18


public void Nhap(){
System.out.print("Nhập mã sản phẩm: ");
MaSP = new Scanner(System.in).nextLine();
System.out.print("Nhập tên sản phẩm: ");
TenSP = new Scanner(System.in).nextLine();
System.out.print("Nhập size: ");
int chon;
do{
System.out.println("1-S, 2-M, 3-L, 4-XL, 5-XXL");
chon = new Scanner(System.in).nextInt();
switch(chon){
case 1:
Size = S;
break;
case 2:
Size = M;
break;
case 3:
Size = L;

break;
case 4:
Size = XL;
break;
case 5:
Size = XXL;
break;
}
}while(chon<1||chon>6);
System.out.print("Nhập số lượng: ");
SoLuong = new Scanner(System.in).nextInt();
System.out.print("Nhập đơn giá: ");
DonGia = new Scanner(System.in).nextFloat();
}
public void Hien(){
System.out.printf("\n|%-15s", MaSP);
System.out.printf("|%-20s", TenSP);
19


System.out.printf("|%-5s", Size);
System.out.printf("|%-10d", SoLuong);
System.out.printf("|%-10.0f", DonGia);
System.out.printf("|%-10d|", ThanhTien());
}
public int ThanhTien(){
return (int) (SoLuong*DonGia);
}
}
 Lớp DSSP

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;

public class DSSP {
ArrayList<SanPham> dssp = new ArrayList<>();
public void NhapDSSP(){
int slsp;
do{
System.out.print("Nhập số lượng sản phẩm: ");
slsp = new Scanner(System.in).nextInt();
}while(slsp<0);
for(int i=0; i20


System.out.println("==================================
==============");
System.out.println("Nhập sản phẩm thứ "+(i+1));
SanPham sp = new SanPham();
sp.Nhap();
dssp.add(sp);
}
}

public void HienDSSP(){
System.out.println("Danh sách sản phẩm ");
System.out.println("----------------------------------------------------------------------------");
System.out.printf("|%-15s|%-20s|%-5s|%-10s|%-10s|%10s|","Mã sản phẩm","Tên sản phẩm","Size","Số lượng","Đơn
giá","Thành tiền");
for(SanPham sp : dssp){
sp.Hien();
}
System.out.println("\n---------------------------------------------------------------------------");
}
public void GhiFileDS(String FNAME) throws
FileNotFoundException, IOException{
File fname = new File(FNAME);
FileOutputStream fout = new FileOutputStream(fname);
ObjectOutputStream out = new ObjectOutputStream(fout);
out.writeObject(dssp);
out.close();
fout.close();
System.out.println("Ghi File thành công.");
}

21


public void docFileDS(String FNAME) throws
FileNotFoundException, IOException, ClassNotFoundException{
File fname = new File(FNAME);
FileInputStream fin = new FileInputStream(fname);
ObjectInputStream in = new ObjectInputStream(fin);
dssp = new ArrayList<>();

dssp = (ArrayList)in.readObject();
fin.close();
in.close();
System.out.println("Đọc File thành công.");
}
public void TimKiemMaSP(){
String MaSP;
int dem=0;
System.out.print("Nhập mã hóa đơn: ");
MaSP = new Scanner(System.in).nextLine();
for(SanPham sp : dssp){
if(sp.getMaSP().equals(MaSP)){
dem++;
sp.Hien();
}
}
if(dem==0){
System.out.println("Khơng có mã sản phẩm thỏa mãn.\n");
}
}
}
 Lớp ISize
public interface ISize {
public static final String S="S";
public static final String M="M";
22


public static final String L="L";
public static final String XL="XL";

public static final String XXL="XXL";
}
 Lớp HoaDon
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Scanner;
public class HoaDon implements Serializable {
private String MaHD, NgayLap, TenNV;
private int smh;
ArrayList<SanPham> dssp;
KhachHang kh = new KhachHang();
public String getMaHD() {
return MaHD;
}
public void setMaHD(String MaHD) {
this.MaHD = MaHD;
}
public String getNgayLap() {
return NgayLap;
}
public void setNgayLap(String NgayLap) {
this.NgayLap = NgayLap;
}
public String getTenNV() {
return TenNV;
}
23



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×