1. Trang chủ
  2. » Cao đẳng - Đại học

ỨNG DỤNG WINDOWS FORM C# NET XÂY DỰNG PHẦN MỀM QUẢN LÝ QUÁN KARAOKE VIP TAM KỲ - Full 10 điểm

65 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 1,62 MB

Cấu trúc

  • PHẦN 1. MỞ ĐẦU (5)
    • 1.1. Lý do chọn đề tài (5)
    • 1.2. Mục tiêu của đề tài (6)
    • 1.3. Đối tƣợng và phạm vi nghiên cứu (6)
    • 1.4. Phương pháp nghiên cứu (6)
    • 1.5. Lịch sử nghiên cứu (7)
    • 1.6. Đóng góp của đề tài (7)
    • 1.7. Cấu trúc đề tài (7)
  • PHẦN 2. NỘI DUNG NGHIÊN CỨU (8)
  • CHƯƠNG 1. CƠ SỞ LÝ THUYẾT (8)
    • 1.1. Giới thiệu về Windows Form C#.NET (8)
    • 1.2. Giới thiệu về hệ quản trị cơ sở dữ liệu Sql Server và ADO.NET (10)
    • 1.3. Giới thiệu mô hình 3 lớp (14)
    • 1.4. Giới thiệu Bunifu Framework và Metro Framework (17)
  • CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ XÁC LẬP DỰ ÁN (20)
    • 2.1. Khảo sát hiện trạng (20)
    • 2.2. Xác lập dự án (21)
  • CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (23)
    • 3.1. Phân tích và thiết kế chức năng hệ thống (23)
    • 3.2. Phân tích và thiết kế dữ liệu hệ thống (30)
    • 3.3. Phân tích và thiết kế giao diện hệ thống (36)
  • CHƯƠNG 4. CHƯƠNG TRÌNH DEMO (58)
    • 4.1. Cài đặt hệ thống (58)
    • 4.2. Chức năng chính của hệ thống (58)
    • 4.3. Một số giao diện của hệ thống (58)
  • PHẦN 3. KẾT LUẬN VÀ KIẾN NGHỊ (63)
    • 3.1. Kết luận (63)
    • 3.2. Kiến nghị (63)
  • PHẦN 4. TÀI LIỆU THAM KHẢO (64)

Nội dung

