1. Trang chủ
  2. » Công Nghệ Thông Tin

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

42 3,8K 29

Đ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

Thông tin cơ bản

Định dạng
Số trang 42
Dung lượng 502,85 KB

Nội dung

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ớ.

Trang 1

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

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

Trang 3

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

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

Trang 4

Đồ án Giải thuật và lập trình Nhóm: 11

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

Trang 5

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

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

Trang 7

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

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

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ư)

 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]

 …

Trang 8

Đồ án Giải thuật và lập trình Nhóm: 11

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

Trang 9

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

b Dữ liệu vào

Thông tin vật tư bao gồm các trường:

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

 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

Trang 10

Đồ án Giải thuật và lập trình Nhóm: 11

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;

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

Trang 11

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

Khai báo: bool change = false;

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 VT, int n){

printTableTitle();

for (int i = 0; i<n;i++){

}

 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

Trang 12

 Tìm kiếm mẫu tin theo các tiêu chí khác nhau và hiển thị mẫu tin đó

Các hàm tìm kiếm mẫu tin với mục đích tìm kiếm theo yêu cầu nào đó của người

sử dụng

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 cần tìm kiếm

Dữ liệu ra: Thông tin vật tư tìm kiếm được

Các hàm tìm kiếm theo tiêu các tiêu chí:

- Tìm kiếm theo mã vật tư

void SearchMaVT(List VT, int n, char* a){

Trang 13

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

} if(t==0) printf("\nKhong tim thay!\n");

}

- Tìm kiếm theo tên vật tư

void SearchTenVT(List VT, int n, char* b){

}

- Tìm kiếm theo loại vật tư

void SearchLoaiVT(List VT, int n, char* c){

Trang 14

}

- Tìm kiếm theo ngày nhập

Tìm kiếm theo ngày nhập được chia ra thành các hàm tìm kiếm con theo các phép so sánh =, >, >=, <, <= Dưới đây là khai báo hàm tìm kiếm theo phép so sánh =, các phép còn lại tương tự, chỉ khác nhau ở dấu của phép so sánh

void SearchNgayNhap1(List VT, int n, infor5 e){

}

- Tìm kiếm theo số lượng

Tương tự như với hàm tìm kiếm theo ngày nhập Dưới đây là hàm tìm kiếm theo phép so sánh =

