CHƯƠNG 1: MÔ TẢ BÀI TOÁN 1. Lý do chọn bài toán 1. Công nghệ thông tin hiện nay Trong những thập kỉ gần đây, công nghệ nói chung đang phát triển rất nhanh chóng và đạt được nhiều thành tựu vượt bậc trong nhiều lĩnh vực khác nhau, một trong số đó phải kể đến lĩnh vực công nghệ thông tin. Ngày nay, công nghệ thông tin đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày, nó được sử dụng rộng rãi như một công cụ quan trọng, giúp nâng cao hiệu quả và tăng độ chính xác trong công việc.
Phân tích và thiết kế hệ thống thông tin quản lý là một phần quan trọng của công nghệ thông tin. Nó giúp con người có thể quản lý cơ sở dữ liệu một cách hiệu quả, đơn giản và nhanh chóng hơn, giúp tiết kiệm thời gian và nguồn nhân lực. Bài toán quản lý cửa hàng thú nuôi Cùng với sự phát triển của công nghệ thông tin, các chương trình phục vụ cho việc quản lý nhà hàng, khách sạn, cửa hàng, …đã không còn xa lạ đối với doanh nghiệp và nhà kinh doanh. Tuy nhiên, trên thực tế, tại một số nhà hàng, cửa hàng, .trong đó có các cửa hàng thú nuôi, các nghiệp vụ quản lý và thanh toán vẫn được thực hiện thủ công, điều này có thể dẫn đến những vấn đề như nhầm lẫn, chậm trễ và gây phiền toái cho khách hàng.
Mặt khác, số ít khác cũng đã áp dụng các chương trình quản lý vào kinh doanh nhưng vẫn chưa thực sự đạt hiệu quả cao. Để giải quyết vấn đề trên, các cửa hàng cần áp dụng công nghệ thông tin vào quản lý và thanh toán hoá đơn cho khách hàng. Việc sử dụng một phần mềm chuyên nghiệp trong các nghiệp vụ của cửa hàng sẽ làm tăng khả năng quản lý, đồng thời cũng tăng độ chính xác, tránh nhầm lẫn và tiết kiệm thời gian hơn trong thanh toán. Vì vậy, nhóm chúng em đã quyết định giải quyết bài toán “Xây dựng chương trình quản lí cửa hàng thú nuôi”.
Tuy nhiên, do kiến thức còn hạn chế nên không thể tránh khỏi có những thiếu sót, mong cô sẽ đóng góp ý kiến để bài tập lớn của nhóm em được hoàn chỉnh hơn.2 Phát biểu bài toán 1. Phân loại đối tượng Bài toán hướng tới quản lý 4 đối tượng, gồm: Kho (tên kho, thông tin thú nuôi, thông tin mặt hàng, địa chỉ) 1 Hóa đơn - Hóa đơn mua (mã hóa đơn mua, tên khách hàng, địa chỉ, mặt hàng, số lượng, dơn giá, thành tiền, ngày/tháng/năm mua) - Hóa đơn nhập (mã hóa đơn nhập, mã nhà cung cấp, tên nhà cung cấp, địa chỉ, mặt hàng, số lượng, giá nhập, thành tiền, ngày/tháng/năm nhập) Khách hàng (mã khách hàng, tên khách hàng, địa chỉ, số điện thoại, năm sinh) Nhà cung cấp (mã nhà cung cấp, tên nhà cung cấp, địa chỉ, số điện thoại) 1. Mô tả hệ thống Với mỗi đối tượng thì chương trình quản lí cưả hàng thú nuôi sẽ: Người quản lí: quản lí doanh thu, quản lí khách hàng, quản lí nhân viên, quản lí việc nhập, mua các loại mặt hàng và thú nuôi, quản lý giá nhập và giá bán. Thủ kho: quản lí việc mua, nhập các loại mặt hàng và thú nuôi, kiểm tra số lượng tồn kho của các loại mặt hàng và thú nuôi đó.
Thu ngân: nhập thông tin khách hàng và tạo các hóa đơn nhanh chóng, tiết kiệm thời gian. Xác định bài toán 1. Thông tin đầu vào Thông tin các kho và các mặt hàng, thú nuôi có trong kho Thông tin của hóa đơn nhập và hóa đơn mua Thông tin của khách hàng Thông tin của nhà cung cấp 1. Thông tin đầu ra Thống kê doanh thu theo tháng và năm Thống kê tổng số khách hàng của cửa hàng Thống kê tổng số nhà cung cấp của cửa hàng 1.
Công cụ sử dụng Những công nghệ, kĩ thuật, giải pháp sử dụng: Ngôn ngữ lập trình: C++ Phần mềm hỗ trợ lập trình: Dev C++ Phần mềm hỗ trợ thực hiện báo cáo: Microsoft word, Microsoft Powerpoint, Canva. 2 CHƯƠNG 2: PHÂN TÍCH CÁC CHỨC NĂNG CỦA BÀI TOÁN Quản lý cửa hàng thú cưng đòi hỏi một hệ thống quản lý tích hợp để đảm bảo các chức năng được thực hiện hiệu quả. Phân tích thiết kế chức năng của hệ thống quản lý cửa hàng thú nuôi đòi hỏi hiểu rõ về các yêu cầu cụ thể và mô hình kinh doanh của cửa hàng đó. Dưới đây là một số chức năng quan trọng mà bạn có thể tích hợp vào hệ thống quản lý cửa hàng thú nuôi: 2.
Quản lí kho Quản lý kho trong cửa hàng thú nuôi là quá trình tổ chức và điều phối các hoạt động liên quan đến nhập, xuất, và duy trì hàng tồn kho của các sản phẩm thú cưng, thức ăn, phụ kiện và các dịch vụ khác. Mục tiêu chính của quản lý kho là đảm bảo sẵn có đủ hàng hóa để đáp ứng nhu cầu của khách hàng trong khi tối ưu hóa chi phí và quản lý hiệu suất. Nhập thông tin kho: nhập thông tin về kho hàng, các mặt hàng trong kho, chủng loại thú nuôi và số lượng mặt hàng. Thông tin này sẽ được sử dụng để theo dõi và quản lí sản phẩm trong kho.
o Nhập thông tin chi tiết về kho hàng: tên kho, địa chỉ o Nhập thông tin chủng loại thú nuôi: số lượng, giá cả thú nuôi o Nhập thông tin mặt hàng: tên mặt hàng, số lượng, giá cả mặt hàng In thông tin trong kho: thông tin kho hàng, thông tin thú nuôi và thông tin mặt hàng o In thông tin kho hàng: tên kho, địa chỉ o In thông tin thú nuôi: chủng loại, tên, số lượng, giá cả thú nuôi o In thông tin mặt hàng: tên, số lượng, giá cả mặt hàng Ghi file kho hàng Đọc file kho hàng 2. Hóa đơn mua hàng Hóa đơn mua hàng của cửa hàng thú nuôi là một tài liệu quan trọng thể hiện thông tin về giao dịch mua sắm giữa cửa hàng và khách hàng. Nhập hóa đơn mua hàng: mã hóa đơn, tên khách hàng, địa chỉ, mặt hàng, số lượng, đơn giá và ngày mua hàng In hóa đơn mua hàng: mã hóa đơn, tên khách hàng, địa chỉ, mặt hàng, số lượng, đơn giá, ngày mua hàng, thành tiền Ghi file hóa đơn mua hàng Đọc file hóa đơn mua hàng 3 2. Hóa đơn nhập hàng Hóa đơn nhập hàng là một tài liệu quan trọng trong quản lý kho và ghi chép giao dịch mua sắm sản phẩm từ nhà cung cấp.
Nhập hóa đơn nhập hàng: mã hóa đơn, mã nhà cung cấp, tên nhà cung cấp, địa chỉ, mặt hàng, số lượng, ngày nhập hàng và giá nhập In hóa đơn nhập hàng: mã hóa đơn, mã nhà cung cấp, tên nhà cung cấp, địa chỉ, mặt hàng, số lượng, giá nhập, ngày nhập hàng và thành tiền Ghi file hóa đơn nhập hàng Đọc file hóa đơn nhập hàng 2. Quản lí khách hàng Quản lý khách hàng là một phần quan trọng trong hoạt động của cửa hàng thú nuôi, giúp theo dõi thông tin về khách hàng, tạo mối quan hệ và cung cấp dịch vụ tốt nhất. Nhập thông tin khách hàng: mã, tên, địa chỉ, số điện thoại, năm sinh của khách hàng Thêm, sửa, xóa khách hàng: o Ghi chú thông tin chi tiết về khách hàng khi họ tạo tài khoản hoặc mua hàng lần đầu. o Cho phép cập nhật thông tin của khách hàng khi có sự thay đổi, ví dụ như địa chỉ hoặc số điện thoại.
o Cho phép xóa thông tin của khách hàng nếu họ yêu cầu hoặc không muốn duy trì tài khoản. Duyệt danh sách khách hàng đã thêm: mã khách hàng, tên khách hàng, địa chỉ, số điện thoại, năm sinh Lưu thông tin khách hàng vào file In thông tin khách hàng từ file: mã khách hàng, tên khách hàng, địa chỉ, số điện thoại, năm sinh Quản lý khách hàng không chỉ giúp cửa hàng duy trì mối quan hệ tốt với khách hàng mà còn tối ưu hóa quy trình kinh doanh và tăng cường khả năng tiếp cận và hiểu biết về thị trường. Quản lí nhà cung cấp Quản lý nhà cung cấp giúp đảm bảo sản phẩm đầy đủ, duy trì mối quan hệ đối tác vững chắc và đảm bảo nguồn cung sản phẩm liên tục và chất lượng. Nhập thông tin nhà cung cấp: nhập mã, tên, địa chỉ, số điện thoại của nhà cung cấp Thêm, sửa, xóa nhà cung cấp: 4 - Sử dụng vòng lặp while để kiểm tra năm sinh, nếu năm sinh nhập vào nhỏ hơn 1100, yêu cầu nhập lại cho đến khi năm sinh lớn hơn 1100.
- Tạo một node mới. Node mới này sẽ chứa thông tin về khách hàng và có con trỏ next trỏ đến NULL. - Gán thông tin về khách hàng vừa nhập vào node vừa tạo. Đảm bảo rằng con trỏ next của node mới trỏ đến NULL.
Trả về node mới vừa tạo. Void themkhachhang(): Thêm khách hàng mới vào danh sách - Gọi hàm makeNode(khach) để tạo một node mới chứa thông tin về khách hàng mới. - Thực hiện nhập các thông tin của khách hàng. Void duyetkhachhang(): Duyệt thông tin của khách hàng vừa nhập - Sử dụng vòng lặp while để duyệt qua danh sách liên kết khách hàng.
Vòng lặp sẽ được thực hiện cho đến khi con trỏ đến cuối danh sách. - Mỗi lần lặp, in ra màn hình thông tin chi tiết về một khách hàng, bao gồm mã khách hàng, tên khách hàng, địa chỉ, số điện thoại, và năm sinh. Void suaKHang(): Sửa thông tin của khách hàng đã có - Thực hiện nhập mã khách hàng cần sửa thông tin. - Sử dụng vòng lặp while để duyệt qua danh sách liên kết và tìm khách hàng có mã trùng khớp với mã được nhập.
Nếu tìm thấy, hiển thị thông tin chi tiết về khách hàng và yêu cầu nhập thông tin mới. Thông tin mới này sẽ được gán trực tiếp vào node tương ứng trong danh sách liên kết. Ngược lại, thông báo “Không tìm thấy khách hàng cần sửa”. Void xoakhachhang(): Xóa khách hàng ra khỏi danh sách - Thực hiện nhập mã khách hàng cần xóa.
- Xóa luôn node đầu tiên nếu mã được nhập vào trùng khớp. Ngược lại, thực hiện xóa các node khác trong danh sách bằng cách sử dụng vòng lặp while để kiểm tra mã khách hàng trùng khớp với mã được nhập. Mỗi khi xóa, giải phóng bộ nhớ cho node được xóa. Void khachInFile(): Ghi thông tin khách hàng vào file - Tạo một đối tượng ‘fstream’ với tên ‘fout2’ để ghi dữ liệu vào file có tên là ‘Filenamekhach’.
- Kiểm tra xem việc mở file có thành công hay không. Sau đó, sử dụng vòng lặp để duyệt qua danh sách liên kết khách hàng.