You are on page 1of 33

ĐẠI HỌC QUỐC GIA TP.

HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THỐNG THÔNG TIN


BÁO CÁO ĐỒ ÁN
MÔN HỌC LẬP TRÌNH JAVA

ĐỀ TÀI: ỨNG DỤNG QUẢN LÝ QUÁN KARAOKE


GVDH: Mai Xuân Hùng

Thành viên nhóm:

Lê Công Minh 18521100

Nguyễn Trần Hà Đức 18520615

Hoàng Tuấn Anh 18520447

Tp.Hồ Chí Minh, 07/07/2020


LỜI MỞ ĐẦU

  
Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả chiều
rộng và sâu. Các phương tiện điện tử ngày càng trở thành công cụ làm việc và giải trí
thông dụng của con người ở nhiều nơi, từ văn phòng cho đến những hộ gia đình.

Karaoke là một hình thức thư giản, xả stress được nhiều khách hàng lựa chọn. Từ sự
gia tăng nhu cầu của khách hàng dẫn đến qui mô của các quán kinh doanh Karaoke ngày
càng mở rộng.

Hiện nay, các quán Karaoke phải trực tiếp tiếp nhận, quản lý một khối lượng lớn và
thường xuyên nhiều khách hàng, cùng với hàng loạt dịch vụ phát sinh theo nhu cầu của
khách hàng. Do đó, công việc quản lý hoạt động kinh doanh của Karaoke ngày càng phức
tạp hơn.

Việc cần tin học hóa nghiệp vụ quản lý quán Karaoke là thực sự cần thiết. Cụ thể là
cần xây dựng một ứng dụng quản lý quán Karaoke để các hộ kinh doanh dễ dàng quản lý
hoạt động của quán. Giúp cho các quy trình nhận phòng, hát hò, thanh toán trở nên đơn
giản và tiện lợi hơn.

Do những nhu cầu trên nên nhóm em quyết định chọn đề tài là “Quản lý quán
Karaoke” như là một chính yếu cho nhu cầu ứng dụng công nghệ thông tin vào kinh
doanh.
MỤC LỤC
A. PHẦN MỞ ĐẦU....................................................................................................................4
1. Lý do chọn đề tài.................................................................................................................4
2. Mục tiêu đề tài.....................................................................................................................4
3. Phạm vi đề tài......................................................................................................................4
4. Công nghệ sử dụng.............................................................................................................5
B. NỘI DUNG.............................................................................................................................5
1. Phân tích và thiết kế hệ thống...........................................................................................5
1.1. Phân tích chương trình...............................................................................................5
1.2. Thiết kế cơ sở dữ liệu..................................................................................................6
2. Xây dựng và triển khai phần mềm..................................................................................10
2.1. Site map của chương trình.......................................................................................10
2.2. Giao diện chương trình.............................................................................................11
2.3. Một số đoạn code chính.............................................................................................19
C. KẾT QUẢ.............................................................................................................................36
1. Kết quả đạt được..............................................................................................................36
2. Ưu điểm.............................................................................................................................36
3. Khuyết điểm......................................................................................................................36
4. Hướng phát triển..............................................................................................................36
ĐỒ ÁN: ỨNG DỤNG QUẢN LÝ QUÁN KARAOKE
A. PHẦN MỞ ĐẦU

1. Lý do chọn đề tài

Ngày nay công nghệ thông tin phát triển ngày càng mạnh mẽ. Những thành tựu của
công nghệ thông tin làm thay đổi mọi mặt của đời sống xã hội, xâm nhập vào nhiều lĩnh
vực khoa học, kỹ thuật cũng như trong cuộc sống.

Nó trở thành công cụ hỗ trợ đắc lực không thể thiếu trong nhiều lĩnh vực hoạt động
như ứng dụng trong công tác quản lý, nghiên cứu… và đặc biệt trong công tác quản lý
nói chung và quản lý quán karaoke nói riêng.

Trong thực tế, kinh doanh karaoke là một trong những loại hình thức kinh doanh đầy
thử thách. Mặt khách hiện nay các quán karaoke có số lượng thực đơn khá lớn gồm các
danh mục đồ ăn, đồ uống…trong một ngày là rất lớn, số lượng khách hàng đến quán
karaoke ngày một nhiều.

Công việc quản lý quán karaoke đều được làm thử, công việc đó là việc quản lý lưu
trữ trên giấy tờ, sổ sách mất thời gian và tốn kém về nhân lực và tài nguyên, việc tính
toán, thống kê bằng tay dễ xảy ra sai xót, nhầm lẫn.