UBND T Ỉ NH QU Ả NG NAM TRƢỜNG ĐẠ I H Ọ C QU Ả NG NAM KHOA: CÔNG NGH Ệ THÔNG TIN -----  ----- PH Ạ M THANH TH Ị NH Ứ NG D Ụ NG WINDOWS FORM C# NET XÂY D Ự NG PH Ầ N M Ề M QU Ả N LÝ QUÁN KARAOKE VIP TAM K Ỳ KHÓA LU Ậ N T Ố T NGHI ỆP ĐẠ I H Ọ C Qu ảng Nam, tháng 05 năm 2019 UBND T Ỉ NH QU Ả NG NAM TRƢỜNG ĐẠ I H Ọ C QU Ả NG NAM KHOA CÔNG NGH Ệ THÔNG TIN -----  ----- KHÓA LU Ậ N T Ố T NGHI ỆP ĐẠ I H Ọ C Ứ NG D Ụ NG WINDOWS FORM C# NET XÂY D Ự NG PH Ầ N M Ề M QU Ả N LÝ QUÁN KARAOKE VIP TAM K Ỳ Sinh viên th ự c hi ệ n PH Ạ M THANH TH Ị NH MSSV: 2115011038 CHUYÊN NGÀNH: CÔNG NGH Ệ THÔNG TIN KHÓA 2015 - 2019 Cán b ộ hƣớ ng d ẫ n ThS LÊ PHƢỚ C THÀNH MSCB: ……… Qu ảng Nam, tháng 04 năm 2019 1 L Ờ I C ẢM ƠN Đƣợ c s ự phân công c ủ a khoa Công Ngh ệ Thông Tin Trƣờng Đạ i H ọ c Qu ả ng Nam và s ự đồ ng ý c ủ a th ầ y giáo hƣớ ng d ẫ n Lê Phƣớ c Thành em đã th ự c hi ện đề tài khóa lu ậ n t ố t nghi ệ p: “Ứ ng d ụ ng Windows Form C# NET xây d ự ng ph ầ n m ề m qu ả n lý quán Karaoke VIP Tam K ỳ” Để hoàn thành đề tài khóa lu ậ n t ố t nghi ệ p này Em xin trân tr ọ ng g ử i l ờ i c ả m ơn đế n các th ầ y/cô giáo khoa Công Ngh ệ Thông Tin cũng nhƣ các thầ y/cô giáo trƣờng Đạ i H ọ c Qu ả ng Nam đã tận tình hƣớ ng d ẫ n, gi ả ng d ạ y trong su ố t quá trình h ọ c t ậ p, nghiên c ứ u và rèn luy ệ n ở trƣờng Đạ i H ọ c Qu ả ng Nam Xin chân thành c ảm ơn thầy giáo Lê Phƣớ c Thành đã tậ n tình giúp đỡ em trong quá trình th ự c hi ện đề tài khóa lu ậ n t ố t nghi ệ p này M ặ c dù em đã tìm hiể u và nghiên c ứ u r ấ t nhi ề u trong quá trình làm đề tài khóa lu ậ n t ố t nghi ệ p, đề tài không tránh kh ỏ i nh ữ ng thi ế u sót nh ất đị nh Em r ấ t mong s ự góp ý c ủ a quý th ầy/cô giáo để đề tài khóa lu ậ n t ố t nghi ệp đƣợ c hoàn thi ệ n hơn 2 M Ụ C L Ụ C L Ờ I C ẢM ƠN 1 M Ụ C L Ụ C 2 PH Ầ N 1 M Ở ĐẦ U 3 1 1 Lý do ch ọn đề tài 3 1 2 M ụ c tiêu c ủa đề tài 4 1 3 Đối tƣợ ng và ph ạ m vi nghiên c ứ u 4 1 4 Phƣơng pháp nghiên cứ u 4 1 5 L ị ch s ử nghiên c ứ u 5 1 6 Đóng góp của đề tài 5 1 7 C ấu trúc đề tài 5 PH Ầ N 2 N Ộ I DUNG NGHIÊN C Ứ U 6 CHƢƠNG 1 CƠ SỞ LÝ THUY Ế T 6 1 1 Gi ớ i thi ệ u v ề Windows Form C# NET 6 1 2 Gi ớ i thi ệ u v ề h ệ qu ả n tr ị cơ sở d ữ li ệ u Sql Server và ADO NET 8 1 3 Gi ớ i thi ệ u mô hình 3 l ớ p 12 1 4 Gi ớ i thi ệ u Bunifu Framework và Metro Framework 15 CHƢƠNG 2 KHẢ O SÁT HI Ệ N TR Ạ NG VÀ XÁC L Ậ P D Ự ÁN 18 2 1 Kh ả o sát hi ệ n tr ạ ng 18 2 2 Xác l ậ p d ự án 19 CHƢƠNG 3 PHÂN TÍCH VÀ THIẾ T K Ế H Ệ TH Ố NG 21 3 1 Phân tích và thi ế t k ế ch ức năng hệ th ố ng 21 3 2 Phân tích và thi ế t k ế d ữ li ệ u h ệ th ố ng 28 3 3 Phân tích và thi ế t k ế giao di ệ n h ệ th ố ng 34 CHƢƠNG 4 CHƢƠNG TRÌNH DEMO 56 4 1 Cài đặ t h ệ th ố ng 56 4 2 Ch ức năng chính củ a h ệ th ố ng 56 4 3 M ộ t s ố giao di ệ n c ủ a h ệ th ố ng 56 PH Ầ N 3 K Ế T LU Ậ N VÀ KI Ế N NGH Ị 61 3 1 K ế t lu ậ n 61 3 2 Ki ế n ngh ị 61 PH Ầ N 4 TÀI LI Ệ U THAM KH Ả O 62 NH Ậ N XÉT C Ủ A CÁN B Ộ HƢỚ NG D Ẫ N 63 3 PH Ầ N 1 M Ở ĐẦ U 1 1 Lý do ch ọn đề tài Trong nh ững năm gần đây, sự phát tri ể n nhanh chóng c ủ a công ngh ệ thông tin đã và đang từng bƣớc làm thay đổi đờ i s ố ng kinh t ế , xã h ộ i, giáo d ụ c, v v M ọ i ngành ngh ề , m ọi lĩnh vự c d ầ n d ần đƣợ c tin h ọ c hóa làm cho công vi ệ c tr ở nên d ễ dàng, nhanh chóng và chính xác hơn Đố i v ớ i công tác qu ả n lý c ủ a các công ty/doanh nghi ệ p, ph ả i chuy ể n t ừ phƣơng pháp thủ công sang t ự độ ng; vì v ậ y vi ệ c xây d ự ng m ộ t ứ ng d ụ ng qu ả n lý giúp các công ty/doanh nghi ệ p gi ả i quy ế t công vi ệ c t ự độ ng, công vi ệc đƣợ c th ự c hi ệ n chính xác và nhanh chóng s ẽ ti ế t ki ệ m r ấ t l ớ n v ề chi phí Ở Vi ệ t Nam, h ầ u h ế t m ọi ngƣời đề u s ử d ụ ng máy tính cài đặ t h ệ điề u hành Microsoft Windows c ủ a Microsoft vì tính ph ổ bi ế n và d ễ s ử d ụ ng, r ấ t nhi ề u ph ầ n m ề m ứ ng d ụ ng ch ạ y trên h ệ điề u hành c ủ a hãng này , đặ c bi ệ t là ứ ng d ụ ng qu ả n lý Windows Form là m ộ t công ngh ệ c ủa Microsoft, đƣợ c s ử d ụng để phát tri ể n r ấ t nhi ề u ứ ng d ụ ng v ề qu ả n lý, k ế toán, th ố ng kê, v v, s ử d ụ ng công ngh ệ Windows Form chúng ta có th ể t ạ o ra các ứ ng d ụ ng có giao di ện đẹ p và hi ện đạ i Windows Form xây d ự ng ứ ng d ụ ng theo cách ti ế p c ận hƣớng đối tƣợ ng: Giao di ệ n kéo, th ả d ễ s ử d ụ ng; g ắ n các event cho các control ch ỉ c ầ n double click và h ỗ tr ợ nhi ề u event nhƣ click , hover, v v Vi ết code cũng vô cùng trự c quan: T ừ vi ệ c l ấ y text t ừ TextBox cho t ớ i show thông tin b ằ ng MessageBox, ho ặc dùng DataGrid để k ế t n ố i cơ sở d ữ li ệ u Sau g ần 4 năm họ c t ậ p và tr ả i nghi ệ m th ự c t ế trên đị a bàn thành ph ố Tam K ỳ , b ả n thân nh ậ n th ấ y các doanh nghi ệ p ho ạt độ ng trong lĩnh vự c gi ải trí nhƣ Karaoke ở trên địa bàn đề u ở d ạ ng v ừ a và nh ỏ , r ấ t ít nh ững cơ sở quy mô l ớ n, ph ầ n l ớ n trong s ố nh ữ ng doanh nghi ệ p v ừ a và nh ỏ đó v ẫn dùng phƣơng pháp th ủ công để v ậ n hành làm t ố n kém ngu ồ n l ự c và chi phí Vì v ậ y b ả n thân r ấ t mu ố n xây d ự ng m ộ t s ả n ph ẩ m th ự c t ế có th ể áp d ụ ng cho các doanh nghi ệ p này S ả n ph ẩ m có th ể đƣợ c nhân r ộ ng ho ặ c m ở r ộng để phù h ợ p v ớ i t ừ ng mô hình doanh nghi ệp Và đây cũng là hƣớng đi tố t cho b ản thân để phát tri ể n s ự nghi ệ p sau này Xu ấ t phát t ừ tính ƣu việ t c ủ a công ngh ệ và s ự c ấ p bách c ủ a xã h ộ i, nên b ả n thân th ự c hi ện đề tài khóa lu ậ n t ố t nghi ệ p : “Ứ ng d ụ ng Windows Form C# NET xây d ự ng ph ầ n m ề m qu ả n lý quán Karaoke VIP Tam K ỳ” 4 1 2 M ụ c tiêu c ủa đề tài Xây d ự ng ph ầ n m ề m qu ả n lý Karaoke VIP Tam K ỳ 1 3 Đối tƣợ ng và ph ạ m vi nghiên c ứ u Ngôn ng ữ l ậ p trình C# N ề n t ả ng NET Framework Công ngh ệ Windows Form Mô hình 3 l ớ p (3 layers) H ệ qu ả n tr ị cơ sở d ữ li ệ u SQL Server & ADO NET Bunifu Framework & Metro Framework 1 4 Phƣơng pháp nghiên cứ u Nghiên c ứ u tài li ệ u: Bao g ồ m nh ữ ng tài li ệ u v ề cơ sở d ữ li ệ u, tài li ệ u v ề h ệ qu ả n tr ị cơ sở d ữ li ệ u SQL Server; tìm hi ể u tài li ệ u v ề cách l ậ p trình ứ ng d ụ ng Windows Form v ớ i ngôn ng ữ C#; tìm hi ể u tài li ệ u v ề cách phân tích, thi ế t k ế h ệ th ố ng theo hƣớ ng c ấ u trúc Nghiên c ứ u h ệ th ố ng qu ả n lý t ạ i Karaoke VIP Tam K ỳ : Ứ ng d ụ ng phƣơng pháp phát tri ể n ph ầ n m ềm theo mô hình thác nƣớ c v ớ i chu ỗ i quy trình: Kh ả o sát hi ệ n tr ạ ng - Phân tích - Thi ế t k ế - Cài đặ t - Ki ể m th ử - B ả o trì Trong phân tích h ệ th ống, đề tài s ử d ụ ng mô hình Th ự c th ể - M ố i quan h ệ và cơ sở d ữ li ệ u quan h ệ 5 1 5 L ị ch s ử nghiên c ứ u B ả ng 1 Ti ến độ công vi ệ c Th ờ i gian th ự c hi ệ n Công vi ệ c Sinh viên th ự c hi ệ n Ti ế n đ ộ 01/03/2019 - 08/03/2019 Kh ả o sát hi ệ n tr ạ ng và xác l ậ p d ự án Ph ạ m Thanh Th ị nh Hoàn thành 09/03/2019 - 16/03/2019 Phân tích ch ứ c năng h ệ th ố ng Ph ạ m Thanh Th ị nh Hoàn thành 17/03/2019 - 22/03/2019 Phân tích d ữ li ệ u và thi ế t k ế h ệ th ố ng Ph ạ m Thanh Th ị nh Hoàn thành 23/03/2019 - 30/04 /2019 L ậ p trình và ch ạ y th ử h ệ th ố ng Ph ạ m Thanh Th ị nh Hoàn thành 1 6 Đóng góp của đề tài Ph ầ n m ề m có giá tr ị ứ ng d ụ ng th ự c t ế , áp d ụ ng v ớ i mô hình quán Karaoke v ừ a & nh ỏ v ớ i các khâu nghi ệ p v ụ c ầ n thi ết để qu ả n lý m ộ t quán Karaoke bao g ồ m: Qu ả n lý bán hàng, th ống kê hóa đơn, quả n lý món, qu ả n lý danh m ụ c món, qu ả n lý phòng hát, qu ả n lý tài kho ả n Khi ph ầ n m ềm đƣợ c tri ể n khai s ẽ có hi ệ u qu ả v ề kinh t ế, trong đó có sự ti ế t ki ệ m v ề nhân l ự c và th ờ i gian 1 7 C ấu trúc đề tài Đề tài g ồ m 4 chƣơng, bao gồ m: Chƣơng 1: C ơ sở lý thuy ế t Chƣơng 2: Kh ả o sát hi ệ n tr ạ ng và xác l ậ p d ự án Chƣơng 3: Phân tích và thi ế t k ế h ệ th ố ng Chƣơng 4: C hƣơng trình demo 6 PH Ầ N 2 N Ộ I DUNG NGHIÊN C Ứ U CHƢƠNG 1 CƠ SỞ LÝ THUY Ế T 1 1 Gi ớ i thi ệ u v ề Windows Form C# NET 1 1 1 Gi ớ i thi ệ u v ề NET Framework Hình 1 1 Bi ểu tƣợ ng Microsoft NET Framework NET Framework là n ề n t ả ng l ập trình và cũng là nề n t ả ng th ự c thi ứ ng d ụ ng trên h ệ điề u hành Microsoft Windows đƣợ c phát tri ể n b ở i Microsoft Nhi ề u công c ụ đã đƣợ c t ạo ra để h ỗ tr ợ xây d ự ng ứ ng d ụ ng trên n ề n t ả ng NET Framework Trong đó Microsoft Visual Studio là IDE (Integrated Development Environment) đƣợ c phát tri ể n và h ỗ tr ợ b ở i Microsoft  Ki ế n trúc c ủ a NET Framework Ki ế n trúc c ủ a NET Framework g ồ m 2 ph ầ n: - CLR (Common Language Runtime - B ộ th ự c thi ngôn ng ữ chung): Ch ị u trách nhi ệ m th ự c thi mã l ệ nh và qu ả n lý các tác v ụ liên quan: Biên d ị ch, qu ả n lý b ộ nh ớ , b ả o m ậ t, v v - FCL (Framework Class Library - Thƣ việ n các l ớp cơ sở ): T hƣ việ n ch ứ a các l ớp cơ sở Thƣờng đƣợ c s ử d ụng để xây d ự ng các l ớp cao hơn 1 1 2 Gi ớ i thi ệ u v ề ngôn ng ữ C# C# là ngôn ng ữ l ập trình đơn giả n, hi ện đạ i, m ục đích tổng quát, hƣớng đố i tƣợng đƣợ c phát tri ể n b ởi Microsoft và đƣợ c phê chu ẩ n b ở i European Computer Manufacturers Association (ECMA) và International Standards Organization (ISO) C # đƣợ c phát tri ể n b ở i Anders Hejlsberg và team c ủ a ông trong khi phát tri ể n NET 7 Framework Phiên b ản C# đầu tiên đƣợ c phát hành là C# 1 0, đƣợ c phát hành vào tháng 1 năm 2002 , s ử d ụ ng n ề n t ả ng NET Framework phiên b ả n 1 0 trên Microsoft Visual Studio 2002 Dƣới đây là các lý do C# trở thành ngôn ng ữ l ậ p trình chuyên nghi ệp đƣợ c s ử d ụ ng r ộ ng rãi: C# là ngôn ng ữ l ậ p trình hi ện đạ i C# là ngôn ng ữ hƣớng đối tƣợ ng C# là ngôn ng ữ d ễ h ọ c C# là m ộ t ph ầ n c ủ a Net Framework 1 1 3 Gi ớ i thi ệ u công ngh ệ Windows Form Windows Form hay WinForm là công ngh ệ c ủ a Microsoft, cho phép l ậ p trình các ứ ng d ụ ng WinForm Nh ờ tính ti ệ n ích, d ễ code, giao di ệ n design kéo th ả đơn gi ả n, v v WinForm đã đƣợ c s ử d ụng để phát tri ể n r ấ t nhi ề u ứ ng d ụ ng v ề qu ả n lý, tính ti ề n, th ố ng kê, v v WinForm có giao di ệ n kéo, th ả d ễ s ử d ụ ng; g ắ n các event cho các control ch ỉ c ầ n double click và h ỗ tr ợ nhi ều event nhƣ click , hover, v v Vi ệ c vi ết code cũng vô cùng tr ự c quan: T ừ vi ệ c l ấ y text t ừ TextBox cho t ớ i show d ữ li ệ u b ằ ng MessageBox, ho ặ c dùng DataGridView để k ế t n ối cơ sở d ữ li ệ u SQL Server 1 1 4 Gi ớ i thi ệ u IDE Visual Studio Microsoft Visual Studio là m ộ t môi trƣờ ng phát tri ể n ứ ng d ụ ng, tích h ợp đầ y đủ các tính năng cho Android, iOS, Windows , web và cloud Microsoft Visual Studio l à IDE đƣợ c phát tri ể n b ở i Microsoft Microsoft Visual Studio bao g ồ m các thành ph ầ n chính: - Trình so ạ n th ả o - Trình biên d ị ch - Trình g ỡ l ỗ i  Các phiên b ả n c ủ a Microsoft Visual Studio 8 Visual Studio Community: Mi ễ n phí cho sinh viên, mã ngu ồ n m ở , phù h ợ p cho cá nhân s ử d ụ ng Visual Studio Professional: Chuyên nghi ệ p, phù h ợ p cho nhóm quy mô nh ỏ s ử d ụ ng Visual Studio Enterprise: M ở r ộng hơn phiên bả n Visual Studio Professional, phù h ợ p cho m ọi độ i nhóm s ử d ụ ng Đề tài s ử d ụ ng Visual Studio 2017 Community, vì tính ổn đị nh và s ử d ụ ng mi ễ n phí Hình 1 2 Bi ểu tƣợ ng Visual Studio 2017 1 2 Gi ớ i thi ệ u v ề h ệ qu ả n tr ị cơ sở d ữ li ệ u Sql Server và ADO NET 1 2 1 Gi ớ i thi ệ u v ề h ệ qu ả n tr ị cơ sở d ữ li ệ u Sql Server  Các khái ni ệ m Cơ sở d ữ li ệ u là m ộ t t ậ p h ợ p các d ữ li ệ u có t ổ ch ức, thƣờng đƣợ c t ổ ch ứ c thành b ả ng d ữ li ệ u H ệ qu ả n tr ị cơ sở d ữ li ệ u - DBMS (Database Management System) là h ệ th ố ng ph ầ n m ềm giúp tƣơng tác với cơ sở d ữ li ệ u SQL (Structured Query Language) là ngôn ng ữ truy v ấ n có c ấ u trúc , đƣợ c s ử d ụ ng trong h ệ qu ả n tr ị cơ sở d ữ li ệ u  Các phiên b ả n SQL Server Hình 1 3 Bi ểu tƣợ ng SQL Server 2014 9 SQL Server 2014 Express là m ộ t h ệ qu ả n tr ị cơ sở d ữ li ệ u quan h ệ (Relational Database Management System - RDBMS) s ử d ụ ng câu l ệ nh SQL (Transact - SQL) để trao đổ i d ữ li ệ u gi ữ a máy tính Client và máy tính cài SQL Server M ộ t RDBMS bao g ồ m databases, database engine và các ứ ng d ụng dùng để qu ả n lý d ữ li ệ u và các b ộ ph ậ n khác nhau trong RDBMS SQL Server 2014 Express đƣợ c t ối ƣu để có th ể ch ạy trên môi trƣờng cơ sở d ữ li ệ u r ấ t l ớn (Very Large Database Environment) lên đế n Tera-Byte và có th ể ph ụ c v ụ cùng lúc cho hàng ngàn User SQL Server có th ể k ế t h ợp “ăn ý” vớ i các S erver khác nhƣ Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server, v v Các phiên b ả n SQL Server khác: Enterprise: Ch ứ a t ấ t c ả các đặc điể m n ổ i b ậ t c ủ a SQL Server, bao g ồ m nhân c ủ a b ộ máy cơ sở d ữ li ệ u và các d ị ch v ụ đi kèm cùng vớ i các công c ụ cho phép t ạ o và qu ả n lý phân c ụ m SQL Server Nó có th ể qu ả n lý các cơ sở d ữ li ệ u l ớ n t ớ i 524 Petabyte và h ỗ tr ợ t ớ i 640 b ộ vi x ử lý (các Core c ủ a CPU) Standard: R ấ t thích h ợ p cho các công ty v ừ a và nh ỏ vì giá thành r ẻ hơn nhiề u so v ới Enterprise Edition, nhƣng lạ i b ị gi ớ i h ạ n m ộ t s ố ch ức năng cao cấ p (advanced features) khác, edition này có th ể ch ạ y t ố t trên h ệ th ống lên đế n 4 CPU và 2 GB RAM Developer: C ó đầy đủ các tính năng của Enterprise Edition nhƣng đƣợ c ch ế t ạo đặ c bi ệt nhƣ giớ i h ạ n s ố lƣợng ngƣờ i k ế t n ố i vào Server cùng m ộ t lúc, v v Ðây là phiên b ả n s ử d ụ ng cho phát tri ể n và ki ể m tra ứ ng d ụ ng Phiên b ả n này phù h ợ p cho các cá nhân, t ổ ch ứ c xây d ự ng và ki ể m tra ứ ng d ụ ng Workgroup: Phiên b ả n SQL Server Workgroup bao g ồ m ch ức năng chính , đủ dùng nhƣng không có các dị ch v ụ đi kèm Lƣu ý r ằ ng phiên b ả n này không còn t ồ n t ạ i ở SQL Server 2012 Express: SQL Server Express d ễ s ử d ụ ng và đơn giả n trong qu ả n tr ị cơ sở d ữ li ệ u Đƣợ c tích h ợ p Microsoft Visual Studio d ễ dàng để phát tri ể n các ứ ng d ụ ng SQL Server Express là phiên b ả n mi ễ n phí, không gi ớ i h ạ n v ề cơ sở d ữ li ệ u ho ặ c ngƣờ i s ử d ụng, nhƣng chỉ dùng cho 1 b ộ vi x ử lý v ớ i 1 GB b ộ nh ớ và 10 GB file cơ sở d ữ li ệ u SQL Server Express là l ự a ch ọ n t ố t cho nh ữ ng ngƣờ i dùng ch ỉ c ầ n 10 m ộ t phiên b ả n SQL Server nh ỏ g ọ n, dùng trên máy ch ủ có c ấ u hình th ấ p, nh ữ ng nhà phát tri ể n ứ ng d ụ ng không chuyên hay nh ững ngƣờ i yêu thích xây d ự ng các ứ ng d ụ ng nh ỏ 1 2 2 Gi ớ i thi ệ u v ề ADO NET UserInterface DataReader DataAdapter Command Connection DataProvider DataTable DataSet DataView XML Database Hình 1 4 Các đối tƣợ ng c ủ a ADO NET ADO NET là m ộ t t ậ p h ợp hƣớng đối tƣợng các thƣ viện cho phép tƣơng tác v ớ i ngu ồ n d ữ li ệ u (Data Sources) Thƣờ ng ngu ồ n d ữ li ệ u là m ộ t cơ sở d ữ li ệ u (Database), nhƣng có thể là m ộ t file text, b ả ng tính Excel ho ặ c m ộ t t ậ p tin XML  Data Providers Ứ ng v ớ i m ỗ i cơ sở d ữ li ệ u khác nhau thì ADO NET cho phép tƣơng tác cũng khác nhau M ột Data Providers đƣợ c s ử d ụng để k ế t n ối đế n cơ sở d ữ li ệ u , đọ c d ữ li ệ u, nh ậ n d ữ li ệ u, c ậ p nh ậ t d ữ li ệ u, v v trong DataSet và trong cơ sở d ữ li ệ u Tuy nhiên do có khá nhi ề u ngu ồ n d ữ li ệ u nên n ả y sinh nhi ề u giao th ứ c khác nhau; vì th ế để giao ti ếp đƣợ c v ớ i cơ sở d ữ li ệ u chúng ta ph ả i s ử d ụ ng giao th ứ c phù h ợ p v ớ i ngu ồ n d ữ li ệu đó Có các giao th ức nhƣ ODBC, OleDb hay các giao thứ c thông qua thƣ việ n NET c ủ a l ớ p ADO NET B ảng sau đây liệ t kê m ộ t s ố giao th ức thƣờ ng dùng 11 B ả ng 2 M ộ t s ố giao th ức thƣờ ng dùng Provider Name Tiền tố API Data Source ODBC Data Provider Odbc Dùng cho cơ sở dữ liệu cũ OleDb Data Provider OleDb Dùng cho cơ sở dữ liệu nhƣ Access, Excel Oracle Data Provider Oracle Dùng cho cơ sở dữ liệu Oracle SQL Data Provider Sql Dùng cho cơ sở dữ liệu SQL Server Borland Data Provider Bdp Dùng cho cơ sở dữ liệu Interbase, SQL Server, IBM DB2, Oracle  ADO NET Objects ADO NET bao g ồ m nhi ều đối tƣợ ng giúp chúng ta làm vi ệ c v ớ i d ữ li ệ u Ph ầ n này s ẽ gi ớ i thi ệu các đối tƣợng chính thƣờ ng s ử d ụ ng M ộ t s ố đối tƣợng đó là: SqlConnection Object: L à đối tƣợ ng k ế t n ố i cơ sở d ữ li ệ u nh ằm xác đị nh máy ch ủ (DatabaseServer), tên cơ sở d ữ li ệ u (Database Name), tên ngƣờ i dùng (UserName), m ậ t kh ẩ u (Password) và các thông s ố khác đƣợ c yêu c ầu để k ế t n ố i v ớ i cơ sở d ữ li ệ u B ảng sau đây hiể n th ị nh ững phƣơng thứ c hay s ử d ụ ng nh ấ t c ủ a m ột đối tƣợ ng k ế t n ố i B ả ng 3 Nh ững phƣơng thứ c hay s ử d ụ ng c ủ a m ột đối tƣợ ng k ế t n ố i Tên Mô tả ConnectionString Cung cấp thông tin nhƣ D ata S ource, tên cơ sở dữ liệu; đƣợc sử dụng để thiết lập kết nối với một cơ s ở d ữ li ệ u Open() Mở một kết nố i tới D ata S ource đƣợc khai báo tại ConnectionString Close() Đƣ ợc s ử dụng để đóng kết nối với Data S ource State Đƣợc sử dụng để kiểm tra trạng thái của một kết nối 0: K ết nối đang đóng, 1: K ết nối đang mở 12 SqlCommand Object: L à đối tƣợ ng th ự c thi các câu truy v ấ n SQL, Store Procedure, ho ặ c đƣợ c s ử d ụng để tham chi ếu đế n m ột đối tƣợ ng SqlDataAdapter SqlDataReader Object: Đối tƣợ ng DataReader cho phép l ấ y k ế t qu ả c ủ a m ộ t câu l ệ nh Select t ừ m ột đối tƣợ ng command DataSet Object: Ch ứ a nhi ều đối tƣợ ng DataTable, bên trong DataTable có nhi ề u column và row, gi ố ng các b ả ng cơ sở d ữ li ệ u (Database Table) thông thƣờ ng DataSet giúp qu ả n lý d ữ li ệ u trong b ộ nh ớ và h ỗ tr ợ các thao tác không c ầ n k ế t n ố i trên d ữ li ệu DataSet là đối tƣợng đƣợ c dùng b ở i t ấ t c ả DataProvider SqlDataAdapter: DataAdapter giúp qu ả n lý d ữ li ệ u trong ch ế độ ng ắ t k ế t n ố i (Disconnect) khi d ữ li ệ u chúng ta làm vi ệ c là read-only, khi chúng ta ít khi thay đổ i d ữ li ệ u ngu ồ n, khi c ần lƣu trữ t ạ m d ữ li ệ u trong b ộ nh ớ để h ạ n ch ế truy xu ất đế n cơ s ở d ữ li ệ u DataAdapter s ẽ đẩ y d ữ li ệu vào DataSet khi đọ c d ữ li ệ u và th ự c hi ệ n thay đổ i t ấ t c ả d ữ li ệ u vào Database khi có k ế t n ố i Ngoài ra DataAdapter ch ứa đố i tƣợ ng command cho nh ữ ng thao tác Select, Insert, Update và Delete DataSet DataAdapter DataSource Hình 1 5 M ố i liên h ệ DataSet & DataAdapter & DataSource 1 3 Gi ớ i thi ệ u mô hình 3 l ớ p Mô hình 3 l ớ p (ki ế n trúc 3 l ớ p) - 3 layers: Là mô hình chia ứ ng d ụ ng thành 3 ph ầ n riêng bi ệ t, m ỗ i ph ầ n có nh ữ ng ch ức năng khác nhau Chia ứ ng d ụ ng ra 3 ph ầ n giúp mã ngu ồ n ứ ng d ụng đƣợc rõ ràng hơn, việ c ch ỉ nh s ử a hay nâng c ấ p ứ ng d ụ ng s ẽ đơn giản hơn Khác v ớ i mô hình 3 t ầ ng - 3 tiers, mô hình 3 layers là mô hình logic, còn 3 tiers là mô hình v ậ t lý s ử d ụ ng cho h ệ th ố ng nhi ều máy tính liên quan đế n các thi ế t b ị m ạng, nhƣng về cơ bản 2 mô hình cũng có nhiều điể m gi ố ng nhau Mô hình 3 l ớ p là m ộ t Design Pattern - m ẫ u thi ế t k ế có s ẵ n, dùng gi ả i quy ế t m ộ t v ấn đề Áp d ụ ng m ẫ u thi ế t k ế này s ẽ làm code d ễ b ả o trì, d ễ m ở r ộ ng hơn 13 Lƣu ý rằ ng n ế u áp d ụ ng mô hình 3 l ớp không đúng cách có thể làm cho m ộ t project tr ở nên ph ứ c t ạ p, r ố i r ắ m  Ki ế n trúc mô hình 3 l ớ p (3 layers) USER BLL GUI DAL DTO DATABASE Dataset Hình 1 6 Ki ế n trúc mô hình 3 l ớ p (3 layers) Ứ ng d ụ ng chia làm 3 l ớ p, m ỗ i l ớ p có ch ứ c năng khác nhau:  Presentation Layer (GUI) Là giao di ệ n c ủ a m ộ t ứ ng d ụ ng Windows Form Ch ức năng chính củ a l ớ p là trình bày d ữ li ệ u và nh ậ p li ệ u L ớ p giao di ệ n là ph ầ n User có th ể nhìn th ấ y  Business Logic Layer (BLL) (chung vào l ớ p GUI) L ớ p khai báo các phƣơng thứ c x ử lý - Business Logic Layer Ch ức năng củ a l ớ p này là ki ể m tra các yêu c ầ u nghi ệ p v ụ trƣớ c khi c ậ p nh ậ t d ữ li ệ u, qu ả n lý các transaction, v v  Data Access Layer (DAL) L ớ p x ử lý d ữ li ệ u - Data Access Layer Ch ức năng củ a DAL là k ế t n ố i cơ sở d ữ li ệ u, tìm ki ế m, thêm, xóa, s ửa, v v trên cơ sở d ữ li ệ u L ớ p DAL có th ể s ử d ụ ng ADO NET , Entity Framework để x ử lý 14  Data Transfer Object (DTO) Đối tƣợng trao đổ i d ữ li ệ u - Data Transfer Object đóng vai trò là bả ng cơ sở d ữ li ệ u c ủ a ứ ng d ụ ng Windows Form Có nhi ề u cách t ổ ch ứ c project theo mô hình 3 l ớ p, l ậ p trình viên có th ể tùy theo thói quen, tùy theo yêu c ầ u m ở r ộ ng h ệ th ố ng, v v mà có th ể t ổ ch ứ c m ộ t project h ợ p lý Sau đây là m ộ t project t ổ ch ứ c theo mô hình 3 l ớ p Hình 1 7 C ấ u trúc c ủ a m ộ t project Folder DAO hay DAL là l ớ p x ử lý d ữ li ệ u Folder DTO là đối tƣợng trao đổ i d ữ li ệ u, ch ứ a các b ả ng cơ sở d ữ li ệ u c ủ a ứ ng d ụ ng Folder Forms và folder UserControls đóng vai trò là l ớ p GUI c ủ a ứ ng d ụ ng L ớ p BLL (l ớp khai báo các phƣơng thứ c x ử lý) n ằ m chung trong l ớ p GUI 15 1 4 Gi ớ i thi ệ u Bunifu Framework và Metro Framework Bunifu Framework và Metro Framework là 2 framework giúp ứ ng d ụ ng Windows Form có giao di ệ n đẹ p và hi ện đạ i 1 4 1 Gi ớ i thi ệ u Metro Framework Metro Framework mang l ạ i giao di ệ n gi ố ng Windows 8 cho các ứ ng d ụ ng Windows Form  H ỗ tr ợ h ệ điề u hành Windows XP SP1/SP2/SP3 Windows Vista Windows 7 Windows 8 Windows 10  Trang web truy c ậ p https://www nuget org/packages/MetroModernUI/  Cách cài đặ t Vào Visual Studio m ở Package Manager Console theo đƣờ ng d ẫ n: Tools/Nuget Package Manager/Package Manager Console Sau đó gõ lệ nh sau vào Package Manager Console: Install-Package MetroModernUI -Version 1 4 0 và nh ấ n Enter Hình 1 8 C ử a s ổ Package Manager Console 16 1 4 2 Gi ớ i thi ệ u Bunifu Framework Mang l ạ i giao di ệ n cong m ề m m ạ i cho ứ ng d ụ ng  N ề n t ảng đƣợ c h ỗ tr ợ Visual Studio Windows Form C# NET Visual Studio VB NET  Trang web truy c ậ p https://bunifuframework com/  Cách cài đặ t Trong m ụ c Solution c ủ a Visual Studio, kích chu ộ t ph ả i vào References ch ọ n Add References, m ở h ộ p tho ạ i References Manager, ch ọ n Browse , sau đó Add t ấ t c ả thƣ việ n c ủa Bunifu Framework có đuôi file là dll vào Hình 1 9 H ộ p tho ạ i Reference Manager 17 Hình 1 10 Danh sách thƣ việ n c ủ a Bunifu Framework Hình 1 11 K ế t qu ả add references 18 CHƢƠNG 2 KH Ả O SÁT HI Ệ N TR Ạ NG VÀ XÁC L Ậ P D Ự ÁN 2 1 Kh ả o sát hi ệ n tr ạ ng 2 1 1 Quy trình bán hàng c ủ a h ệ th ống cũ Bƣớ c 1: T ạ i qu ầ y thu ngân nhân viên thu ngân giúp khách hàng đặ t phòng hát và nhân viên thu ngân đặ t món mà khách yêu c ầ u ho ặ c nhân viên ph ụ c v ụ mang vào phòng hát nh ữ ng món/đồ u ố ng quán mu ố n có s ẵ n ở các phòng hát để khác hàng ti ệ n s ử d ụ ng Nhân viên thu ngân b ắt đầ u tính th ờ i gian b ắt đầ u s ử d ụ ng d ị ch v ụ Bƣớ c 2: Khách hàng s ử d ụ ng xong d ị ch v ụ phòng karaoke và g ọ i nhân viên ph ụ c v ụ để thanh toán Nhân viên ph ụ c v ụ báo cho nhân viên thu ngân để nhân viên thu ngân ki ể m tra th ờ i gian k ế t thúc d ị ch v ụ t ừ đó bi ết đƣợ c khách hàng đã dùng phòng hát h ế t bao nhiêu th ờ i gian; nhân viên ph ụ c v ụ ki ể m tra k hách hàng đã dùng h ết bao nhiêu món, sau đó trừ ra đƣợ c s ố lƣợ ng mà khách hàng s ử d ụ ng trên th ự c t ế và báo l ạ i nhân viên thu ngân Nhân viên ph ụ c v ụ báo s ố lƣợng món khách hàng đã s ử d ụ ng và th ờ i gian s ử d ụ ng d ị ch v ụ cho nhân viên thu ngân để nhân viên thu ngân tính ti ề n d ị ch v ụ Bƣớ c 3: Thu ngân tính ti ề n d ị ch v ụ bao g ồ m ti ề n món và ti ề n hát Ti ề n hát đƣợ c tính d ự a trên th ờ i gian hát và lo ại phòng hát đã sử d ụ ng Ti ền món đƣợ c tính theo đơn gi á món, món đƣợ c bán l ẻ , không tính giá s ỉ Bƣớ c 4: Thu ngân in hóa đơn và giao hóa đơn cho khách hàng Bƣớ c 5: Khách hàng ki ểm tra hóa đơn, n ế u không có sai sót thì tr ả ti ề n s ử d ụ ng d ị ch v ụ và ra v ề  Các trƣờ ng h ợ p phát sinh Th1: Khách hàng g ọ i thêm món Th2: Khách hàng chuy ể n phòng  Cơ cấ u t ổ ch ứ c quán karaoke Nhân viên qu ả n lý Nhân viên thu ngân và nhân viên ph ụ c v ụ 19 Hóa đơn thanh toán S ố hóa đơn: ……… …………… Phòng hát: …………………………………………………………………… Lo ạ i phòng: ……………………… ………………………………………… Gi ờ vào: ……………………………… …………………………………… Gi ờ ra: ……… ……………………………………………………………… STT Tên d ị ch v ụ Đơn giá S ố lƣ ợ ng Thành ti ề n Ti ền hát: ………………… … ……………………………………………… Ti ề n d ị ch v ụ: ……………… ………………………………………………… T ổ ng ti ền thanh toán: ………………………………………………………… Ngƣờ i bán ……………………………… 2 1 2 Các lo ạ i bi ể u m ẫ u Hình 2 1 Hóa đơn thanh toán 2 2 Xác l ậ p d ự án 2 2 1 H ạ n ch ế c ủ a h ệ th ố ng cũ  An toàn d ữ li ệ u C ác thông tin kinh doanh đƣợc lƣu trữ trên gi ấ y, s ổ Lƣu trữ không t ậ p trung m ộ t ch ỗ (nhi ề u lo ạ i s ổ , nhi ề u lo ạ i gi ấ y t ờ ) d ễ gây m ấ t mát d ữ li ệ u  Nhân l ự c C ầ n nhi ề u nhân l ực để v ậ n hành h ệ th ố ng 20 2 2 2 Yêu c ầ u chi ti ế t c ủ a h ệ th ố ng m ớ i  H ệ th ố ng ph ầ n m ề m bao g ồ m nh ữ ng ch ức năng Qu ả n lý bán hàng: G ọ i món, chuy ển bàn, thanh toán, in hóa đơn Qu ả n lý th ố ng kê hóa đơn: T h ống kê hóa đơn đã thanh toán, lậ p báo cáo Qu ả n lý món: Thêm, xóa, s ử a, xem, tìm ki ế m món Qu ả n lý danh m ụ c món: Thêm, xóa, s ử a, xem danh m ụ c món Qu ả n lý phòng hát: Thêm, xóa, s ử a, xem phòng hát Qu ả n lý tài kho ả n: Thêm, xóa, s ử a, xem tài kho ản, đặ t l ạ i m ậ t kh ẩ u m ặ c đị nh , đổ i m ậ t kh ẩ u 2 2 3 Nh ữ ng yêu c ầ u chung v ề ch ức năng c ủ a h ệ th ố ng m ớ i  Phân quy ền ngƣờ i dùng Nhân viên ch ỉ có quy ề n truy c ậ p vào ch ức năng quả n lý bán hàng c ủ a h ệ ph ầ n m ề m Qu ả n lý có quy ề n truy c ậ p vào t ấ t c ả ch ứ c năng củ a h ệ th ố ng bao g ồ m: Qu ả n lý bán hàng, th ố ng kê hóa đơn , qu ả n lý món, qu ả n lý danh m ụ c món, qu ả n lý phòng hát, qu ả n lý tài kho ả n  An toàn d ữ li ệ u Các thông tin kinh doanh đƣợc lƣu trữ trên m ộ t máy tính duy nh ấ t và độ c l ậ p D ữ li ệ u đƣợ c s ố hóa và có th ể xu ấ t ra b ả n gi ấ y khi c ầ n thi ế t  Nhân l ự c H ệ th ố ng m ớ i c ầ n ít nhân l ực hơn hệ th ống cũ 21 CHƢƠNG 3 PHÂN TÍCH VÀ THI Ế T K Ế H Ệ TH Ố NG 3 1 Phân tích và thi ế t k ế ch ức năng h ệ th ố ng 3 1 1 Bi ểu đồ phân c ấ p ch ức năng FDD c ủ a h ệ th ố ng 0 Hệ thống phần mềm quản lý quán karaoke 1 Quản lý bán hàng 1 1 Đặt phòng 1 2 Thêm món 1 3 Chuyển phòng 1 4 Thanh toán 1 5 In hóa đơn 2 Thống kê hóa đơn 2 1 Xem thống kê 2 2 Tạo báo cáo 3 Quản lý món 3 1 Thêm món 3 2 Xóa món 4 Quản lý danh mục món 4 1 Thêm danh mục món 4 2 Xóa danh mục món 3 3 Sửa món 5 Quản lý phòng hát 6 Quản lý tài khoản 3 4 Xem món 3 5 Tìm món 4 3 Sửa danh mục món 4 4 Xem danh mục món 5 1 Thêm phòng hát 5 2 Xóa phòng hát 5 3 Sửa phòng hát 5 4 Xem phòng hát 6 1 Thêm tài khoản 6 2 Xóa tài khoản 6 3 Sửa tài khoản 6 4 Xem tài khoản 6 5 Đặt lại mật khẩu mặc định 6 6 Đổi mật khẩu Hình 3 1 Bi ểu đồ phân c ấ p ch ức nă ng FDD ph ầ n m ề m qu ả n lý quán karaoke 22 3 1 2 Bi ểu đồ lu ồ ng d ữ li ệ u DFD m ứ c ng ữ c ả nh 0 Hệ thống phần mềm quản lý quán Karaoke Thông tin trả về Yêu cầu thông tin Quản lý Thu ngân Hình 3 2 Bi ểu đồ DFD m ứ c ng ữ c ả nh 23 3 1 3 Bi ểu đồ lu ồ ng d ữ li ệ u DFD m ức đỉ nh 1 Quản lý bán hàng 2 Thống kê hóa đơn 3 Quản lý món 4 Quản lý danh mục món 5 Quản lý phòng hát 6 Quản lý tài khoản Quản lý Thu ngân Phòng Món Hóa đơn Bán hàng Chi tiết hóa đơn Danh mục món Hóa đơn Món Danh mục món Thông tin trả về Yêu cầu tùy chỉnh phòng hát Thông tin trả về Phòng Tài khoản Yêu cầu tùy chỉnh tài khoản Thông tin trả về Bán hàng Yêu cầu xem thống kế hóa đơn Danh sách hóa đơn đã thanh toán Yêu cầu tùy chỉnh món Yêu cầu tùy chỉnh danh mục món Thông tin trả về Thông tin bán hàng Thông tin bán hàng Hình 3 3 Bi ểu đồ DFD m ức đỉ nh 24 3 1 4 Bi ểu đồ lu ồ ng d ữ li ệ u DFD m ức dưới đỉ nh  DFD di ễ n t ả ch ức năng 1 - Qu ả n lý bán hàng Quản lý Thu ngân 1 2 Gọi món Thêm/ bớt món Danh sách món Danh sách món Thêm/ bớt món 1 3 Chuyển phòng Hóa đơn Món 1 4 Thanh toán Thực hiện chuyển phòng Xác nhận chuyển phòng Thực hiện chuyển phòng Xác nhận chuyển phòng Thực hiện thanh toán Thực hiện thanh toán Xác nhận thanh toán Xác nhận thanh toán 1 5 In hóa đơn 1 1 Đặt phòng Xác nhận đặt phòng Xác nhận đặt phòng Thực hiện đặt phòng Thực hiện đặt phòng Trả về hóa đơn Trả về hóa đơn Thực hiện in hóa đơn Thực hiện in hóa đơn Hình 3 4 DFD di ễ n t ả ch ức năng q u ả n lý bán hàng  DFD di ễ n t ả ch ức năng 2 – Th ống kê hóa đơn Quản lý 2 1 Xem thống kê Danh sách hóa đơn Yêu cầu xem thống kê Hóa đơn 2 2 Tạo báo cáo Yêu cầu tạo báo cáo Báo cáo Hình 3 5 DFD di ễ n t ả ch ức năng th ố ng kê hóa đơn 25  DFD di ễ n t ả ch ức năng 3 - Qu ả n lý món 3 1 Thêm món 3 2 Sửa món 3 3 Xóa món 3 4 Xem món 3 5 Tìm kiếm món Hóa đơn Quản lý Thông tin trả về Yêu cầu Yêu cầu Thông tin trả về Thông tin trả về Yêu cầu Danh sách món tương ứng Nhập từ khóa Yêu cầu Danh sách món Hình 3 6 DFD di ễ n t ả ch ức năng Qu ả n lý món  DFD di ễ n t ả ch ức năng 4 - Qu ả n lý danh m ụ c món 4 1 Thêm danh mục món 4 2 Sửa danh mục món 4 3 Xóa danh mục món 4 4 Xem danh mục món Danh mục món Quản lý Thông tin trả về Yêu cầu Yêu cầu Thông tin trả về Thông tin trả về Yêu cầu Danh sách danh mục món Yêu cầu 26 Hình 3 7 DFD di ễ n t ả ch ức năng Quả n lý danh m ụ c món  DFD di ễ n t ả ch ức năng 5 - Qu ả n lý phòng hát 5 1 Thêm phòng 5 2 Sửa phòng 5 3 Xóa phòng 5 4 Xem phòng Phòng hát Quản lý Thông tin trả về Yêu cầu Yêu cầu Thông tin trả về Thông tin trả về Yêu cầu Danh sách phòng Yêu cầu Hình 3 8 DFD di ễ n t ả ch ức năng q u ả n lý phòng hát 27  DFD di ễ n t ả ch ức năng 6 - Qu ả n lý tài kho ả n 6 1 Thêm tài khoản 6 2 Sửa tài khoản 6 3 Xóa tài khoản 6 4 Xem tài khoản Tài khoản Quản lý Thông tin trả về Yêu cầu Yêu cầu Thông tin trả về Thông tin trả về Yêu cầu Danh sách tài khoản Yêu cầu 6 5 Đặt lại mật khẩu mặc định Yêu cầu Thông tin trả về 6 6 Đổi mật khẩu Yêu cầu đổi Xác nhận đổi mật khẩu Hình 3 9 DFD di ễ n t ả ch ức năng Quả n lý tài kho ả n 28 3 2 Phân tích và thi ế t k ế d ữ li ệ u h ệ th ố ng 3 2 1 Bi ểu đồ th ự c th ể - m ố i quan h ệ (ER) a) Bi ểu đồ ER Hình 3 10 Bi ểu đồ ER 29 b) Đặ c t ả các th ự c th ể TaiKhoan(TenDangNhap, TenHienThi, MatKhau, MaLoaiTaiKhoan) LoaiTaiKhoan(MaLoaiTaiKhoan, TenLoaiTaiKhoan) HoaDon(MaHoaDon, ThoiGianVao, TrangThai, MaPhongHat, TongTien) ChiTietHoaDon(MaChiTietHoaDon, MaHoaDon, MaMon, SoLuongMon) PhongHat(MaPhongHat, TenPhongHat, TrangThai, MaLoaiPhong, GiaPhong) LoaiPhong(MaLoaiPhong, TenLoaiPhong) Mon(MaMon, TenMon, MaDanhMucMon, Gia) DanhMucMon(MaDanhMucMon, TenDanhMucMon) 3 2 2 Chuy ể n v ề mô hình R và chu ẩ n hóa R a) Mô hình R Hình 3 11 Mô hình R 30 b) Chu ẩ n hóa R TaiKhoan(TenDangNhap, TenHienThi, MatKhau, MaLoaiTaiKhoan) LoaiTaiKhoan(MaLoaiTaiKhoan, TenLoaiTaiKhoan) HoaDon(MaHoaDon, ThoiGianVao, TrangThai, MaPhongHat, TongTien) ChiTietHoaDon(MaChiTietHoaDon, MaHoaDon, MaMon, SoLuongMon) PhongHat(MaPhongHat, TenPhongHat, TrangThai, MaLoaiPhong, GiaPhong) LoaiPhong(MaLoaiPhong, TenLoaiPhong) Mon(MaMon, TenMon, MaDanhMucMon, Gia) DanhMucMon(MaDanhMucMon, TenDanhMucMon) 3 2 3 Thi ế t k ế các b ả ng d ữ li ệ u B ả ng 4 B ả ng chi ti ết hóa đơn (ChiTietHoaDon) Tên trƣ ờ ng Ki ể u d ữ li ệ u Ràng bu ộ c Mô t ả MaChiTietHoaDon int PK Mã chi ti ế t hoán đơn MaHoaDon int FK Mã h óa đơn MaMon int FK Mã món SoLuongMon int not null S ố lƣ ợ ng món B ả ng 5 B ả ng danh m ụ c món (DanhMucMon) Tên trƣ ờ ng Ki ể u d ữ li ệ u Ràng bu ộ c Mô t ả MaDanhMucMon int PK Mã danh m ụ c món TenDanhMucMon nvarchar(100) not null Tên danh m ụ c món 31 B ả ng 6 B ảng hóa đơn (HoaDon) Tên trƣ ờ ng Ki ể u d ữ li ệ u Ràng bu ộ c Mô t ả MaHoaDon int PK Mã hóa đơn ThoiGian Vao date not null Th ờ i gian vào TrangThai int not null Tr ạ ng thái MaPhongHat int FK Mã phòng hát TongTien int not null T ổ ng ti ề n B ả ng 7 B ả ng lo ạ i phòng (LoaiPhong) Tên trƣ ờ ng Ki ể u d ữ li ệ u Ràng bu ộ c Mô t ả MaLoaiPhong int PK Mã lo ạ i phòng TenLoaiPhong nvarchar(100) not null Tên lo ạ i phòng B ả ng 8 B ả ng lo ạ i tài kho ả n (LoaiTaiKhoan) Tên trƣ ờ ng Ki ể u d ữ li ệ u Ràng bu ộ c Mô t ả MaLoaiTaiKhoan int PK Mã lo ạ i tài kho ả n TenLoaiTaiKhoan nvarchar(100) not null Tên lo ạ i tài kho ả n B ả ng 9 B ả ng món (Mon) Tên trƣ ờ ng Ki ể u d ữ li ệ u Ràng bu ộ c Mô t ả MaMon int PK Mã món TenMon nvarchar(100) not null Tên món 32 MaDanhMucMon int FK Mã danh m ụ c món Gia f loat not null Giá B ả ng 10 B ả ng phòng hát (PhongHat) Tên trƣ ờ ng Ki ể u d ữ li ệ u Ràng bu ộ c Mô t ả MaPhongHat int PK Mã phòng hát TenPhongHat nvarchar(100) not null Tên phòng hát TrangThai int FK Tr ạ ng thái MaLoaiPhong f loat not null Mã lo ạ i phòng GiaPhong int FK Giá phòng B ả ng 11 B ả ng tài kho ả n (TaiKhoan) Tên trƣ ờ ng Ki ể u d ữ li ệ u Ràng bu ộ c Mô t ả TenDangNhap nvarchar(100) PK Tên đăng nh ậ p TenHienThi nvarchar(100) null Tên hi ể n th ị MatKhau nvarchar(1000) not null M ậ t kh ẩ u MaLoaiTaiKhoan int FK S ố lƣ ợ ng món 33 3 2 4 Mô hình quan h ệ m ứ c v ậ t lý Hình 3 12 Mô hình quan h ệ m ứ c v ậ t lý 34 3 3 Phân tích và thi ế t k ế giao di ệ n h ệ th ố ng 3 3 1 Ch ức năng đăng nhậ p Hình 3 13 Ch ức năng đăng nhậ p Mô t ả ch ức năng đăng nhậ p: Trƣớ c khi vào s ử d ụng các tính năng và nghiệ p v ụ c ủ a ph ầ n m ề m c ầ n thông qua bƣớc đăng nhập Để đăng nhậ p ph ả i nh ập 2 thông tin: Tên đăng nhậ p và m ậ t kh ẩ u, sau đó nhấn vào nút “đăng nhập” để đăng nhậ p vào ph ầ n m ề m Tài kho ản đăng nhậ p có 2 lo ạ i: Tài kho ả n qu ả n lý (truy c ập đƣợ c t ấ t c ả các tính năng nghiệ p v ụ ) và tài kho ả n nhân viên (ch ỉ truy c ập đƣợ c nghi ệ p v ụ bán hàng) B ả ng 12 Ch ức năng đăng nhậ p Màn hình Đăng nh ậ p Mô t ả Màn hình đăng nh ậ p h ệ th ố ng ph ầ n m ề m qu ả n lý quán karaoke Cách truy c ậ p Ngƣ ờ i dùng kích đúp vào bi ể u tƣ ợ ng ph ầ n m ề m trên màn hình Desktop N ộ i dung màn hình M ụ c Ki ể u control Ki ể u d ữ li ệ u Mô t ả Tên đăng nh ậ p Label Nhãn “Tên đăng nh ậ p” 35 Tên đăng nh ậ p TextBox String Nh ậ p vào tên đăng nh ậ p M ậ t kh ẩ u Label Nhãn “M ậ t kh ẩ u” M ậ t kh ẩ u Label String Nh ậ p vào m ậ t kh ẩ u Đăng nh ậ p Button Nh ấ n vào nút “đăng nh ậ p” đ ể đăng nh ậ p Mô t ả hành đ ộ ng Tên hành đ ộ ng Mô t ả Thành công Không thành công Đăng nh ậ p Ngƣ ờ i dùng nh ấ n vào nút “đăng nh ậ p” Đăng nh ậ p vào h ệ th ố ng ph ầ n m ề m qu ả n lý đ ể th ự c hi ệ n các ch ứ c năng nhi ệ m v ụ H ệ th ố ng báo l ỗ i: “Sai tên đăng nh ậ p ho ặ c m ậ t kh ẩ u” 3 3 2 Ch ức năng quả n lý bán hàng Hình 3 14 Ch ức năng quả n lý bán hàng Mô t ả ch ức năng qu ả n lý bán hàng:  Th ực đơn phòng hát 36 Th ực đơn phòng hát chứ a nh ững món mà ngƣờ i dùng mu ố n có s ẵ n trong t ấ t c ả các phòng karaoke Th ực đơn này có thể là: H ạt dƣa, hƣớng dƣơng, bim bim, v v Những đồ u ố ng có s ẵ n trong phòng mà khách hàng có th ể l ấy để dùng  Sơ đồ phòng hát Sơ đồ phòng s ẽ hi ể n th ị tr ạng thái các phòng đã có khách hay chƣa có khách Phòng đã có khách sẽ hi ể n th ị “có ngƣời”, phòng chƣa có khách sẽ hi ể n th ị “trống” Ngoài ra, sơ đồ phòng s ẽ hi ể n th ị phòng thƣờ ng hay phòng vip, giá c ủ a 2 lo ạ i phòng s ẽ khác nhau  Thu ti ề n khách hàng Nh ấ p chu ột vào nút “thanh toán” để xác nh ận thanh toán và in hóa đơn  Đổ i phòng cho khách hàng Ngƣờ i dùng nh ấ p chu ộ t vào phòng c ầ n chuy ển, sau đó chọ n phòng s ẽ đổ i cho khách hàng và nh ấn vào nút “chuyển phòng”, hệ th ố ng s ẽ th ự c hi ệ n nghi ệ p v ụ chuy ể n phòng cho khách hàng, h ệ th ố ng s ẽ chuy ể n toàn b ộ th ực đơn và thờ i gian b ắt đầ u s ử d ụ ng t ừ phòng cũ sang phòng mớ i B ả ng 13 Ch ức năng quả n lý bán hàng Màn hình Qu ả n lý bán hàng Mô t ả Các ch ứ c năng nghi ệ p v ụ bán hàng, bao g ồ m: Th ự c đơn phòng hát, sơ đ ồ phòng hát, thu ti ề n khách hàng, đ ổ i phòng hát Cách truy c ậ p Sau khi đăng nh ậ p ngƣ ờ i dùng kích vào nút “bán hàng” đ ể vào ch ứ c năng qu ả n lý bán hàng N ộ i dung màn hình M ụ c Ki ể u control Ki ể u d ữ li ệ u Mô t ả Món Combobox String Danh sách món Danh m ụ c món Combobox String Danh sách danh m ụ c món 37 Thêm món Button Nh ấ n vào nút “thêm món” đ ể đ ặ t món S ố lƣ ợ ng món NumericUpDo wn Int S ố lƣ ợ ng món Sơ đ ồ phòng Button Sơ đ ồ phòng hi ể n th ị tr ạ ng thái phòng Danh sách món ListView String, int, float Danh sách món đã đ ặ t Chuy ể n phòng Button Nút “chuy ể n phòng” Danh sách phòng Combobox String Danh sách phòng Thanh toán Button Nút “thanh toán” T ổ ng ti ề n Textbox Float T ổ ng ti ề n c ầ n thanh toán Mô t ả hành đ ộ ng Tên hành đ ộ ng Mô t ả Thành công Không thành công Thêm món Ngƣ ờ i dùng nh ấ n vào nút “thêm món” Món đƣ ợ c thêm s ẽ hi ể n th ị trong danh sách món Món đƣ ợ c thêm s ẽ không hi ể n th ị trong danh sách món Chuy ể n phòng Ngƣ ờ i dùng nh ấ n vào nút “chuy ể n phòng” Thông tin v ề hóa đơn chƣa đƣ ợ c thanh toán s ẽ chuy ể n t ừ phòng cũ sang phòng m ớ i Thông tin v ề hóa đơn chƣa đƣ ợ c thanh toán s ẽ không chuy ể n t ừ phòng cũ sang phòng m ớ i Thanh toán Ngƣ ờ i dùng nh ấ n vào nút “thanh toán” H ệ th ố ng xu ấ t thông báo: “B ạ n xác nh ậ n thanh toán hóa đơn?” H ệ th ố ng không xu ấ t thông báo: “B ạ n xác nh ậ n thanh toán hóa đơn?” 38 3 3 3 Ch ức năng thống kê hóa đơn Hình 3 15 Ch ức năng quả n lý th ố ng kê Mô t ả ch ức năng qu ả n lý th ố ng kê: Th ố ng kê t ấ t c ả nh ững hóa đơn củ a khách hàng t ừ trƣớ c t ớ i nay M ặc đị nh s ẽ hi ể n th ị hóa đơn củ a tháng hi ệ n t ại, ngƣờ i dùng có th ể tùy ch ỉnh để xem hóa đơn c ủ a nh ữ ng tháng khác, ho ặc hóa đơn trong ngày Nghiệ p v ụ th ống kê hóa đơn chỉ th ố ng kê nh ững hóa đơn đã thanh toán B ả ng 14 Ch ức năng quả n lý th ố ng kê Màn hình Qu ả n lý th ố ng kê hóa đơn Mô t ả Danh sách hóa đơn đã thanh toán Cách truy c ậ p Sau khi đăng nh ậ p ngƣ ờ i dùng kích vào nút “qu ả n lý” sau đó kích vào nút “th ố ng kê hóa đơn” đ ể vào ch ứ c năng qu ả n lý t h ố ng kê hóa đơn N ộ i dung màn hình M ụ c Ki ể u control Ki ể u d ữ li ệ u Mô t ả Ngày b ắ t đ ầ u DateTimePicker Datetime Ngày b ắ t đ ầ u th ố ng kê 39 Ngày k ế t thúc DateTimePicker Datetime Ngày k ế t thúc th ố ng kê Th ố ng kê Button Nút “th ố ng kê” Danh sách hóa đơn DataGridView String, int, datetime Danh sách hóa đơn đã thanh toán Trang đ ầ u Button Nút “trang đ ầ u” Trang trƣ ớ c đó Button Nút “trang trƣ ớ c đó” Trang k ế ti ế p Button Nút “trang k ế ti ế p” Trang cu ố i Button Nút “trang cu ố i” S ố trang TextBox Hi ể n th ị s ố trang Mô t ả hành đ ộ ng Tên hành đ ộ ng Mô t ả Thành công Không thành công Th ố ng kê Ngƣ ờ i dùng nh ấ n vào nút “th ố ng kê” Hi ể n th ị danh sách hóa đơn đã thanh toán vào “danh sách hóa đơn” Danh sách hóa đơn s ẽ không đƣ ợ c hi ể n th ị vào “danh sách hóa đơn” Trang đ ầ u Ngƣ ờ i dùng nh ấ n vào nút “trang đ ầ u” Hi ể n th ị danh sách 10 hóa đơn đ ầ u tiên Không hi ể n th ị danh sách 10 hóa đơn đ ầ u tiên Trang trƣ ớ c đó Ngƣ ờ i dùng nh ấ n vào nút “trang trƣ ớ c đó” Hi ể n th ị danh sách 10 hóa đơn trƣ ớ c đó Không hi ể n th ị danh sách 10 hóa đơn trƣ ớ c đó Trang sau đó Ngƣ ờ i dùng nh ấ n vào nút “trang sau đó” Hi ể n th ị danh sách 10 hóa đơn sau đó Không hi ể n th ị danh sách 10 hóa đơn sau đó 40 Trang cu ố i Ngƣ ờ i dùng nh ấ n vào nút “trang cu ố i” Hi ể n th ị danh sách 10 hóa đơn cu ố i cùng Không hi ể n th ị danh sách 10 hóa đơn cu ố i cùng 3 3 4 Ch ức năng quả n lý món Hình 3 16 Ch ức năng quả n lý món Mô t ả ch ức năng qu ả n lý món: Bên trên màn hình là danh sách món, bao g ồ m: Mã món, tên món, mã danh m ụ c món, tên danh m ụ c món, giá Bên dƣớ i màn hình là thông tin chính c ầ n qu ả n lý, bao g ồ m: Mã món, tên món, danh m ụ c món, giá; các thông tin c ầ n qu ản lý đƣợ c binding v ớ i danh sách món  Thêm món Để thêm món, ngƣời dùng thêm thông tin vào bên dƣới màn hình Sau đó nh ấn vào nút “thêm món” Nếu món đƣợ c thêm s ẽ hi ể n th ị t hông báo: “Đã thêm món”, nếu món chƣa đƣợ c thêm s ẽ hi ể n th ị thông báo: “Xả y ra l ỗi khi thêm món” M ỗ i l ần thêm đƣợ c m ột món, không thêm đƣợ c cùng lúc nhi ề u món  Xóa món 41 Để xóa món, ngƣờ i dùng ch ọ n món c ầ n xóa trong danh sách bên trên màn hình Sau đó nhấ n vào nút “xóa món” Nếu món đƣợ c xóa hi ể n th ị thông báo: “Đã xóa món”, nếu món chƣa đƣợ c xóa s ẽ hi ể n th ị thông báo: “Xả y ra l ỗi khi xóa món” M ỗ i l ần xóa đƣợ c m ột món, không xóa đƣợ c cùng lúc nhi ề u món  S ử a món Để s ửa món, ngƣờ i dùng s ử a thông tin vào bên ph ải màn hình Sau đó nhấ n vào nút “sửa món” Nếu món đƣợ c s ử a s ẽ hi ể n th ị thông báo: “Đ ã s ửa món”, nế u món chƣa đƣợ c s ử a s ẽ hi ể n th ị thông báo: “Xả y ra l ỗ i khi s ửa món” M ỗ i l ầ n s ửa đƣợ c m ộ t món, không s ửa đƣợ c cùng lúc nhi ề u món  Xem món Để xem món, ngƣờ i dùng kích chu ột vào nút “xem món” Danh sách món sẽ t ả i l ạ i lên DataGridView  Tìm món Để tìm món, ngƣờ i dùng nh ậ p t ừ khóa c ầ n tìm vào ô tìm ki ếm Sau đó nhấ n vào nút “tìm món” Hệ th ố ng s ẽ t ải danh sách món tƣơng ứ ng v ớ i t ừ khóa tìm ki ế m vào DataGridView B ả ng 15 Ch ức năng quả n lý món Màn hình Qu ả n lý món Mô t ả Giúp ngƣ ờ i dùng qu ả n lý b ả ng d ữ li ệ u món Cách truy c ậ p Sau khi đăng nh ậ p ngƣ ờ i dùng kích vào nút “qu ả n lý” sau đó kích vào nút “món” đ ể vào ch ứ c năng qu ả n lý món N ộ i dung màn hình M ụ c Ki ể u control Ki ể u d ữ li ệ u Mô t ả Thêm món Button Nút “thêm món” Xóa món Button Nút “xóa món” S ử a món Button Nút “s ử a món” 42 Xem món Button Nút “xem món” Tìm món Button Nút “tìm món” Tìm món Textbox String Nh ậ p t ừ khóa c ầ n tìm vào ô tìm món Danh sách món DataGridView Int, string, float Danh sách món trong b ả ng d ữ li ệ u “món” Mã món Label Nhãn “mã món” Mã món TextBox Int Ô ch ứ a mã món Tên món Label Nhãn “tên món” Tên món TextBox String Ô ch ứ a tên món Danh m ụ c món Label Nhãn “danh m ụ c món” Danh m ụ c món Combobox String Danh sách danh m ụ c món Giá NumericUpDown Float Đơn giá m ộ t món Mô t ả hành đ ộ ng Tên hành đ ộ ng Mô t ả Thành công Không thành công Thêm món Ngƣ ờ i dùng nh ấ n vào nút “thêm món” H ệ th ố ng thông báo: “Đã thêm món” H ệ th ố ng thông báo: “Đã x ả y ra l ỗ i khi thêm món” Xóa món Ngƣ ờ i dùng nh ấ n vào nút “xóa món” H ệ th ố ng thông báo: “Đã xóa món” H ệ th ố ng thông báo: “Đã x ả y ra l ỗ i khi xóa món” S ử a món Ngƣ ờ i dùng nh ấ n vào nút “s ử a món” H ệ th ố ng thông báo: “Đã s ử a món” H ệ th ố ng thông báo: “Đã x ả y ra l ỗ i khi s ử a món” 43 Xem món Ngƣ ờ i dùng nh ấ n vào nút “xem món” H ệ th ố ng t ả i danh sách món lên DataGridView H ệ th ố ng không t ả i danh sách món lên DataGridView Tìm món Ngƣ ờ i dùng nh ấ n vào nút “tìm món” H ệ th ố ng t ả i l ạ i danh sách món tƣơng ứ ng v ớ i t ừ khóa H ệ th ố ng không t ả i l ạ i danh sách món tƣơng ứ ng v ớ i t ừ khóa 3 3 5 Ch ức năng quả n lý danh m ụ c món Hình 3 17 Ch ức năng quả n lý danh m ụ c món Mô t ả ch ức năng qu ả n lý danh m ụ c món: Bên ph ả i màn hình là danh sách danh m ụ c món, bao g ồ m: Mã danh m ụ c món, tên danh m ụ c món Bên trái màn hình là thông tin chính c ầ n qu ả n lý, bao g ồ m: Mã danh m ụ c và tên danh m ụ c; các thông tin chính c ầ n qu ản lý đƣợ c binding v ớ i danh sách danh m ụ c món  Thêm danh m ụ c món Để thêm danh m ục món, ngƣờ i dùng thêm thông tin vào bên trái màn hình Sau đó nhấn vào nút “thêm danh mục món” Nế u danh m ục món đƣợ c thêm s ẽ hi ể n 44 th ị thông báo: “Đã thêm danh mụ c món”, danh m ục món chƣa đƣợ c thêm s ẽ hi ể n th ị thông báo: “Xả y ra l ỗ i khi thêm danh m ục món” M ỗ i l ần thêm đƣợ c m ộ t danh m ụ c món, không thêm cùng lúc nhi ề u danh m ụ c món  Xóa danh m ụ c món Để xóa danh m ục món, ngƣờ i dùng ch ọ n vào danh m ụ c món c ầ n xóa trong danh sách bên ph ải màn hình Sau đó nhấn vào nút “xóa danh mục món” Nế u danh m ục món đƣợ c xóa s ẽ hi ể n th ị thông báo: “Đã xóa danh mụ c món ”, nế u danh m ụ c món chƣa đƣợ c xóa s ẽ hi ể n th ị thông báo: “Xả y ra l ỗ i khi xóa danh m ục món” M ỗ i l ầ n xóa m ộ t danh m ụ c món, không xóa cùng lúc nhi ề u danh m ụ c món  S ử a danh m ụ c món Để s ử a danh m ục món, ngƣờ i dùng s ử a thông tin vào bên ph ả i màn hình Sau đó nhấn vào nút “sử a danh m ục món” Nế u danh m ục món đƣợ c s ử a s ẽ hi ể n th ị thông báo: “Đã sử a danh m ục món”, nế u danh m ục món chƣa đƣợ c s ử a s ẽ hi ể n th ị thông báo: “Xả y ra l ỗ i khi s ử a danh m ục món” M ỗ i l ầ n s ửa đƣợ c m ộ t danh m ụ c món, không s ửa đƣợ c cùng lúc nhi ề u danh m ụ c món  Xem danh m ụ c món Để xem danh m ục món, ngƣờ i dùng kích chu ột vào nút “xem danh mụ c món” Danh sách danh mụ c món s ẽ t ả i l ạ i lên DataGridView B ả ng 16 Ch ức năng quả n lý danh m ụ c món Màn hình Qu ả n lý danh m ụ c món Mô t ả Giúp ngƣ ờ i dùng qu ả n lý b ả ng d ữ li ệ u danh m ụ c món Cách truy c ậ p Sau khi đăng nh ậ p ngƣ ờ i dùng kích vào nút “qu ả n lý” sau đó kích vào nút “danh m ụ c món” đ ể vào ch ứ c năng qu ả n lý danh m ụ c món N ộ i dung màn hình 45 M ụ c Ki ể u control Ki ể u d ữ li ệ u Mô t ả Thêm danh m ụ c món Button Nút “thêm danh m ụ c món” Xóa danh m ụ c món Button Nút “xóa danh m ụ c món” S ử a danh m ụ c món Button Nút “s ử a danh m ụ c món” Xem danh m ụ c món Button Nút “xem danh m ụ c món” Danh sách danh m ụ c món DataGridView String Danh sách danh m ụ c món trong b ả ng d ữ li ệ u “danh m ụ c món” Mã danh m ụ c món Label Nhãn “mã danh m ụ c món” Mã danh m ụ c món TextBox Int Ô ch ứ a mã danh m ụ c món Tên danh m ụ c món Label Nhãn “tên danh m ụ c món” Tên danh m ụ c món TextBox String Ô ch ứ a tên danh m ụ c món Mô t ả hành đ ộ ng Tên hành đ ộ ng Mô t ả Thành công Không thành công Thêm danh m ụ c món Ngƣ ờ i dùng nh ấ n vào nút “thêm danh m ụ c món” H ệ th ố ng thông báo: “Đã thêm danh m ụ c món” H ệ th ố ng thông báo: “Đã x ả y ra l ỗ i khi thêm danh m ụ c món” 46 Xóa danh m ụ c món Ngƣ ờ i dùng nh ấ n vào nút “xóa danh m ụ c món” H ệ th ố ng thông báo: “Đã xóa danh m ụ c món” H ệ th ố ng thông báo: “Đã x ả y ra l ỗ i khi xóa danh m ụ c món” S ử a danh m ụ c món Ngƣ ờ i dùng nh ấ n vào nút “s ử a danh m ụ c món” H ệ th ố ng thông báo: “Đã s ử a danh m ụ c món” H ệ th ố ng thông báo: “Đã x ả y ra l ỗ i khi s ử a danh m ụ c món” Xem danh m ụ c món Ngƣ ờ i dùng nh ấ n vào nút “xem danh m ụ c món” H ệ th ố ng t ả i l ạ i danh sách danh m ụ c món lên DataGridView H ệ th ố ng không t ả i l ạ i danh sách danh m ụ c món lên DataGridView 3 3 6 Ch ức năng quả n lý phòng Hình 3 18 Ch ức năng quả n lý phòng Mô t ả ch ức năng quả n lý phòng: Bên trên màn hình là danh sách phòng hát, bao g ồ m: Mã phòng hát, tên phòng hát, tr ạ ng thái, mã lo ạ i phòng, tên lo ạ i phòng, giá phòng 47 Bên dƣớ i màn hình là thông tin chính c ầ n qu ả n lý, bao g ồ m: Mã phòng, tên phòng, tr ạ ng thái, lo ạ i phòng, giá; các thông tin chính c ầ n qu ản lý đƣợ c binding v ớ i danh sách phòng hát  Thêm phòng Để thêm phòng, ngƣờ i dùng nh ập thông tin vào bên dƣới màn hình Sau đó nh ấn vào nút “thêm phòng” Nếu phòng đƣợ c thêm s ẽ hi ể n th ị th ông báo: “Đã thêm phòng”, nếu phòng chƣa đƣợ c thêm s ẽ hi ể n th ị thông báo: “Xả y ra l ỗ i khi thêm phòng” M ỗ i l ần thêm đƣợ c m ột phòng, không thêm đƣợ c cùng lúc nhi ề u phòng  Xóa phòng Để xóa phòng, ngƣờ i dùng ch ọ n vào phòng c ầ n xóa trong danh sách phòng Sau đ ó nh ấn vào nút “xóa phòng” Nếu phòng đƣợ c xóa s ẽ hi ể n th ị thông báo: “Đã xóa phòng”, nếu phòng chƣa đƣợ c xóa s ẽ hi ể n th ị thông báo: “Xả y ra l ỗ i khi xóa phòng” M ỗ i l ần xóa đƣợ c m ột phòng, không xóa đƣợ c cùng lúc nhi ề u phòng  S ử a phòng Để s ửa phòng, ngƣờ i dùng s ử a thông tin ở m ụ c thông tin qu ả n lý bên ph ả i màn hình Sau đó nhấn vào nút “sửa phòng” Nếu phòng đƣợ c s ử a s ẽ hi ể n th ị thông báo: “Đã sửa phòng”, nếu phòng chƣa đƣợ c s ử a s ẽ hi ể n th ị thông báo: “Xả y ra l ỗ i khi s ửa phòng” M ỗ i l ầ n s ửa đƣợ c m ộ t phòng, không s ửa đƣợ c cùng lúc nhi ề u phòng  Xem phòng Để xem phòng, ngƣờ i dùng kích chu ột vào nút “xem phòng” Danh sách phòng s ẽ t ả i l ạ i lên DataGridView 48 B ả ng 17 Ch ức năng quả n lý phòng Màn hình Qu ả n lý phòng Mô t ả Giúp ngƣ ờ i dùng qu ả n lý b ả ng d ữ li ệ u phòng Cách truy c ậ p Sau khi đăng nh ậ p ngƣ ờ i dùng kích vào nút “qu ả n lý” sau đó kích vào nút “phòng hát” đ ể vào ch ứ c năng qu ả n lý phòng N ộ i dung màn hình M ụ c Ki ể u control Ki ể u d ữ li ệ u Mô t ả Thêm phòng Button Nút “thêm phòng” Xóa phòng Button Nút “xóa phòng” S ử a phòng Button Nút “s ử a phòng” Xem phòng Button Nút “xem phòng” Danh sách phòng DataGridView String Danh sách phòng trong b ả ng d ữ li ệ u “phòng hát” Mã phòng Label Nhãn “mã phòng” Mã phòng TextBox Int Ô ch ứ a mã phòng Tên phòng Label Nhãn “tên phòng” Tên phòng TextBox String Ô ch ứ a tên phòng Tr ạ ng thái Label Nhãn “tr ạ ng thái” Tr ạ ng thái TextBox Ô ch ứ a tr ạ ng thái phòng Lo ạ i phòng Label Nhãn “lo ạ i phòng” Lo ạ i phòng Combobox String Ch ứ a danh sách lo ạ i phòng Giá NumericUpDown Float Giá phòng Mô t ả hành đ ộ ng 49 Tên hành đ ộ ng Mô t ả Thành công Không thành công Thêm phòng Ngƣ ờ i dùng nh ấ n vào nút “thêm phòng” H ệ th ố ng thông báo: “Đã thêm phòng” H ệ th ố ng thông báo: “Đã x ả y ra l ỗ i khi thêm phòng” Xóa phòng Ngƣ ờ i dùng nh ấ n vào nút “xóa phòng” H ệ th ố ng thông báo: “Đã xóa phòng” H ệ th ố ng thông báo: “Đã x ả y ra l ỗ i khi xóa phòng” S ử a phòng Ngƣ ờ i dùng nh ấ n vào nút “s ử a phòng” H ệ th ố ng thông báo: “Đã s ử a phòng” H ệ th ố ng thông báo: “Đã x ả y ra l ỗ i khi s ử a phòng” Xem phòng Ngƣ ờ i dùng nh ấ n v ào nút “xem phòng” H ệ th ố ng t ả i l ạ i danh sách phòng lên DataGridView H ệ th ố ng không t ả i l ạ i danh sách phòng lên DataGridView g) Ch ức năng quả n lý tài kho ả n Hình 3 19 Ch ức năng quả n lý tài kho ả n 50 Mô t ả ch ức năng quả n lý tài kho ả n: Bên trên màn hình là danh sách tài kho ả n, bao g ồm các thông tin: Tên đăng nh ậ p, tên hi ể n th ị , mã lo ạ i tài kho ả n, tên lo ạ i tài kho ả n Bên dƣớ i màn hình là thông tin chính c ầ n qu ả n lý, bao g ồm: Tên đăng nhậ p, tên hi ể n th ị , lo ạ i tài kho ả n; các thông tin chính c ầ n qu ản lý đƣợ c binding v ớ i danh sách tài kho ả n  Xóa tài kho ả n Để xóa tài kho ản, ngƣờ i dùng ch ọ n vào tài kho ả n c ầ n xóa trong danh sách tài kho ản Sau đó nhấn vào nút “xóa tài khoản” Nế u tài kho ản đƣợ c xóa s ẽ hi ể n th ị thông báo: “Đã xóa tài khoản”, nế u tài kho ản chƣa đƣợ c xóa s ẽ hi ể n th ị thông báo: “Xả y ra l ỗ i khi xóa tài kho ản” M ỗ i l ần xóa đƣợ c m ộ t tài kho ả n, tài kho ản xóa đƣợ c cùng lúc nhi ề u phòng  S ử a tài kho ả n Để s ử a tài kho ản, ngƣờ i dùng s ử a thông tin ở m ụ c thông tin qu ả n lý bên ph ả i màn hình Sau đó nhấn vào nút “sử a tài kho ản” Nế u tài kho ản đƣợ c s ử a s ẽ hi ể n th ị thông báo: “Đã sử a tài kho ản”, nế u tài kho ản chƣa đƣợ c s ử a s ẽ hi ể n th ị thông báo: “Xả y ra l ỗ i khi s ử a tài kho ản” M ỗ i l ầ n s ửa đƣợ c m ộ t tài kho ả n, không s ửa đƣợ c cùng lúc nhi ề u tài kho ả n  Xem tài kho ả n Để xem tài kho ản, ngƣờ i dùng kích chu ột vào nút “xem tài khoản” Danh sách tài kho ả n s ẽ t ả i l ạ i lên DataGridView B ả ng 18 Ch ức năng quả n lý tài kho ả n Màn hình Qu ả n lý tài kho ả n Mô t ả Giúp ngƣ ờ i dùng qu ả n lý b ả ng d ữ li ệ u tài kho ả n Cách truy c ậ p Sau khi đăng nh ậ p ngƣ ờ i dùng kích vào nút “qu ả n lý” sau đó kích vào nút “ tài kho ả n ” đ ể vào ch ứ c năng qu ả n lý tài kho ả n 51 N ộ i dung màn hình M ụ c Ki ể u control Ki ể u d ữ li ệ u Mô t ả Thêm tài kho ả n Button Nút “thêm tài kho ả n” Xóa tài kho ả n Button Nút “xóa tài kho ả n” S ử a tài kho ả n Button Nút “s ử a tài kho ả n” Xem tài kho ả n Button Nút “xem tài kho ả n” Danh sách tài kho ả n DataGridView String, int Danh sách tài kho ả n trong b ả ng d ữ li ệ u “ tài kho ả n ” Tên đăng nh ậ p Label Nhãn “tên đăng nh ậ p” Tên đăng nh ậ p TextBox String Ô ch ứ a tên đăng nh ậ p Tên hi ể n th ị Label Nhãn “tên hi ể n th ị ” Tên hi ể n th ị TextBox String Ô ch ứ a tên hi ể n th ị Lo ạ i tài kho ả n Label Nhãn “tr ạ ng thái” Lo ạ i tài kho ả n Combobox String Danh sách lo ạ i tài kho ả n Đ ặ t l ạ i m ậ t kh ẩ u Button Nút “đ ặ t l ạ i m ậ t kh ẩ u” Mô t ả hành đ ộ ng Tên hành đ ộ ng Mô t ả Thành công Không thành công Thêm tài kho ả n Ngƣ ờ i dùng nh ấ n vào nút “thêm tài kho ả n ” đ ể đ ế n form thêm tài kho ả n H ệ th ố ng s ẽ hi ể n th ị form “thêm tài kho ả n” H ệ th ố ng s ẽ không hi ể n th ị form “thêm tài kho ả n” 52 Xóa tài kho ả n Ngƣ ờ i dùng nh ấ n vào nút “xóa tài kho ả n ” H ệ th ố ng thông báo: “Đã xóa tài kho ả n ” H ệ th ố ng thông báo: “Đã x ả y ra l ỗ i khi xóa tài kho ả n ” S ử a tài kho ả n Ngƣ ờ i dùng nh ấ n vào nút “s ử a tài kho ả n ” H ệ th ố ng thông báo: “Đã s ử a tài kho ả n ” H ệ th ố ng thông báo: “Đã x ả y ra l ỗ i khi s ử a tài kho ả n ” Xem tài kho ả n Ngƣ ờ i dùng nh ấ n vào nút “xem tài kho ả n ” H ệ th ố ng t ả i l ạ i danh sách tài kho ả n lên DataGridView H ệ th ố ng không t ả i l ạ i danh sách tài kho ả n lên DataGridView Đ ặ t l ạ i m ậ t kh ẩ u Ngƣ ờ i dùng nh ấ n vào nút “đ ặ t l ạ i m ậ t kh ẩ u” H ệ th ố ng s ẽ đ ặ t l ạ i m ậ t kh ẩ u tài kho ả n v ề

