1. Trang chủ
  2. » Luận Văn - Báo Cáo

Cấu trúc dữ liệu và giải thuật Đề tài xây dựng bài toán quản lý nhà cung cấp sản phẩm

28 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Xây Dựng Bài Toán Quản Lý Nhà Cung Cấp Sản Phẩm
Tác giả Đặng Văn Tuấn Anh
Người hướng dẫn ThS. Nguyễn Đình Tuệ
Trường học Trường Đại Học Đại Nam
Chuyên ngành Công Nghệ Thông Tin
Thể loại bài tập lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 28
Dung lượng 0,9 MB

Nội dung

Môn học này cung cấp những kiến thức cơ bản và nâng cao về các cấu trúc dữliệu và giải thuật, đồng thời đào tạo sinh viên cách sử dụng chúng một cách hiệu quả.Bằng cách nghiên cứu môn nà

Trang 1

BỘ GIÁO DỤC & ĐÀO TẠO

TRƯỜNG ĐẠI HỌC ĐẠI NAM

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

TÊN HỌC PHẦN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

CẤP SẢN PHẨM

Ngành: Công nghệ thông tin

Sinh viên thực hiện:

Đặng Văn Tuấn Anh– CNTT 16-03

Mã sinh viên: 1671020011

Giảng viên giảng dạy:

ThS Nguyễn Đình Tuệ

HÀ NỘI, 2023

Trang 2

BỘ GIÁO DỤC & ĐÀO TẠO

TRƯỜNG ĐẠI HỌC ĐẠI NAM

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

TÊN HỌC PHẦN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

CẤP SẢN PHẨM

Bằng số

Bằng chữ

02 1671020011 Đặng Văn Tuấn Anh 12/10/2004

Cán bộ chấm thi:

ThS Nguyễn Đình Tuệ

HÀ NỘI, 2023

Trang 3

LỜI NÓI ĐẦU

Cấu trúc dữ liệu và giải thuật là một trong những môn học cơ bản của sinh viênngành Công nghệ thông tin Các cấu trúc dữ liệu và các giải thuật được xem như là 2 yếu

tố quan trọng nhất trong lập trình, đúng như câu nói nổi tiếng của Niklaus Wirth: Chươngtrình = Cấu trúc dữ liệu + Giải thuật (Programs = Data Structures + Algorithms) Nắmvững các cấu trúc dữ liệu và các giải thuật là cơ sở để sinh viên tiếp cận với việc thiết kế

và xây dựng phần mềm cũng như sử dụng các công cụ lập trình hiện đại

Môn học cấu trúc dữ liệu và giải thuật đóng vai trò quan trọng trong việc xâydựng nền tảng cho các kỹ sư phần mềm và những người làm việc trong lĩnh vực côngnghệ thông tin, giúp họ trở thành những người phát triển phần mềm có kỹ năng và hiểubiết sâu rộng về tối ưu hóa và quản lý dữ liệu

Môn học này cung cấp những kiến thức cơ bản và nâng cao về các cấu trúc dữliệu và giải thuật, đồng thời đào tạo sinh viên cách sử dụng chúng một cách hiệu quả.Bằng cách nghiên cứu môn này, sinh viên sẽ: hiểu rõ hơn về cách hoạt động của cáccấu trúc dữ liệu, nắm vững về giải thuật và thuật toán, phát triển kỹ năng giải quyếtvấn đề, tối ưu hóa hiệu suất chương trình.Để giải quyết các vấn đề nêu trên, cấu trúc dữliệu ra đời để giải cứu Dữ liệu có thể được tổ chức theo cấu trúc dữ liệu theo cách mà tất

cả các mục có thể không được yêu cầu tìm kiếm và dữ liệu cần thiết có thể được tìm kiếmgần như ngay lập tức

Hầu hết các chương trình, ứng dụng hiện nay đều phải có dữ liệu và xử lý chúng, vì vậy Cấu trúc dữ liệu và giải thuật rất quan trọng trong cả học tập và đi làm

