Đồ án giải thuật và lập trình quản lý vật tư

42 3.8K 29
Đồ án giải thuật và lập trình quản lý vật tư

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

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

Thông tin tài liệu

Chương trình quản lý vật tư nông nghiệp Bài toán giải quyết khá đầy đủ các chức năng cơ bản và bổ sung thêm các chức năng khác nhằm tối ưu hệ thống, đem lại một phần mềm cơ bản đáp ứng đầy đủ yêu cầu của người sử dụng. Các caais trúc dữ liệu và thuật toán đã được phân tích và lựa chọn kỹ lưỡng nhằm đem lại hiệu quả xử lý và tài nguyên bộ nhớ.

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình GVHD: Th.S Phan Chí Tùng 1 LỜI NÓI ĐẦU Cấu trúc dữ liệu và Phân tích, thiết kế giải thuật là hai học phần rất quan trọng đối với người lập trình. Học phần này được xem như nền tảng của lập trình máy tính. Nó là cơ sở vũng chắc để giải quyết nhiều bài toán, đồng thời cung cấp cho chúng ta hiểu biết về các giải thuật tác động lên dữ liệu, cũng như cách tổ chức dữ liệu hiệu quả để tối ưu bài toán. Sau khi học xong học phần lí thuyết, nhóm chúng em đã nghiên cứu và thực hiện đồ án này như là một cách để củng cố và mở rộng kiến thức. Thông qua quá trình thực hiện đồ án, chúng em đã nắm bắt được những kỹ thuật quan trọng của việc xây dựng cấu trúc dữ liệu và phân tích, thiết kế giải thuật sao cho tối ưu nhất. Bài toán “Quản lý vật tư” mà nhóm chúng em nghiên cứu và trình bày trong báo cáo sau đây là một ví dụ. Em xin chân thành cảm ơn thầy Phan Chí Tùng đã bổ sung ý tưởng và tận tình giúp đỡ chúng em thực hiện đồ án này. Em cũng rất mong nhận được sự góp ý từ phía thầy để bài làm của chúng em được hoàn thiện hơn. Đồ án Giải thuật và lập trình Nhóm: 11 SVTH: Ngô Trường Phạm Quang - 12T2, Nguyễn Thị Xuân Huệ - 12T2 2 ĐỀ TÀI Quản lý vật tư. Thực hiện các yêu cầu liên quan đến bài toán quản lý vật tư. Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình GVHD: Th.S Phan Chí Tùng 3 MỤC LỤC LỜI NÓI ĐẦU 1 ĐỀ TÀI 2 MỤC LỤC 3 DANH MỤC HÌNH ẢNH 5 DANH MỤC BẢNG BIỂU, SƠ ĐỒ 6 1. Sơ đồ 6 2. Bảng biểu 6 I. GIỚI THIỆU 7 1. Vật tư và vấn đề quản lý 7 2. Quản lý vật tư 7 3. Đề tài đồ án và hướng giải quyết 8 II. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG QUẢN LÝ 8 1. Phân tích bài toán 8 a. Yêu cầu bài toán 8 b. Dữ liệu vào 9 c. Dữ liệu ra 9 2. Thiết kế cấu trúc dữ liệu và giải thuật 9 a. Cấu trúc dữ liệu 9 b. Các giải thuật tương ứng cho các yêu cầu 11 c. Các giải thuật bổ sung khác 23 3. Đánh giá độ phức tạp của thuật toán 31 a. Thuật toán sắp xếp 31 b. Thuật toán tìm kiếm 32 c. Thuật toán liên quan đến tính toán và hiển thị 33 III. CÀI ĐẶT VÀ ĐÁNH GIÁ KẾT QUẢ 34 1. Cài đặt bài toán 34 a. Nhập dữ liệu từ file 35 b. Nhập dữ liệu từ bàn phím 35 c. In danh sách thông tin của tất cả vật tư 36 d. Bổ sung thêm một mẫu tin vào cuối danh sách 36 e. Tìm kiếm mẫu tin theo nhiều tiêu chí 36 f. Sắp xếp theo thứ tự giảm dần 36 Đồ án Giải thuật và lập trình Nhóm: 11 SVTH: Ngô Trường Phạm Quang - 12T2, Nguyễn Thị Xuân Huệ - 12T2 4 g. Sắp xếp theo thứ tự tăng dần 37 h. Chèn mẫu tin sao cho mảng vẫn được sắp xếp có thứ tự 37 i. Xóa một mẫu tin 38 j. Xóa vật tư có số lượng lớn hớn 100 38 k. Tính thành tiền 38 l. In bảng thống kê 39 m. Ghi dữ liệu vào file 39 n. Thoát khỏi chương trình 40 2. Đánh giá kết quả 40 KẾT LUẬN 41 TÀI LIỆU THAM KHẢO 42 Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình GVHD: Th.S Phan Chí Tùng 5 DANH MỤC HÌNH ẢNH Hình 1: Giao diện khởi chạy màn hình chính 34 Hình 2: Nhập dữ liệu thành công 35 Hình 3: Nhập dữ liệu không thành công 35 Hình 4: Nhập dữ liệu từ bàn phím 35 Hình 5: In danh sách thông tin của tất cả các vật tư 36 Hình 6: Tìm kiễm mẫu tin theo nhiều tiêu chí 36 Hình 7: Sắp xếp dữ liệu theo thứ tự tăng dần Mã vật tư 36 Hình 8: Chèn mẫu tin và sắp xếp theo thứ tự tăng dần Mã vật tư 37 Hình 9: Xóa một mẫu tin theo nhiều tiêu chí 38 Hình 10: Xóa các vật tư có số lượng lớn hơn 100 38 Hình 11: Tính thành tiền 38 Hình 12: Bảng thống kê theo các cột loại vật tư, số lượng, tổng tiền 39 Hình 13: Ghi dữ liệu vào file 39 Hình 14: Thoát khỏi chương trình 40 Đồ án Giải thuật và lập trình Nhóm: 11 SVTH: Ngô Trường Phạm Quang - 12T2, Nguyễn Thị Xuân Huệ - 12T2 6 DANH MỤC BẢNG BIỂU, SƠ ĐỒ 1. Sơ đồ Sơ đồ 1: Các thuật toán liên quan trong chương trình 31 2. Bảng biểu Bảng 1: Thông tin vật tư và kiểu dữ liệu 9 Bảng 2: Danh sách các hàm bổ sung 23 Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình GVHD: Th.S Phan Chí Tùng 7 I. GIỚI THIỆU 1. Vật tư và vấn đề quản lý Vật tư là bộ phận cơ bản trong toàn bộ tư liệu sản xuất của xã hội, bao gồm nguyên liệu, vật liệu, nhiên liệu, năng lượng và thiết bị máy móc. [1] Có thể phân loại vật tư theo các ngành nghề kinh doanh, sản xuất như sau: - Vật tư nông nghiệp - Vật tư y tế - Vật tư ngành nước - Vật tư ngành tin học - … Vật tư thường được cung cấp bởi các cửa hàng lớn, nhỏ khác nhau. Để kiểm soát được lượng vật tư nhập, xuất, tồn kho và các vấn đề liên quan khác, các cửa hàng này phải có phương pháp quản lý vật tư một cách hiệu quả để đảm bảo quá trình hoạt động được thông suốt. 2. Quản lý vật tư Để giải quyết bài toán quản lý vật tư, có nhiều giải pháp khác nhau đã được đưa ra và ứng dụng trong thực tế như: - Quản lý thông qua sổ sách - Quản lý thông qua phần mềm đa mục đích (Microsoft Excel, Microsoft Access,…) - Quản lý thông qua phần mềm đơn mục đích (Các phần mềm chuyên quản lý vật tư) - … Với mỗi phương pháp lại có nhiều hướng tiếp xúc và giải quyết vấn đề tối ưu khác nhau. Tuy nhiên, trong thời đại Công nghệ thông tin phát triển hiện nay, việc quản lý một cửa hàng vật tư nói riêng hay cửa hàng buôn bán nói chung đã trở nên đơn giản hơn rất nhiều với những phần mềm quản lý hữu hiệu và tiện lợi. Có thể kể đến các phần mềm của các công ty nổi tiếng như sau:  F.GMS – Công ty TNHH TM-DV tin học Tứ Huynh (FBsoft) [2]  BS Silver – Công ty cổ phần BlueSofts [3]  iBom.S – Công ty phần mềm iBom [4]  … Đồ án Giải thuật và lập trình Nhóm: 11 SVTH: Ngô Trường Phạm Quang - 12T2, Nguyễn Thị Xuân Huệ - 12T2 8 3. Đề tài đồ án và hướng giải quyết Với mục đích tạo một phần mềm quản lý vật tư đơn giản nhưng vẫn cung cấp đầy đủ các chức năng cơ bản của một phần mềm quản lý, nhóm chúng em đã nghiên cứu yêu cầu bài toán đặt ra một cách kỹ lưỡng, khảo sát thực tế các giải pháp quản lý, các cửa hàng vật tư hiện có,… và đã chọn hướng tiếp cận cụ thể vào bài toán quản lý vật tư của một cửa hàng vật tư nông nghiệp. Để quản lý các loại vật tư khác, giải pháp của chúng em đưa ra vẫn giải quyết ổn thỏa các yêu cầu, chỉ cần chỉnh sửa lại mã nguồn hiển thị sao cho phù hợp với yêu cầu mới. II. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG QUẢN LÝ 1. Phân tích bài toán a. Yêu cầu bài toán Viết chương trình quản lý cửa hàng vật tư, đọc dữ liệu từ file văn bản có lưu trữ khoảng 10-20 mẫu tin (record) và lưu vào mảng một chiều. Cụ thể hóa đề tài: Quản lý cửa hàng vật tư nông nghiệp Các yêu cầu liên quan đến bài toán:  In danh sách thông tin của tất cả vật tư  Bổ sung thêm một đối tượng vào cuối danh sách  Tìm kiếm mẫu tin theo các tiêu chí khác nhau và hiển thị mẫu tin đó  Sắp xếp theo thứ tự tăng dần/giảm dần  Chèn mẫu tin sao cho mảng vẫn được sắp xếp theo thứ tự  Xóa một mẫu tin  Xóa các vật tư có số lượng lớn hơn 100  Tính thành tiền Thành tiền = Số lượng * Đơn giá Thành tiền được giảm theo quy ước - Giảm 25% nếu Số lượng > 200 - Giảm 10% nếu 100 < Số lượng <= 200 - Giảm 0% nếu Số lượng <= 100  In ra bảng thống kê theo loại vật tư gồm các cột: Loại vật tư, Số lượng và Tổng tiền Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình GVHD: Th.S Phan Chí Tùng 9 b. Dữ liệu vào Thông tin vật tư bao gồm các trường: Tên trường Kiểu dữ liệu Mã vật tư char[6] Tên vật tư char[50] Loại vật tư char[20] Đơn vị tính char[4] Ngày nhập Date Nhà sản xuất char[30] Số lượng float Đơn giá float Thành tiền double Bảng 1: Thông tin vật tư và kiểu dữ liệu Vật tư được quản lý theo một mảng (danh sách đặc). Dữ liệu vào được nhập từ tệp tin có sẵn hoặc được nhập từ bàn phím c. Dữ liệu ra Dữ liệu ra bao gồm các yêu cầu đặt ra của bài toán, dữ liệu được xuất ra màn hình làm việc và có thể được ghi vào tệp tin nếu cần thiết. 2. Thiết kế cấu trúc dữ liệu và giải thuật a. Cấu trúc dữ liệu  Ngày nhập (ngày, tháng, năm) Cài đặt một cấu trúc gồm các trường ngày, tháng, tháng năm ở kiểu dữ liệu int. Khai báo: struct Date{ int day; int month; int year; };  Vật tư Cấu trúc Vật tư với tên VatTu gồm các trường Mã vật tư (maVT), Tên vật tư (tenVT), Loại vật tư (loaiVT), Đơn vị tính (donViTinh), Ngày nhập (ngayNhap), Đồ án Giải thuật và lập trình Nhóm: 11 SVTH: Ngô Trường Phạm Quang - 12T2, Nguyễn Thị Xuân Huệ - 12T2 10 Nhà sản xuất (nhaSX), Số lượng (soLuong), Đơn giá (donGia), Thành tiền (thanhTien) theo các kiểu dữ liệu tương ứng. Khai báo: typedef char infor1[6]; typedef char infor2[50]; typedef char infor3[20]; typedef char infor4[6]; typedef Date infor5; typedef char infor6[30]; typedef float infor7; typedef float infor8; typedef double infor9; struct VatTu{ infor1 maVT; infor2 tenVT; infor3 loaiVT; infor4 donViTinh; infor5 ngayNhap; infor6 nhaSX; infor7 soLuong; infor8 donGia; infor9 thanhTien; };  Danh sách vật tư Tạo danh sách vật tư là danh sách đặc (kiểu mảng) theo yêu cầu bài toán đặt ra. Khai báo: #define MAX 20 typedef VatTu List[MAX] List VT;  Các biến có liên quan khác: - Biến n (int): dùng để quản lý số lượng vật tư hiện tại Khai báo: int n; - Biến change (bool): dùng để kiểm soát sự thay đổi dữ liệu trong quá trình xử lý và đưa ra nhắc nhở lưu trữ dữ liệu khi cần thiết. [...]...Đề tài: Quản lý vật tư Khai báo: bool change = false; Đồ án Giải thuật và lập trình b Các giải thuật tư ng ứng cho các yêu cầu  In danh sách thông tin của tất cả các vật tư Hàm hiển thị thông tin của tất cả các vật tư hiện tại Dữ liệu vào: Danh sách vật tư, số lượng vật tư hiện tại Dữ liệu ra: Hiển thị lên màn hình danh sách vật tư hiện tại Cài đặt: void Display(List... \n"); }  Bổ sung thêm một đối tư ng vào cuối danh sách Hàm bổ sung thêm một đối tư ng vào cuối danh sách Dữ liệu vào: Danh sách vật tư, số lượng vật tự hiện tại và thông tin đối tư ng vật tư cần thêm vào Dữ liệu ra: Danh sách vật tư đã được bổ sung thêm đối tư ng GVHD: Th.S Phan Chí Tùng 11 Đồ án Giải thuật và lập trình Cài đặt: Nhóm: 11 void InsertLast(List &VT, int &n,char... Th.S Phan Chí Tùng 21 Đồ án Giải thuật và lập trình else { Nhóm: 11 VT[i].thanhTien = VT[i].soLuong*VT[i].donGia*0.75; } } }  In ra bảng thống kê theo loại vật tư gồm các cột: Loại vật tư, Số lượng và Tổng tiền Hàm được cài đặt nhằm in ra một danh sách tổng hợp, thống kê loại vật tư hiện có theo các cột loại vật tư, số lượng và tổng tiền Dữ liệu vào: Danh sách vật tư, số lượng vật tư hiện tại Dữ liệu... trúc dữ liệu của vật tư, bao gồm: Mã vật tư, Tên vật tư, Loại vật tư, Ngày nhập, Nhà sản xuất, Số lượng, Đơn giá, Thành tiền Dữ liệu vào: Danh sách vật tư, số lượng vật tư hiện tại Dữ liệu ra: Danh sách vật tư đã được sắp xếp theo tiêu chí định trước Dưới đây là hai hàm sắp xếp tăng dần, giảm dần theo tiêu chí Mã vật tư Các hàm khác tư ng tự với hàm này, chỉ thay đổi tham số truyền vào và cách thức so... chí nào đó, được người dùng nhập từ bàn phím Mỗi vật tư có rất nhiều tiêu chí để lựa chọn và xóa theo tiêu chí đó, ở đây chỉ đưa ra ví dụ xóa theo mã vật tư Các hàm còn lại tư ng tự, chỉ thay đổi tham số truyền vào SVTH: Ngô Trường Phạm Quang - 12T2, Nguyễn Thị Xuân Huệ - 12T2 18 Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình Khi xóa xong, chương trình sẽ hỏi người dùng có muốn lưu kết quả hay... lưu vật tư Hàm được tạo ra để tạo danh sách đặc và lưu các vật tư được nhập từ bàn phím/tệp tin Dữ liệu vào: Danh sách vật tư, số lượng vật tư Dữ liệu ra: Danh sách rỗng, sẵn sang cho việc lưu dữ liệu Cài đặt: void Create(List VT, int &n){ n = 0; }  Hàm hoán đổi vị trí của hai vật tư trong danh sách Hàm được cài đặt để hoán đổi vị trí của hai vật tư trong danh sách Dữ liệu vào: Danh sách vật tư, vị... Tùng 25 Đồ án Giải thuật và lập trình Nhóm: 11 InsertVT(VT,n,i,a,b,c,d,strtof(e,NULL),strtof(f,NULL),strt of(g,NULL),h,strtof(k,NULL),strtof(l,NULL)); } }  Hàm nhập dữ liệu từ bàn phím Hàm được cài đặt nhằm mục đích nhập dữ liệu một vật tư từ bàn phím để thêm vào danh sách vật tư hiện có Dữ liệu vào: Danh sách vật tư, số lượng hiện có, thông tin các vật tư được nhập từ bàn phím Dữ liệu ra: Vật tư với... hoán đổi vị trí của các mẫu tin có trong danh sách,… Để đánh giá độ phức tạp của thuật toán sử dụng trong đồ án, nhóm chúng em sẽ chia các thuật toán thành các nhóm có những tính chất chung để tiện trong việc đánh giá và đưa ra kết quả Việc đánh giá các thuật toán này được dựa trên phương pháp lý thuyết để đảm bảo tính đúng đắn khách quan của bài toán đặt ra Thuật toán Sắp xếp Tìm kiếm Tính toán và. .. GVHD: Th.S Phan Chí Tùng 19 Đồ án Giải thuật và lập trình Nhóm: 11 change = true; } else { printf("\nKhong luu lai ket qua da xoa.\n"); Display(VT,n); } } } }  Xóa các vật tư có số lượng lớn hơn 100 Hàm được cài đặt với mục đích xóa tất cả các vật tư có số lượng lớn hơn 100 trong danh sách Dữ liệu vào: Danh sách vật tư, số lượng vật tư hiện tại Dữ liệu ra: Danh sách vật tư đã được xóa đi theo yêu cầu... đồ 1: Các thuật toán liên quan trong chương trình a Thuật toán sắp xếp GVHD: Th.S Phan Chí Tùng 31 Đồ án Giải thuật và lập trình Nhóm: 11 Để thực hiện các yêu cầu của bài toán về sắp xếp tăng dần và giảm dần theo nhiều tiêu chí, nhóm chúng em đã quyết định lựa chọn thuật toán sắp xếp Quicksort quen thuộc như sau: Sắp xếp nhanh (Quicksort), còn được gọi là sắp xếp kiểu phân chia (part sort) là một thuật

Ngày đăng: 23/07/2015, 20:03

Tài liệu cùng người dùng

Tài liệu liên quan