NỘI DUNG NGHIÊN CỨU

1.1.1 Giới thiệu về NET Framework

Hình 1.1 Biểu tƣợng Microsoft NET Framework

.NET Framework là nền tảng lập trình và cũng là nền tảng thực thi ứng dụng trên hệ điều hành Microsoft Windows đƣợc phát triển bởi Microsoft

Nhiều công cụ đã đƣợc tạo ra để hỗ trợ xây dựng ứng dụng trên nền tảng NET Framework Trong đó Microsoft Visual Studio là IDE (Integrated Development Environment) đƣợc phát triển và hỗ trợ bởi Microsoft

 Kiến trúc của NET Framework

Kiến trúc của NET Framework gồm 2 phần:

- CLR (Common Language Runtime - Bộ thực thi ngôn ngữ chung): Chịu trách nhiệm thực thi mã lệnh và quản lý các tác vụ liên quan: Biên dịch, quản lý bộ nhớ, bảo mật, v.v

- FCL (Framework Class Library - Thƣ viện các lớp cơ sở): Thƣ viện chứa các lớp cơ sở Thường được sử dụng để xây dựng các lớp cao hơn

1.1.2 Giới thiệu về ngôn ngữ C#

C# là ngôn ngữ lập trình đơn giản, hiện đại, mục đích tổng quát, hướng đối tƣợng đƣợc phát triển bởi Microsoft và đƣợc phê chuẩn bởi European Computer