Trang 4

có thể vững bước sau này.

Với bài tập lớn có đề tài là: Bài toán quản lí nhà cung cấp sản phẩm của em chắcchắn đã không hoàn thiện một cách tốt nhất nếu không có thầy Nguyễn Đình Tuệ- người

đã giảng dạy rất nhiệt tình, năng nổ, hăng say, và đã trực tiếp hướng dẫn em cùng các bạntrong lớp thực hiện làm bài tập lớn một cách hoản chỉnh nhất Bài tập lớn của em chắcchắn sẽ khó thể tránh được những sai sót Em rất mong nhận được những nhận xét và góp

ý từ thầy giúp bài tập lớn của em được hoàn thiện hơn Một lần nữa em xin gửi cảm ơn

và e xin chúc sức khỏe đến thầy Hồ và các thầy, cô trong khoa Công Nghệ Thông Tintrường Đại học Đại Nam

Em xin chân thành cảm ơn!

Trang 5

mục luc

Trang 6

MỤC LỤC HÌNH ẢNH

Trang 7

CHƯƠNG I GIỚI THIỆU ĐỀ TÀI QUẢN LÝ NHÀ CUNG CẤP SẢN PHẨM

1.1 Giới thiệu đề tài quản lý nhà cung cấp sản phẩm

Quản lý nhà cung cấp sản phẩm là một đề tài quan trọng trong lĩnh vực kinh tế Nóđóng vai trò quan trọng trong việc tổ chức, theo dõi và hỗ trợ khách hàng trong quá trìnhmua bán trao đổi hàng hoá của khách hàng Quản lí nhà cung cấp sản phẩm không chỉđơn thuần là việc lưu trữ thông tin cá nhân của người bán , mà còn liên quan đến việc tạođiều kiện thuận lợi cho của hàng để họ đạt được tiềm năng tối đa

Công nghệ thông tin đóng vai trò quan trọng trong việc quản lí nhà cung cấp sảnphẩm hiệu quả Hệ thống quản lý nhà cung cấp sản phẩm thông minh giúp tự động hóaquá trình thu thập, xử lí và báo cáo thông tin sản phẩm Bằng cách sử dụng các phầnmềm và ứng dụng phù hợp, quản lý sản phẩm được thực hiện một cách nhanh chóng vàchính xác, giúp tiết kiệm thời gian và công sức cho các cơ quan , nhà cung cấp sản phẩm.Tóm lại, quản lí nhà cung cấp sản phẩm là một đề tài quan trọng trong lĩnh vực kinh

tế Nó đóng vai trò quan trọng trong việc quản lý các sản phẩm đảm bảo được sự an toàn,chính xác Qua việc quản lí các nhà cung cấp sản phẩm, theo dõi tiến trình cung cấp cácdịch vụ hỗ trợ , quản lý nhà cung cấp sản phẩm đóng góp vào việc xây dựng một môitrường làm việc và an toàn , số lượng hàng một cách chính xác nhất

1.2 Quản lý thông tin sản phẩm

Quản lý hàng tồn tại: Phần mềm cho phép nhập thông tin về các loại sản phẩm mànhà cung cấp có , bao gồm bao thông tin về tên sản phẩm, danh sách sản phẩm, số lượng,giá cả và nhà cung cấp Nó cũng cung cấp các công cụ để kiểm soát và theo dõi số lượnghàng tồn tại, cảnh báo khi hàng tồn tại ở mức tối thiểu và tạo báo cáo thống kê số lượnghàng tồn tại

1.3 Quản lý thông tin

Hệ thống quản lý thuốc có thể lưu trữ và quản lí thông tin cá nhân của khách hàngnhư tên , địa chỉ, thông tin sản phẩm còn tồn kho

1.4.Tương tác với khách hàng

Hệ thống cung cấp giao diện để khách hàng đăng ký, hủy đăng ký, cập nhật thông tin,