Do đó yêu cầu cần thiết lúc này là xây dựng một hệ thống quản lý quán karaoke
nhằm xóa bỏ những phương pháp lạc hậu, lỗi thời gây tốn kém nhiều mặt và mạng lại
hiệu quả cao.

2. Mục tiêu đề tài

Xây dựng ứng dụng quán lý karaoke bằng những kiến thức đã học,thực hiện quản lý
dịch vụ, danh sách phòng trống hay có người ,phòng thường,vip, danh sách nhân
viên,Thông tin NV, thanh toán lương NV), giúp cho việc quản lý nhà hàng được dễ dàng,
thuận tiện và tránh sai sót

3. Phạm vi đề tài
5|Page
Ứng dụng quản lý karaoke
Do xây dựng phần mềm quản lý quán cà phê vừa và nhỏ nên nhóm chỉ tập trung vào
các tính năng chinh: Đặt phòng, thanh toán, trả phòng, quản lý nhân viên, phòng, dịch vụ.
4. Công nghệ sử dụng

 Ngôn ngữ lập trình java.

 Công cụ xây dựng ứng dụng NetBeans IDE 8.2 .

 Lưu trữ dữ liệu với MY SQL

B. NỘI DUNG

1. Phân tích và thiết kế hệ thống

1.1. Phân tích chương trình

Phần mềm quản lý quán karaoke gồm có các chức năng sau:

a. Người dùng: có 2 chức năng


 Admin:
- Cập nhật thành viên, thêm thành viên(user)
- Cập nhật dịch vụ, phòng hát, thay đổi thông tin nhân viên vào CSDL
- Quản lý tài khoản User
- Có đầy đủ các chức năng của User
 User:
- Thêm khách hàng
- Đặt phòng cho khách hàng
- Thêm dịch vụ cho khách hàng
- Thanh toán, trả phòng cho khách hàng
b. Phòng hát
- Thêm phòng hát
- Xóa phòng hát

6|Page
Ứng dụng quản lý karaoke
- Sửa phòng hát
- Xem danh sách phòng hát
c. Nhân viên
- Thêm nhân viên
- Xóa nhân viên
- Sửa nhân viên
- Xem danh sách nhân viên
d. Dịch vụ
- Thêm, xóa, sửa dịch vụ
- Đặt, hủy dịch vụ, xem hóa đơn
- Thanh toan vào phòng đặt dịch vụ
- Xem danh sách dịch vụ
e. Thông tin
- Hiển thị thông tin ứng dụng
f. Tài khoản
- Thêm, xóa, sửa tài khoản cho User
1.2. Thiết kế cơ sở dữ liệu
a. Bảng cơ sở dữ liệu

7|Page
Ứng dụng quản lý karaoke
b. Thiết kế chi tiết cơ sở dữ liệu

- Bảng khách hàng: khachhang

- Bảng phòng hát: phong

8|Page
Ứng dụng quản lý karaoke
- Bảng nhân viên: nhanvien

- Bảng dịch vụ: dichvu

- Bảng Phòng đặt: phongdat

9|Page
Ứng dụng quản lý karaoke
- Bảng Hóa đơn dịch vụ: hoadondv

10 | P a g e
Ứng dụng quản lý karaoke
- Bảng chi tiết hóa đơn: cthd

- Bảng tài khoản: taikhoan

2. Xây dựng và triển khai phần mềm

2.1. Site map của chương trình

11 | P a g e
Ứng dụng quản lý karaoke
2.2. Giao diện chương trình
a. Form chính
 Admin

12 | P a g e
Ứng dụng quản lý karaoke
 User

 Form chính là phần giao diện tổng quan, hiển thị đầy đủ chức năng ứng dụng.
 Gồm thanh menu có chứa các button : Đặt phòng, phòng hát, dịch vụ, nhân
viên, trả phòng, thông tin, tài khoản, đăng xuất.
 Khi vào form chính sẽ xuất hiện các danh sách phòng hát đang trống và danh
sách nhân viên phục vụ, các phòng đã được đặt.
 Cho phép người dùng, quản trị viên thêm khách hàng và đặt phòng loại
thường,vip cho khách hàng.
 Khi người dùng nhấn vào các button menu của form thì form chính sẽ chuyển
qua form mà người dùng chọn.
 Khi người dùng nhấn đăng xuất ứng dụng sẽ trở về trạng thái của form Login,