CƠ SỞ LÝ THUYẾT

Giới thiệu về Windows Form C#.NET

1.1.1 Giới thiệu về NET Framework

Hình 1.1 Biểu tƣợng Microsoft NET Framework

.NET Framework là nền tảng lập trình và cũng là nền tảng thực thi ứng dụng trên hệ điều hành Microsoft Windows đƣợc phát triển bởi Microsoft

Nhiều công cụ đã đƣợc tạo ra để hỗ trợ xây dựng ứng dụng trên nền tảng NET Framework Trong đó Microsoft Visual Studio là IDE (Integrated Development Environment) đƣợc phát triển và hỗ trợ bởi Microsoft

 Kiến trúc của NET Framework

Kiến trúc của NET Framework gồm 2 phần:

- CLR (Common Language Runtime - Bộ thực thi ngôn ngữ chung): Chịu trách nhiệm thực thi mã lệnh và quản lý các tác vụ liên quan: Biên dịch, quản lý bộ nhớ, bảo mật, v.v

- FCL (Framework Class Library - Thƣ viện các lớp cơ sở): Thƣ viện chứa các lớp cơ sở Thường được sử dụng để xây dựng các lớp cao hơn

1.1.2 Giới thiệu về ngôn ngữ C#

C# là ngôn ngữ lập trình đơn giản, hiện đại, mục đích tổng quát, hướng đối tƣợng đƣợc phát triển bởi Microsoft và đƣợc phê chuẩn bởi European Computer