và thanh toán online Nó cũng có thể tích hợp các chức năng hỗ trợ tự động hoặc tròchuyện tự nhiên để giúp khách hàng giải quyết các vấn đề kỹ thuật hoặc yêu cầu hỗ trợ

1.5 Định hướng và cấu trúc dữ liệu, giải thuật

1.5.1 Cấu trúc dữ liệu Stack

Trang 8

Stack, được hiểu theo nghĩa Tiếng Việt là ngăn xếp, xếp chồng Đây là cấu trúc dữ liệuhoạt động theo nguyên tắc: vào sau ra trước (Last in first out - LIFO) Để trực quan, cácbạn có thể hiểu nó là một chồng bát, bạn chồng các chiếc bát lên cao thì chiếc bạn chồngvào sau cùng sẽ là chiếc bạn lấy ra đầu tiên và ngược lại, chiếc bát đầu tiên, ở dưới cùng

sẽ là chiếc bạn lấy ra sau cùng

Các thao tác với cấu trúc dữ liệu kiểu stack là:

 push: thêm bản ghi, tương tự với việc bạn thêm một chiếc bát vào chồng

 pop: lấy bản ghi, tương tự lấy bát ra khỏi chồng

 length: trả về số lượng bản ghi, tương ứng với chiều cao chồng bát

 peak: trở về bản ghi đầu tiên, tương ứng với việc bạn chạm tay vào chiếc bát trên cùng

Ứng dụng của stack:

 Chuyển đổi số thập phân sang nhị phân: Khi chuyển đổi số thập phân sang nhị phân, chúng ta sẽ thưc hiện thao tác chia số thập phân này cho 2 và viết phần dư ngược lại thứ tự mà nó được sinh ra Sử dụng stack, ta lưu lần lượt phần dư sau mỗi lần chia và sau khi kết thúc thao tác chia, đọc stack vừa rồi sẽ cho ra biểu diễnnhị phân cần tìm

 Tính giá trị biểu thức đại số hậu tố: Biểu thức đại số hậu tố là biểu thức có toán tử nằm sau 2 toán hạng của nó, cũng không có dấu ngoặc Ví dụ như biểu thức hậu tốcủa ((4 + 2) / 3) + 5 sẽ là 4 2 + 3 / 5 + Đầu tiên, duyệt biểu thức theo thứ tự từ tráisang phải, khi gặp toán hạng thì đẩy vào stack Sau đó, khi gặp toán tử, ta lấy 2 toán hạng trên cùng trong stack ra và thực hiện phép toán rồi lại đẩy kết quả vào stack Đối với ví dụ này, các thao tác được thực hiện là:

Trang 9

Đầu vào Thao tác Stack

Kết quả cuối cùng là 7

Một stack sẽ hỗ trợ các thao tác cơ bản sau:

 Thêm phần tử vào cuối stack

 Loại bỏ phần tử cuối ra khỏi stack

 Lấy giá trị cuối trong stack

 Lấy kích thước stack

Các phương thức cơ bản trong stack của C++:

push: Thêm phần tử vào cuối stack

pop: Loại bỏ phần tử cuối stack

top: Trả về giá trị là phần tử cuối trong stack

size: Trả về giá trị nguyên là số phần tử đang có trong stack

empty: Trả về một giá trị bool, true nếu stack rỗng, false nếu stack không rỗng

1.5.2 Giải thuật

Giải thuật cũng đóng vai trò quan trọng trong quản lý nhà cung cấp sản phẩm Các giảithuật được áp dụng để thực hiện các chức năng như thêm sản phẩm, cập nhật thông tin,xóa sản phẩm, tìm kiếm thông tin, tính số lượng tồn kho và thông tin nhà cung cấp

Tóm lại, quản lí nhà cung cấp sản phẩm là một đề tài quan trọng trong lĩnh vực kinh

