MỤC LỤC TỔNG QUAN VỀ ĐỀ TÀI3 1Lý do chọn đề tài3 2Đối tượng nghiên cứu3 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT4 1.1 Công cụ và ngôn ngữ lựa chọn4 1.1.1C# là ngôn ngữ đơn giản4 1.1.2C# là ngôn ngữ hiện đại4 1.1.3C# là ngôn ngữ hướng đối tượng5 1.1.4C# là ngôn ngữ mạnh mẽ và mền dẻo5 1.1.5C# là ngôn ngữ ít khóa5 1.1.6C# là ngôn ngữ hướng module6 1.1.7C# sẽ là một ngôn ngữ phổ biến6 1.2Nền tảng của ngôn ngữ C#6 1.2.1Kiểu dữ liệu6 1.2.2Biến và hằng9 1.3Công cụ: SQL server12 1.3.1Kiến trúc ADO.NET12 1.3.2Mô hình đối tượng ADO.NET13 1.3.3Mô hình đối tượng của Dataset13 CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG15 2.1Khảo sát hệ thống và bài toán đặt ra.15 2.2Phân tích yêu cầu15 2.3Phân tích và thiết kế hệ thống16 2.3.1Sơ đồ phân cấp chức năng:16 2.3.2Lượt đồ DFD mức 0:17 2.3.3Lượt đồ DFD mức 1:18 2.3.3.1Quản lý người dùng:18 2.3.3.2Quản lý nhân viên:18 2.3.3.3Quản lý lương:19 2.3.3.4Quản lý bàn19 2.3.3.5Quản lý món:20 2.3.3.6Quản lý thanh toán:20 2.3.3.8Báo cáo thống kê:21 2.3.3.9Quản lý giảm giá:22 2.4Phân tích thiết kế về dữ liệu22 2.4.1Xác định các thực thể22 2.4.2Mô hình quan hệ thực thể (E-R)24 2.4.3Lược đồ quan hệ24 2.4.4Mô hình quan hệ dữ liệu28 CHƯƠNG 3: DEMO SẢN PHẨM29 3.1Form Đăng nhập29 3.2Form Hệ thống30 3.2.1Form Tạo tài khoản30 3.2.2Form Đổi mật khẩu31 3.3Form Chức năng31 3.3.1Form Quản lý bàn.32 3.3.2Form Nhân viên34 3.3.3Form Thêm món36 3.3.4Form Báo cáo thống kê37 CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN38 4.1Kết luận38 4.1.1Thuận lợi và khó khăn trong lúc thực hiện đồ án:38 4.2Kết quả đạt được:38 4.3Hướng phát triển38 TÀI LIỆU THAM KHẢO39
Trang 1MỤC LỤC
TỔNG QUAN VỀ ĐỀ TÀI 3
1 Lý do chọn đề tài 3
2 Đối tượng nghiên cứu 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4
1.1 Công cụ và ngôn ngữ lựa chọn 4
1.1.1 C# là ngôn ngữ đơn giản 4
1.1.2 C# là ngôn ngữ hiện đại 4
1.1.3 C# là ngôn ngữ hướng đối tượng 5
1.1.4 C# là ngôn ngữ mạnh mẽ và mền dẻo 5
1.1.5 C# là ngôn ngữ ít khóa 5
1.1.6 C# là ngôn ngữ hướng module 6
1.1.7 C# sẽ là một ngôn ngữ phổ biến 6
1.2 Nền tảng của ngôn ngữ C# 6
1.2.1 Kiểu dữ liệu 6
1.2.2 Biến và hằng 9
1.3 Công cụ: SQL server 12
1.3.1 Kiến trúc ADO.NET 12
1.3.2 Mô hình đối tượng ADO.NET 13
1.3.3 Mô hình đối tượng của Dataset 13
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 15
2.1 Khảo sát hệ thống và bài toán đặt ra 15
2.2 Phân tích yêu cầu 15
2.3 Phân tích và thiết kế hệ thống 16
2.3.1 Sơ đồ phân cấp chức năng: 16
2.3.2 Lượt đồ DFD mức 0: 17
2.3.3 Lượt đồ DFD mức 1: 18
2.3.3.1 Quản lý người dùng: 18
2.3.3.2 Quản lý nhân viên: 18
2.3.3.3 Quản lý lương: 19
2.3.3.4 Quản lý bàn 19
Trang 22.3.3.5 Quản lý món: 20
2.3.3.6 Quản lý thanh toán: 20
2.3.3.8 Báo cáo thống kê: 21
2.3.3.9 Quản lý giảm giá: 22
2.4 Phân tích thiết kế về dữ liệu 22
2.4.1 Xác định các thực thể 22
2.4.2 Mô hình quan hệ thực thể (E-R) 24
2.4.3 Lược đồ quan hệ 24
2.4.4 Mô hình quan hệ dữ liệu 28
CHƯƠNG 3: DEMO SẢN PHẨM 29
3.1 Form Đăng nhập 29
3.2 Form Hệ thống 30
3.2.1 Form Tạo tài khoản 30
3.2.2 Form Đổi mật khẩu 31
3.3 Form Chức năng 31
3.3.1 Form Quản lý bàn 32
3.3.2 Form Nhân viên 34
3.3.3 Form Thêm món 36
3.3.4 Form Báo cáo thống kê 37
CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 38
4.1 Kết luận 38
4.1.1 Thuận lợi và khó khăn trong lúc thực hiện đồ án: 38
4.2 Kết quả đạt được: 38
4.3 Hướng phát triển 38
TÀI LIỆU THAM KHẢO 39
Trang 3TỔNG QUAN VỀ ĐỀ TÀI
1 Lý do chọn đề tài
Ngày nay ngành công nghệ thông tin phát triển mạnh kéo theo đó là các dịch vụmạng ngày càng phát triển, mở rộng và hoàn thiện hơn, tuy vẫn tồn tại nhiều khuyếtđiểm song không ít tiện lợi từ công nghệ đem lại cho xã hội loài người sự nhanh chóng
và chính xác Ngày xưa mọi thứ đều quản lý bằng tay, ghi chép sổ hàng vì vậy khitìm kiếm một tài liệu nào đó rất là khó khăn Khi công nghệ thông tin phát triển người
ta đã dần dần nghĩ tới việc lưu trữ, xử lý và quản lý dữ liệu trên máy tính
Từ ý tưởng áp dụng công nghệ thông tin vào việc quản lý, bớt phần gánh nặng về
sổ hàng cũng như đầu óc con người, đồ án này hướng đến xây dựng một phần mềmquản lý quán Cà Phê Giúp chủ quán có thể dễ dàng hơn trong công việc quản lý củamình
Với lượng khách càng ngày càng tăng, để phục vụ khách được tốt hơn, chính xáchơn và nhanh chóng hơn thì chủ quán đang từng bước tin học hoá các khâu quản lí.Đặc biệt là trong công tác kế toán và quản lí hàng hoá,đồ uống.Bởi vì với công tác thủcông trước đó mà cửa hàng thực hiện đã bộc lộ nhiều hạn chế như sau:
Tra cứu thông tin về hàng hoá, các đại lí cung cấp hàng và khách hàng mấtnhiều thời gian và nhiều khi không chính xác
Lưu trữ thông tin về nhập xuất hàng hoá, về thu chi cần nhiều loại giấy tờ nêncồng kềnh và không đạt hiệu quả
Cập nhật các thông tin hằng ngày tốn nhiều thời gian và khó khăn trong việcthực hiện báo cáo thống kê, nhất là khi có sự việc đột xuất
Sau khi nghiên cứu một số tài liệu liên quan, em quyết định chọn đề tài: “Xây
dựng phần mềm quản lý quán Cà Phê”
Trong quá trình xây dựng chương trình không tránh khỏi sai sót kính mong cácthầy cô và các bạn đóng góp ý kiến xây dựng để chương trình có thể hoàn thiện hơn
2 Đối tượng nghiên cứu
Chương trình quản lý quán lý cà phê là chương trình hỗ trợ cho việc quản lý bánhàng, quản lý các hoạt động nghiệp vụ của quán café, giúp cho việc quản lý quánthuận tiện và hiệu quả hơn
Trang 4Chương trình được xậy dựng, thiết kế cơ sở dữ liệu trên Sql Server 2014, đượcthiết kê giao diện, viết chương trình trên Microsoft Visual Studio 2015 và ngôn ngữlập trình C#.
Trang 5CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Công cụ và ngôn ngữ lựa chọn
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo ra
từ nền tảng phát triển hơn Microsoft bắt đầu với công việc trong C và C++ và thêmcào những đặc tính mới để làm cho ngôn ngữ này dễ sử dụng hơn Nhiều trong sốnhững đặc tính này khá giống với những đặc tính có trong Java Không dừng lại ở đó,Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này Những mục đích nàyđược tóm tắt như sau:
1.1.1 C# là ngôn ngữ đơn giản
Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++ Nếu chúng ta thân thiệnvới C và C++ hoặc Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểuthức, toán tử, và chức năng khác được lấy trực tiếp từ ngôn ngữ C và C++, nhưng nó
đã được cải tiến để làm cho ngôn ngữ đơn giản hơn Một vài trong các sự cải tiến làloại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi Ví dụ như, trong C++ có
ba toán tử làm việc với các thành viên là ::, , và -> Để biết khi nào dùng ba toán tửnày cũng phức tạp và dễ nhầm lẫn Trong C#, chúng được thay thế với một toán tử duynhất gọi là (dot) Đối với người mới học thì điều này và những việc cải tiến khác làmbớt nhầm lẫn và đơn giản hơn
1.1.2 C# là ngôn ngữ hiện đại
Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu dữ liệu
mở rộng, và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữhiện đại C# chứa tất cả những đặc tính trên Nếu là người mới học lập trình có thểchúng ta sẽ cảm thấy những đặc tính trên phức tạp và khó hiểu Tuy nhiên, cũng đừng
lo lắng chúng ta sẽ tìm hiểu những đặc tính qua các mục sau
1.1.3 C# là ngôn ngữ hướng đối tượng
Những đặc điểm chính của ngôn ngữ hướng đối tượng (Object-oriented language)
là sự đóng gói (encapsulation), sự kế thừa (inheritance), và đa hình(polymorphism).C# hỗ trợ tất cả những đặc tính trên Là một ngôn ngữ hướng đối tượng, C # hỗ trợ cáckhái niệm về đóng gói, thừa kế, và đa hình Tất cả các biến và phương pháp, bao gồm
Trang 6cả phương pháp chính, điểm vào của ứng dụng, được đóng gói trong định nghĩalớp Một lớp có thể kế thừa trực tiếp từ một lớp cha mẹ, nhưng nó có thể thực hiện bất
kỳ số lượng các giao diện Các phương thức ghi đè lên các phương pháp ảo trong mộtlớp cha mẹ cần ghi đè lên các từ khóa như là một cách để tránh định nghĩa lại tình
cờ Trong C #, cấu trúc giống như một lớp nhẹ, nó là một loại ngăn xếp giao có thểthực hiện các giao diện nhưng không hỗ trợ thừa kế
1.1.4 C# là ngôn ngữ mạnh mẽ và mền dẻo
Như đã đề cập trước, với ngôn ngữ C# chúng ta chỉ bị giới hạn ở chính bởi bảnthân hay là trí tưởng tượng của chúng ta Ngôn ngữ này không đặt những ràng buộclên những việc có thể làm C# được sử dụng cho nhiều các dự án khác nhau như là tạo
ra ứng dụng xử lư văn bản, ứng dụng đồ họa, bản tính, hay thậm chí những trình biêndịch cho các ngôn ngữ khác
vụ nào Bảng sau liệt kê các từ khóa của ngôn ngữ C#
abstract default Foreach object sizeof unsafe
as delegate goto operator stackalloc ushort
catch explicit internal public throw
Bảng 1.1.- Bảng các từ khóa của C#
Trang 71.1.6 C# là ngôn ngữ hướng module
Mã nguồn C# có thể được viết trong những phần được gọi là những lớp, nhữnglớp này chứa các phương thức thành viên của nó Những lớp và những phương thức cóthể được sử dụng lại trong ứng dụng hay các chương tŕnh khác Bằng cách truyền cácmẫu thông tin đến những lớp hay phương thức chúng ta có thể tạo ra những mã nguồndùng lại có hiệu quả
1.1.7 C# sẽ là một ngôn ngữ phổ biến
Mã nguồn C# có thể viết trong những phần gọi là những lớp, những lớp này chứacác phương thức thành viên của nó Những lớp và những phương thức có thể được sửdụng lại trong các ứng duụng hay các chương trình khác Bằng cách truyền mẫu thôngtin đến những lớp hay phương thức chúng ta có thể tạo ra những mã nguồn dùng lại cóhiệu quả
1.2 Nền tảng của ngôn ngữ C#
1.2.1 Kiểu dữ liệu
1.2.1.1Kiểu loại dữ liệu dựng sẵn
Kiểu C# Số byte Kiểu.NET Mô tả
Byte
Char
12
ByteChar
Số nguyên dương không dấu từ 0-255
Ký tự Unicodebool 1 Boolean Giá trị logic true/Fale
sbyte 1 Sbyte Số nguyên có dấu(từ-128 đến 127)
Short 2 Int16 Số nguyên có dấu giá trị từ =32768 đến
32768Ushort 2 Uint16 Số nguyên không dấu 0-65.535
int 4 Int32 Số nguyên có dấu -2.147.483.647 và
2.147.483.647Uint 4 Uint32 Số nguyên không dấu 0-4.294.967.295
Float 4 Single Kiểu dấu chấm động, giá trị xấp xỉ từ
3,4E-38 đến 3,4E+3,4E-38,với 7 chữ số nghĩa
Kiểu dấu chấm dộng có độ chính xác gấpđôi, giá trị xấp xỉ từ 1,7E-308 đến1,7E+308,với 15,16 chữ số có nghĩa
decimal 8 Decimal Có độ chính xác đến 28 con số và có giá trị
thập phân, được dung trong tính toán tàichính, kiểu này đòi hỏi phải có hậu tố “m”
Trang 8hay “M” theo sau giá trị.
Kiểu số nguyên có dấu có giá trị trong khoảng:
-9.223.370.036.854.775.808 đến 9.223.372.036.854.775.807ulong 8 Uint64 Số nguyên không dấu từ 0 đến
0xfffffffffffffff
Bảng 1.2 - Các kiểu dựng sẵn của C#
1.2.1.2Kiểu tham chiếu
Chỉ tới nơi chứa dữ liệu có thể NULL(NULL: không chỉ tới bất cứ đâu) Baogồm(lớp class), string, object, giao diện(interface), mảng(array), đại diện(delegate)
Bảng 1.3 kiểu giá trị và tham chiếu
1.2.1.4Stack và Heap
Ký tự Nghĩa
Trang 91.2.1.5Chuyển đổi các kiểu dữ liệu
Việc chuyển đổi giá trị ngầm định được thực hiện một cách tự động và đảm bảo làkhông mất thông tin Ví dụ, chúng ta có thể gán ngầm định một số kiểu short (2 byte)vào một số kiểu int (4 byte) một cách ngầm định Sau khi gán hoàn toàn không mất dữliệu vì bất cứ giátrị nào của short cũng thuộc về int:
short x = 10;
int y = x; // chuyển đổi ngầm định
Tuy nhiên, nếu chúng ta thực hiện chuyển đổi ngược lại, chắc chắn chúng ta sẽ bịmất thông tin Nếu giá trị của số nguyên đó lớn hơn 32.767 thì nó sẽ bị cắt khi chuyểnđổi Trình biên dịch sẽ không thực hiện việc chuyển đổi ngầm định từ số kiểu int sang
số kiểu short:
short x;
int y = 100;
x = y; // Không biên dịch, lỗi ….!
- Để không bị lỗi chúng ta phải dùng lệnh gán tường minh, đoạn mã trên đượcviết lại như sau:
short x;
int y = 500;
x = (short) y; // Ép kiểu tường minh, trình biên dịch không báo lỗi
1.2.2 Biến và hằng
Một biến là một vùng lưu trữ với một kiểu dư liệu Biến có thể được gán giá trị
kh thực hiện các lệnh trong chương trình Để tạo một biến chúng ta phải khai báo kiểu
Trang 10của biến và gán cho biến một tên duy nhất Biến có thể được khởi tạo giá trị ngay khikhai báo, hay nó cũng có thể được gán giá trị mới vào bất cứ lúc nào chương trình.
1.2.2.1Gán giá trị xác định cho biến
C# đòi hỏi các biến phải được khởi tạo trước khi sử dụng Việc sử dụng biếnkhi chưa được khởi tạo là không hợp lệ trong C# Tuy nhiên không nhất thiết lúc nào
ta cũng phải khởi tạo biến Nhưng để dùng được thì bắt buộc phải gán cho chúng mộtgiá trị trước khi có một lệnh nào đó tham chiếu đến biến đó Điều này được gọi lầ gángiá trị xác định cho biến va C# bắt buộc phải thực hiện điều này
1.2.2.2Hằng
Hằng cũng là một biến nhưng giá trị của hằng không thay đổi Biến là công cụrất mạnh, tuy nhiên khi làm việc với một giá trị được định nghĩa là không thay đổi, taphải đảm bảo giá trị của nó không được thay đổi trong suốt chương trình
Hằng được phân thành ba loại: giá trị hằng, biểu tượng hằng, kiểu liệu hằng
Trang 11- Ý nghĩa của vòng lặp while là: “Trong khi điều kiện đúng thì thực hiện
các công việc này”.
Cú pháp sử dụng vòng lặp while như sau:
while (Biểu thức)
<Câu lệnh thực hiện>
- Biểu thức của vòng lặp while là điều kiện để các lệnh được thực hiện, biểuthức này bắt buộc phải trả về một giá trị kiểu bool là true/false Nếu có nhiều câu lệnhcần được thực hiện trong vòng lặp while thì phải đặt các lệnh này trong khối lệnh
1.2.2.6Vòng lặp for
- Vòng lặp for bao gồm ba phần chính:
Khởi tạo biến đếm vòng lặp
Kiểm tra điều kiện biến đếm, nếu đúng thì sẽ thực hiện các lệnh bên trong vòngfor
Thay đổi bước lặp
Cú pháp sử dụng vòng lặp for như sau:
for ([ phần khởi tạo] ; [biểu thức điều kiện]; [bước lặp])
<Câu lệnh thực hiện>
Trang 121.2.2.7Câu lệnh lặp foreach
Vòng lặp foreach cho phép tạo vòng lặp thông qua một tập hợp hay một mảng.Đây là một câu lệnh lặp mới không có trong ngôn ngữ C/C++ Câu lệnh foreach có cúpháp chung như sau:
foreach ( <kiểu tập hợp> <tên truy cập thành phần > in < tên tập hợp>)
<Các câu lệnh thực hiện>
Do lặp dựa trên một mảng hay tập hợp nên toàn bộ vòng lặp sẽ duyệt qua tất cảcác thành phần của tập hợp theo thứ tự được sắp Khi duyệt đến phần tử cuối cùngtrong tập hợp thì chương trình sẽ thoát ra khỏi vòng lặp foreach
1.3 Công cụ: SQL server
Để có thể hiểu rõ được cách làm việc của ADO.NET, chúng ta cần phải nắm đượcmột số khái niệm cơ bản về cơ sở dữ liệu quan hệ và ngôn ngữ truy vấn dữ liệu, như:khái niệm về dòng, cột, bảng, quan hệ giữa các bảng, khóa chính, khóa ngoại và cáchtruy vấn dữ liệu trên các bảng bằng ngôn ngữ truy vấn SQL : SELECT, UPDATE,DELETE … hay cách viết các thủ tục (Store Procedure) …
1.3.1 Kiến trúc ADO.NET
DataSet là thành phần chính cho đặc trưng kết nối không liên tục của kiến trúcADO.NET DataSet được thiết kế để có thể thích ứng với bất kỳ nguồn dữ liệu nào.DataSet chứa một hay nhiều đối tượng DataTable mà nó được tạo từ tập các dòng vàcột dữ liệu, cùng với khoá chính, khóa ngoại, ràng buộc và các thông tin liên quan đếnđối tượng DataTable này Bản thân DataSet được dạng như một tập tin
XML
Thành phần chính thứ hai của ADO.NET chính là NET Provider Data, nó chứacác đối tượng phục vụ cho việc thao tác trên cơ sở dữ liệu được hiệu quả và nhanhchóng, nó bao gồm một tập các đối tượng Connection, Command, DataReader vàDataAdapter Đối tượng Connection cung cấp một kết nối đến cơ sở dữ liệu,Command cung cấp một thao tác đến cơ sở dữ liệu, DataReader cho phép chỉ đọc dữliệu và DataAdapter là cấu nối trung gian giữa DataSet và nguồn dữ liệu
1.3.2 Mô hình đối tượng ADO.NET
Có thể nói mô hình đối tượng của ADO.NET khá uyển chuyển, các đối tượngcủa nó được tạo ra dựa trên quan điểm đơn giản và dễ dùng Đối tượng quan trọng
Trang 13nhất trong mô hình ADO.NET chính là Dataset Dataset có thể được xem như là thểhiện của cả một cơ sở dữ liệu con, lưu trữ trên vùng nhớ cache của máy người dùng
mà không kết nối đến cơ sở dữ liệu
1.3.3 Mô hình đối tượng của Dataset
DataSet bao gồm một tập các đối tượng DataRelation cũng như tập các đốitượng DataTable Các đối tượng này đóng vai trò như các thuộc tính của DataSet
1.3.3.1Đối tượng DataTable và DataColumn
Ta có thể viết mã C# để tạo ra đối tượng DataTable hay nhận về từ kết quả củacâu truy vấn đến cơ sở dữ liệu DataTable có một số thuộc tính dùng chung ( public )như thuộc tính Columns, từ thuộc tính này ta có thể truy cập đến đối tượngDataColumnsCollection thông qua chỉ mục hay tên của cột để nhận về các đối tượngDataColumn thích hợp, mỗi DataColumn tương ứng với một cột trong một bảng dữliệu Ví dụ :
DataTable dt = new DataTable("tenBang");
DataColumn dc = dt.Columns["tenCot"];
1.3.3.2Đối tượng DataRelation
Ngoài tập các đối tượng DataTable được truy cập thông qua thuộc tính Tables,DataSet còn có một thuộc tính Relations Thuộc tính này dùng để truy cập đến đốitượng DataRelationCollection thông qua chỉ mục hay tên của quan hệ và sẽ trả về đốitượng DataRelation tương ứng Ví dụ :
DataSet ds = new DataSet("tenDataSet");
DataRelation dre = ds.Relations["tenQuanHe"];
1.3.3.3Các bản ghi ( Rows )
Tương tự như thuộc tính Columns của đối tượng DataTable, để truy cập đến cácdòng ta cũng có thuộc tính Rows ADO NET không đưa ra khái niệm RecordSet, thayvào đó để duyệt qua các dòng ( Row ), ta có thể truy cập các dòng thông qua thuộctính Rows bằng vòng lặp foreach
1.3.3.4Đối tượng SqlConnection và SqlCommand
Đối tượng SqlConnection đại diện cho một kết nối đến cơ sở dữ liệu, đối tượngnày có thể được dùng chung cho các đối tượng SqlCommand khác nhau Đối tượng
Trang 14SqlCommand cho phép thực hiện một câu lệnh truy vấn trực tiếp : như SELECT,UPDATE hay DELETE hay gọi một thủ tục (Store Procedure) từ cơ sở dữ liệu.
1.3.3.5Đối tượng DataAdapter
ADO.NET dùng DataAdapter như là chiếc cầu nối trung gian giữa DataSet vàDataSource ( nguồn dữ liệu ), nó lấy dữ liệu từ cơ sở dữ liệu sau đó dùng phương Fill()
để đẩy dữ liệu cho đối tượng DataSet Nhờ đối tượng DataAdapter này mà DataSet tồntại tách biệt, độc lập với cơ sở dữ liệu và một DataSet có thể là thể hiện
của một hay nhiều cơ sở dữ liệu
1.3.3.6Trình cung cấp dữ liệu (.NET Data Providers)
NET Framework hỗ trợ hai trình cung cấp dữ liệu là SQL Server NET DataProvider ( dành cho phiên bản SQL Server 7.0 của Microsoft trở lên ) và OLE
DB NET Data Provider ( dành cho các hệ quản trị cơ sở dữ liệu khác ) để truy cập vào
cơ sở dữ liệu
SQL Server NET Data Provider có các đặc điểm :
o Dùng nghi thức riêng để truy cập cơ sở dữ liệu
o Truy xuất dữ liệu sẽ nhanh hơn và hiệu quả hơn do không phảithông qua lớp OLE DB Provider hay ODBC
o Chỉ được dùng với hệ quản trị cơ sở dữ liệu SQL Server 7.0 trởlên
o Được Mircrosoft hỗ trợ khá hoàn chỉnh
OLE DB NET Data Provider có các đặc điểm :
o Phải thông qua 2 lớp vì thế sẽ chậm hơn
o Thực hiện được các dịch vụ “Connection Pool”
o Có thể truy cập vào mọi Datasource có hỗ trợ OLE DB Providerthích hợp
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Khảo sát hệ thống và bài toán đặt ra.
Phần mềm quản lý quán Cà Phê phải hỗ trợ việc quản lý các thông tin choquán… tự động hóa quy trình quản lý hàng hóa, chi phí nhân viên, tăng độ chính xác
Trang 15của các hóa đơn bán hang và cung cấp dịch vụ nhanh chóng đến cho khách hàng Nóđược phát triển với mục đích đáp ứng kịp thời mọi chức năng như quản lý nhân viên,quản lý hàng hóa,…nhằm làm tăng hiệu quả kinh doanh của quán.
Khi nhập hàng quản lý quán cà phê nhân được nguyên liệu nhập về tiến hành phânloại sản phẩm, kiểm tra số lượng để lưu vào trong kho
Khi có khác bước vào nhân viên phục vụ sẽ hỏi khách số lượng người đi cùng để
có thể sắp xếp chỗ ngồi một cách hợp lý nhất Sau khi đưa khách đến chỗ ngồi nhânviên phục vụ sẽ mang ra một số thứ miễn phí như nước lọc, trà đá và Menu cho kháchlựa chọn đồ uống… Khi đã ghi hết các yêu cầu của khách, nhân viên phục vụ sẽchuyển hết yêu cầu này cho nhân viên pha chế Đồ uống khi được pha chế xong thìnhân viên phục vụ mang ra cho khách Khách hàng khi ra về sẽ qua quầy thu ngân đểthanh toán và lấy hóa đơn
Sau mỗi ngày quản lý tổng hợp các sản phẩm đã bán trong ngày thông qua hóađơn và tổng hợp ghi chép lại
Tiền lương nhân viên sẽ được tính theo ca và thanh toán theo từng ngày
2.2 Phân tích yêu cầu
Yêu cầu của người dùng
Cần phải thiết kế và cài đặt một chương trình quản lý có các chức năng sau:
1 Quản lý nhân viên: thêm, sửa, xóa thông tin các nhân viên, tính tiền lương chonhân viên (chỉ có người quản lý mới có quyền này)
2 Quản lý bàn: thêm, sửa, xóa bàn, quản lý đồ uống khách đã gọi theo từng bàn
3 Quản lý kho: thêm, sửa, xóa thông tin hàng, theo dõi số lượng tồn kho
4 Quản lý hóa đơn bán hàng: thêm sửa thông tin của hóa đơn
Trang 162.3 Phân tích và thiết kế hệ thống
2.3.1 Sơ đồ phân cấp chức năng:
Quản lý quán cà phê
Quản lý bàn
Quản lý lương
Quản lý món
In hóa đơn
Báo cáo thống kê
Thống kê hóa đơn theo ngày
Thống kê món theo ngày
Cập nhật món
Thêm giảm giá
Sửa giảm giá
Xóa giảm giá
Quản lý đặt món
Thêm gọi món Hủy gọi món
Trang 172.3.2 Lượt đồ DFD mức 0:
4.0 Quản lý bàn 1.0
Quản lý người dùng
2.0 Quản lý nhân viên
5.0 Quản lý món
6.0 Quản lý thanh toán
8.0 Báo cáo thống kê
Nhân viên
Người quản trị
Người quản
trị
Người quản
trị
Thông tin tài khoản
Thông tin tài khoản
Nhân viên
Thông tin tài khoản
Tài khoản
Thông tin tài khoản
Thông tin nhân viên
Thông tin nhân viên
Nhân viên
3.0 Quản lý lương
Thông tin lương Thông tin tính lương Lương
Thông tin bàn
Thông tin bàn
Bàn Thông tin bàn
Thông tin hóa đơn Thông tin hóa đơn
Thông tin hóa đơn Thông tin hóa đơn
Người quản trị
Người quản trị
Thống kê hóa đơn Thống kê hàng
Báo cáo hóa đơn Báo cáo hàng
9.0 Quản lý giảm giá
Hóa đơn
Thông tin giảm giá
7.0 Quản lý gọi món
Gọi món
Thông tin món
Yêu cầu thành công Thông tin món Yêu cầu thành công
Trang 182.3.3 Lượt đồ DFD mức 1:
1.1 Đăng nhập
1.5 Đăng xuất
1.2 Tạo tài khoản
1.3 Đổi mật khẩu
1.4 Xóa tài khoản
Đổi mật khẩu thành công
Tài khoản Yêu cầu đổi tài khoản
Đổi mật khẩu thành công
Yêu cầu đăng xuất
Đăng xuất thành công
Nhân viên
Thông tin tài khoản Đăng nhập thành công
Người quản trị
Yêu cầu tạo tài khoản Tạo tài khoản thành công
Yêu cầu đăng xuất Đăng xuất thành công
Yêu cầu xóa tài khoản
Xóa thành công
2.1 Thêm nhân viên
2.2 Sửa nhân viên
2.3 Xóa nhân viên
Người quản
Thông tin nhân viên mới
Thêm nhân viên thành công
Sửa thông tin nhân viên Sửa thành công
Xóa nhân viên Xóa thành công
Trang 192.3.3.3 Quản lý lương:
3.1 Tính lương
Người quản
trị
3.2 Cập nhật lương
3.3 Xóa lương
Thông tin tính lương
Thông tin lương
Thông tin tính lương Thông tin lương
4.2 Xóa bàn