Framework Phiên bản C# đầu tiên đƣợc phát hành là C# 1.0, đƣợc phát hành vào tháng 1 năm 2002, sử dụng nền tảng NET Framework phiên bản 1.0 trên Microsoft Visual Studio 2002

Dưới đây là các lý do C# trở thành ngôn ngữ lập trình chuyên nghiệp được sử dụng rộng rãi:

C# là ngôn ngữ lập trình hiện đại

C# là ngôn ngữ hướng đối tượng

C# là ngôn ngữ dễ học

C# là một phần của Net Framework

1.1.3 Giới thiệu công nghệ Windows Form

Windows Form hay WinForm là công nghệ của Microsoft, cho phép lập trình các ứng dụng WinForm Nhờ tính tiện ích, dễ code, giao diện design kéo thả đơn giản, v.v WinForm đã đƣợc sử dụng để phát triển rất nhiều ứng dụng về quản lý, tính tiền, thống kê, v.v

WinForm có giao diện kéo, thả dễ sử dụng; gắn các event cho các control chỉ cần double click và hỗ trợ nhiều event nhƣ click, hover, v.v Việc viết code cũng vô cùng trực quan: Từ việc lấy text từ TextBox cho tới show dữ liệu bằng MessageBox, hoặc dùng DataGridView để kết nối cơ sở dữ liệu SQL Server