tế Nó đóng vai trò quan trọng trong việc quản lý các sản phẩm đảm bảo được sự an toàn,chính xác Qua việc quản lí các nhà cung cấp sản phẩm, theo dõi tiến trình cung cấp cácdịch vụ hỗ trợ , quản lý nhà cung cấp sản phẩm đóng góp vào việc xây dựng một môitrường an toàn , tiện ích , nhanh chóng một cách chính xác nhất

Trang 10

CHƯƠNG 2 PHÂN TÍCH ĐỀ TÀI QUẢN LÝ NHÀ CUNG CẤP SẢN

PHẨM 2.1 các dữ liệu lưu trữ

2.1.1 Dữ liệu cần quản lý và lưu trữ sản phẩm gồm

Sản phẩm: (char),

Nhà cung cấp: (char),

Đơn giá : (float),

2.2.2 Bộ dữ liệu lưu trữ trong tệp văn bản

In ra số lượng danh sách mà bạn đã điền lúc đó

2.3.3 Thêm vào đầu danh sách

Cho người dung thêm nhập vào:Tên sản phẩm,nhà cung cấp,đơn giá

2.3.4 Thêm vào cuối danh sách

Cho người dùng nhập thêm vào:Tên sản phẩm,nhà cung cấp,đơn giá

2.3.5 Thêm phần tử vào vị trí bất kì trong danh sách

Nhập vị trí muốn chèn them vào danh sách bạn đã ghi ra trước đó

2.3.6 Xóa phần tử theo tên sản phẩm

Chọn phần tử theo tên sản phẩm muốn xoá đã xóa hoặc không tìm thấy tên sảnphẩm muốn xóa

2.3.7 Xóa phần tử theo nhà cung cấp

Trang 11

Chọn phần tử theo nhà cung cấp muốn xoá đã xóa hoặc không tìm thấynhà cung cấp muốn xóa.

2.3.8 Xóa phần tử theo vị trí được chỉ định

Nhập vị trí của sản phẩm xóa đã xóa hoặc không tìm thấy vị trí của sảnmuốn xóa

2.3.9 Tìm kiếm phần tử theo tên sản phẩm

Nhập tên sản phẩm để tìm kiếm

Nếu tìm thấy: Hiện thông tin như Đã tìm thấy:tên sản phẩm, nhà cung cấp , đơn:

giá

Nếu không tìm thấy: Hiện: Không tìm thấy tên sản phẩm đã nhập.

2.3.10 Tìm kiếm phần tử theo tên của nhà cung cấp

Nhập tên nhà cung cấp để tìm kiếm

Nếu tìm thấy: tim thay tên nhà cung cấp: tên sản phẩm , nhà cung cấp , đơn giá Nếu không tìm thấy: khong tim thay nhà cung cấp.

2.3.11 Xuất file sách vào file

Nhập tên file đã lưu

2.3.12 Thoát chương trình

Cho phép bạn thoát chương trình

2.3.13 Thiết kế menu

Trang 12

CHƯƠNG 3 PHÂN TÍCH CHƯƠNG TRÌNH QUẢN LÍ NHÀ CUNG CẤP

SẢN PHẨM 3.1 Cấu trúc dữ liệu và khai báo thư viện:

Bắt đầu bằng việc khai báo các thư viện cần thiết của ngôn ngữ lập trình C++.Điều này bao gồm những thư viện hỗ trợ cho các cấu trúc dữ liệu và các chức năng xử lý

Chức năng này cho phép hiển thị danh sách tên sản phẩm,nhà cung cấp, đơn giá

3.5 Thêm vào đầu danh sách và chèn vào cuối danh sách:

Đây là hai chức năng để thêm điện thoại mới vào danh sách Thêm vào đầu danhsách có thể yêu cầu di chuyển con trỏ hoặc cập nhật tham chiếu, trong khi chèn vào cuốidanh sách đơn giản hơn

3.6 Xóa điện thoại theo tên sản phẩm :

Cung cấp khả năng xóa tên sản phẩm khỏi danh sách dựa trên mã hoặc tên sảnphẩm Điều này có thể yêu cầu duyệt qua danh sách để tìm và xóa phần tử

