Đề tài nghiên cứu “Quản lý cửa hàng vật liệu xây dựng” để giải quyết vấn đề về việc quản lý vật liệu xây dựng cho cửa hàng, nhằm giảm thiểu thời gian cho việc quản lý bằng phương pháp viết tay cổ điển. Từ đó người quản lý có thể đưa ra các kế hoạch và quyết định đúng đắn, giảm chi phí và tăng khả năng cạnh tranh, nâng cao kết quả hoạt động sản xuất kinh doanh.
TỔNG QUAN
ĐẶT VẤN ĐỀ
Ngày nay, sự phát triển mạnh mẽ của công nghệ thông tin đã làm thay đổi nhu cầu cuộc sống và ứng dụng vào công việc của con người Tất cả các lĩnh vực kinh tế và xã hội đều được hiện đại hóa quản lý thông qua máy tính Công nghệ thông tin không chỉ tác động đến khoa học kỹ thuật mà còn ảnh hưởng sâu rộng đến kinh tế, giáo dục và xã hội Nhờ vào sự tiến bộ này, các hoạt động sản xuất, mua bán và quản lý hàng hóa trở nên phong phú và đa dạng hơn.
Hầu hết các cửa hàng vật liệu xây dựng hiện nay vẫn áp dụng phương pháp thủ công trong việc quản lý, từ lưu trữ, thống kê, đến nhập xuất và tìm kiếm, dẫn đến việc tốn nhiều thời gian và công sức mà hiệu quả không cao Việc thiếu phần mềm hỗ trợ quản lý càng làm cho quy trình này trở nên khó khăn và tốn kém hơn, dễ dẫn đến sai sót không đáng có.
Xây dựng chương trình quản lý vật liệu là cần thiết cho các cửa hàng nhằm thay thế công việc thủ công bằng giấy tờ, giúp nâng cao hiệu quả và tiết kiệm thời gian Do đó, tôi đã chọn nghiên cứu đề tài “Quản lý cửa hàng vật liệu xây dựng” để cải thiện quy trình quản lý vật liệu, giảm thiểu thời gian và công sức so với phương pháp viết tay truyền thống.
Người quản lý có thể đưa ra các quyết định và kế hoạch chính xác, giúp giảm chi phí, tăng cường khả năng cạnh tranh và cải thiện hiệu quả hoạt động sản xuất kinh doanh.
Khóa luận tập trung phát triển xây dựng hệ thống bao gồm:
Tìm hiểu các nghiệp vụ quản lý bán hàng của các cửa hàng vật liệu xây dựng
Phân tích các đặc điểm của quy trình bán hàng
Tiếp cận một số phần mềm Quản lý bán hàng sẵn có
Thiết kế giao diện chương trình phù hợp với người dùng
Dùng phương pháp phân tích thiết kế hệ thống để tiến hành thực hiện đề tài
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Đề tài “Quản lý cửa hàng vật liệu xây dựng” đã được nghiên cứu trong các khóa trước, nhưng vẫn còn nhiều chức năng cần bổ sung để hoàn thiện chương trình phần mềm Vì lý do đó, tôi quyết định chọn đề tài này cho bài khóa luận tốt nghiệp của mình Chương trình sẽ được phát triển với các chức năng như đăng nhập hệ thống, quản lý thông tin người dùng, báo cáo thống kê, và quản lý nhập xuất cũng như lưu trữ hàng hóa.
PHẠM VI CỦA ĐỀ TÀI
Đề tài được thực hiện trong phạm vi kiến thức đã học và nghiên cứu thêm các tài liệu tham khảo
Phân tích thiết kế hệ thống thông tin tập trung vào việc đáp ứng các yêu cầu hàng ngày của quản lý cửa hàng và nhân viên bán hàng, bao gồm các nhiệm vụ như cập nhật hàng hóa, nhập và bán sản phẩm, tìm kiếm thông tin hàng hóa, cũng như thực hiện báo cáo thống kê định kỳ.
PHƯƠNG PHÁP NGHIÊN CỨU
1.4.1 Phương pháp nghiên cứu lý thuyết
Đọc hiểu các tài liệu, sách liên quan đến lập trình C#
Đọc hiểu các tài liệu, sách liên quan đến hệ quản trị cơ sở dữ liệu SQL
Đọc hiểu các tài liệu, sách liên quan đến phân tích thiết kế hệ thống
Các website, tài liệu tham khảo liên quan đến đề tài
1.4.2 Phương pháp nghiên cứu thực nghiệm
Sử dụng ngôn ngữ lập trình C-Sharp (C#) trên nền Visual Studio 2013
Cài đặt hệ quản trị cở sở dữ liệu SQL Server 2008
Cài đặt phần mềm hỗ trợ thiết kế giao diện Form Devexpress 15.2.7
Cài đặt phần mềm hỗ trợ thiết kế mô hình dữ liệu Power Designer 16.0
Phương pháp chuyên gia: tham khảo ý kiến của thầy cô và bạn bè
Phương pháp quan sát: Quan sát quy trình nghiệp vụ quản lý trên thực tế của các cửa hàng vật liệu xây dựng
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
Thu thập dữ liệu, xử lý và thống kê để làm luận cứ cho đề tài.
HƯỚNG GIẢI QUYẾT
‒ Xây dựng mô hình CDM và PDM
‒ Thiết kế CSDL, các ràng buộc toàn vẹn
‒ Thiết kế ứng dụng: các chức năng, Forms và Reports
‒ Cài đặt chương trình ứng dụng, nhập liệu, chạy thử và kiểm tra lỗi
‒ Viết một bài báo cáo về công việc đã thực hiện theo mẫu qui định
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
CƠ SỞ LÝ THUYẾT
GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
Cơ sở dữ liệu là tập hợp dữ liệu về các đối tượng cần quản lý, được lưu trữ trên các thiết bị điện tử và được quản lý bởi hệ quản lý thống nhất Hệ thống này thực hiện ba chức năng chính: lưu trữ, truy xuất và quản lý dữ liệu hiệu quả.
• Cập nhập dữ liệu: thêm, sửa, xóa
• Tìm kiếm và kết xuất dữ liệu
❖ Sơ lược sự phát triển của Microsofts SQL
SQL được phát triển từ ngôn ngữ SEQUEL2 bởi IBM vào những năm 70 tại California, nhằm phục vụ cho hệ thống quản trị cơ sở dữ liệu lớn Ban đầu, SQL được sử dụng cho các ngôn ngữ quản lý cơ sở dữ liệu trên máy đơn lẻ, nhưng với sự gia tăng nhu cầu xây dựng cơ sở dữ liệu lớn theo mô hình khách chủ, SQL đã trở thành công cụ chính để xử lý dữ liệu trên máy chủ Ngày nay, SQL đóng vai trò quan trọng trong các ngôn ngữ lập trình bậc cao, đặc biệt trong phát triển web, giúp tạo ra các trang web động một cách nhanh chóng.
SQL đã được công nhận là ngôn ngữ chuẩn cho cơ sở dữ liệu quan hệ bởi viện tiêu chuẩn quốc gia Mỹ (ANSI) và tổ chức tiêu chuẩn quốc tế (ISO) Tuy nhiên, tiêu chuẩn này vẫn chưa hoàn thiện 100%, dẫn đến việc các ngôn ngữ lập trình khác đã mở rộng và bổ sung thêm các tính năng cho SQL chuẩn để phù hợp với nhu cầu ứng dụng của mình.
Do vậy có sự khác nhau rõ ràng giữa các SQL
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
SQL, hay còn gọi là Ngôn ngữ Truy vấn Cấu trúc, là một hệ thống quản trị cơ sở dữ liệu đa người dùng theo mô hình Client/Server Đây là nền tảng chính để lưu trữ dữ liệu cho nhiều ứng dụng lớn hiện nay và được áp dụng rộng rãi trong nhiều lĩnh vực khác nhau Hầu hết các ngôn ngữ lập trình bậc cao như Visual Basic, Oracle và Visual C đều hỗ trợ SQL, giúp người dùng dễ dàng tương tác với cơ sở dữ liệu.
‒ SQL là công cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu được lưu trữ trong các cơ sở dữ liệu
‒ SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tương tác với cơ sở dữ liệu quan hệ
‒ SQL được sử dụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở dữ liệu cung cấp cho người dùng bao gồm:
SQL cho phép định nghĩa cơ sở dữ liệu, cấu trúc lưu trữ và tổ chức dữ liệu, cùng với việc xác định mối quan hệ giữa các thành phần dữ liệu.
SQL cho phép người dùng thực hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu một cách dễ dàng trong các cơ sở dữ liệu.
SQL là công cụ hiệu quả trong việc cấp phát và kiểm soát quyền truy cập của người dùng đối với dữ liệu, góp phần đảm bảo an toàn cho cơ sở dữ liệu.
SQL đảm bảo toàn vẹn dữ liệu thông qua việc định nghĩa các ràng buộc, giúp duy trì tính hợp lệ và chính xác của dữ liệu trong cơ sở dữ liệu Điều này rất quan trọng để ngăn chặn các lỗi hệ thống và bảo vệ dữ liệu trước các thao tác cập nhật.
Cơ sở dữ liệu quan hệ được tổ chức thành các thực thể, với mỗi thực thể có các thuộc tính riêng Mỗi thể hiện của thực thể tương ứng với một bộ giá trị cụ thể, tạo nên mối quan hệ chặt chẽ giữa các dữ liệu trong hệ thống.
2.1.2 Hệ quản trị cơ sở dữ liệu
Hệ quản trị cơ sở dữ liệu (DBMS) là phần mềm được thiết kế để quản lý và điều hành các cơ sở dữ liệu Các chương trình này hỗ trợ người dùng trong việc lưu trữ, sửa đổi, xóa và tìm kiếm thông tin một cách hiệu quả.
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
Có nhiều loại hệ quản trị cơ sở dữ liệu (CSDL) khác nhau, từ phần mềm đơn giản chạy trên máy tính cá nhân đến các hệ thống phức tạp được triển khai trên một hoặc nhiều siêu máy tính.
• Quản lý được dữ liệu dư thừa
• Đảm báo tính nhất quán cho dữ liệu
• Tạo khả năng chia sẻ dữ liệu nhiều hơn
• Cải tiến tính toàn vẹn cho dữ liệu
• Hệ quản trị CSDL tốt thì khá phức tạp
• Hệ quản trị CSDL tốt thường rất lớn chiếm nhiều dung lượng bộ nhớ
• Giá cả khác nhau tùy theo môi trường và chức năng
• Hệ quản trị CSDL được viết tổng quát cho nhiều người dùng thì thường chậm
❖ Giới thiệu chung về SQL SERVER 2008
SQL Server 2008 có tên mã là “katmai” Ngày 27/02/2008 , Microsoft tổ chức một sự kiện có tên Heroes Happen Here nhằm giới thiệu sản phẩm mới SQL Server
SQL Server 2008 tăng cường khả năng của công nghệ NET 3.0 thông qua LINQ (Language Integrated Query), mang đến những cải tiến đáng kể trong việc truy vấn dữ liệu Ngoài ra, nó còn cung cấp hỗ trợ tốt hơn cho các thực thể dữ liệu doanh nghiệp và các tùy chọn đồng bộ hóa dữ liệu hiệu quả.
Cài đặt SQL Server 2008 đã trở nên đơn giản hơn với nhiều nâng cấp đáng chú ý Dữ liệu cấu hình và các thành phần "engine" được tách biệt, giúp việc tạo đĩa hệ thống không cấu hình cơ bản trở nên dễ dàng hơn cho nhiều máy chủ Người dùng có thể cập nhật các nâng cấp mới nhất trực tiếp từ website của Microsoft Ngoài ra, SQL Server còn hỗ trợ cài đặt gói dịch vụ và các bản vá, đồng thời cho phép gỡ bỏ cài đặt các gói dịch vụ một cách dễ dàng.
Microsoft SQL Server 2008 là nền tảng dữ liệu chủ chốt, mang đến một giải pháp toàn diện cho việc phát triển ứng dụng cơ sở dữ liệu Nền tảng này cho phép doanh nghiệp truy cập và xử lý dữ liệu từ nhiều thiết bị, nền tảng và dịch vụ khác nhau, nâng cao hiệu quả trong quản lý thông tin.
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
❖ Xây dựng các ứng dụng có khả năng nâng cấp cao với SQL Server 2008
Phát triển thủ tục hiệu suất cao cho việc truy cập và quản lý dữ liệu trong cơ sở dữ liệu có thể được thực hiện thông qua việc tích hợp SQL Server Common Language Runtime (CLR) với Microsoft NET Framework và các ngôn ngữ lập trình như C# và Visual Basic NET Việc tạo ra các giải pháp không đồng bộ dựa trên message sử dụng kiến trúc dịch vụ giúp tối ưu hóa quy trình doanh nghiệp và mở rộng khả năng với Service Broker Bên cạnh đó, xây dựng các giải pháp dữ liệu phân tán có khả năng nâng cấp cao bằng cách hỗ trợ các chuẩn như SOAP và HTTP Microsoft Data Platform cung cấp công nghệ và sản phẩm đa dạng, cho phép các chuyên gia phát triển phần mềm tạo ra ứng dụng cơ sở dữ liệu mạnh mẽ, đáp ứng nhu cầu của mọi doanh nghiệp.
KHÁI NIỆM PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN
❖ Khái niệm hệ thống thông tin:
Hệ thống thông tin là một cấu trúc tổ chức gồm nhiều thành phần, có nhiệm vụ thu thập, xử lý, phân tích và tổng hợp thông tin Hệ thống này hỗ trợ các nhà quản lý trong việc quản lý hiệu quả cơ sở của họ và đưa ra quyết định kinh doanh, từ đó mang lại lợi ích cho tổ chức.
❖ Các thành phần của hệ thống thông tin:
+ Phần mềm hệ thống: điều khiển phần cứng và các phần mềm khác (hệ điều hành, phần mềm điều khiển thiết bị )
Phần mềm ứng dụng là các chương trình xử lý dữ liệu nhằm tạo ra thông tin, bao gồm những ứng dụng do công ty phát triển và các sản phẩm phần mềm được mua từ nhà cung cấp.
• Con người: người sử dụng hệ thống, là người cho – nhận thông tin đối với hệ thống
+ Người sử dụng bên trong: người quản lý, kỹ thuật viên
+ Người sử dụng bên ngoài: khách hàng, nhà cung cấp
❖ Vòng đời phát triển hệ thống thông tin:
Vòng đời phát triển hệ thống (SDLC) là quá trình bao gồm nhiều giai đoạn, bắt đầu từ khởi động dự án cho đến khi hoàn tất khai thác hệ thống SDLC giúp đảm bảo rằng mọi bước trong phát triển hệ thống được thực hiện một cách có hệ thống và hiệu quả.
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
• Vòng đời phát triển điển hình:
+ Khảo sát hệ thống và xác lập dự án
TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH C#
Ngôn ngữ C# là một ngôn ngữ lập trình được phát triển từ C và C++, với nhiều tính năng mới giúp tăng tính dễ sử dụng Microsoft đã cải tiến từ nền tảng của C và C++, đồng thời tích hợp những đặc điểm tương tự như trong ngôn ngữ Java Mục đích chính của việc xây dựng C# là tạo ra một ngôn ngữ lập trình mạnh mẽ và thân thiện với người dùng.
• C# là ngôn ngữ đơn giản
• C# là ngôn ngữ hiện đại
• C# là ngôn ngữ hướng đối tượng
• C# là ngôn ngữ mạnh mẽ và mềm dẻo
• C# là ngôn ngữ có ít từ khóa
• C# là ngôn ngữ hướng module
• C# sẽ trở nên phổ biến
C# là ngôn ngữ đơn giản
C# đã đơn giản hóa nhiều khía cạnh phức tạp của các ngôn ngữ như Java và C++, bằng cách loại bỏ các macro, template, đa kế thừa và lớp cơ sở ảo, những yếu tố thường gây nhầm lẫn và vấn đề cho các lập trình viên C++ Nếu bạn là người mới học ngôn ngữ lập trình, bạn sẽ không phải trải qua những khó khăn này, và điều đó giúp bạn nhận ra hiệu quả vượt trội của C# khi giải quyết những vấn đề này.
Ngôn ngữ C# được coi là đơn giản do nó được xây dựng dựa trên nền tảng của C và C++ Những ai đã quen thuộc với C, C++ hoặc Java sẽ nhận thấy C# có nhiều điểm tương đồng về giao diện, cú pháp, biểu thức, toán tử và các chức năng khác, điều này giúp việc học và sử dụng ngôn ngữ này trở nên dễ dàng hơn.
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
C# là một ngôn ngữ lập trình được cải tiến từ C++, nhằm đơn giản hóa cú pháp và loại bỏ sự dư thừa Một trong những cải tiến đáng chú ý là việc thay thế ba toán tử ::, , và -> trong C++ bằng một toán tử duy nhất là (dot) trong C# Điều này giúp giảm bớt sự nhầm lẫn cho người mới học, làm cho việc lập trình trở nên dễ dàng hơn.
Nếu bạn đã quen với Java và cảm thấy nó đơn giản, thì C# cũng sẽ mang lại sự dễ dàng tương tự Mặc dù nhiều người không coi Java là ngôn ngữ lập trình đơn giản, nhưng thực tế là C# dễ học hơn cả Java lẫn C++.
C# là một ngôn ngữ lập trình hiện đại với nhiều đặc tính nổi bật như xử lý ngoại lệ, thu gom bộ nhớ tự động, các kiểu dữ liệu mở rộng và bảo mật mã nguồn Những đặc tính này được coi là tiêu chuẩn trong một ngôn ngữ lập trình hiện đại Nếu bạn là người mới bắt đầu học lập trình, có thể sẽ thấy những khái niệm này phức tạp và khó hiểu Tuy nhiên, đừng lo lắng, bạn sẽ dần dần nắm bắt được các đặc tính này qua các chương trong cuốn sách này.
Trong ngôn ngữ C++, con trỏ được tích hợp nhưng cũng gây ra nhiều rắc rối Ngược lại, C# đã loại bỏ những phức tạp liên quan đến con trỏ C# tích hợp bộ thu gom bộ nhớ tự động và kiểu dữ liệu an toàn, giúp giải quyết các vấn đề khó khăn mà C++ gặp phải.
C# là ngôn ngữ hướng đối tượng
Ngôn ngữ hướng đối tượng (Object-oriented language) có ba đặc điểm chính: đóng gói (encapsulation), kế thừa (inheritance) và đa hình (polymorphism) C# hoàn toàn hỗ trợ những đặc tính này, và phần hướng đối tượng của C# sẽ được trình bày chi tiết trong một chương riêng ở phần sau.
C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo
Ngôn ngữ C# cho phép sự sáng tạo không giới hạn, chỉ bị ràng buộc bởi trí tưởng tượng của người lập trình viên C# không đặt ra những giới hạn cho các dự án, và được ứng dụng rộng rãi trong việc phát triển nhiều loại phần mềm khác nhau.
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
10 ứ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ên dịch cho các ngôn ngữ khác
C# là ngôn ngữ ít từ khóa
C# là một ngôn ngữ lập trình với số lượng từ khóa hạn chế, chủ yếu dùng để mô tả thông tin Mặc dù nhiều người nghĩ rằng ngôn ngữ có nhiều từ khóa sẽ mạnh hơn, nhưng điều này không đúng với C# Ngôn ngữ này vẫn có khả năng thực hiện mọi nhiệm vụ lập trình một cách hiệu quả.
C# là ngôn ngữ hướng module
Mã nguồn C# được tổ chức thành các lớp, trong đó chứa các phương thức thành viên Các lớp và phương thức này có thể tái sử dụng trong nhiều ứng dụng khác nhau Bằng cách truyền các mẫu thông tin vào các lớp hoặc phương thức, chúng ta có thể tạo ra mã nguồn tái sử dụng một cách hiệu quả.
C# sẽ là một ngôn ngữ phổ biến
C# là một ngôn ngữ lập trình mới nổi, không được biết đến rộng rãi vào thời điểm này, nhưng có tiềm năng trở thành phổ biến nhờ sự hỗ trợ mạnh mẽ từ Microsoft và nền tảng NET Microsoft đang nỗ lực để thúc đẩy sự phát triển của C#, và mặc dù một công ty không thể tự làm cho sản phẩm của mình trở nên phổ biến, nhưng họ có thể cung cấp sự hỗ trợ cần thiết Trái ngược với sự thất bại của hệ điều hành Microsoft Bob, C# đã được Microsoft áp dụng trong nhiều sản phẩm của mình, khẳng định rằng ngôn ngữ này có khả năng đáp ứng nhu cầu của lập trình viên.
Microsoft NET đóng vai trò quan trọng trong sự thành công của C#, mang lại sự đổi mới trong việc phát triển và triển khai ứng dụng Bên cạnh đó, C# còn thu hút người dùng nhờ những đặc tính nổi bật như tính đơn giản, hướng đối tượng và sức mạnh vượt trội.
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
TỔNG QUAN VỀ MICROSOFT VISUAL STUDIO 2013
With the release of Windows 8.1, Microsoft officially introduced the finalized version of Visual Studio 2013 This renowned programming toolkit consists of five main components: Visual Studio Ultimate 2013, Visual Studio Premium 2013, Visual Studio Professional 2013, and Visual Studio Test Professional.
2013 và Visual Studio Team Foundation Server 2013
Visual Studio 2013 là công cụ lý tưởng cho lập trình viên trong việc phát triển, phân phối và quản lý ứng dụng, tận dụng các thiết bị và dịch vụ tiên tiến Phiên bản này được cải tiến với nhiều tính năng mới, giúp nâng cao chất lượng và rút ngắn thời gian phát triển ứng dụng Nhờ vào công cụ và nền tảng được cập nhật, lập trình viên có thể dễ dàng viết và thử nghiệm ứng dụng cho Windows 8.1.
Microsoft Visual Studio is an integrated development environment (IDE) from Microsoft, designed for creating computer programs for Microsoft Windows, as well as websites, web applications, and web services It leverages Microsoft's software development platforms, including Windows API, Windows Forms, Windows Presentation Foundation, Windows Store, and Microsoft Silverlight Visual Studio is capable of producing both machine code and managed code.
Visual Studio là một công cụ phát triển mạnh mẽ, bao gồm trình soạn thảo mã với hỗ trợ IntelliSense và cải tiến mã nguồn Nó tích hợp trình gỡ lỗi cho cả mã nguồn và máy, cùng với các công cụ thiết kế giao diện ứng dụng, web, lớp và cơ sở dữ liệu Ngoài ra, Visual Studio cho phép cài đặt plug-in để mở rộng chức năng, bao gồm hỗ trợ cho hệ thống quản lý phiên bản như Subversion và các bộ công cụ mới cho ngôn ngữ cụ thể cũng như các khía cạnh khác trong quy trình phát triển phần mềm.
TỔNG QUAN VỀ DEVEXPRESS
DevExpress là một framework được thiết kế cho nền tảng NET Framework, cung cấp các điều khiển và công nghệ hỗ trợ quá trình phát triển phần mềm Các thành phần của DevExpress bao gồm nhiều công cụ hữu ích cho lập trình viên.
• WinForms Controls: Cung cấp các control cho WinForms
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
• ASP.NET Controls: Cung cấp các control cho WebForms
• WPF Controls: Cung cấp các control cho WPF
• Silverlight Controls: Cung cấp các control cho Silverlight
• XtraCharts: Control cung cấp các loại biểu đồ
• XtraReports: Cung cấp các control tạo báo cáo
• XPO: Cung cấp môi trường làm việc với database
• XAF: Một công nghệ mới giúp việc phát triển phần mềm một cách nhanh chóng
DevExpress đã trải qua nhiều phiên bản nâng cấp, cải tiến và bổ sung nhiều chức năng mới Phiên bản hiện tại của DevExpress mang đến cho người dùng những công cụ và môi trường tuyệt vời, giúp biến ý tưởng thành hiện thực một cách nhanh chóng và dễ dàng.
THÀNH PHẦN DỮ LIỆU PHÂN TÍCH HỆ THỐNG
“Building Material Store Management” to be researched and implemented in three months time Apply the business processes of the building materials store in fact to write a management program
Program “Building Materials Store Manager” is designed by program language
C#, using interface of support tools program DevExpress
With user-friendly and easy-to-use interface, system fulfills various necessary demands in company management:
- Input necessary for the buy and sell of the store such as suppliers, customers, employees, goods
- Management functions: import goods from suppliers, storage goods in warehouses, issues sales bill to customers, report goods import statistics and inventories
The program will help managers to make the right plans and decisions, reduce costs and increase competitiveness, improve business results
Keywords: manage, import, export, C#, DevEpress, store, materials, build
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa ix
DANH SÁCH CÁC BẢNG, HÌNH
Bảng 1 Mô tả bảng Khách hàng 25
Bảng 2 Mô tả bảng Nhà cung cấp 25
Bảng 3 Mô tả bảng loại hàng 26
Bảng 4 Mô tả bảng Hàng hóa 26
Bảng 5 Mô tả bảng Nhân viên 27
Bảng 6 Mô tả bảng kho 27
Bảng 7 Mô tả bảng Người dùng 28
Bảng 8 Mô tả bảng Người dùng – Nhân viên 28
Bảng 9 Mô tả bảng hóa đơn nhập 29
Bảng 10 Mô tả bảng chi tiết hóa đơn nhập 30
Bảng 11 Mô tả bảng hóa đơn xuất 31
Bảng 12 Mô tả bảng chi tiết hóa đơn xuất 32
Hình 3 Mô hình Database Diagrams 35
Hình 4 Sơ đồ phân rã chức năng 36
Hình 5 Giao diện chương trình 37
Hình 6 Giao diện đăng nhập 38
Hình 7 Giao diện Đổi mật khẩu 38
Hình 8 Giao diện Thông tin tài khoản 39
Hình 9 Giao diện Nhân viên 40
Hình 10 Giao diện Group Tài khoản Nhân viên và Người dùng 41
Hình 11 Giao diện Khách hàng 42
Hình 12 Giao diện Nhà cung cấp 43
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa x
Hình 14 Giao diện Hàng hóa 45
Hình 15 Giao diện Nhập hàng 46
Hình 16 Giao diện chi tiết Hóa đơn nhập 47
Hình 17 Giao diện Xuất hàng 48
Hình 18 Giao diện Chi tiết Hóa đơn xuất 49
Hình 20 Giao diện Báo cáo Kho 51
Hình 21 Giao diện Báo cáo Nhập hàng 51
Hình 22 Giao diện Báo cáo Xuất hàng 52
Hình 23 Giao diện Danh sách Khách hàng 53
Hình 24 Giao diện Danh sách Nhà cung cấp 54
Hình 25 Giao diện Nhà cung cấp 54
Hình 26 Giao diện Danh sách Hàng hóa 55
Hình 27 Giao diện Hỗ trợ 56
Hình 28 Mẫu hóa đơn bán hàng 57
Hình 29 Mẫu phiếu nhập hàng 58
Hình 30 Mẫu phiếu Báo cáo – thống kê 59
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
Ngày nay, sự phát triển mạnh mẽ của công nghệ thông tin đã làm thay đổi nhu cầu cuộc sống và cách thức ứng dụng công nghệ vào công việc Tất cả các lĩnh vực kinh tế và xã hội đều đang được hiện đại hóa thông qua quản lý bằng máy tính Công nghệ thông tin không chỉ ảnh hưởng đến khoa học kỹ thuật và giáo dục mà còn tác động sâu sắc đến nền kinh tế và đời sống xã hội Nhờ vào sự tiến bộ này, các hoạt động sản xuất, mua bán và quản lý hàng hóa trở nên phong phú và đa dạng hơn.
Hầu hết các cửa hàng vật liệu xây dựng hiện nay vẫn sử dụng phương pháp thủ công trong quản lý, từ lưu trữ, thống kê đến nhập xuất và tìm kiếm, dẫn đến việc tốn nhiều thời gian và công sức mà hiệu quả không cao Việc thiếu các phần mềm máy tính hỗ trợ quản lý càng làm cho công việc trở nên khó khăn và tốn kém hơn, đôi khi gây ra những sai lầm không đáng có.
Xây dựng chương trình quản lý vật liệu cho các cửa hàng là cần thiết để thay thế các công việc thủ công trên giấy tờ, giúp nâng cao hiệu quả và tiết kiệm thời gian Đề tài nghiên cứu “Quản lý cửa hàng vật liệu xây dựng” được chọn nhằm giải quyết vấn đề quản lý vật liệu xây dựng, giảm thiểu thời gian sử dụng phương pháp viết tay cổ điển.
Người quản lý có thể phát triển các kế hoạch và quyết định chính xác, từ đó giảm chi phí, tăng cường khả năng cạnh tranh và cải thiện hiệu quả hoạt động sản xuất kinh doanh.
Khóa luận tập trung phát triển xây dựng hệ thống bao gồm:
Tìm hiểu các nghiệp vụ quản lý bán hàng của các cửa hàng vật liệu xây dựng
Phân tích các đặc điểm của quy trình bán hàng
Tiếp cận một số phần mềm Quản lý bán hàng sẵn có
Thiết kế giao diện chương trình phù hợp với người dùng
Dùng phương pháp phân tích thiết kế hệ thống để tiến hành thực hiện đề tài
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
II LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Đề tài "Quản lý cửa hàng vật liệu xây dựng" đã được nghiên cứu trong các khóa trước, nhưng vẫn còn nhiều chức năng cần bổ sung để hoàn thiện phần mềm Vì vậy, tôi quyết định chọn đề tài này cho bài khóa luận tốt nghiệp của mình Chương trình sẽ phát triển thêm các chức năng như đăng nhập hệ thống, quản lý thông tin người dùng, báo cáo thống kê, và quản lý nhập xuất cùng với lưu trữ hàng hóa.
III PHẠM VI CỦA ĐỀ TÀI Đề tài được thực hiện trong phạm vi kiến thức đã học và nghiên cứu thêm các tài liệu tham khảo
Phân tích thiết kế hệ thống thông tin tập trung vào việc đáp ứng các yêu cầu hàng ngày của quản lý cửa hàng và nhân viên bán hàng, bao gồm việc cập nhật hàng hóa, nhập và bán hàng, tìm kiếm thông tin sản phẩm, cũng như thực hiện báo cáo thống kê định kỳ.
IV PHƯƠNG PHÁP NGHIÊN CỨU
1.4.1 Phương pháp nghiên cứu lý thuyết
Đọc hiểu các tài liệu, sách liên quan đến lập trình C#
Đọc hiểu các tài liệu, sách liên quan đến hệ quản trị cơ sở dữ liệu SQL
Đọc hiểu các tài liệu, sách liên quan đến phân tích thiết kế hệ thống
Các website, tài liệu tham khảo liên quan đến đề tài
1.4.2 Phương pháp nghiên cứu thực nghiệm
Sử dụng ngôn ngữ lập trình C-Sharp (C#) trên nền Visual Studio 2013
Cài đặt hệ quản trị cở sở dữ liệu SQL Server 2008
Cài đặt phần mềm hỗ trợ thiết kế giao diện Form Devexpress 15.2.7
Cài đặt phần mềm hỗ trợ thiết kế mô hình dữ liệu Power Designer 16.0
Phương pháp chuyên gia: tham khảo ý kiến của thầy cô và bạn bè
Phương pháp quan sát: Quan sát quy trình nghiệp vụ quản lý trên thực tế của các cửa hàng vật liệu xây dựng
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
Thu thập dữ liệu, xử lý và thống kê để làm luận cứ cho đề tài
‒ Xây dựng mô hình CDM và PDM
‒ Thiết kế CSDL, các ràng buộc toàn vẹn
‒ Thiết kế ứng dụng: các chức năng, Forms và Reports
‒ Cài đặt chương trình ứng dụng, nhập liệu, chạy thử và kiểm tra lỗi
‒ Viết một bài báo cáo về công việc đã thực hiện theo mẫu qui định
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
I GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU 2.1.1 Cơ sở dữ liệu
Cơ sở dữ liệu là tập hợp dữ liệu về các đối tượng cần quản lý, được lưu trữ trên các thiết bị điện tử và được quản lý qua một hệ thống thống nhất gọi là hệ quản lý Hệ quản lý này thực hiện ba chức năng chính: tổ chức, lưu trữ và truy xuất dữ liệu một cách hiệu quả.
• Cập nhập dữ liệu: thêm, sửa, xóa
• Tìm kiếm và kết xuất dữ liệu
❖ Sơ lược sự phát triển của Microsofts SQL
SQL, được phát triển từ ngôn ngữ SEQUEL2 bởi IBM vào những năm 70, đã trở thành công cụ quan trọng cho hệ thống quản trị cơ sở dữ liệu lớn Ban đầu, SQL chỉ được sử dụng trên các máy đơn lẻ, nhưng với sự gia tăng nhu cầu xây dựng cơ sở dữ liệu lớn theo mô hình khách-chủ, toàn bộ cơ sở dữ liệu được tập trung trên máy chủ Mọi thao tác xử lý dữ liệu hiện nay đều được thực hiện trên máy chủ thông qua các lệnh SQL, trong khi máy trạm chỉ dùng để cập nhật hoặc lấy thông tin Ngày nay, SQL đóng vai trò thiết yếu trong các ngôn ngữ lập trình bậc cao, đặc biệt trong lĩnh vực phát triển Internet, nơi nó được sử dụng để nhanh chóng tạo ra các trang web động.
SQL đã được ANSI và ISO công nhận là ngôn ngữ chuẩn cho cơ sở dữ liệu quan hệ, nhưng chuẩn này vẫn chưa hoàn thiện 100% Do đó, các phiên bản SQL được nhúng trong các ngôn ngữ lập trình khác đã được mở rộng để phù hợp hơn với các ứng dụng cụ thể.
Do vậy có sự khác nhau rõ ràng giữa các SQL
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
SQL, hay còn gọi là Ngôn ngữ Hỏi Có Cấu Trúc, là một hệ thống quản trị cơ sở dữ liệu nhiều người dùng theo kiểu Client/Server Đây là một công cụ cơ bản để lưu trữ dữ liệu cho hầu hết các ứng dụng lớn hiện nay và được áp dụng rộng rãi trong nhiều lĩnh vực Hầu hết các ngôn ngữ lập trình bậc cao như Visual Basic, Oracle và Visual C đều hỗ trợ SQL.
‒ SQL là công cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu được lưu trữ trong các cơ sở dữ liệu
‒ SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tương tác với cơ sở dữ liệu quan hệ
‒ SQL được sử dụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở dữ liệu cung cấp cho người dùng bao gồm:
SQL cho phép định nghĩa cơ sở dữ liệu, cấu trúc lưu trữ và tổ chức dữ liệu, đồng thời xác định mối quan hệ giữa các thành phần dữ liệu.
Với SQL, người dùng có khả năng thực hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu một cách dễ dàng trong các cơ sở dữ liệu.
SQL cho phép quản lý quyền truy cập, cấp phát và kiểm soát các thao tác của người dùng trên dữ liệu, từ đó đảm bảo an toàn cho cơ sở dữ liệu.
SQL thiết lập các ràng buộc toàn vẹn trong cơ sở dữ liệu, giúp đảm bảo tính hợp lệ và chính xác của dữ liệu Điều này đặc biệt quan trọng để ngăn chặn các lỗi hệ thống và đảm bảo rằng dữ liệu được cập nhật một cách chính xác.
Cơ sở dữ liệu quan hệ tổ chức thông tin thành các thực thể, trong đó mỗi thể hiện của một thực thể chứa bộ giá trị tương ứng với các thuộc tính của nó.
2.1.2 Hệ quản trị cơ sở dữ liệu
THÀNH PHẦN XỬ LÝ PHÂN TÍCH HỆ THỐNG
Lưu đồ dòng dữ liệu là công cụ phân tích các thành phần xử lý trong hệ thống thông tin, giúp biểu diễn mối liên kết giữa các hoạt động thông qua việc trao đổi dữ liệu trong quá trình vận hành của hệ thống.
GIỚI THIỆU VỀ MÃ HÓA MẬT KHẨU
Trong mật mã học, thuật toán khóa đối xứng là một nhóm các phương pháp mã hóa mà trong đó khóa dùng để mã hóa và giải mã có mối quan hệ chặt chẽ Điều này có nghĩa là nếu một khóa được biết, khóa còn lại có thể dễ dàng xác định Mã khóa đối xứng không được công khai.
Khóa mã hóa và khóa giải mã có thể giống nhau hoặc chỉ khác nhau qua một biến đổi đơn giản, thể hiện mối liên hệ chặt chẽ giữa chúng Thực tế, các khóa này đại diện cho một bí mật chung giữa hai hoặc nhiều bên, nhằm bảo vệ thông tin trong quá trình truyền tải.
Mã hóa bằng chìa khóa đối xứng còn được gọi là mã hóa đơn khóa, mã hóa một khóa và mã hóa khóa cá nhân Tuy nhiên, thuật ngữ "khóa cá nhân" có thể gây nhầm lẫn vì nó cũng được sử dụng trong ngữ cảnh của mật mã hóa khóa công khai.
Mã hóa đối xứng có một số dạng như sau:
- Mã hóa dữ liệu DES (Data Encryption Standard)
- Mã hóa mật mã AES (Advanced Encryption Standard)
- Mã hóa mật mã khối
CBC (Cipher Block Chaining) là một chế độ mã hóa sử dụng phản hồi để tăng cường bảo mật Trước khi mã hóa mỗi khối văn bản thuần, nó được kết hợp với văn bản mã hóa của khối trước đó thông qua phép toán OR độc lập bitwise Điều này giúp đảm bảo rằng ngay cả khi văn bản thuần có nhiều khối giống nhau, chúng vẫn sẽ được mã hóa thành các khối khác nhau Các vector khởi tạo được kết hợp với khối văn bản thuần đầu tiên thông qua phép toán OR độc lập bitwise trước khi tiến hành mã hóa.
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
Nếu 22 hóa bị đọc sai, toàn bộ khối văn bản tương ứng sẽ bị hiểu sai Hơn nữa, một phần nhỏ trong khối tiếp theo, ở vị trí tương tự như bit ban đầu, cũng sẽ bị đọc sai.
Chế độ CFB (Cipher Feedback) xử lý văn bản thuần túy thành văn bản mật mã bằng cách thực hiện từng bước nhỏ thay vì xử lý toàn bộ khối cùng một lúc Chế độ này sử dụng một đăng ký thay đổi dài, được chia thành nhiều phần, ví dụ như kích thước khối 8 byte, với mỗi byte được xử lý riêng biệt Nếu một bit trong văn bản mật mã bị sai, điều này sẽ dẫn đến việc một bit văn bản thuần bị đọc sai và làm hỏng thanh ghi thay đổi, gây ra lỗi trong một vài bước tiếp theo cho đến khi bit sai được loại bỏ khỏi sổ đăng ký Kích thước phản hồi mặc định có thể thay đổi tùy theo thuật toán, nhưng thường là 8 bit hoặc tương ứng với kích thước khối.
Chế độ Ăn cắp Văn bản Cipher (CTS) là một phương pháp mã hóa cho phép xử lý văn bản thuần có bất kỳ chiều dài nào, đồng thời tạo ra văn bản mật mã có độ dài tương ứng CTS hoạt động tương tự như chế độ CBC đối với tất cả các khối của văn bản thuần, ngoại trừ hai khối cuối cùng.
Chế độ Electronic Codebook (ECB) mã hóa mỗi khối dữ liệu một cách độc lập, dẫn đến việc các khối văn bản giống nhau trong cùng một thông điệp sẽ được mã hóa thành các khối giống hệt nhau Tuy nhiên, chế độ này không được khuyến khích do tiềm ẩn nhiều lỗ hổng bảo mật Việc lặp lại đáng kể trong văn bản thuần có thể khiến kẻ tấn công phá vỡ mã hóa từng khối một, và phân tích khối có thể được sử dụng để xác định khóa mã hóa.
Chế độ phản hồi đầu ra (OFB) xử lý các bước tăng nhỏ của văn bản thuần túy thành văn bản mật mã, thay vì xử lý toàn bộ khối cùng một lúc OFB tương tự như chế độ CFB, nhưng khác biệt ở cách thanh ghi thay đổi được lấp đầy Nếu một bit trong văn bản mật mã bị đọc sai, bit tương ứng trong văn bản thuần túy cũng sẽ bị sai Tuy nhiên, nếu có thêm hoặc thiếu bit từ văn bản mật mã, văn bản thuần túy sẽ bị đọc sai từ thời điểm đó.
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
Mã hóa dữ liệu DES
DES (Tiêu chuẩn Mã hóa Dữ liệu) là phương pháp mã hóa được FIPS công nhận vào năm 1976 và nhanh chóng trở thành tiêu chuẩn toàn cầu Mặc dù được sử dụng rộng rãi, thuật toán của DES đã gây tranh cãi do thiết kế mật, độ dài khóa ngắn và nghi ngờ về khả năng bẻ khóa của NSA Sự xem xét kỹ lưỡng từ giới nghiên cứu đã thúc đẩy hiểu biết về mật mã khối và các phương pháp thám mã liên quan.
Hiện nay, DES được coi là không đủ an toàn cho nhiều ứng dụng do độ dài khóa chỉ 56 bit, điều này khiến nó dễ bị tấn công Khóa DES đã từng bị phá trong vòng chưa đầy 24 giờ, và nhiều phân tích đã chỉ ra những điểm yếu lý thuyết của mã hóa này, mặc dù chúng không khả thi trong thực tế Thuật toán an toàn hơn hiện nay là Triple DES, thực hiện DES ba lần, nhưng vẫn có khả năng bị tấn công trên lý thuyết Gần đây, DES đã được thay thế bằng AES (Advanced Encryption Standard), một tiêu chuẩn mã hóa tiên tiến hơn.
Mã hóa mật mã AES
Trong mật mã học, AES (Tiêu chuẩn mã hóa tiên tiến) là một thuật toán mã hóa khối được chính phủ Hoa Kỳ công nhận làm tiêu chuẩn mã hóa toàn cầu Được phát triển bởi hai nhà mật mã học người Bỉ, Joan Daemen và Vincent Rijmen, thuật toán này được gọi là "Rijndael" khi tham gia cuộc thi thiết kế AES Sau 5 năm nghiên cứu và tiêu chuẩn hóa, AES đã được Viện tiêu chuẩn và công nghệ quốc gia Hoa Kỳ (NIST) chấp thuận làm tiêu chuẩn liên bang, kế thừa từ tiêu chuẩn trước đó là DES.
Phần mềm quản lý cửa hàng vật liệu xây dựng dùng mã hóa theo dạng khối ECB (Electronic code book)
GVHD: Ths Nguyễn Chí Cường SVTH: Đoàn Đăng Khoa
Mã hóa khối là một phương pháp phổ biến trong hệ thống lưu trữ cơ sở dữ liệu, mang lại nhiều ưu điểm Nó cho phép từng đơn vị dữ liệu hoạt động độc lập, từ đó dễ dàng cập nhật và thay đổi mà không ảnh hưởng đến các cơ sở dữ liệu khác.
Nhược điểm: nếu được sử dụng trong ngân hàng sẽ bị đánh cắp thông tin do đó nó không có lợi cho bảo mật hệ thống ngân hàng
2.10.2 Mã hóa bất đối xứng
Mật mã hóa khóa công khai là phương pháp cho phép người dùng chia sẻ thông tin bảo mật mà không cần trao đổi khóa bí mật trước Phương pháp này dựa trên việc sử dụng một cặp khóa liên quan toán học, bao gồm khóa công khai và khóa cá nhân (hay khóa bí mật).
Mật mã hóa khóa bất đối xứng thường bị nhầm lẫn với mật mã hóa khóa công khai, mặc dù hai khái niệm này không hoàn toàn giống nhau Một số thuật toán mật mã khóa bất đối xứng yêu cầu cả hai khóa (mã hóa và giải mã) phải được giữ bí mật, không chỉ riêng khóa công khai và khóa bí mật như thường thấy.