1.1.4 Giới thiệu IDE Visual Studio

Microsoft Visual Studio là một môi trường phát triển ứng dụng, tích hợp đầy đủ các tính năng cho Android, iOS, Windows, web và cloud Microsoft Visual Studio là IDE đƣợc phát triển bởi Microsoft

Microsoft Visual Studio bao gồm các thành phần chính:

 Các phiên bản của Microsoft Visual Studio

Visual Studio Community: Miễn phí cho sinh viên, mã nguồn mở, phù hợp cho cá nhân sử dụng

Visual Studio Professional: Chuyên nghiệp, phù hợp cho nhóm quy mô nhỏ sử dụng

Visual Studio Enterprise: Mở rộng hơn phiên bản Visual Studio Professional, phù hợp cho mọi đội nhóm sử dụng Đề tài sử dụng Visual Studio 2017 Community, vì tính ổn định và sử dụng miễn phí.

Giới thiệu về hệ quản trị cơ sở dữ liệu Sql Server và ADO.NET

1.2.1 Giới thiệu về hệ quản trị cơ sở dữ liệu Sql Server

Cơ sở dữ liệu là một tập hợp các dữ liệu có tổ chức, thường được tổ chức thành bảng dữ liệu

Hệ quản trị cơ sở dữ liệu - DBMS (Database Management System) là hệ thống phần mềm giúp tương tác với cơ sở dữ liệu

SQL (Structured Query Language) là ngôn ngữ truy vấn có cấu trúc, đƣợc sử dụng trong hệ quản trị cơ sở dữ liệu

 Các phiên bản SQL Server

SQL Server 2014 Express là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System - RDBMS) sử dụng câu lệnh SQL (Transact - SQL) để trao đổi dữ liệu giữa máy tính Client và máy tính cài SQL Server Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS

SQL Server 2014 Express được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn User SQL Server có thể kết hợp “ăn ý” với các Server khác nhƣ Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server, v.v

Các phiên bản SQL Server khác:

Enterprise: Chứa tất cả các đặc điểm nổi bật của SQL Server, bao gồm nhân của bộ máy cơ sở dữ liệu và các dịch vụ đi kèm cùng với các công cụ cho phép tạo và quản lý phân cụm SQL Server Nó có thể quản lý các cơ sở dữ liệu lớn tới 524 Petabyte và hỗ trợ tới 640 bộ vi xử lý (các Core của CPU)