3.7 Xóa điện thoại theo nhà cung cấp :

Cung cấp khả năng xóa nhà cung cấp khỏi danh sách dựa trên mã hoặc tên sảnphẩm Điều này có thể yêu cầu duyệt qua danh sách để tìm và xóa phần tử

3.8 Tìm kiếm theo tên sản phẩm, tìm kiếm theo nhà cung cấp:

Cung cấp khả năng tìm kiếm điện thoại dựa trên mã hoặc hãng sản xuất Yêu cầutìm kiếm trong danh sách và trả về kết quả phù hợp

3.9 Xuất danh sách sản phẩm vào tệp:

Chức năng này cho phép lưu danh sách sản phẩm hiện tại vào một tệp văn bảnhoặc một loại tệp khác để lưu trữ thông tin

3.10 Thoát khỏi chương trình:

Kết thúc chương trình và thoát khỏi giao diện người dùng Chương trình này cungcấp một loạt các chức năng quản lý danh sách điện thoại thuận tiện cho người dùng vàyêu cầu sử dụng các cấu trúc dữ liệu và thuật toán cơ bản để thực hiện chúng

Trang 13

CHƯƠNG 4 MÃ NGUỒN VÀ KẾT QUẢ CỦA BÀI TOÁN XÂY DỰNG QUẢN LÍ NHÀ CUNG CẤP SẢN PHẨM

4.1 Mã nguồn

Các thư viện để xây dựng bài toán

Hình 4.1 Các thư viện của bài toán.

4.1.1 Mã nguồn về cấu trúc dữ liệu

Hình 4.2 Mã nguồn về cấu trúc dữ liệu.

4.1.2 Mã nguồn về khởi tạo và nhập dữ liệu với n phần tử

Hình 4.3 Mã nguồn về khởi tạo và nhập dữ liệu với n phần tử.

Trang 14

4.1.3 Mã nguồn về hem phần tử vào đầu danh sách

Hình 4.4 Mã nguồn về thêm phần tử vào đầu danh sách 4.1.4 Mã nguồn về hiển thị danh sách n phần tử ra màn hình

Hình 4.5 Mã nguồn về hiển thị danh sách n phần tử ra màn hình 4.1.5 Mã nguồn về thêm phần tử vào cuối danh sách

Hình 4.6 Mã nguồn về thêm phần tử vào cuối danh sách.

Trang 15

4.1.6 Mã nguồn về them phần tử vào vị trí bất kì

Hình 4.7 Mã nguồn về thêm phần tử vào vị trí bất kì 4.1.7 Mã nguồn về xóa phần tử theo tên sản phẩm

Hình 4.8 Mã nguồn về xóa phần tử theo tên sản phẩm.

Trang 16

4.1.8 Mã nguồn về xóa phần tử theo nhà cung cấp

Hình 4.9 Mã nguồn về xóa phần tử theo tên 4.1.9 Mã nguồn về xóa phần tử tại vị trí bất kì

Hình 4.10 Mã nguồn về xóa phần tử tại vị trí bất kì.

Trang 17

4.1.11 Mã nguồn về tìm kiếm phần tử theo tên sản phẩm

Hình 4.12 Mã nguồn về tìm kiếm phần tử theo tên sản phẩm 4.1.13 Mã nguồn về tìm kiếm phần tử theo nhà cung cấp

Hình 4.14 Mã nguồn về tìm kiếm phần tử theo nhà cung cấp 4.1.14 Mã nguồn về ghi danh sách dữ liệu vào file

Hình 4.15 Mã nguồn về ghi danh sách dữ liệu vào file.

Trang 18

4.1.17 Mã nguồn về hàm main

Trong hàm main này sẽ có cấu trúc Swich- case.

Trước hết tạo menu để hiển thị các chức năng của bài toán quản lý số điện thoại thuê bao.

Hình 4.18 Menu để hiển thị các chức năng của bài toán quản lý số điện thoại thuê bao.