hoặc nhấn nút close sẽ thoát hẳn chương trình

13 | P a g e
Ứng dụng quản lý karaoke
b. Form phòng hát

 Form phòng hát sẽ hiện danh sách phòng hát và tính trạng phòng đã đặt hay
chưa.
 Khi người dung bấm vào các button them, xóa, sửa sẽ thực hiện các chức năng
tương ứng.

c. Form nhân viên

14 | P a g e
Ứng dụng quản lý karaoke
 Form nhân viên hiển thị danh sách nhân viên của quán
 Bao gồm các chức năng thêm, xóa, sửa được xử lý ở button Thêm, Xóa, Sửa
tương ứng

d. Form dịch vụ

15 | P a g e
Ứng dụng quản lý karaoke
 Hiển thị danh sách dịch vụ.
 Thêm ,xóa, sửa dịch vụ
 Cho phép người dùng đặt dịch vụ ,hủy dịch vụ , chọn phòng hát đặt dịch vụ để
thanh toán

16 | P a g e
Ứng dụng quản lý karaoke
e. Form trả phòng

 Hiển thị danh sách phòng đang được đặt từ khách hàng.
 Cho người dùng xem thông tin,dịch vụ phòng đang được đặt .
 Thanh toán phòng đang đặt.

f. Form tài khoản

17 | P a g e
Ứng dụng quản lý karaoke
 Hiển thị danh sách tài khoản
 Các chức năng thêm, xóa, sửa tài khoản

Form thêm tài khoản

18 | P a g e
Ứng dụng quản lý karaoke
Form sửa tài khoản

g. Form đăng nhập

- Người dùng đăng nhập tài khoản mật khẩu để vào phần mềm
- Có 2 quyền truy cập là admin và user

h. Form thông tin

19 | P a g e
Ứng dụng quản lý karaoke
2.3. Một số đoạn code chính

- Code xử lý đặt phòng ở FrManHinhChinh

public void XuLyDatPhong() throws SQLException

btDatphong.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

int row=tbPhongTrong.getSelectedRow();

String maphong=(String)tbPhongTrong.getValueAt(row, 0);

String tenphong=(String)tbPhongTrong.getValueAt(row, 1);

String loaiphong=(String)tbPhongTrong.getValueAt(row, 2);

//float giaphong=(float)tbPhongTrong.getValueAt(row, 3);

float gia = 0;

20 | P a g e
Ứng dụng quản lý karaoke
String sqlgia="select*from phong where maphong='"+maphong+"'";