Standard: Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn nhiều so với Enterprise Edition, nhƣng lại bị giới hạn một số chức năng cao cấp (advanced features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAM

Developer: Có đầy đủ các tính năng của Enterprise Edition nhƣng đƣợc chế tạo đặc biệt như giới hạn số lượng người kết nối vào Server cùng một lúc, v.v Ðây là phiên bản sử dụng cho phát triển và kiểm tra ứng dụng Phiên bản này phù hợp cho các cá nhân, tổ chức xây dựng và kiểm tra ứng dụng

Workgroup: Phiên bản SQL Server Workgroup bao gồm chức năng chính, đủ dùng nhưng không có các dịch vụ đi kèm Lưu ý rằng phiên bản này không còn tồn tại ở SQL Server 2012

Express: SQL Server Express dễ sử dụng và đơn giản trong quản trị cơ sở dữ liệu Đƣợc tích hợp Microsoft Visual Studio dễ dàng để phát triển các ứng dụng SQL Server Express là phiên bản miễn phí, không giới hạn về cơ sở dữ liệu hoặc người sử dụng, nhưng chỉ dùng cho 1 bộ vi xử lý với 1 GB bộ nhớ và 10 GB file cơ sở dữ liệu SQL Server Express là lựa chọn tốt cho những người dùng chỉ cần một phiên bản SQL Server nhỏ gọn, dùng trên máy chủ có cấu hình thấp, những nhà phát triển ứng dụng không chuyên hay những người yêu thích xây dựng các ứng dụng nhỏ

1.2.2 Giới thiệu về ADO.NET

Hình 1.4 Các đối tƣợng của ADO.NET

ADO.NET là một tập hợp hướng đối tượng các thư viện cho phép tương tác với nguồn dữ liệu (DataSources) Thường nguồn dữ liệu là một cơ sở dữ liệu (Database), nhƣng có thể là một file text, bảng tính Excel hoặc một tập tin XML

 Data Providers Ứng với mỗi cơ sở dữ liệu khác nhau thì ADO.NET cho phép tương tác cũng khác nhau Một Data Providers đƣợc sử dụng để kết nối đến cơ sở dữ liệu, đọc dữ liệu, nhận dữ liệu, cập nhật dữ liệu, v.v trong DataSet và trong cơ sở dữ liệu Tuy nhiên do có khá nhiều nguồn dữ liệu nên nảy sinh nhiều giao thức khác nhau; vì thế để giao tiếp đƣợc với cơ sở dữ liệu chúng ta phải sử dụng giao thức phù hợp với nguồn dữ liệu đó Có các giao thức nhƣ ODBC, OleDb hay các giao thức thông qua thư viện NET của lớp ADO.NET Bảng sau đây liệt kê một số giao thức thường

Bảng 2 Một số giao thức thường dùng

Provider Name Tiền tố API Data Source

ODBC Data Provider Odbc Dùng cho cơ sở dữ liệu cũ

OleDb Data Provider OleDb Dùng cho cơ sở dữ liệu nhƣ Access,

Excel Oracle Data Provider Oracle Dùng cho cơ sở dữ liệu Oracle

SQL Data Provider Sql Dùng cho cơ sở dữ liệu SQL Server

Borland Data Provider Bdp Dùng cho cơ sở dữ liệu Interbase,

SQL Server, IBM DB2, Oracle

ADO.NET bao gồm nhiều đối tƣợng giúp chúng ta làm việc với dữ liệu Phần này sẽ giới thiệu các đối tượng chính thường sử dụng Một số đối tượng đó là:

SqlConnection Object: Là đối tƣợng kết nối cơ sở dữ liệu nhằm xác định máy chủ (DatabaseServer), tên cơ sở dữ liệu (DatabaseName), tên người dùng (UserName), mật khẩu (Password) và các thông số khác đƣợc yêu cầu để kết nối với cơ sở dữ liệu Bảng sau đây hiển thị những phương thức hay sử dụng nhất của một đối tƣợng kết nối

Bảng 3 Những phương thức hay sử dụng của một đối tượng kết nối

ConnectionString Cung cấp thông tin nhƣ DataSource, tên cơ sở dữ liệu; đƣợc sử dụng để thiết lập kết nối với một cơ sở dữ liệu

Open() Mở một kết nối tới DataSource đƣợc khai báo tại

ConnectionString Close() Đƣợc sử dụng để đóng kết nối với DataSource

State Đƣợc sử dụng để kiểm tra trạng thái của một kết nối 0: Kết nối đang đóng, 1: Kết nối đang mở

SqlCommand Object: Là đối tƣợng thực thi các câu truy vấn SQL, Store Procedure, hoặc đƣợc sử dụng để tham chiếu đến một đối tƣợng SqlDataAdapter

SqlDataReader Object: Đối tƣợng DataReader cho phép lấy kết quả của một câu lệnh Select từ một đối tƣợng command

DataSet Object: Chứa nhiều đối tƣợng DataTable, bên trong DataTable có nhiều column và row, giống các bảng cơ sở dữ liệu (Database Table) thông thường DataSet giúp quản lý dữ liệu trong bộ nhớ và hỗ trợ các thao tác không cần kết nối trên dữ liệu DataSet là đối tƣợng đƣợc dùng bởi tất cả DataProvider

SqlDataAdapter: DataAdapter giúp quản lý dữ liệu trong chế độ ngắt kết nối (Disconnect) khi dữ liệu chúng ta làm việc là read-only, khi chúng ta ít khi thay đổi dữ liệu nguồn, khi cần lưu trữ tạm dữ liệu trong bộ nhớ để hạn chế truy xuất đến cơ sở dữ liệu DataAdapter sẽ đẩy dữ liệu vào DataSet khi đọc dữ liệu và thực hiện thay đổi tất cả dữ liệu vào Database khi có kết nối Ngoài ra DataAdapter chứa đối tƣợng command cho những thao tác Select, Insert, Update và Delete

Giới thiệu mô hình 3 lớp

Mô hình 3 lớp (kiến trúc 3 lớp) - 3 layers: Là mô hình chia ứng dụng thành 3 phần riêng biệt, mỗi phần có những chức năng khác nhau

Chia ứng dụng ra 3 phần giúp mã nguồn ứng dụng đƣợc rõ ràng hơn, việc chỉnh sửa hay nâng cấp ứng dụng sẽ đơn giản hơn

Khác với mô hình 3 tầng - 3 tiers, mô hình 3 layers là mô hình logic, còn 3 tiers là mô hình vật lý sử dụng cho hệ thống nhiều máy tính liên quan đến các thiết bị mạng, nhƣng về cơ bản 2 mô hình cũng có nhiều điểm giống nhau

Mô hình 3 lớp là một Design Pattern - mẫu thiết kế có sẵn, dùng giải quyết

Lưu ý rằng nếu áp dụng mô hình 3 lớp không đúng cách có thể làm cho một project trở nên phức tạp, rối rắm

 Kiến trúc mô hình 3 lớp (3 layers)

Hình 1.6 Kiến trúc mô hình 3 lớp (3 layers) Ứng dụng chia làm 3 lớp, mỗi lớp có chức năng khác nhau:

Là giao diện của một ứng dụng Windows Form Chức năng chính của lớp là trình bày dữ liệu và nhập liệu Lớp giao diện là phần User có thể nhìn thấy

 Business Logic Layer (BLL) (chung vào lớp GUI)

Lớp khai báo các phương thức xử lý - Business Logic Layer Chức năng của lớp này là kiểm tra các yêu cầu nghiệp vụ trước khi cập nhật dữ liệu, quản lý các transaction, v.v

Lớp xử lý dữ liệu - Data Access Layer Chức năng của DAL là kết nối cơ sở dữ liệu, tìm kiếm, thêm, xóa, sửa, v.v trên cơ sở dữ liệu Lớp DAL có thể sử dụng ADO.NET, Entity Framework để xử lý

 Data Transfer Object (DTO) Đối tƣợng trao đổi dữ liệu - Data Transfer Object đóng vai trò là bảng cơ sở dữ liệu của ứng dụng Windows Form

Có nhiều cách tổ chức project theo mô hình 3 lớp, lập trình viên có thể tùy theo thói quen, tùy theo yêu cầu mở rộng hệ thống, v.v mà có thể tổ chức một project hợp lý Sau đây là một project tổ chức theo mô hình 3 lớp

Hình 1.7 Cấu trúc của một project

Folder DAO hay DAL là lớp xử lý dữ liệu

Folder DTO là đối tƣợng trao đổi dữ liệu, chứa các bảng cơ sở dữ liệu của ứng dụng

Folder Forms và folder UserControls đóng vai trò là lớp GUI của ứng dụng Lớp BLL (lớp khai báo các phương thức xử lý) nằm chung trong lớp GUI.

Giới thiệu Bunifu Framework và Metro Framework

Bunifu Framework và Metro Framework là 2 framework giúp ứng dụng Windows Form có giao diện đẹp và hiện đại

Metro Framework mang lại giao diện giống Windows 8 cho các ứng dụng Windows Form

 Hỗ trợ hệ điều hành

Windows XP SP1/SP2/SP3

 Trang web truy cập https://www.nuget.org/packages/MetroModernUI/

Vào Visual Studio mở Package Manager Console theo đường dẫn:

Tools/Nuget Package Manager/Package Manager Console

Sau đó gõ lệnh sau vào Package Manager Console:

Install-Package MetroModernUI -Version 1.4.0 và nhấn Enter

Hình 1.8 Cửa sổ Package Manager Console

Mang lại giao diện cong mềm mại cho ứng dụng

 Nền tảng đƣợc hỗ trợ

Visual Studio Windows Form C#.NET

 Trang web truy cập https://bunifuframework.com/

Trong mục Solution của Visual Studio, kích chuột phải vào References chọn Add References, mở hộp thoại References Manager, chọn Browse, sau đó Add tất cả thƣ viện của Bunifu Framework có đuôi file là dll vào

Hình 1.9 Hộp thoại Reference Manager

Hình 1.10 Danh sách thƣ viện của Bunifu Framework

Hình 1.11 Kết quả add references

KHẢO SÁT HIỆN TRẠNG VÀ XÁC LẬP DỰ ÁN

Khảo sát hiện trạng

2.1.1 Quy trình bán hàng của hệ thống cũ

Bước 1: Tại quầy thu ngân nhân viên thu ngân giúp khách hàng đặt phòng hát và nhân viên thu ngân đặt món mà khách yêu cầu hoặc nhân viên phục vụ mang vào phòng hát những món/đồ uống quán muốn có sẵn ở các phòng hát để khác hàng tiện sử dụng Nhân viên thu ngân bắt đầu tính thời gian bắt đầu sử dụng dịch vụ

Bước 2: Khách hàng sử dụng xong dịch vụ phòng karaoke và gọi nhân viên phục vụ để thanh toán Nhân viên phục vụ báo cho nhân viên thu ngân để nhân viên thu ngân kiểm tra thời gian kết thúc dịch vụ từ đó biết đƣợc khách hàng đã dùng phòng hát hết bao nhiêu thời gian; nhân viên phục vụ kiểm tra khách hàng đã dùng hết bao nhiêu món, sau đó trừ ra đƣợc số lƣợng mà khách hàng sử dụng trên thực tế và báo lại nhân viên thu ngân Nhân viên phục vụ báo số lƣợng món khách hàng đã sử dụng và thời gian sử dụng dịch vụ cho nhân viên thu ngân để nhân viên thu ngân tính tiền dịch vụ

Bước 3: Thu ngân tính tiền dịch vụ bao gồm tiền món và tiền hát Tiền hát đƣợc tính dựa trên thời gian hát và loại phòng hát đã sử dụng Tiền món đƣợc tính theo đơn giá món, món đƣợc bán lẻ, không tính giá sỉ

Bước 4: Thu ngân in hóa đơn và giao hóa đơn cho khách hàng

Bước 5: Khách hàng kiểm tra hóa đơn, nếu không có sai sót thì trả tiền sử dụng dịch vụ và ra về

 Các trường hợp phát sinh

Th1: Khách hàng gọi thêm món

Th2: Khách hàng chuyển phòng

 Cơ cấu tổ chức quán karaoke

STT Tên dịch vụ Đơn giá Số lƣợng Thành tiền

Xác lập dự án

2.2.1 Hạn chế của hệ thống cũ

Các thông tin kinh doanh được lưu trữ trên giấy, sổ Lưu trữ không tập trung một chỗ (nhiều loại sổ, nhiều loại giấy tờ) dễ gây mất mát dữ liệu

Cần nhiều nhân lực để vận hành hệ thống

2.2.2 Yêu cầu chi tiết của hệ thống mới

 Hệ thống phần mềm bao gồm những chức năng

Quản lý bán hàng: Gọi món, chuyển bàn, thanh toán, in hóa đơn

Quản lý thống kê hóa đơn: Thống kê hóa đơn đã thanh toán, lập báo cáo

Quản lý món: Thêm, xóa, sửa, xem, tìm kiếm món

Quản lý danh mục món: Thêm, xóa, sửa, xem danh mục món

Quản lý phòng hát: Thêm, xóa, sửa, xem phòng hát

Quản lý tài khoản: Thêm, xóa, sửa, xem tài khoản, đặt lại mật khẩu mặc định, đổi mật khẩu

2.2.3 Những yêu cầu chung về chức năng của hệ thống mới

Nhân viên chỉ có quyền truy cập vào chức năng quản lý bán hàng của hệ phần mềm

Quản lý có quyền truy cập vào tất cả chức năng của hệ thống bao gồm: Quản lý bán hàng, thống kê hóa đơn, quản lý món, quản lý danh mục món, quản lý phòng hát, quản lý tài khoản

Các thông tin kinh doanh được lưu trữ trên một máy tính duy nhất và độc lập Dữ liệu đƣợc số hóa và có thể xuất ra bản giấy khi cần thiết

Hệ thống mới cần ít nhân lực hơn hệ thống cũ.

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Phân tích và thiết kế chức năng hệ thống

3.1.1 Biểu đồ phân cấp chức năng FDD của hệ thống

Hệ thống phần mềm quản lý quán karaoke

4 Quản lý danh mục món

6.5 Đặt lại mật khẩu mặc định

Hình 3.1 Biểu đồ phân cấp chức năng FDD phần mềm quản lý quán karaoke

3.1.2 Biểu đồ luồng dữ liệu DFD mức ngữ cảnh

Hệ thống phần mềm quản lý quán Karaoke

Hình 3.2 Biểu đồ DFD mức ngữ cảnh

3.1.3 Biểu đồ luồng dữ liệu DFD mức đỉnh

4 Quản lý danh mục món

Chi tiết hóa đơn Danh mục món

Yêu cầu tùy chỉnh phòng hát

Yêu cầu tùy chỉnh tài khoản

Yêu cầu xem thống kế hóa đơn Danh sách hóa đơn đã thanh toán

Yêu cầu tùy chỉnh món

Yêu cầu tùy chỉnh danh mục món Thông tin trả về

Hình 3.3 Biểu đồ DFD mức đỉnh

3.1.4 Biểu đồ luồng dữ liệu DFD mức dưới đỉnh

 DFD diễn tả chức năng 1 - Quản lý bán hàng

Danh sách món Danh sách món

Thực hiện chuyển phòng Xác nhận chuyển phòng

Thực hiện thanh toán Thực hiện thanh toán

Xác nhận thanh toán Xác nhận thanh toán

1.1 Đặt phòng Xác nhận đặt phòng Xác nhận đặt phòng

Thực hiện đặt phòng Thực hiện đặt phòng

Trả về hóa đơn Trả về hóa đơn

Thực hiện in hóa đơn

Thực hiện in hóa đơn

Hình 3.4 DFD diễn tả chức năng quản lý bán hàng

 DFD diễn tả chức năng 2 – Thống kê hóa đơn

Xem thống kê Danh sách hóa đơn

Yêu cầu xem thống kê

Yêu cầu tạo báo cáo Báo cáo

Hình 3.5 DFD diễn tả chức năng thống kê hóa đơn

 DFD diễn tả chức năng 3 - Quản lý món

Thông tin trả về Yêu cầu

Yêu cầu Thông tin trả về

Thông tin trả về Yêu cầu

Danh sách món tương ứng

Yêu cầu Danh sách món

Hình 3.6 DFD diễn tả chức năng Quản lý món

 DFD diễn tả chức năng 4 - Quản lý danh mục món

Thông tin trả về Yêu cầu

Yêu cầu Thông tin trả về Thông tin trả về

Yêu cầu Danh sách danh mục món

Hình 3.7 DFD diễn tả chức năng Quản lý danh mục món

 DFD diễn tả chức năng 5 - Quản lý phòng hát

Thông tin trả về Yêu cầu

Yêu cầu Thông tin trả về Thông tin trả về

Yêu cầu Danh sách phòng Yêu cầu

Hình 3.8 DFD diễn tả chức năng quản lý phòng hát

 DFD diễn tả chức năng 6 - Quản lý tài khoản

Thông tin trả về Yêu cầu

Yêu cầu Thông tin trả về Thông tin trả về

Yêu cầu Danh sách tài khoản

6.5 Đặt lại mật khẩu mặc định Yêu cầu

6.6 Đổi mật khẩu Yêu cầu đổi

Xác nhận đổi mật khẩu

Hình 3.9 DFD diễn tả chức năng Quản lý tài khoản

Phân tích và thiết kế dữ liệu hệ thống

3.2.1 Biểu đồ thực thể - mối quan hệ (ER) a) Biểu đồ ER

Hình 3.10 Biểu đồ ER b) Đặc tả các thực thể

TaiKhoan(TenDangNhap, TenHienThi, MatKhau, MaLoaiTaiKhoan)

HoaDon(MaHoaDon, ThoiGianVao, TrangThai, MaPhongHat, TongTien)

ChiTietHoaDon(MaChiTietHoaDon, MaHoaDon, MaMon, SoLuongMon)

PhongHat(MaPhongHat, TenPhongHat, TrangThai, MaLoaiPhong, GiaPhong)

Mon(MaMon, TenMon, MaDanhMucMon, Gia)

3.2.2 Chuyển về mô hình R và chuẩn hóa R a) Mô hình R

Hình 3.11 Mô hình R b) Chuẩn hóa R

TaiKhoan(TenDangNhap, TenHienThi, MatKhau, MaLoaiTaiKhoan)

HoaDon(MaHoaDon, ThoiGianVao, TrangThai, MaPhongHat, TongTien)

ChiTietHoaDon(MaChiTietHoaDon, MaHoaDon, MaMon, SoLuongMon)

PhongHat(MaPhongHat, TenPhongHat, TrangThai, MaLoaiPhong, GiaPhong)

Mon(MaMon, TenMon, MaDanhMucMon, Gia)

3.2.3 Thiết kế các bảng dữ liệu

Bảng 4 Bảng chi tiết hóa đơn (ChiTietHoaDon)

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

MaChiTietHoaDon int PK Mã chi tiết hoán đơn

MaHoaDon int FK Mã hóa đơn

MaMon int FK Mã món

SoLuongMon int not null Số lƣợng món

Bảng 5 Bảng danh mục món (DanhMucMon)

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

MaDanhMucMon int PK Mã danh mục món

TenDanhMucMon nvarchar(100) not null Tên danh mục món

Bảng 6 Bảng hóa đơn (HoaDon)

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

MaHoaDon int PK Mã hóa đơn

ThoiGianVao date not null Thời gian vào

TrangThai int not null Trạng thái

MaPhongHat int FK Mã phòng hát

TongTien int not null Tổng tiền

Bảng 7 Bảng loại phòng (LoaiPhong)

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

MaLoaiPhong int PK Mã loại phòng

TenLoaiPhong nvarchar(100) not null Tên loại phòng

Bảng 8 Bảng loại tài khoản (LoaiTaiKhoan)

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

MaLoaiTaiKhoan int PK Mã loại tài khoản

TenLoaiTaiKhoan nvarchar(100) not null Tên loại tài khoản

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

MaMon int PK Mã món

TenMon nvarchar(100) not null Tên món

MaDanhMucMon int FK Mã danh mục món

Gia float not null Giá

Bảng 10 Bảng phòng hát (PhongHat)

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

MaPhongHat int PK Mã phòng hát

TenPhongHat nvarchar(100) not null Tên phòng hát

TrangThai int FK Trạng thái

MaLoaiPhong float not null Mã loại phòng

GiaPhong int FK Giá phòng

Bảng 11 Bảng tài khoản (TaiKhoan)

Tên trường Kiểu dữ liệu Ràng buộc Mô tả

