Professional Documents
Culture Documents
Đồ Án Môn Học Lập Trình Java
Đồ Án Môn Học Lập Trình Java
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
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.
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
B. NỘI DUNG
Phần mềm quản lý quán karaoke gồm có các chức năng sau:
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
8|Page
Ứng dụng quản lý karaoke
- Bảng nhân viên: nhanvien
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
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.
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.
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
18 | P a g e
Ứng dụng quản lý karaoke
Form sửa tài khoản
- 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
19 | P a g e
Ứng dụng quản lý karaoke
2.3. Một số đoạn code chính
btDatphong.addActionListener(new ActionListener() {
@Override
int row=tbPhongTrong.getSelectedRow();
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);
Logger.getLogger(FrManHinhChinh.class.getName()).log(Level.SEVE
RE, null, ex);
int rowkh=tbKhachCho.getSelectedRow();
int rownv=tbPhucVu.getSelectedRow();
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();
modelPhongDaDat.addRow(new Object[]{
tenphong,loaiphong,gia,tenkh,tennv
});
Logger.getLogger(FrManHinhChinh.class.getName()).log(Level.SEVE
RE, null, ex);
int rowtt=tbPhongTrong.getSelectedRow();
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();
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
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 loaiphong2=rs.getString(3);
String giaphong2=String.valueOf(rs.getFloat(4));
String tinhtrang2=rs.getString(5);
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
}
});
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) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
25 | P a g e
Ứng dụng quản lý karaoke
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
btThanhToan.addActionListener(new ActionListener() {
@Override
int row=tbChonPhong.getSelectedRow();
try {
Statement sta=conn.createStatement();
26 | P a g e
Ứng dụng quản lý karaoke
int x=sta.executeUpdate(sql);
Logger.getLogger(FrTraPhong.class.getName()).log(Level.SEVERE, null,
ex);
try {
Statement sttt=conn.createStatement();
int u=sttt.executeUpdate(Tinhtrangphong);
Logger.getLogger(FrTraPhong.class.getName()).log(Level.SEVERE, null,
ex);
try {
Statement sttt=conn.createStatement();
int u=sttt.executeUpdate(Tinhtrangnv);
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);
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);
btDangNhap.addActionListener(new ActionListener() {
@Override
if(tfUser.getText().equals(""))
else if(tfPass.getText().equals(""))
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;
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())
if(rs.getInt(4)==1)
level=1;
a.showGui();
30 | P a g e
Ứng dụng quản lý karaoke
}
else
level=2;
a.btPhongHat.setEnabled(false);
a.btNhanVien.setEnabled(false);
a.btTaiKhoan.setEnabled(false);
a.showGui();
frDangXuat.dispose();
else
Logger.getLogger(FrDangXuat.class.getName()).log(Level.SEVERE,
null, ex);
Logger.getLogger(FrDangXuat.class.getName()).log(Level.SEVERE,
null, ex);
31 | P a g e
Ứng dụng quản lý karaoke
Logger.getLogger(FrDangXuat.class.getName()).log(Level.SEVERE,
null, ex);
Logger.getLogger(FrDangXuat.class.getName()).log(Level.SEVERE,
null, ex);
});
C. KẾT QUẢ
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.
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.
33 | P a g e
Ứng dụng quản lý karaoke