try {

Statement sta=conn.createStatement();

ResultSet rs=sta.executeQuery(sqlgia);

while(rs.next())

gia=rs.getFloat(4);

} catch (SQLException ex) {

Logger.getLogger(FrManHinhChinh.class.getName()).log(Level.SEVE
RE, null, ex);

int rowkh=tbKhachCho.getSelectedRow();

String makh=(String)tbKhachCho.getValueAt(rowkh, 1);

String tenkh=(String) tbKhachCho.getValueAt(rowkh, 2);

int rownv=tbPhucVu.getSelectedRow();

String manv=(String) tbPhucVu.getValueAt(rownv, 1);

String tennv=(String) tbPhucVu.getValueAt(rownv, 2);

String sql="insert into


phongdat(maphong,tenphong,loaiphong,giaphong,makh,tenkh,manv,tennv,ngaydat,
giodat)" +"values(?,?,?,?,?,?,?,?,?,?)";

try {

PreparedStatement ps =(PreparedStatement)

21 | P a g e
Ứng dụng quản lý karaoke
conn.prepareStatement(sql);

ps.setString(1, maphong);

ps.setString(2, tenphong);

ps.setString(3, loaiphong);

ps.setFloat(4, gia);

ps.setString(5, makh);

ps.setString(6, tenkh);

ps.setString(7,manv);

ps.setString(8,tennv);

ps.setString(9, String.valueOf(java.time.LocalDate.now()));

ps.setString(10,String.valueOf(java.time.LocalTime.now()) );

int a= ps.executeUpdate();

JOptionPane.showMessageDialog(null, "Đặt phòng thành công");

modelPhongDaDat.addRow(new Object[]{

tenphong,loaiphong,gia,tenkh,tennv

});

} catch (Exception ex) {

JOptionPane.showMessageDialog(null, "Phòng này đã được đặt rồi");

Logger.getLogger(FrManHinhChinh.class.getName()).log(Level.SEVE
RE, null, ex);

int rowtt=tbPhongTrong.getSelectedRow();

String tinhtrang=(String)tbPhongTrong.getValueAt(rowtt, 0);

String sqltt="update phong set tinhtrang='Đẵ Đặt' where

22 | P a g e
Ứng dụng quản lý karaoke
maphong='"+tinhtrang+"'";

try {

Statement sta=conn.createStatement();

int x=sta.executeUpdate(sqltt);

modelPhong.getDataVector().removeAllElements();

} catch (Exception ex) {

JOptionPane.showMessageDialog(null, "Phòng này đã được đặt rồi");

Logger.getLogger(FrManHinhChinh.class.getName()).log(Level.SEVE
RE, null, ex);

showTablePhong();

if(modelPhong.getRowCount()>0)

for(int i=modelPhong.getRowCount()-1;i>-1;i--)

modelPhong.removeRow(i);

try

String SQL = "SELECT * FROM phong ";

Statement stat = conn.createStatement();

ResultSet rs = stat.executeQuery(SQL);

int count=0;

while (rs.next())

23 | P a g e
Ứng dụng quản lý karaoke
{

String maphong2;

maphong2 = rs.getString(1);

String tenphong2 = rs.getString(2);

String loaiphong2=rs.getString(3);

String giaphong2=String.valueOf(rs.getFloat(4));

String tinhtrang2=rs.getString(5);

Vector<String> vec=new Vector<String>();

vec.add(maphong2);

vec.add(tenphong2);

vec.add(loaiphong2);

// vec.add(giaphong2);

vec.add(tinhtrang2);

modelPhong.addRow(vec);

count++;

catch(Exception ex)

ex.printStackTrace();

XulyTinhTrangNv();

24 | P a g e
Ứng dụng quản lý karaoke
}

//xử lý thay đổi tình trạng nhân viên

});

- Code Kết nối CSDL

public TruyVanCSDL()

String driver="com.mysql.jdbc.Driver";

String url="jdbc:mysql://localhost:3306/quanlykaraoke";

String user="root";

String password="";

String unicode="?useUnicode=true&characterEncoding=utf8";

try {

Class.forName(driver).newInstance();

conn= (Connection)
DriverManager.getConnection(url+unicode,user,password);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (InstantiationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

25 | P a g e
Ứng dụng quản lý karaoke
} catch (IllegalAccessException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

- Code thanh toán

btThanhToan.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

int row=tbChonPhong.getSelectedRow();

String maphong=(String) tbChonPhong.getValueAt(row, 0);

String manv=(String) tbChonPhong.getValueAt(row, 2);

String makh=(String) tbChonPhong.getValueAt(row, 3);

String sql="Delete from phongdat where maphong='"+maphong+"' and


manv='"+manv+"' and makh='"+makh+"'";

try {

Statement sta=conn.createStatement();

26 | P a g e
Ứng dụng quản lý karaoke
int x=sta.executeUpdate(sql);

JOptionPane.showMessageDialog(null,"Thanh toán và trả phòng thành


công");

} catch (SQLException ex) {

Logger.getLogger(FrTraPhong.class.getName()).log(Level.SEVERE, null,
ex);

String Tinhtrangphong="update phong set tinhtrang='Trống' where


maphong='"+maphong+"'";

try {

Statement sttt=conn.createStatement();

int u=sttt.executeUpdate(Tinhtrangphong);

} catch (SQLException ex) {

Logger.getLogger(FrTraPhong.class.getName()).log(Level.SEVERE, null,
ex);

String Tinhtrangnv="update nhanvien set tinhtrang='' where


manv='"+manv+"'";

try {

Statement sttt=conn.createStatement();

int u=sttt.executeUpdate(Tinhtrangnv);

} catch (SQLException ex) {

Logger.getLogger(FrTraPhong.class.getName()).log(Level.SEVERE, null,
ex);

27 | P a g e
Ứng dụng quản lý karaoke
String xoakh="delete from khachhang where makh='"+makh+"'";

try {

Statement sttt=conn.createStatement();

int u=sttt.executeUpdate(xoakh);

} catch (SQLException ex) {

Logger.getLogger(FrTraPhong.class.getName()).log(Level.SEVERE, null,
ex);

tfTenPhong.setText("");

tfGiaPhong.setText("");

tfGioDen.setText("");

tfGioTra.setText("");

tfNgayDen.setText("");

tfNgayTra.setText("");

tfTongSoTienTT.setText("");

tfTienPhong.setText("");

tfTongTienDv.setText("");

tfKhachHang.setText("");

tfLoaiPhong.setText("");

tfNhanVienPv.setText("");

int row1;

row1=tbChonPhong.getSelectedRow();

modelTraPhong.removeRow(row1);

28 | P a g e
Ứng dụng quản lý karaoke
});

pnThongTinHoaDon.add(pnDuLieu1,BorderLayout.LINE_START);

pnThongTinHoaDon.add(pnDuLieu2,BorderLayout.CENTER);

pnCenter.add(pnThongTinHoaDon);

- Code đăng nhập

btDangNhap.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

if(tfUser.getText().equals(""))

JOptionPane.showMessageDialog(null, "Vui lòng nhập user");

else if(tfPass.getText().equals(""))

JOptionPane.showMessageDialog(null, "Vui lòng nhập password");

else

String driver="com.mysql.jdbc.Driver";

29 | P a g e
Ứng dụng quản lý karaoke
String url="jdbc:mysql://localhost:3306/quanlykaraoke";

String user="root";

String password="";

String unicode="?useUnicode=true&characterEncoding=utf8";

try {

Class.forName(driver).newInstance();

conn= (Connection)
DriverManager.getConnection(url+unicode,user,password);

int lv;

String sql="select * from taikhoan where tentk=? and matkhau=? ";

PreparedStatement pre=conn.prepareStatement(sql);

pre.setString(1, tfUser.getText());

pre.setString(2, tfPass.getText());

ResultSet rs=pre.executeQuery();

//lv=rs.getInt(3);

if(rs.next())

JOptionPane.showMessageDialog(null, "Chúc mừng đăng nhập thành


công");

if(rs.getInt(4)==1)

level=1;

FrManHinhChinh a=new FrManHinhChinh();

a.showGui();

30 | P a g e
Ứng dụng quản lý karaoke
}

else

level=2;

FrManHinhChinh a=new FrManHinhChinh();

a.btPhongHat.setEnabled(false);

a.btNhanVien.setEnabled(false);

a.btTaiKhoan.setEnabled(false);

a.showGui();

frDangXuat.dispose();

else

JOptionPane.showMessageDialog(null, "Tài khoản hoặc mật khẩu


không đúng");

} catch (ClassNotFoundException ex) {

Logger.getLogger(FrDangXuat.class.getName()).log(Level.SEVERE,
null, ex);

} catch (InstantiationException ex) {

Logger.getLogger(FrDangXuat.class.getName()).log(Level.SEVERE,
null, ex);

} catch (IllegalAccessException ex) {

31 | P a g e
Ứng dụng quản lý karaoke
Logger.getLogger(FrDangXuat.class.getName()).log(Level.SEVERE,
null, ex);

} catch (SQLException ex) {

Logger.getLogger(FrDangXuat.class.getName()).log(Level.SEVERE,
null, ex);

});

C. KẾT QUẢ

1. Kết quả đạt được


Nhìn một cách tổng thể thì đồ án cũng đã hoàn tất, với nhiều kết quả đạt được về
sự quản lý được từng gian đoạn trong đồ án như là đặt phòng,xem phòng trống hay

32 | P a g e
Ứng dụng quản lý karaoke
đã đặt,thêm dịch vụ, thêm khách hàng ,tài khoản. Qua đó cũng nói lên được tính
mạch lạc chi tiết trong từng chức năng.

- Quản Lý đặt phòng


- Quản lý các nhân viên.
- Quản lý dịch vụ

2. Ưu điểm
- Giúp nhân viên thanh toán phòng hát cho khách hàng một cách chính xác
hơn.
- Giảm bớt được nguồn nhân lực.
- Giảm bớt được thời gian.

3. Khuyết điểm
- Chỉ có thể chạy với mô hình nhỏ

- Kinh nghiệm phân tích dữ liệu chưa đạt được kết quả như mong đợi cùng
với giao diện chưa được thân thiện với người dùng.

4. Hướng phát triển


- Hỗ trở thanh toán bằng thẻ ATM,VISA
- Sau này, bổ sung thêm chức năng thống kê: số lần truy cập phần mềm, giá
xuất nhập, tổng, doanh thu, xử lý hóa đơn tự động.
- Quản lý kho (kiểm tra lượng sản phẩm tồn kho tự động),
- Bổ sung thêm một số chức năng kiểm tra dữ liệu nhập

33 | P a g e
Ứng dụng quản lý karaoke

You might also like