TenDangNhap nvarchar(100) PK Tên đăng nhập

TenHienThi nvarchar(100) null Tên hiển thị

MatKhau nvarchar(1000) not null Mật khẩu

MaLoaiTaiKhoan int FK Số lƣợng món

3.2.4 Mô hình quan hệ mức vật lý

Hình 3.12 Mô hình quan hệ mức vật lý

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

Hình 3.13 Chức năng đăng nhập

Mô tả chức năng đăng nhập:

Trước khi vào sử dụng các tính năng và nghiệp vụ của phần mềm cần thông qua bước đăng nhập Để đăng nhập phải nhập 2 thông tin: Tên đăng nhập và mật khẩu, sau đó nhấn vào nút “đăng nhập” để đăng nhập vào phần mềm

Tài khoản đăng nhập có 2 loại: Tài khoản quản lý (truy cập đƣợc tất cả các tính năng nghiệp vụ) và tài khoản nhân viên (chỉ truy cập đƣợc nghiệp vụ bán hàng)

Bảng 12 Chức năng đăng nhập

Mô tả Màn hình đăng nhập hệ thống phần mềm quản lý quán karaoke

Người dùng kích đúp vào biểu tượng phần mềm trên màn hình Desktop

Mục Kiểu control Kiểu dữ liệu Mô tả

TextBox String Nhập vào tên đăng nhập

Mật khẩu Label Nhãn “Mật khẩu”

Mật khẩu Label String Nhập vào mật khẩu Đăng nhập Button Nhấn vào nút “đăng nhập” để đăng nhập

Mô tả Thành công Không thành công Đăng nhập Người dùng nhấn vào nút

“đăng nhập” Đăng nhập vào hệ thống phần mềm quản lý để thực hiện các chức năng nhiệm vụ

Hệ thống báo lỗi: “Sai tên đăng nhập hoặc mật khẩu”

3.3.2 Chức năng quản lý bán hàng

Hình 3.14 Chức năng quản lý bán hàng

Mô tả chức năng quản lý bán hàng:

Thực đơn phòng hát chứa những món mà người dùng muốn có sẵn trong tất cả các phòng karaoke

Thực đơn này có thể là: Hạt dưa, hướng dương, bim bim, v.v Những đồ uống có sẵn trong phòng mà khách hàng có thể lấy để dùng

Sơ đồ phòng sẽ hiển thị trạng thái các phòng đã có khách hay chƣa có khách Phòng đã có khách sẽ hiển thị “có người”, phòng chưa có khách sẽ hiển thị “trống” Ngoài ra, sơ đồ phòng sẽ hiển thị phòng thường hay phòng vip, giá của 2 loại phòng sẽ khác nhau

Nhấp chuột vào nút “thanh toán” để xác nhận thanh toán và in hóa đơn

 Đổi phòng cho khách hàng

Người dùng nhấp chuột vào phòng cần chuyển, sau đó chọn phòng sẽ đổi cho khách hàng và nhấn vào nút “chuyển phòng”, hệ thống sẽ thực hiện nghiệp vụ chuyển phòng cho khách hàng, hệ thống sẽ chuyển toàn bộ thực đơn và thời gian bắt đầu sử dụng từ phòng cũ sang phòng mới

Bảng 13 Chức năng quản lý bán hàng

Màn hình Quản lý bán hàng

Mô tả Các chức năng nghiệp vụ bán hàng, bao gồm: Thực đơn phòng hát, sơ đồ phòng hát, thu tiền khách hàng, đổi phòng hát

Cách truy cập Sau khi đăng nhập người dùng kích vào nút “bán hàng” để vào chức năng quản lý bán hàng Nội dung màn hình

Mục Kiểu control Kiểu dữ liệu Mô tả

Thêm món Button Nhấn vào nút “thêm món” để đặt món

Số lƣợng món NumericUpDo wn

Sơ đồ phòng Button Sơ đồ phòng hiển thị trạng thái phòng Danh sách món ListView String, int, float Danh sách món đã đặt

Chuyển phòng Button Nút “chuyển phòng”

Combobox String Danh sách phòng

Thanh toán Button Nút “thanh toán”

Tổng tiền Textbox Float Tổng tiền cần thanh toán

Tên hành động Mô tả Thành công Không thành công

Thêm món Người dùng nhấn vào nút

Món đƣợc thêm sẽ hiển thị trong danh sách món

Món đƣợc thêm sẽ không hiển thị trong danh sách món

Chuyển phòng Người dùng nhấn vào nút

Thông tin về hóa đơn chƣa đƣợc thanh toán sẽ chuyển từ phòng cũ sang phòng mới

Thông tin về hóa đơn chƣa đƣợc thanh toán sẽ không chuyển từ phòng cũ sang phòng mới

Thanh toán Người dùng nhấn vào nút

Hệ thống xuất thông báo: “Bạn xác nhận thanh toán hóa đơn?”

Hệ thống không xuất thông báo: “Bạn xác nhận thanh toán hóa đơn?”

3.3.3 Chức năng thống kê hóa đơn

Hình 3.15 Chức năng quản lý thống kê

Mô tả chức năng quản lý thống kê:

Thống kê tất cả những hóa đơn của khách hàng từ trước tới nay Mặc định sẽ hiển thị hóa đơn của tháng hiện tại, người dùng có thể tùy chỉnh để xem hóa đơn của những tháng khác, hoặc hóa đơn trong ngày Nghiệp vụ thống kê hóa đơn chỉ thống kê những hóa đơn đã thanh toán

Bảng 14 Chức năng quản lý thống kê

Màn hình Quản lý thống kê hóa đơn

Mô tả Danh sách hóa đơn đã thanh toán

Cách truy cập Sau khi đăng nhập người dùng kích vào nút “quản lý” sau đó kích vào nút “thống kê hóa đơn” để vào chức năng quản lý thống kê hóa đơn

Ngày kết thúc DateTimePicker Datetime Ngày kết thúc thống kê

Thống kê Button Nút “thống kê”

Danh sách hóa đơn đã thanh toán

Trang đầu Button Nút “trang đầu”

Button Nút “trang trước đó”

Trang kế tiếp Button Nút “trang kế tiếp”

Trang cuối Button Nút “trang cuối”

Số trang TextBox Hiển thị số trang

Mô tả Thành công Không thành công

Thống kê Người dùng nhấn vào nút

Hiển thị danh sách hóa đơn đã thanh toán vào “danh sách hóa đơn”

Danh sách hóa đơn sẽ không đƣợc hiển thị vào

Trang đầu Người dùng nhấn vào nút

Không hiển thị danh sách

Người dùng nhấn vào nút

Không hiển thị danh sách

Trang sau đó Người dùng nhấn vào nút

Không hiển thị danh sách

Trang cuối Người dùng nhấn vào nút

Không hiển thị danh sách

3.3.4 Chức năng quản lý món

Hình 3.16 Chức năng quản lý món

Mô tả chức năng quản lý món:

Bên trên màn hình là danh sách món, bao gồm: Mã món, tên món, mã danh mục món, tên danh mục món, giá

Bên dưới màn hình là thông tin chính cần quản lý, bao gồm: Mã món, tên món, danh mục món, giá; các thông tin cần quản lý đƣợc binding với danh sách món

 Thêm món Để thêm món, người dùng thêm thông tin vào bên dưới màn hình Sau đó nhấn vào nút “thêm món” Nếu món đƣợc thêm sẽ hiển thị thông báo: “Đã thêm món”, nếu món chƣa đƣợc thêm sẽ hiển thị thông báo: “Xảy ra lỗi khi thêm món” Để xóa món, người dùng chọn món cần xóa trong danh sách bên trên màn hình Sau đó nhấn vào nút “xóa món” Nếu món đƣợc xóa hiển thị thông báo: “Đã xóa món”, nếu món chƣa đƣợc xóa sẽ hiển thị thông báo: “Xảy ra lỗi khi xóa món”

Mỗi lần xóa đƣợc một món, không xóa đƣợc cùng lúc nhiều món

 Sửa món Để sửa món, người dùng sửa thông tin vào bên phải màn hình Sau đó nhấn vào nút “sửa món” Nếu món đƣợc sửa sẽ hiển thị thông báo: “Đã sửa món”, nếu món chƣa đƣợc sửa sẽ hiển thị thông báo: “Xảy ra lỗi khi sửa món”

Mỗi lần sửa đƣợc một món, không sửa đƣợc cùng lúc nhiều món

 Xem món Để xem món, người dùng kích chuột vào nút “xem món” Danh sách món sẽ tải lại lên DataGridView

 Tìm món Để tìm món, người dùng nhập từ khóa cần tìm vào ô tìm kiếm Sau đó nhấn vào nút “tìm món” Hệ thống sẽ tải danh sách món tương ứng với từ khóa tìm kiếm vào DataGridView

Bảng 15 Chức năng quản lý món

Màn hình Quản lý món

Mô tả Giúp người dùng quản lý bảng dữ liệu món

Sau khi đăng nhập người dùng kích vào nút “quản lý” sau đó kích vào nút “món” để vào chức năng quản lý món

Mục Kiểu control Kiểu dữ liệu Mô tả

Thêm món Button Nút “thêm món”

Xóa món Button Nút “xóa món”

Sửa món Button Nút “sửa món”

Xem món Button Nút “xem món”

Tìm món Button Nút “tìm món”

Tìm món Textbox String Nhập từ khóa cần tìm vào ô tìm món

DataGridView Int, string, float Danh sách món trong bảng dữ liệu “món”

Mã món Label Nhãn “mã món”

Mã món TextBox Int Ô chứa mã món

Tên món Label Nhãn “tên món”

Tên món TextBox String Ô chứa tên món

Label Nhãn “danh mục món”

Combobox String Danh sách danh mục món

Giá NumericUpDown Float Đơn giá một món

Mô tả Thành công Không thành công

Thêm món Người dùng nhấn vào nút “thêm món”

Hệ thống thông báo: “Đã thêm món”

Hệ thống thông báo: “Đã xảy ra lỗi khi thêm món”

Xóa món Người dùng nhấn vào nút “xóa món”

Hệ thống thông báo: “Đã xóa món”

Hệ thống thông báo: “Đã xảy ra lỗi khi xóa món”

Sửa món Người dùng nhấn Hệ thống thông Hệ thống thông báo: “Đã

Xem món Người dùng nhấn vào nút “xem món”

Hệ thống tải danh sách món lên DataGridView

Hệ thống không tải danh sách món lên

Tìm món Người dùng nhấn vào nút “tìm món”

Hệ thống tải lại danh sách món tương ứng với từ khóa

Hệ thống không tải lại danh sách món tương ứng với từ khóa

3.3.5 Chức năng quản lý danh mục món

Hình 3.17 Chức năng quản lý danh mục món

Mô tả chức năng quản lý danh mục món:

Bên phải màn hình là danh sách danh mục món, bao gồm: Mã danh mục món, tên danh mục món

Bên trái màn hình là thông tin chính cần quản lý, bao gồm: Mã danh mục và tên danh mục; các thông tin chính cần quản lý đƣợc binding với danh sách danh mục món

 Thêm danh mục món Để thêm danh mục món, người dùng thêm thông tin vào bên trái màn hình Sau đó nhấn vào nút “thêm danh mục món” Nếu danh mục món đƣợc thêm sẽ hiển thị thông báo: “Đã thêm danh mục món”, danh mục món chƣa đƣợc thêm sẽ hiển thị thông báo: “Xảy ra lỗi khi thêm danh mục món”

Mỗi lần thêm đƣợc một danh mục món, không thêm cùng lúc nhiều danh mục món

 Xóa danh mục món Để xóa danh mục món, người dùng chọn vào danh mục món cần xóa trong danh sách bên phải màn hình Sau đó nhấn vào nút “xóa danh mục món” Nếu danh mục món đƣợc xóa sẽ hiển thị thông báo: “Đã xóa danh mục món”, nếu danh mục món chƣa đƣợc xóa sẽ hiển thị thông báo: “Xảy ra lỗi khi xóa danh mục món”

Mỗi lần xóa một danh mục món, không xóa cùng lúc nhiều danh mục món

 Sửa danh mục món Để sửa danh mục món, người dùng sửa thông tin vào bên phải màn hình Sau đó nhấn vào nút “sửa danh mục món” Nếu danh mục món đƣợc sửa sẽ hiển thị thông báo: “Đã sửa danh mục món”, nếu danh mục món chƣa đƣợc sửa sẽ hiển thị thông báo: “Xảy ra lỗi khi sửa danh mục món”

Mỗi lần sửa đƣợc một danh mục món, không sửa đƣợc cùng lúc nhiều danh mục món

 Xem danh mục món Để xem danh mục món, người dùng kích chuột vào nút “xem danh mục món” Danh sách danh mục món sẽ tải lại lên DataGridView

Bảng 16 Chức năng quản lý danh mục món

Màn hình Quản lý danh mục món

Mô tả Giúp người dùng quản lý bảng dữ liệu danh mục món

Sau khi đăng nhập người dùng kích vào nút “quản lý” sau đó kích vào nút “danh mục món” để vào chức năng quản lý danh mục món

Mục Kiểu control Kiểu dữ liệu Mô tả

Button Nút “thêm danh mục món”

Button Nút “xóa danh mục món”

Button Nút “sửa danh mục món”

Button Nút “xem danh mục món”

Danh sách danh mục món

DataGridView String Danh sách danh mục món trong bảng dữ liệu “danh mục món”

Label Nhãn “mã danh mục món”

TextBox Int Ô chứa mã danh mục món

Label Nhãn “tên danh mục món”

TextBox String Ô chứa tên danh mục món

Mô tả Thành công Không thành công

Người dùng nhấn vào nút “thêm danh mục món”

Hệ thống thông báo: “Đã thêm danh mục món”

Hệ thống thông báo: “Đã xảy ra lỗi khi thêm danh mục món”

Người dùng nhấn vào nút “xóa danh mục món”

Hệ thống thông báo: “Đã xóa danh mục món”

Hệ thống thông báo: “Đã xảy ra lỗi khi xóa danh mục món”

Người dùng nhấn vào nút “sửa danh mục món”

Hệ thống thông báo: “Đã sửa danh mục món”

Hệ thống thông báo: “Đã xảy ra lỗi khi sửa danh mục món”

Người dùng nhấn vào nút “xem danh mục món”

Hệ thống tải lại danh sách danh mục món lên DataGridView

Hệ thống không tải lại danh sách danh mục món lên DataGridView

3.3.6 Chức năng quản lý phòng

Hình 3.18 Chức năng quản lý phòng

Mô tả chức năng quản lý phòng:

Bên trên màn hình là danh sách phòng hát, bao gồm: Mã phòng hát, tên

Bên dưới màn hình là thông tin chính cần quản lý, bao gồm: Mã phòng, tên phòng, trạng thái, loại phòng, giá; các thông tin chính cần quản lý đƣợc binding với danh sách phòng hát

CHƯƠNG TRÌNH DEMO

Cài đặt hệ thống

Hệ thống phần mềm quản lý quán Karaoke đƣợc viết bằng ngôn ngữ C#, IDE là Visual studio 2017 Community; xây dựng giao diện bằng Windows Form, Metro Framework và Bunifu Framework

Sử dụng hệ quản trị cơ sở dữ liệu SQL Server 2014 Express

Câu lệnh kết nối cơ sở dữ liệu thuần Sql.

Chức năng chính của hệ thống

Quản lý bán hàng: Gọi món, chuyển bàn, thanh toán, in hóa đơn

Thống kê hóa đơn: Thống kê hóa đơn đã thanh toán, lập báo cáo

Quản lý món: Thêm, xóa, sửa, xem, tìm kiếm món

Quản lý danh mục món: Thêm, xóa, sửa, xem danh mục món

Quản lý phòng hát: Thêm, xóa, sửa, xem phòng hát

Quản lý tài khoản: Thêm, xóa, sửa, xem tài khoản, đặt lại mật khẩu, đổi mật khẩu.

Một số giao diện của hệ thống

Hình 4.2 Quản lý bán hàng

Hình 4.3 Thống kê hóa đơn

4.3.5 Quản lý danh mục món

Hình 4.6 Quản lý phòng hát

Hình 4.7 Quản lý tài khoản

Ngày đăng: 27/02/2024, 14:40

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w