void SearchSoLuong1(List VT, int n, infor7 g){

int t=0,i=0;

while (i<n) {

Trang 15

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

}

- Tìm kiếm theo đơn giá

Tương tự như với hàm tìm kiếm theo ngày nhập Dưới đây làm hàm tìm kiếm theo phép so sánh =

void SearchDonGia1(List VT, int n, infor8 h){

}

- Tìm kiếm theo thành tiền

Tương tự với hàm tìm kiếm theo ngày nhập Dưới đây là hàm tìm kiếm theo phép so sánh =

void SearchThanhTien1(List VT, int n, infor9 k){

int t=0,i=0;

Trang 16

}

 Sắp xếp theo thứ tự tăng dần/giảm dần

Hàm sắp xếp sử dụng danh sách vật tư hiện có, thực hiện quá trình sắp xếp và xuất ra một danh sách mới để tránh thay đổi dữ liệu hiện có Danh sách mới được hiển thị lên màn hình và hỏi người dùng có muốn lưu sự sắp xếp vào dữ liệu đang

có không Hàm tìm kiếm sẽ sử dụng đến biến change (bool) để kiểm tra có sự thay

đổi dữ liệu nguồn và đưa ra cảnh báo lưu dữ liệu lúc thoát khỏi chương trình Hàm được cài đặt để sắp xếp dữ liệu tăng dần, giảm dần theo nhiều tiêu chí có trong cấ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 sách cho các kiểu dữ liệu truyền vào

Trang 17

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

Khong dong y.\n");

//sap xep theo MA VAT TU _ giam dan void SortDecMaVT(List &VT,int n){

Trang 18

Đồ án Giải thuật và lập trình Nhóm: 11

Khong dong y.\n");

 Chèn mẫu tin sao cho mảng vẫn được sắp xếp theo thứ tự

Hàm chèn mẫu tin sao cho mảng vẫn được sắp xếp theo thứ tự được cài đặt với mục đích chèn dữ liệu vào mảng sao cho mảng vẫn được sắp xếp theo thứ tự tăng dần Dữ liệu được nhập từ bàn phím và lưu vào mảng Sau đó, hàm sẽ đưa ra thông báo nhắc nhở người dùng muốn lưu theo thứ tự nào với các tiêu chí: 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á Dữ liệu sau khi được sắp xếp sẽ có sự thay đổi và yêu cầu người dùng xác nhận có muốn lưu

sự thay đổi đó hay không

Dữ liệu vào: Dữ liệu vật tư cần chèn được nhập từ bàn phím

Dữ liệu ra: Danh sách vật tư vẫn được sắp xếp theo thứ tự tăng dần theo tiêu

chí nào đó do người dùng lựa chọn

Hàm được cài đặt tận dùng các hàm khác có sẵn trong chương trình, bao gồm:

- inputKeyboard() : Nhập dữ liệu từ bàn phím (Được trình bày trong phần các

giải thuật cho các yêu cầu khác)

- Các hàm sắp xếp danh sách vật tư đã được trình bày trong phần trên

 Xóa một mẫu tin

Hàm xóa mẫu tin được cài đặt để xóa một mẫu tin theo tiêu 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

Trang 19

Đề 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 không, nếu có thì biến change sẽ thay đổi thành true để lưu lại trạng thái đã thay đổi dữ liệu và cảnh bảo lúc thoát khỏi chương trình mà chưa lưu lại dữ liệu vào tệp tin

Dữ liệu vào: Danh sách vật tư, số lượng vật tư hiện tại và tiêu chí cần xóa

Dữ liệu ra: Danh sách vật tư đã được xóa và số lượng vật tư hiện tại

y.\n0 Khong dong y.\n");

Trang 20

 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 của hàm Cài đặt:

void DeleteSoLuong100(List &VT,int &n){

Trang 21

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

Khong dong y.\n");

 Tính thành tiền

Hàm tính thành tiền được cài đặt để tính thành tiền các vật tư đã có trong danh sách được nhập từ tệp tin/bàn phím Cách tính thành tiền như theo yêu cầu của bài toá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 tính thành tiền

Cài đặt:

void tinhThanhTien(List &VT, int n){

for (int i = 0; i<n; i++){

Trang 22

 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 ra: In ra bản thống kê theo yêu cầu trên màn hình

Trang 23

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

} for (int i = 0; i < (k+1) ; i++){

printf("\n| -|\n");

|%20s\t|\t%5.1f\t|\t%14.0f|",i+1,sumList[i].loaiVT,sumList[i] soLuong,sumList[i].thanhTien);

} printf("\n - -\n");

}

c Các giải thuật bổ sung khác

5 inputKeyboard() Nhập dữ liệu từ bàn phím

6 outputFile() Xuất dữ liệu ra tệp tin txt

7 Displayi() Hiển thị phần tử thứ i trong danh sách

9 InsertLast() Thêm vật tư vào cuối danh sách

10 InsertVT() Chèn vật tư liên tiếp vào danh sách

11 printTitle() In tiêu đề của giao diện chương trình

12 printTableTitle() In tiêu đề bảng hiển thị danh sách

13 updateSourceData() Cập nhật dữ liệu nguồn khi lưu dữ liệu

Bảng 2: Danh sách các hàm bổ sung

 Hàm kiểm tra ngày nhập

Hàm được cài đặt để kiểm tra ngày nhập vào

Dữ liệu vào: Ngày (ngày, tháng, năm)

Dữ liệu ra: true nếu là ngày hợp lệ, false nếu không hợp lệ

Trang 24

} }

 Hàm tạo danh sách đặc để 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ị trí nguồn, vị trí đích

Dữ liệu ra: Danh sách vật tư có hai phần tử ở vị trí nguồn và đính đã được hoán

Trang 25

Đề tài: Quản lý vật tư Đồ án Giải thuật và lập trình

}

 Hàm nhập dữ liệu từ file

Hàm được cài đặt để nhập dữ liệu từ tệp tin SData.txt trong cùng thư mục tệp tin mã nguồn, tiện lợi và đỡ tốn công nhập từ bàn phím lúc thực hiện chương trình

mà vẫn đảm bảo hiệu quả

Dữ liệu vào: Tệp tin dữ liệu, danh sách vật tư rỗng

Dữ liệu ra: Danh sách vật tư đã được nhập và số lượng vật tư hiện tại

FILE *fi = fopen("SData.txt","r");

if (fi == NULL) printf("Khong tim thay tap tin du lieu

""Data.txt"", vui long kiem tra lai.\n");

for (int i = 0;i<=20;i++){

if(fgets(a,100,fi) == NULL) break; 1]='\0';

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

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Trang web: https://voer.edu.vn/m/cac-khai-niem-co-ban-ve-vat-tu-va-tiet-kiem-vat-tu/ea0ea62c Link
[2] Trang web: http://www.fbsoft.com.vn/Stock.htm Link
[3] Trang web: http://www.bluesofts.net/giai-phap-phan-mem/bs-silver-phan-mem-quan-ly-kho.html Link
[4] Trang web: http://ibom.com.vn/index.php?route=product/product&amp;product_id=109 [5] Trang web: http://vi.wikipedia.org/wiki/Sắp_xếp_nhanh Link
[6] Trang web: http://www.bloodshed.net/c/index.html Link

TỪ KHÓA LIÊN QUAN

w