Trong menu để có thể liên kết được cần có các Case

Case 1:

Hình 4.19 Mã nguồn về lựa chọn 1 trong menu.

Kết quả:

Trang 19

Hình 4.20 Kết quả của lựa chọn 1.

Trang 20

Kiểm tra lại danh sách:

Hình 4.25 Kết quả của lựa chọn 3(tiếp).

Phần tử đã được thêm vào đầu danh sách

Case 4:

Hình 4.26 Mã nguồn về lựa chọn 4 trong menu.

Kết quả:

Hình 4.27 Kết quả của lựa chọn 4.

Kiểm tra lại danh sách:

Hình 4.28 Kết quả của lựa chọn 4(tiếp).

Case 5:

Trang 21

Hình 4.29 Mã nguồn về lựa chọn 5 trong menu.

Kết quả:

Hình 4.30 Kết quả của lựa chọn 5.

Kiểm tra lại danh sách:

Hình 4.31 Kết quả của lựa chọn 5(tiếp).

Case 6:

Hình 4.32 Mã nguồn về lựa chọn 6 trong menu.

Trang 22

Kết quả:

Hình 4.33 Kết quả của lựa chọn 6.

Kiểm tra lại danh sách:

Hình 4.34 Kết quả của lựa chọn 6( tiếp).

Case 7:

Hình 4.35 Mã nguồn về lựa chọn 7 trong menu.

Kết quả:

Hình 4.36 Kết quả của lựa chọn 7.

Kiểm tra lại danh sách:

Hình 4.37 Kết quả của lựa chọn 7(tiếp).

Case 8:

Trang 23

Hình 4.38 Mã nguồn về lựa chọn 8 trong menu.

Kết quả :

Hình 4.39 Kết quả của lựa chọn 8.

Kiểm tra lại danh sách:

Hình 4.40 Kết quả của lựa chọn 8(tiếp).

Trang 24

Hình 4.43 Kết quả của lựa chọn 9(tiếp).

Trang 25

Hình 4.48 Mã nguồn về lựa chọn 12 trong menu.

Hình 4.51 Kết quả của lựa chọn 13.

Khi đó file đã lưu trên sẽ được lưu vào cùng file chạy BTL

Hình 4.52 Kết quả của lựa chọn 13(tiếp).

Case 14:

Trang 26

Hình 4.53 Mã nguồn về lựa chọn 14 trong menu.

Kết quả:

Hình 4.54 Kết quả của lựa chọn 14.

Kiểm tra lại danh sách sau khi đã sắp xếp:

Hình 4.55 Kết quả của lựa chọn 14( tiếp).

Xếp theo chiều giảm dần:

Hình 4.56 Kết quả của lựa chọn 14(tiếp).

Kiểm tra lại danh sách:

Hình 4.57 Kết quả của lựa chọn 14(tiếp).

Case 15:

Hình 4.58 Mã nguồn về lựa chọn 15 trong menu.

Trang 27

Kết quả:

Hình 4.59 Kết quả của lựa chọn 15.

Case 0:

Hình 4.60 Mã nguồn về lựa chọn 0 trong menu.

Cuối cùng mã nguồn kết thúc hàm main

Hình 4.61 Mã nguồn về hàm main

Trang 28

TÀI LIỆU THAM KHẢO

1 Barry Boone , Java Essentials for C and C++ Programmers, Wesley 1996

Addition-2 Đoàn Văn Ban, phân tích, thiết kế, lập trình hướng đối tượng, nhà xuấtbản Thống Kê, 1997

3 S.Horstman, G.Cornell, Java Volume I,II,Sun Java Series, Pretice Hall,2000

4 James Gosling, Frank Yellin, The Java Application ProgrammingInterface, volume I,II, Addition-Wesley, 1996

5 Dennis Kafura, Object-Oriented Software Design and Construction withJava, Prentice Hall, 2000

Ngày đăng: 10/12/2024, 10:03

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w