Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN ---------- BÁO CÁO THỰC TẬP TỐT NGHIỆP Tên đề tài: XÂY DỰNG PHẦN MỀM QUẢN LÝ BÁN HÀNG SVTH: Vanpheng LATBUASY Lớp : DT16CTT01 Ngành: Công nghệ thông tin Khóa học: 2016-2020 GVHD: ThS. Lê Thị Nguyên An Quảng Nam, ngày 10 tháng 4 năm 2020 LỜI CẢM ƠN Lời đầu tiên em xin chân thành cảm ơn đến cô Lê Thị Nguyên An- người đã trực tiếp hướng dẫn em hoàn thành khóa luận này. Nếu không có những lời chỉ dẫn, những tài liệu, những lời động viên khích lệ của cô thì khóa luận này khó lòng thực hiện được. Em cũng chân thành cảm ơn các thầy cô trong Khoa Công nghệ thông tin - Trường Đại học Quảng Nam đã tận tình chỉ bảo và giúp đỡ em trong suốt thời gian em học đại học và trong quá trình em thực hiện khóa luận này. Và cuối cùng tôi xin cảm ơn tất cả bạn bè của tôi, những người đã sát cánh cùng chia sẻ với tôi những lúc vui buồn giúp tôi có động lực để hoàn thành tốt khóa luận này. Xin chân thành cảm ơn DANH MỤC TỪ VIẾT TẮT STT TỪ VIẾT TẮT DIỂN GIẢI 1 VS Visual 2 CSDL Cơ sở dữ liệu 3 SQL Structured Query Language 4 SDLC System Development Life Cycle 5 RDMS Relational Database Management System ĐỀ CƯƠNG CHI TIẾT ĐỀ TÀI KHÓA LUẬN TỐT NGHIỆP I. THÔNG TIN CHUNG 1. Thông tin về sinh viên 1.1) Họ và tên: Vanpheng LATBUASY 1.2) Mã số SV: 2116100119 1.3) Ngành đào tạo: CÔNG NGHỆ THÔNG TIN 1.4) Khóa học:2016-2020 1.5) Lớp học:DT16CTT01 1.6) Địa chỉ liên lạc: 102 Hùng vương ,Tam kỳ, QuảngNam 1.7) Số điện thoại:0766541479 1.8) Email:vanphenglbsgmail.com 2. Đề tài Tên đề tài: XÂY DỰNG PHẦN MỀM QUẢN LÝ BÁN HÀNG 3. CẨn bộ hướng dẫn 3.1) Họ tên: Lê Thị Nguyên An 3.2) Chức vụ: GV 3.4) Học hàm, học vị: Th.S 3.5) Nơi công tác: Khoa CNTT - DHQN 3.6) Số điện thoại: 0906.541197 3.7) Email: lean29980gmail.com II. NỘI DUNG ĐỀ TÀI Phần 1. MỞ ĐẦU 1. Lý do chọn đề tài Trong thời đại ngày nay, ngành công nghệ thông tin đang phát triển vô cùng mạnh mẽ, nó đã chứng tỏ được sức mạnh của mình trong mọi lĩnh vực của cuộc sống. Ngành tin học đã và đang khẳng định vai trò, vị trí lớn của mình trong mọi lĩnh vực kinh tế, xã hội. Rất nhiều cơ quan công sở, xí nghiệp, trường học, bệnh viện... đã đưa tin học vào ứng dụng, trong đó việc quản lý thông tin là một ứng dụng cần thiết và mang lại nhiều lợi ích, nó giúp cho các công ty, xí nghiệp, trường học tiết kiệm được thời gian, tiền bạc, nhân công và có độ chính xác rất cao. Tại các cửa hàng vấn đề quản lý bán hàng là một trong những vấn đề cần thiết và cấp bách. Đề tài này sẽ giới thiệu một hệ thống bán hàng là một chương trình có thể quản lý thông tin như nhân viên, nhà cung cấp, sản phẩm và một số hệ thống khác Thông qua nhu cầu đó, em làm đề tài “xây dựng phần mềm quản lý bán hàng” nhằm giúp cho cửa hàng dễ dàng hơn trong quá trình quản lý. 2. Mục tiêu của đề tài Vận dụng thành công kiến thức chuyên ngành đã học như ngôn ngữ lập trình C, hệ quản trị cơ sở dữ liệu SQL vào thực tiễn nhằm xây dựng một phần mềm quản lý bán hàng tại nhà của em. Phần mềm sẽ là công cụ quản lí hữu ích, giúp cho cửa hàng thực hiện việc quản lí, lưu trữ dữ liệu một cách dễ dàng, tra cứu, thống kê dữ liệu khi cần thiết. 3. Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu: các kỹ thuật, công nghệ xây dựng phần mềm hiện nay và hệ thống thông tin quản lý bán hàng Phạm vi nghiên cứu: Nghiên cứu các vấn đề xoay quanh việc quản lý bán hàng. Từ đó viết nên một phần mềm quản lý bán hàng 4. Phương pháp nghiên cứu Điều tra, thu thập, phân tích, tổng hợp thông tin tài liệu liên quan đến đề tài để đưa ra mô hình quản lí phù hợp và tiến hành xây dựng phần mềm. 5. Lịch sử nghiên cứu Đề tài là lần đầu tiên em nghiên cứu và xây dựng hệ thống thông tin của cửa hàng. 6. Đóng góp của đề tài Đây là một phần mềm thiết thực và có tính ứng dụng cao. Phần mềm này có thể dùng để quản lý bán hàng tốt hơn, giúp người quản lí có một hệ thống lưu trữ lâu dài, truy xuất dữ liệu khi cần thiết, phục vụ cho sự nghiệp đào tạo và phát triển của cửa hàng. 7. Cấu trúc của đề tài Đề tài gồm 3 chương: Chương 1: Cơ sở lý thuyết của đề tài . Chương 2: Phân tích và thiết kế hệ thống quản lý bán hàng. Chương 3: Xây dựng hệ thống. Phần 2. NỘI DUNG NGHIÊN CỨU Chương 1:CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI 1.1. Tống quan về ngôn ngữ lập trình C 1.1.1. Khái niệm 1.1.2. Đặc trưng của ngôn ngữ C C là ngôn ngữ đơn giản Như ta đã biết thì ngôn ngữ C được xây dựng trên nền tảng C++ và Java nên ngôn ngữ C khá đơn giản. Nếu chúng ta thân thiện với C và C++ hoặc thậm chí là Java, chúng ta sẽ thấy C khá giống về diện mạo, cú pháp, biểu thức, toán tử và những 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ữ được đơn giản hơn. Một 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. C là ngôn ngữ hiện đại Một vài khái niệm khá mới mẻ đối với các bạn vừa mới học lập trình, như xử lý ngoại lệ, những kiểu dữ liệu mở rộng, bảo mật mã nguồn... Đây là những đặc tính được cho là của một ngôn ngữ hiện đại cần có của ngôn ngữ lập trình C. C là một ngôn ngữ lập trình theo hướng đối tượng Lập trình hướng đối tượng là một phương pháp lập trình có các tính chất sau: - Tính trừu tượng. - Tính đóng gói. - Tính đa hình. - Tính kế thừa. C là một ngôn ngữ ít từ khóa C là ngôn ngữ sử dụng giới hạn những từ khóa. Trong C thì có khoảng tám mươi từ khóa. Ngoài những đặc điểm trên thì còn một số ưu điểm nổi bật của C: - C có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, nên cũng khá dễ dàng tiếp cận và học nhanh với C. - C có thể biên dịch trên nhiều nền tảng máy tính khác nhau. - C được xây dựng trên nền tảng của C++ và Java nên nó được thừa hưởng những ưu điểm của ngôn ngữ đó. - C là một phần của .NET Framework nên được sự hỗ trợ khá nhiều từ bộ phận này. - C có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ. 1.1.3. Tính năng quan trọng của C Điều kiện boolean. Bộ sưu tập rác tự động. Thư viện chuẩn. Thuộc tính và sự kiện. Indexer. Compilation có điều kiện. Đa luồng đơn giản. LINQ và Lambda Expressions. Tích hợp với Windows. 1.2. Tống quan về hệ quản trị CSDL SQL server 2019 1.2.1. Khái niệm về cấu trúc vật lý Máy chủ (Server) Là nơi lưu trữ và xử lý dữ liệu, cung cấp tài nguyên. Máy trạm (Client) Là các máy tính được phép truy xuất các tài nguyên đã được chia sẻ trên mạng. Dây cáp mạng (Cable hoặc Media) Là một hệ thống dây cáp nối kết vật lý các máy tính, máy in lại với nhau. Dữ liệu chung (Shared data) Là các tập tin, thư mục mà người sử dụng trong hệ thống mạng có thể truy xuất vào máy chủ từ các máy trạm. Hình: 1.1 Mô hình client server 1.2.2. Khái niệm về các xử lý Các xử lý trong một ứng dụng có thể chia làm hai loại: Xử lý trên máy trạm - Đọc, cập nhật dữ liệu. - Tính toán, hiển thị dữ liệu trên màn hình giao diện. - Có thể sử dụng nhiều loại ngôn ngữ lập trình khác nhau: Java, C Sharp... Xử lý trên máy chủ Database Server - Xử lý các yêu cầu đọc hoặc ghi dữ liệu. - Quản lí đồng bộ dữ liệu giữa các yêu cầu đọc ghi từ nhiều máy trạm gửi tới. - Các dịch vụ quản trị dữ liệu tự động theo định kì như backup hoặc restore dữ liệu. 1.2.3. Ứng dụng khách chủ Giảm chi phí - Chia sẻ tài nguyên phần cứng hoặc phần mềm. - Giảm chi phí bản quyền. - Giảm chi phí nâng cấp, bảo trì, quản lí. Tốc độ xử lý nhanh - Các xử lý phức tạp có thể thực hiện tại server. Tính tương thích cao - Nhiều công cụ lập trình được hỗ trợ bởi phần mềm làm việc trên máy chủ. 1.2.4. Lịch sử ra đời Microsoft SQL Server 1970: IBM giới thiệu ngôn ngữ SEQUEL. 1987: IBM tích hợp phần mềm quản trị CSDL vào hệ điều hành OS2. 1988: Hệ quản trị CSDL Ashton-Tate được MS kết hợp với Sybase giới thiệu MS bắt đầu phát triển SQL Server trên nền Ashton-Tate và đưa vào WinNT Server sau đó. Các phiên bản được sử dụng của SQL Server: 4.2, 4.21, 6.0, 6.5, 7.0, 2000, 2005, 2008, 2010, 2012, 2012, 2014, 2016. 1.3 Mô tả hệ thống 1.3.1. Giới thiệu mô hình ba lớp Hình 1.2 : Mô hình lập trình ba lớp Mô hình ba-layer gồm có ba phần chính a) Presentation Layer (GUI) Lớp này có nhiệm vụ chính giao tiếp với người dùng. Nó gồm các thành phần giao diện (Winform, Webform,...) và thực hiện các công việc như nhập liệu, hiển thi dữ liệu, kiểm tra tính đúng đắn dữ liệu trước khi gọi lớp Business Logic Layer (BLL). b) Business Logic Layer (BLL) Layer này phân ra thành hai nhiệm vụ - Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI layer, xử lý chính nguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer và lưu xuống hệ quản trị CSDL. - Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực hiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về Presentation Layer. c) Data Access Layer (DAL) Lớp này có chức năng giao tiếp với hệ quản trị CSDL như thực hiện các công việc liên quan đến lưu trữ và truy vấn dữ liệu ( tìm kiếm, thêm, xóa, sửa,...). 1.3.2. Ưu điểm của mô hình lập trình ba lớp Việc phân chia rõ ràng như thế sẽ giúp các lập trình viên kiểm soát được khối lượng công việc. Khi ứng dụng đòi hỏi có sự tách biệt ba phần: giao diện, xử lý nghiệp vụ, giao tiếp với hệ quản trị CSDL để người viết có thể dễ dàng quản lí ứng dụng. Khi có lỗi xảy ra với một số thành phần xử lý nghiệp vụ không mong muốn. Ngoài ra với mô hình này nó còn tạo ra một không gian làm việc rất tốt để người thiết kế giao diện, lẫn người lập trình có thể làm việc chung với nhau một cách dễ dàng. Việc phân chia thành từng lớp giúp cho quá trình quản lí trở nên dễ dàng hơn. Nhờ vào việc chia ra từng lớp đảm nhận các chức năng khác nhau và riêng biệt như giao diện, xử lý, truy vấn thay vì để tất cả lại một chỗ nhằm giảm sự kết dính. d) Dễ bảo trì Khi được phân chia, thì một thành phần của hệ thống sẽ dễ thay đổi. Việc thay đổi này có thể được cô lập trong một lớp, hoặc ảnh hưởng đến lớp gần nhất mà không ảnh hưởng đến cả chương trình. e) Dễ phát triển, tái sử dụng cao Khi ứng dụng yêu cầu thay đổi hệ quản trị CSDL hoặc chuyển ứng dụng từ Window Application sang Web Application thì chỉ việc thay đổi lại lớp GUI. Khi có nhu cầu thay đổi hệ quản trị CSDL, ta chỉ cần thay đổi DAL phù hợp với hệ quản trị mới, giữ nguyên BLL, GUI và chạy lại chương trình. Việc xây dựng lại ứng dụng từ đầu rất tốn nhiều thời gian và chi phí. f) Dễ bàn giao Nếu mọi người đều theo một quy chuẩn đã được định sẵn, thì công việc bàn giao, tương tác với nhau sẽ dễ dàng hơn và tiết kiệm được nhiều thời gian. g) Dễ phân phối khối lượng công việc Mỗi một nhóm, một bộ phận sẽ nhận một nhiệm vụ và chức năng riêng đảm bảo quá trình xử lý nhanh chóng hơn. Lập trình với mô hình ba lớp giúp cho các lập trình viên có thể phân công công việc cụ thể cho nhau, mỗi người phụ trách một lớp và thực hiện lớp đó như vậy làm cho quá trình xử lí trở nên đơn giản hơn tốc độ xử lý nhanh hơn từ đó làm cho khối lượng xử lý công việc. 1.3.3. Thành phần của mô hình lập trình ba lớp Lớp Giao Diện( Presentation Layer (GUI)) Gồm có hai thành phần chính - UI Components Gồm các thành phần tạo nên giao diện của ứng dụng (GUI). Chúng chịu trách nhiệm thu thập và hiển thị dữ liệu cho người dùng. - UI Process Components Là thành phần chịu trách nhiệm quản lí các quá trình chuyển đổi giữa các UI. Lớp nghiệp vụ (Business Logic Layer (BLL)) - Lớp này gồm bốn thành phần - Service Interface Là thành phần giao diện lập trình mà lớp này cung cấp cho lớp Presentation sử dụng. - Bussiness Workflows Đây là lớp chính dữ liệu trước khi được hiển thị cho người dùng hoặc trả về DAL để xử lí đều phải thông qua BLL. Lớp này chịu trách nhiệm xác định và điều phối các quy trình nghiệp vụ. Những quy trình này phải được sắp xếp và thực hiện theo một thứ tự chính xác. - Bussiness Components Chịu trách nhiệm kiểm tra các quy tắc nghiệp vụ, ràng buộc logic và thực hiện các công việc . Các thành phần này cũng thực hiện các dịch vụ mà Service Interface cung cấp và Business Workflows sẽ sử dụng chúng. - Bussiness Entities Thường được sử dụng như Data Transfer Object ( DTO ). Bạn có thể sử dụng để truyền dữ liệu giữa các lớp (Presentation và Data Layer). Chúng thường là cấu trúc dữ liệu (DataSets, XML,...) hay các lớp đối tượng đã được tùy chỉnh. Lớp dữ liệu(Data Layer (DAL)) - Data Access Logic Components Chịu trách nhiệm chính lưu trữ và truy xuất dữ liệu từ các nguồn dữ liệu (Data Sources) như XML, file system,... Hơn nữa còn tạo thuận lợi cho việc dễ cấu hình và bảo trì. - Service Agents Chương 2 : PHÂN TÍCH VÀ THẾT KẾ HỆ THỐNG QUẢN LÝ BÁN HÀNG 2.1. Phân tích hệ thống 2.1.1. Phân tích hệ thống về mặt chức năng Xác định actor - Khách hàng Là người trực tiếp mua hàng từ cửa hàng, được thanh toán tiên, nhận hóa đơn từ cửa hàng. - Nhân viên Là nhân viên làm việc tại cửa hàng, có trách nhiệm thanh toán tiền cho khách hàng, giao hóa đơn cho khách hàng. - Quản lí Là người nắm được tình hình mua bán và doanh thu của cửa hàng. Quản lí nhân viên, thống kê nhập hàng, bán hàng, hàng tồn kho, doanh thu hằng thẨng hoặc theo quí để gửi lên cho cửa hàng trưởng được biết. Biểu đồ use case tổng quát Khái quát chức năng chính của hệ thống. Các chức năng này có tính tổng quát dễ dàng nhìn thấy được trên quan điểm của các tác nhân. Dựa vào yêu cầu của bài toán ta có use case tổng quát Ban hang Nhap hang Bao cao tong hop Quan Ly Dang nhap Nhan Vien Cap nhat Hình 2.1. Sơ đồ use case tổng quát Phân rã biểu đồ use case Từ use case tổng quát chúng ta biểu diễn lại thành dạng phân cấp gọi là phân rã biểu đồ use case thành các use case con trong đó sử dụng quan hệ để chỉ ra rằng một use case được sử dụng bởi một use case khác. - Use case đăng nhập + Tác nhân Nhân viên, quản lí + Mô tả Người quản lí có thể đăng nhập vào hệ thống và sử dụng tất cả các chức năng của phần mềm, còn nhân viên cũng được sử dụng chức năng này. Use case này cho phép nhân viên đăng nhập vào hệ thống để quản lí việc bán hàng tại cửa hàng. Tài khoản do người quản lí cung cấp cho nhân viên. Bảng 2.1. Chức năng đăng nhập Ri 1 Chức năng đăng nhập Loại R1.1 Chức năng đăng nhập Hiện R1.2 Chức năng thoát Hiện Nhan Vien Dang nhap Dang nhap he thong Thoat Hình 2.2. Use case nhập hàng - Use case quản lí nhập hàng Nhập hàng + Tác nhân Người quản lí + Điều kiện Phải đăng nhập được vào hệ thống. + Mô tả Use case này cho phép người quản lý nhập hàng. Khi hết hàng trong kho hay cửa hàng có nhu cầu nhập thêm hàng người quản lí sẽ nhập thông tin này làm cơ sở cho thủ kho nhập hàng vào kho. Nhưng trước khi nhận hàng, thủ kho sẽ kiểm tra hàng xem có đáp ứng cả về số lượng và chất lượng không. Nếu không đảm bảo một trong các yêu cầu thì thủ kho sẽ từ chối nhập hàng. Khi nhập hàng, thủ kho sẽ lập hóa đơn nhập kho điền đầy đủ thông tin nhà cung cấp, thông tin sản phẩm nhập kho.Có phân quản lí nhà cung cấp và phần xem thống kê nhập hàng. Bảng 2.2. Chức năng nhập hàng Ri 2 Chức năng nhập hàng Loại R2.1 Chức năng nhập hàng Ẩn R2.2 Chức năng lưu hàng Ẩn R2.3 Chức năng hủy Ẩn Quan Ly Nhap LuuNhap hang Huy Hình 2.3 Use case nhập hàng Nhà cung cấp + Tác nhân Người quản lí + Điều kiện Phải đăng nhập được vào hệ thống. + Mô tả Use case này cho phép người quản lí cập nhật thông tin của nhà cung cấp. Bảng 2.3. Chức năng quản lí nhà cung cấp Ri 2 Chức năng quản lí nhà cung cấp Loại R2.1 Chức năng thêm nhà cung cấp Ẩn R2.2 Chức năng thêm sửa nhà cung cấp Ẩn R2.3 Chức năng xóa nhà cung cấp Ẩn R2.4 Chức năng nhập lại nhà cung cấp Ẩn R2.5 Chức năng thoát Ẩn Quan Ly Xoa nha cung cap Them nha cung cap Sua nha cung cap Nhap loai nha cung cap Nha cung cap Thoat Hình 2.4. Use case nhà cung cấp Loại hàng + Tác nhân Người quản lí + Điều kiện Phải đăng nhập được vào hệ thống. + Mô tả Use case này cho phép quản lí loại hàng trong kho. Bảng 2.4. Chức năng quản lí loại hàng Ri 2 Chức năng quản lí loại hàng Loại R2.1 Chức năng thêm loại hàng Ẩn R2.2 Chức năng sửa loại hàng Ẩn R2.3 Chức năng xóa loại hàng Ẩn R2.4 Chức năng nhập lại loại hàng Ẩn R2.5 Chức năng thoát Ẩn Quan Ly Xoa loai hang Them loai hang Sua loai hang Nhap loai hang Loai hang Thoat Hình 2.5. Use case loại hàng Hàng hóa + Tác nhân Người quản lí + Điều kiện Phải đăng nhập được vào hệ thống. + Mô tả Use case này cho phép quản lý hàng hóa trong kho hàng. Bảng 2.5. Chức năng quản lý hàng hóa Ri 2 Chức năng quản lý hàng hóa Loại R2. 1 Chức năng thêm hàng hóa Ẩn R2. 2 Chức năng thêm sửa hàng hóa Ẩn R2, 3 Chức năng xóa hàng hóa Ẩn R2. 4 Chức năng nhập lại hàng hóa Ẩn R2. 5 Chức năng thoát Ẩn Quan Ly Xoa hang hoa Them hang ho...
Trang 1
TRƯỜNG ĐẠI HỌC QUẢNG NAMKHOA CÔNG NGHỆ THÔNG TIN
Trang 2LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn đến cô Lê Thị Nguyên An- người đã trực tiếp
hướng dẫn em hoàn thành khóa luận này Nếu không có những lời chỉ dẫn, những tài liệu,những lời động viên khích lệ của cô thì khóa luận này khó lòng thực hiện được
Em cũng chân thành cảm ơn các thầy cô trong Khoa Công nghệ thông tin - TrườngĐại học Quảng Nam đã tận tình chỉ bảo và giúp đỡ em trong suốt thời gian em học đại học và trong quá trình em thực hiện khóa luận này
Và cuối cùng tôi xin cảm ơn tất cả bạn bè của tôi, những người đã sát cánh cùng chia sẻ với tôi những lúc vui buồn giúp tôi có động lực để hoàn thành tốt khóa luận này.
Xin chân thành cảm ơn!
Trang 4ĐỀ CƯƠNG CHI TIẾT ĐỀ TÀI KHÓA LUẬN TỐT NGHIỆP I THÔNG TIN CHUNG
1 Thông tin về sinh viên
1.1) Họ và tên: Vanpheng LATBUASY
Trang 5II NỘI DUNG ĐỀ TÀIPhần 1 MỞ ĐẦU
1.Lý do chọn đề tài
Trong thời đại ngày nay, ngành công nghệ thông tin đang phát triển vô cùng
mạnh mẽ, nó đã chứng tỏ được sức mạnh của mình trong mọi lĩnh vực của cuộc sống.
Ngành tin học đã và đang khẳng định vai trò, vị trí lớn của mình trong mọi lĩnh vực kinh tế, xã hội Rất nhiều cơ quan công sở, xí nghiệp, trường học, bệnh viện đã đưa tin học vào ứng dụng, trong đó việc quản lý thông tin là một ứng dụng cần thiết và mang lại nhiều lợi ích, nó giúp cho các công ty, xí nghiệp, trường học tiết kiệm được thời gian, tiền bạc, nhân công và có độ chính xác rất cao Tại các cửa hàng vấn đề quản lý bán hàng là một trong những vấn đề cần thiết và cấp bách Đề tài này sẽ giới thiệu một hệ thống bán hàng là một chương trình có thể quản lý thông tin như nhân viên, nhà cung cấp, sản phẩm và một số hệ thống khác
Thông qua nhu cầu đó, em làm đề tài “xây dựng phần mềm quản lý bán
hàng” nhằm giúp cho cửa hàng dễ dàng hơn trong quá trình quản lý
2 Mục tiêu của đề tài
Vận dụng thành công kiến thức chuyên ngành đã học như ngôn ngữ lập trình C#, hệ quản trị cơ sở dữ liệu SQL vào thực tiễn nhằm xây dựng một phần mềm quản lý bán hàng tại nhà của em Phần mềm sẽ là công cụ quản lí hữu ích, giúp cho cửa hàng thực hiện việc quản lí, lưu trữ dữ liệu một cách dễ dàng, tra cứu, thống kê dữ liệu khi cần thiết.
3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: các kỹ thuật, công nghệ xây dựng phần mềm hiện nay
và hệ thống thông tin quản lý bán hàng
Phạm vi nghiên cứu: Nghiên cứu các vấn đề xoay quanh việc quản lý bán
hàng Từ đó viết nên một phần mềm quản lý bán hàng
4 Phương pháp nghiên cứu
Điều tra, thu thập, phân tích, tổng hợp thông tin tài liệu liên quan đến đề tài để đưa ra mô hình quản lí phù hợp và tiến hành xây dựng phần mềm.
5 Lịch sử nghiên cứu
Đề tài là lần đầu tiên em nghiên cứu và xây dựng hệ thống thông tin của cửa hàng.
Trang 66 Đóng góp của đề tài
Đây là một phần mềm thiết thực và có tính ứng dụng cao Phần mềm này có thể dùng để quản lý bán hàng tốt hơn, giúp người quản lí có một hệ thống lưu trữ lâu dài, truy xuất dữ liệu khi cần thiết, phục vụ cho sự nghiệp đào tạo và phát triển của cửa hàng.
7 Cấu trúc của đề tài
Đề tài gồm 3 chương:
Chương 1: Cơ sở lý thuyết của đề tài
Chương 2: Phân tích và thiết kế hệ thống quản lý bán hàng Chương 3: Xây dựng hệ thống.
Trang 7Phần 2 NỘI DUNG NGHIÊN CỨU
Chương 1:CƠ SỞ LÝ THUYẾT CỦA ĐỀ TÀI1.1 Tống quan về ngôn ngữ lập trình C#
1.1.1 Khái niệm
1.1.2 Đặc trưng của ngôn ngữ C#• C# là ngôn ngữ đơn giản
Như ta đã biết thì ngôn ngữ C# được xây dựng trên nền tảng C++ và Java nên ngôn ngữ C# khá đơn giản Nếu chúng ta thân thiện với C và C++ hoặc thậm chí là Java, chúng ta sẽ thấy C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những 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ữ được đơn giản hơn.
Một 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.
• C# là ngôn ngữ hiện đại
Một vài khái niệm khá mới mẻ đối với các bạn vừa mới học lập trình, như xử lý ngoại lệ, những kiểu dữ liệu mở rộng, bảo mật mã nguồn Đây là những đặc tính được cho là của một ngôn ngữ hiện đại cần có của ngôn ngữ lập trình C#.
• C# là một ngôn ngữ lập trình theo hướng đối tượng
Lập trình hướng đối tượng là một phương pháp lập trình có các tính chất sau:
Ngoài những đặc điểm trên thì còn một số ưu điểm nổi bật của C#:
- C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, nên cũng khá dễ dàng tiếp cận và học nhanh với C#
- C# có thể biên dịch trên nhiều nền tảng máy tính khác nhau.
- C# được xây dựng trên nền tảng của C++ và Java nên nó được thừa hưởng những ưu điểm của ngôn ngữ đó.
Trang 8- C# là một phần của NET Framework nên được sự hỗ trợ khá nhiều từ | bộ phận này.
- C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ
1.1.3 Tính năng quan trọng của C#
1.2 Tống quan về hệ quản trị CSDL SQL server 2019 1.2.1 Khái niệm về cấu trúc vật lý
Dây cáp mạng (Cable hoặc Media)
Là một hệ thống dây cáp nối kết vật lý các máy tính, máy in lại với nhau Dữ liệu chung (Shared data)
Là các tập tin, thư mục mà người sử dụng trong hệ thống mạng có thể truy xuất vào máy chủ từ các máy trạm.
Hình: 1.1 Mô hình client server
Trang 91.2.2 Khái niệm về các xử lý
Các xử lý trong một ứng dụng có thể chia làm hai loại:
Xử lý trên máy trạm
- Đọc, cập nhật dữ liệu
- Tính toán, hiển thị dữ liệu trên màn hình giao diện.
- Có thể sử dụng nhiều loại ngôn ngữ lập trình khác nhau: Java, C Sharp
Xử lý trên máy chủ Database Server
- Xử lý các yêu cầu đọc hoặc ghi dữ liệu
- Quản lí đồng bộ dữ liệu giữa các yêu cầu đọc ghi từ nhiều máy trạm gửi tới - Các dịch vụ quản trị dữ liệu tự động theo định kì như backup hoặc restore dữ liệu
1.2.3 Ứng dụng khách chủ
Giảm chi phí
- Chia sẻ tài nguyên phần cứng hoặc phần mềm - Giảm chi phí bản quyền.
- Giảm chi phí nâng cấp, bảo trì, quản lí Tốc độ xử lý nhanh
- Các xử lý phức tạp có thể thực hiện tại server Tính tương thích cao
- Nhiều công cụ lập trình được hỗ trợ bởi phần mềm làm việc trên máy chủ.
1.2.4 Lịch sử ra đời Microsoft SQL Server
1970: IBM giới thiệu ngôn ngữ SEQUEL
1987: IBM tích hợp phần mềm quản trị CSDL vào hệ điều hành OS2
1988: Hệ quản trị CSDL Ashton-Tate được MS kết hợp với Sybase giới thiệu MS bắt đầu phát triển SQL Server trên nền Ashton-Tate và đưa vào WinNT Server sau đó
Các phiên bản được sử dụng của SQL Server: 4.2, 4.21, 6.0, 6.5, 7.0, 2000, 2005, 2008, 2010, 2012, 2012, 2014, 2016
1.3 Mô tả hệ thống
Trang 10Hình 1.2 : Mô hình lập trình ba lớp
Mô hình ba-layer gồm có ba phần chính
Lớp này có nhiệm vụ chính giao tiếp với người dùng Nó gồm các thành phần giao diện (Winform, Webform, ) và thực hiện các công việc như nhập liệu, hiển thi dữ liệu, kiểm tra tính đúng đắn dữ liệu trước khi gọi lớp Business Logic Layer (BLL).
- Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của GUI layer, xử lý chính nguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer và lưu xuống hệ quản trị CSDL
- Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực hiện tính toán và xử lý các yêu cầu nghiệp vụ, trước khi trả kết quả về Presentation Layer
Lớp này có chức năng giao tiếp với hệ quản trị CSDL như thực hiện các công việc liên quan đến lưu trữ và truy vấn dữ liệu ( tìm kiếm, thêm, xóa, sửa, )
1.3.2 Ưu điểm của mô hình lập trình ba lớp
Việc phân chia rõ ràng như thế sẽ giúp các lập trình viên kiểm soát được khối lượng công việc.
Khi ứng dụng đòi hỏi có sự tách biệt ba phần: giao diện, xử lý nghiệp vụ, giao tiếp với hệ quản trị CSDL để người viết có thể dễ dàng quản lí ứng dụng Khi có lỗi xảy ra với một số thành phần xử lý nghiệp vụ không mong muốn.
Ngoài ra với mô hình này nó còn tạo ra một không gian làm việc rất tốt để người thiết kế giao diện, lẫn người lập trình có thể làm việc chung với nhau một cách dễ dàng.
Trang 11Việc phân chia thành từng lớp giúp cho quá trình quản lí trở nên dễ dàng hơn Nhờ vào việc chia ra từng lớp đảm nhận các chức năng khác nhau và riêng biệt như giao diện, xử lý, truy vấn thay vì để tất cả lại một chỗ nhằm giảm sự kết dính.
Khi được phân chia, thì một thành phần của hệ thống sẽ dễ thay đổi Việc thay đổi này có thể được cô lập trong một lớp, hoặc ảnh hưởng đến lớp gần nhất mà không ảnh hưởng đến cả chương trình
Khi ứng dụng yêu cầu thay đổi hệ quản trị CSDL hoặc chuyển ứng dụng từ Window Application sang Web Application thì chỉ việc thay đổi lại lớp GUI Khi có nhu cầu thay đổi hệ quản trị CSDL, ta chỉ cần thay đổi DAL phù hợp với hệ quản trị mới, giữ nguyên BLL, GUI và chạy lại chương trình
Việc xây dựng lại ứng dụng từ đầu rất tốn nhiều thời gian và chi phí.
Nếu mọi người đều theo một quy chuẩn đã được định sẵn, thì công việc bàn giao, tương tác với nhau sẽ dễ dàng hơn và tiết kiệm được nhiều thời gian
Mỗi một nhóm, một bộ phận sẽ nhận một nhiệm vụ và chức năng riêng đảm bảo quá trình xử lý nhanh chóng hơn Lập trình với mô hình ba lớp giúp cho các lập trình viên có thể phân công công việc cụ thể cho nhau, mỗi người phụ trách một lớp và thực hiện lớp đó như vậy làm cho quá trình xử lí trở nên đơn giản hơn tốc độ xử lý nhanh hơn từ đó làm cho khối lượng xử lý
Gồm các thành phần tạo nên giao diện của ứng dụng (GUI) Chúng chịu trách nhiệm thu thập và hiển thị dữ liệu cho người dùng.
Trang 12Đây là lớp chính dữ liệu trước khi được hiển thị cho người dùng hoặc trả về DAL để xử lí đều phải thông qua BLL Lớp này chịu trách nhiệm xác định và điều phối các quy trình nghiệp vụ Những quy trình này phải được sắp xếp và thực hiện theo một thứ tự chính xác.
- Bussiness Components
Chịu trách nhiệm kiểm tra các quy tắc nghiệp vụ, ràng buộc logic và thực hiện các công việc
Các thành phần này cũng thực hiện các dịch vụ mà Service Interface cung cấp và Business Workflows sẽ sử dụng chúng.
- Bussiness Entities
Thường được sử dụng như Data Transfer Object ( DTO ) Bạn có thể sử dụng để truyền dữ liệu giữa các lớp (Presentation và Data Layer) Chúng thường là cấu trúc dữ liệu (DataSets, XML, ) hay các lớp đối tượng đã được tùy chỉnh.
Lớp dữ liệu(Data Layer (DAL))
- Data Access Logic Components
Chịu trách nhiệm chính lưu trữ và truy xuất dữ liệu từ các nguồn dữ liệu (Data Sources) như XML, file system, Hơn nữa còn tạo thuận lợi cho việc dễ cấu hình và bảo trì.
- Service Agents
Trang 13Là nhân viên làm việc tại cửa hàng, có trách nhiệm thanh toán tiền cho khách hàng, giao hóa đơn cho khách hàng.
- Quản lí
Là người nắm được tình hình mua bán và doanh thu của cửa hàng Quản lí nhân viên, thống kê nhập hàng, bán hàng, hàng tồn kho, doanh thu hằng thẨng hoặc theo quí để gửi lên cho cửa hàng trưởng được biết
Biểu đồ use case tổng quát
Khái quát chức năng chính của hệ thống.
Các chức năng này có tính tổng quát dễ dàng nhìn thấy được trên quan điểm của
Hình 2.1 Sơ đồ use case tổng quát
• Phân rã biểu đồ use case
Trang 14Từ use case tổng quát chúng ta biểu diễn lại thành dạng phân cấp gọi là phân rã biểu đồ use case thành các use case con trong đó sử dụng quan hệ <<include>> để chỉ ra rằng một use case được sử dụng bởi một use case khác - Use case đăng nhập
+ Tác nhân Nhân viên, quản lí + Mô tả
Người quản lí có thể đăng nhập vào hệ thống và sử dụng tất cả các chức năng của phần mềm, còn nhân viên cũng được sử dụng chức năng này.
Use case này cho phép nhân viên đăng nhập vào hệ thống để quản lí việc bán hàng tại cửa hàng
Tài khoản do người quản lí cung cấp cho nhân viên.
Bảng 2.1 Chức năng đăng nhập
- Use case quản lí nhập hàng Nhập hàng + Tác nhân Người quản lí
+ Điều kiện Phải đăng nhập được vào hệ thống + Mô tả
Use case này cho phép người quản lý nhập hàng Khi hết hàng trong kho hay cửa hàng có nhu cầu nhập thêm hàng người quản lí sẽ nhập thông tin này làm cơ sở cho thủ kho nhập hàng vào kho.
Nhưng trước khi nhận hàng, thủ kho sẽ kiểm tra hàng xem có đáp ứng cả về số lượng và chất lượng không Nếu không đảm bảo một trong các yêu cầu thì thủ kho sẽ từ chối nhập hàng.
Trang 15Khi nhập hàng, thủ kho sẽ lập hóa đơn nhập kho điền đầy đủ thông tin nhà cung cấp, thông tin sản phẩm nhập kho.Có phân quản lí nhà cung cấp và phần xem
+ Tác nhân Người quản lí
+ Điều kiện Phải đăng nhập được vào hệ thống + Mô tả
Use case này cho phép người quản lí cập nhật thông tin của nhà cung cấp.
Bảng 2.3 Chức năng quản lí nhà cung cấp
Trang 16Quan Ly Xoa nha cung cap Sua nha cung cap
Nhap loai nha cung capNha cung cap
Hình 2.4 Use case nhà cung cấp
Loại hàng
+ Tác nhân Người quản lí
+ Điều kiện Phải đăng nhập được vào hệ thống.
+ Mô tả
Use case này cho phép quản lí loại hàng trong kho.
Bảng 2.4 Chức năng quản lí loại hàng
Ri[2] Chức năng quản lí loại hàng Loại
Quan Ly Xoa loai hang Them loai hang
Sua loai hang
Nhap loai hangLoai hang
Trang 17Hình 2.5 Use case loại hàng
Hàng hóa
+ Tác nhân Người quản lí
+ Điều kiện Phải đăng nhập được vào hệ thống + Mô tả
Use case này cho phép quản lý hàng hóa trong kho hàng.
Bảng 2.5 Chức năng quản lý hàng hóa
Them hang hoa
Sua hang hoa
Nhap lai hang hoaHang hoa
Hình 2.6 Use case hàng hóa
- Use case quản lý bán hàng
+ Tác nhân Nhân viên, quản trị viên
Trang 18+ Điều kiện
Sau khi nhập đúng tên đăng nhập và mật khẩu thì thông báo đăng nhập thành công vào hệ thống.
+ Mô tả
Dựa vào yêu cầu của khách hàng, nhân viên sẽ lập hóa đơn bán hàng, kiểm tra hàng trong kho xem có còn hay đáp ứng được không tìm hàng), nếu đáp ứng được thì sẽ giao hàng cho khách hàng và cập nhật thông tin vào hệ thống.
Nếu hàng trong kho không đáp ứng được thì thông báo cho khách hàng và yêu câu bộ phận kho phải tiến hành nhập thêm hàng.
Bảng 2.6 Chức năng bán hàng
R3.3 Chức năng xuất hóa đơn bán hàng Hiện
- Use case quản lý báo cáo tổng hợp Thống kê nhập hàng + Tác nhân Người quản lí
+ Điều kiện Phải đăng nhập thành công vào hệ thống + Mô tả
Dùng để thống kê danh sách hàng hóa đã nhập được trong ngày hoặc trong thẨng Sau đó có thể xuất ra hóa đơn làm báo cáo lên cửa hàng trưởng.
Trang 19R4.3 Chức năng thoát Ẩn
Quan Ly Xuat file Thong ke hang ton kho
Thong ke nhap hang
Hình 2.8 Use case thống kê nhập hàng
Thống kê bán hàng
+ Tác nhân Nhân viên, quản trị viên.
+ Điều kiện Phải đăng nhập được vào hệ thống + Mô tả
Dùng để thống kê danh sách hàng hóa đã bán được trong ngày hoặc trong thẨng Sau khi thống kê xong thì có thể chọn chức năng xuất hóa đơn để in hóa đơn và nộp báo cáo lên cửa hàng trưởng Thong ke ban hang
Hình 2.9 Use case thống kê bán hàng
Thống kê hàng tồn kho
+ Tác nhân Nhân viên, quản trị viên
+ Điều kiện Phải đăng nhập được vào hệ thống + Mô tả
Trang 20Sau một thời gian định kì,nhân viên sẽ kiểm tra trong kho còn bao nhiêu hàng, số lượng Chức năng thống kê hàng tồn kho sẽ biết được hàng trong kho có còn hay không số lượng hàng sẽ tăng lên khi ta nhập hàng và sẽ giảm dần khi ta bán hàng Sau khi hàng trong kho đã hết thì thông báo để nhập thêm hàng
Bảng 2.9 Chức năng thống kê hàng tồn kho
Quan Ly
Thong ke hang ton kho
Xuat file
HuyThong ke hang ton kho
Hình 2.10 Use case thống kê hàng tồn kho
Use case thống kê doanh thu + Tác nhân Quản lí
+ Điều kiện Khi đã đăng nhập được vào hệ thống + Mô tả
Cuối thẨng nhân viên sẽ thống kê doanh thu bán hàng báo cáo cho quản lí.
Bảng 2.10 Thống kê doanh thu
Ẩn
Trang 21Quan Ly Xuat file
HuyThong ke doanh thu
Hình 2.11 Use case doanh thu
- Use case cập nhật Use cập nhật nhân viên + Tác nhân Người quản lí
+ Điều kiện Phải đăng nhập thành công vào hệ thống + Mô tả
Khi có sự thay đổi về nhân sự của cửa hàng hoặc thay đổi tài khoản, mật old đăng nhập phần mềm.người quản lý sẽ thực hiện việc cập nhật thông tin.
Bảng 2.11.Chức năng cập nhật nhân viên
Them nhan vien
HuyNhan vien
Xoa nhan vien
Hình 2.12 Use case nhân viên
Use cập nhật khách hàng
+ Tác nhân Người quản lí, nhân viên bán hàng
Trang 22Quan Ly
Sua khach hangThem khach hang
Nhap lai khach hangXoa khach hangKhach hang
Hình 2.14 Use case khách hàng
Trang 24Tuần tự đăng nhập hệ thống
: Nhan Vien GD HE THONG GD DANG GD DANG NHAPNHAP CSDL 1.Yeu cau dang nhap
2 Goi form dang nhap
3 Hien thi form dang 4 Giao dien dang
5 Nhap tien dang nhap va mat khau
6 Kiem tra dang nhap
7 xac nhan
8.1 Dung dang nhap
8.2 Sai thong bao loi9.1 Thong bao dang nhap thanh cong
9.2 Thong bao tai khoan va mat khau khong chinh xac
1 Yeu cau nhap hang
2 Goi giao dien nhap hang
3 Hien thi giao dien4 Giao dien nhap hang
5 Chon loai hang chon nha cung cap nhap so luong, sua don hang
6 Nhan nut nhap hang
9 Nhap hang thanh cong
10 Nhan nut luu thong tin nhap hang13 Luu thanh cong
14 Nhan nut huy nhap hang
7 Xu ly nhap hang
8 Da xu ly yeu cau nhap hang
11 Xu ly luu thong tin12 Da xu ly yeu cau luu thong tin
15 Xu ly huy nhap hang
16 Da xu ly huy nhap hang