1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng một Ứng dụng quản lý thông tin sản phẩm bằng ngôn ngữ c++ Ứng dụng này không chỉ hỗ trợ các chức năng cơ bản như nhập, xuất, sắp xếp dữ liệu

20 3 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 một ứng dụng quản lý thông tin sản phẩm bằng ngôn ngữ C++
Tác giả Đặng Phi Yên, Đoàn Thân Hoàng Nguyên, Nguyễn Gia Hoài, Vương Minh Thuận, Trần Văn Chiến
Người hướng dẫn Bùi Hữu Đông
Trường học Trường Đại Học Ngân Hàng TP. Hồ Chí Minh
Chuyên ngành Hệ Thống Thông Tin Quản Lý
Thể loại Báo cáo môn học
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 20
Dung lượng 1,01 MB

Nội dung

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI1.Giới thiệu Trong thời đại số hóa ngày nay, việc quản lý thông tin sản phẩm một cách hiệu quả là yếu tố quan trọng hàng đầu đối với các doanh nghiệp.. Với

Trang 1

NGÂN HÀNG NHÀ NƯỚC VIỆT NAM

TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP HỒ CHÍ MINH KHOA HỆ THỐNG THÔNG TIN QUẢN LÝ

ĐỀ TÀI BÁO CÁO MÔN HỌC

ĐỀ TÀI 2 Nhóm: Nhóm 12 Lớp học phần: ITS318_241_1_D05 Giáo viên giảng dạy: Bùi Hữu Đông

Trang 2

STT HỌ TÊN MSSV CÔNG

VIỆC

MỨC ĐỘ HOÀN THÀNH

CÔNG VIỆC

Trang 3

Mục Lục

LỜI MỞ ĐẦU 1

LỜI CẢM ƠN 1

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 2

1.Giới thiệu 2

2 Mục tiêu và phạm vi của dự án: 2

3.Các chức năng chính của chương trình 3

CHƯƠNG 2: Phân tích thiết kế 4

2.1 Cấu trúc dữ liệu: 4

2.2 Giải thuật: 4

Ưu điểm và nhược điểm của Bubble Sort: 5

2.3 Mô tả các chức năng: 5

Nhập sản phẩm: 5

CHƯƠNG 3: TRIỂN KHAI 9

3.1 Ngôn ngữ lập trình: C/C++ 9

3.2 Mô tả code: 10

Cách thức hoạt động 11

Cải tiến 12

3.3 Ví dụ code 12

CHƯƠNG 4 Kết quả và đánh giá 13

4.1 Kết quả: 13

4.2 Đánh giá: 15

CHƯƠNG 5 Kết luận 17

Trang 4

LỜI MỞ ĐẦU

Trong thời đại số, việc quản lý thông tin sản phẩm một cách hiệu quả là vô cùng quan trọng Để đáp ứng nhu cầu này, Nhóm đã xây dựng một ứng dụng quản lý thông tin sản phẩm bằng ngôn ngữ C++ Ứng dụng này không chỉ hỗ trợ các chức năng cơ bản như nhập, xuất, sắp xếp dữ liệu mà còn cung cấp các tính năng nâng cao như tìm kiếm

và lưu trữ thông tin

Qua ứng dụng này, chúng em mong muốn cung cấp một giải pháp đơn giản và hiệu quả cho việc quản lý thông tin sản phẩm, giúp các doanh nghiệp tiết kiệm thời gian và nâng cao hiệu quả công việc

LỜI CẢM ƠN

Không có sự thành công nào mà không gắn liền với những sự hỗ trợ, sự giúp đỡ dù ít hay nhiều, dù là trực tiếp hay gián tiếp của người khác Trong suốt thời gian từ khi bắt đầu học tập ở giảng đường Đại học đến nay, nhóm em đã nhận được rất nhiều sự quan tâm, giúp đỡ của thầy cô và mọi người xung quanh

Và đặc biệt, trong kỳ này, em được tiếp cận với môn học rất

hữu ích đối với sinh viên ngành Hệ Thống Thông Tin Quản Lý Đó là môn: “Cơ sở lập trình”

Nhóm xin chân thành cảm ơn thầy Bùi Hữu Đông đã tận tâm hướng dẫn

chúng em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo

luận về môn học Trong thời gian được học tập và thực hành dưới sự hướng dẫn

của Thầy, không những tiếp thu được rất nhiều kiến thức bổ ích, mà còn được

truyền sự say mê và thích thú đối với bộ môn “Cơ sở lập trình” Nếu

không có những lời hướng dẫn của Thầy thì báo cáo này rất khó có thể hoàn thành được Tuy nhiên do chưa có nhiều kinh nghiệm và còn nhiều sự hạn chế về sự hiểu biết về kiến thức chuyên ngành vì vậy bài báo cáo không thể tránh khỏi những sai sót về bố cục cũng như nội dung Nhóm em rất mong nhận được lời nhận xét, ý kiến đóng góp từ phía Thầy

để bài báo cáo được hoàn thiện hơn

Nhóm em xin chân thành cảm ơn Thầy

Trang 5

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.Giới thiệu

Trong thời đại số hóa ngày nay, việc quản lý thông tin sản phẩm một cách hiệu quả là yếu tố quan trọng hàng đầu đối với các doanh nghiệp Để đáp ứng nhu cầu này, chúng

em đã xây dựng một phần mềm quản lý sản phẩm thông minh, thông qua việc sử dụng ngôn ngữ lập trình C/C++

Đây không chỉ đơn thuần là một công cụ nhập liệu và lưu trữ dữ liệu, mà còn là một trợ

lý đắc lực cho các nhà quản lý trong việc đưa ra quyết định kinh doanh Với giao diện trực quan và dễ sử dụng, phần mềm cho phép người dùng nhanh chóng nhập thông tin chi tiết về từng sản phẩm, từ mã sản phẩm, tên sản phẩm, giá cả cho đến ngày sản xuất

và mô tả sản phẩm

Nhưng điều gì khiến phần mềm này trở nên đặc biệt?

Sắp xếp thông minh: Phần mềm sử dụng thuật toán sắp xếp nổi tiếng Bubble

Sort để tự động sắp xếp danh sách sản phẩm theo giá cả, giúp người dùng dễ dàng tìm kiếm và so sánh sản phẩm

Tìm kiếm nhanh chóng: Chỉ với vài cú click chuột, bạn có thể tìm thấy sản

phẩm mình cần, kể cả khi bạn chỉ nhớ một phần tên sản phẩm hoặc một khoảng giá nhất định

Báo cáo chi tiết: Phần mềm cung cấp các báo cáo thống kê về tình hình tồn kho,

doanh thu, giúp bạn nắm bắt được tình hình kinh doanh của cửa hàng một cách tổng quan

Lưu trữ dữ liệu an toàn: Tất cả dữ liệu sản phẩm đều được lưu trữ một cách an

toàn và bảo mật, giúp bạn yên tâm về tính chính xác và bảo mật của thông tin

2 Mục tiêu và phạm vi của dự án:

Mục tiêu của đề tài là xây dựng một phần mềm quản lý thông tin sản phẩm đơn giản, giúp người dùng dễ dàng quản lý và theo dõi thông tin các sản phẩm

Các mục tiêu cụ thể:

Trang 6

Nâng cao hiệu quả quản lý: Giúp doanh nghiệp tối ưu hóa quy trình quản lý sản

phẩm, giảm thiểu sai sót và tiết kiệm thời gian

Hỗ trợ ra quyết định: Cung cấp các thông tin cần thiết để giúp doanh nghiệp đưa

ra các quyết định kinh doanh sáng suốt hơn

Tăng tính cạnh tranh: Giúp doanh nghiệp quản lý sản phẩm một cách chuyên

nghiệp, nâng cao hình ảnh và uy tín của doanh nghiệp trên thị trường

Ngoài ra, thông qua việc áp dụng thuật toán sắp xếp Bubble Sort, sinh viên sẽ hiểu rõ hơn về cách hoạt động của thuật toán và rèn luyện kỹ năng lập trình Đồng thời, đề tài cũng giúp làm quen với các thao tác cơ bản khi làm việc với dữ liệu, như đọc, ghi dữ liệu vào file Đề tài này không chỉ giúp sinh viên nâng cao kiến thức chuyên môn mà còn trang bị thêm những kỹ năng cần thiết để giải quyết các bài toán thực tế liên quan đến quản lý dữ liệu

Phạm vi của bài toán bao gồm việc thiết kế và triển khai một chương trình C/C++ để quản lý thông tin của các sản phẩm, với các thuộc tính cơ bản như mã sản phẩm, tên sản phẩm, giá, ngày sản xuất và mô tả sản phẩm Chương trình cần thực hiện các chức năng nhập liệu, xuất dữ liệu, sắp xếp dữ liệu theo giá tăng dần và lưu trữ dữ liệu vào file Mặc

dù tập trung vào các chức năng cơ bản, bài toán này đã đặt nền tảng cho việc xây dựng các hệ thống quản lý thông tin sản phẩm phức tạp hơn trong tương lai

3.Các chức năng chính của chương trình.

Các chức năng chính của chương trình bao gồm:

Nhập liệu: Cho phép người dùng nhập thông tin chi tiết của từng sản phẩm, bao

gồm mã sản phẩm, tên sản phẩm, giá, ngày sản xuất và mô tả

Xuất dữ liệu: Hiển thị toàn bộ danh sách các sản phẩm đã được nhập, hoặc danh

sách các sản phẩm đáp ứng các tiêu chí tìm kiếm cụ thể

Sắp xếp dữ liệu: Sắp xếp danh sách sản phẩm theo thứ tự tăng dần của giá, giúp

người dùng dễ dàng so sánh và phân loại sản phẩm Thuật toán sắp xếp Bubble Sort được sử dụng để thực hiện công việc này

Tìm kiếm dữ liệu: Cho phép người dùng tìm kiếm các sản phẩm dựa trên các tiêu

chí như giá, tên sản phẩm hoặc các tiêu chí khác

Trang 7

Lưu trữ dữ liệu: Lưu trữ toàn bộ thông tin về các sản phẩm vào một file dữ liệu,

đảm bảo tính bảo mật và khả năng truy xuất dữ liệu khi cần thiết

CHƯƠNG 2: Phân tích thiết kế

2.1 Cấu trúc dữ liệu:

Mô tả cấu trúc dữ liệu được sử dụng để lưu trữ thông tin sản phẩm (ví dụ: struct, class) Giải thích tại sao lại chọn cấu trúc dữ liệu đó

CẤU TRÚC DỮ LIỆU, MẢNG, VÒNG LẶP, ĐIỀU KIỆN, HÀM, FILE, THUẬT TOÁN BUBBLE SORT

Cấu trúc dữ liệu chính:

Mảng (array) của các đối tượng SanPham: Đây là cấu trúc dữ liệu được sử dụng

để lưu trữ danh sách các sản phẩm Mỗi phần tử trong mảng là một đối tượng SanPham chứa đầy đủ thông tin về một sản phẩm Mảng được lựa chọn do nó có tính đơn giản với cấu trúc dữ liệu cơ bản và dễ hiểu, có thể truy cập trực tiếp đến bất kỳ phần tử nào trong mảng bằng chỉ số

Các cấu trúc dữ liệu khác (gián tiếp):

Đối tượng SanPham: Mặc dù không phải là một cấu trúc dữ liệu độc lập, nhưng

đối tượng SanPham đóng vai trò quan trọng trong việc tổ chức dữ liệu Nó định nghĩa một kiểu dữ liệu mới, đại diện cho một sản phẩm và chứa các thuộc tính như mã, tên, giá, ngày sản xuất, mô tả

2.2 Giải thuật:

Trang 8

Thuật toán Bubble Sort hoạt động bằng cách so sánh từng cặp phần tử liền kề trong

danh sách và đổi chỗ chúng nếu chúng ở thứ tự sai Quá trình này được lặp đi lặp lại cho đến khi danh sách được sắp xếp hoàn toàn

1 So sánh và đổi chỗ:

1 Thuật toán bắt đầu từ phần tử đầu tiên của danh sách sản phẩm.

2 So sánh giá của hai sản phẩm liền kề.

3 Nếu giá của sản phẩm thứ hai nhỏ hơn giá của sản phẩm thứ nhất (trong

trường hợp sắp xếp tăng dần), thì đổi chỗ hai sản phẩm này

4 Tiếp tục quá trình so sánh và đổi chỗ cho các cặp phần tử còn lại trong danh

sách

2 Lặp lại quá trình:

1 Sau khi hoàn thành một vòng lặp, phần tử lớn nhất sẽ được "nổi bọt" lên cuối danh sách

2 Lặp lại quá trình trên cho đến khi không có cặp phần tử nào cần đổi chỗ nữa, tức là danh sách đã được sắp xếp hoàn toàn

Ưu điểm và nhược điểm của Bubble Sort:

Ưu điểm:

o Dễ hiểu và dễ triển khai

Nhược điểm:

o Hiệu suất thấp với các danh sách lớn, đặc biệt là khi danh sách đã được sắp xếp gần như hoàn toàn

o Số lượng so sánh và đổi chỗ không tối ưu

2.3 Mô tả các chức năng:

Nh ập sận phậm:

Khai báo mảng:

 Một mảng các đối tượng SanPham với kích thước tối đa MAX_PRODUCTS được khai báo để lưu trữ thông tin của các sản phẩm

Trang 9

Hàm nhapSanPham:

Nhập số lượng sản phẩm: Người dùng được yêu cầu nhập vào số lượng sản

phẩm cần nhập thông tin

Vòng lặp nhập từng sản phẩm: Một vòng lặp for được sử dụng để lặp qua

từng sản phẩm Trong mỗi lần lặp:

o Gọi phương thức nhap() của đối tượng SanPham hiện tại để nhập thông tin chi tiết cho sản phẩm đó

o Phương thức nhap() sẽ yêu cầu người dùng nhập lần lượt các thông tin: mã sản phẩm, tên sản phẩm, giá, ngày sản xuất và mô tả

o Thông tin nhập được sẽ được gán vào các thuộc tính tương ứng của đối tượng SanPham

Lưu trữ thông tin:

Sau khi nhập xong thông tin của một sản phẩm, thông tin đó sẽ được lưu vào một phần tử của

Xuất sản phẩm:

Nhận đầu vào: Hàm xuatSanPham nhận hai tham số:

 SanPham sanPham[]: Mảng các đối tượng SanPham chứa thông tin về các sản phẩm

 int count: Số lượng sản phẩm trong mảng

Duyệt qua mảng: Hàm sử dụng một vòng lặp for để duyệt qua từng phần tử

trong mảng sanPham

Hiển thị thông tin: Trong mỗi lần lặp, hàm gọi phương thức xuat() của đối

tượng SanPham hiện tại Phương thức xuat() in ra các thông tin của sản phẩm như sau:

 Mã sản phẩm

 Tên sản phẩm

 Giá sản phẩm

 Ngày sản xuất

Trang 10

 Mô tả sản phẩm

 Một đường kẻ ngang để phân cách các sản phẩm

Kết thúc: Sau khi duyệt xong toàn bộ mảng, hàm xuatSanPham kết thúc.

Sắp xếp sản phẩm:

Hàm bubble_sort:

Nhận đầu vào: Hàm này nhận vào mảng các đối tượng SanPham và số lượng

sản phẩm trong mảng

Vòng lặp ngoài: Vòng lặp này lặp qua từng phần tử của mảng, trừ phần tử

cuối cùng, vì phần tử cuối cùng luôn đã được sắp xếp ở các lần lặp trước

Vòng lặp trong: Vòng lặp này so sánh từng cặp phần tử liền kề trong đoạn

chưa sắp xếp Nếu giá trị của phần tử trước lớn hơn phần tử sau, thì hai phần tử này sẽ được đổi chỗ cho nhau

Quá trình lặp lại: Các vòng lặp trên được lặp đi lặp lại cho đến khi không còn

cặp phần tử nào cần đổi chỗ, tức là mảng đã được sắp xếp hoàn toàn

Nguyên lý hoạt động của bubble sort:

 Thuật toán này hoạt động giống như việc các bọt khí nhẹ hơn dần dần nổi lên trên trong một cốc nước

 Trong mỗi lần lặp, phần tử lớn nhất sẽ "chìm" xuống cuối danh sách

 Quá trình này được lặp lại cho đến khi không còn phần tử nào cần đổi chỗ nữa

Lọc sản phẩm có giá không trùng:

Hàm sanPhamCoGiaKhacNhau:

Có chức năng tìm kiếm và hiện thị các sản phẩm nhập từ bàn phím với những mức giá không bị trùng lặp Trong trường hợp xuất hiện các sản phẩm với cùng

Trang 11

mức giá thì hàm sẽ chỉ hiển thị ra màn hình sản phẩm sau khi nhập mức giá đầu tiên và đồng thời thực hiện việc bỏ qua các sản phẩm đồng giá còn lại

Cách thức hoạt động của hàm:

1 Đầu tiên thực hiện bước duyệt từng sản phẩm: Bằng cách sử dụng vòng lặp for để kiểm tra các sản phẩm trong mảng sanPham

2 Tiếp đến thực hiện việc kiểm tra sự trùng lặp giá:

 Các sản phẩm từ vị trí i sẽ được chương trình tạo cho mọt biến check magn giá trị true để kiểm tra giá sản phẩm hiện tại từ (sanPham[i].giaSanPham) có mang giá trị trùng lặp với bất kì giá cả của các loại sản phẩm trước đó không

 Tiếp tục sử dụng vòng lặp for bên trong để kiểm tra các sản phẩm từ

0 đến i – 1 Nếu trong quá trình này phát hiện ra sản phẩm đồng giá (sanPham[j].giaSanPham == sanPham[i].giaSanPham) đứng trước thì

sẽ ngay lập tức chuyển thành giá trị false, với mục đích báo cáo giá trị này đã được in ra từ trước

3 Cuối cùng, in sản phẩm ra màn hình:

 Sau khi thực hiện check tất cả các sản phẩm vẫn trả vể true, có thể hiểu được rằng giá trị i hiện tại không bị trùng lặp Sau đó, hàm sanPham[i].xuat() sẽ được gọi ra thực hiện bước in thông tin sản phẩm

 Trường hợp vẫn xuất hiện giá trị false sẽ lập tức bác bỏ

Hiển thị top 10 sản phẩm có giá lớn nhất:

Mục đích của top10SanPhamGiaCaoNhat:

Lấy ra và hiển thị danh sách 10 sản phẩm có giá cao nhất trong danh sách tổng Trường hợp danh sách không đủ 10 sản phẩm thì hàm thực hiện việc in ra danh sách các sản phẩm theo thứ tự giá giảm dần từ giá cao đến giá thấp nhất

Cách thức hoạt động của hàm top10SanPhamGiaCaoNhat:

1 Sắp xếp sản phẩm theo giá:

 Việc thực hiện các sản phẩm theo giá đã được hoàn thành bởi hàm bubble_sort Các sản phẩm có giá trị cao nhất sẽ được xếp cuối bảng khi in ra

2 Xác định số lượng các sản phẩm in ra:

Trang 12

 Biến top10SanPham sẽ được xác định thông qua (dem < 10) ? dem : 10 Mục đích kiểm tra xem nếu số lượng (dem) của sản phẩm nhỏ hơn 10 thì top10SanPham sẽ bằng dem, ngược lại sẽ hiển thị giá trị 10

2 Thực hiện việc duyệt toàn bộ và hiển thị 10 sản phẩm trong danh sách:

 Sau khi có kết quả top10SanPham từ bước 2 sẽ thực hiện vòng lặp for chạy từ dem – top10SanPham đến dem – 1, hiển thị top10SanPham cuối cùng trong mảng cũng là 10 sản phẩm có giá trị cao nhất khi sắp xếp

3 In thông tin sản phẩm: in toàn bộ top 10 sau khi đã được sắp xếp qua xuat()

Lưu sản phẩm vào file:

Cách thức hoạt động:

1 Đầu tiên ta tạo một biến check mang giá trị true

2 Tiếp tục việc thực hiện chạy vòng lặp for, với giá trị i = 0

3 Nếu giá ở cả 2 sản phẩm từ vị tri i và j đều bằng nhau thì hàm luuDanhSach trả ra giá trị false, ngược lại nếu giá trị ở hai vị trí này khác nhau thì sẽ thực hiện việc trả ra các sản phẩm với giá trị khác nhau

CHƯƠNG 3: TRIỂN KHAI

3.1 Ngôn ngữ lập trình: C/C++

Lập trình hướng đối tượng (OOP):

· Lớp (class): Đoạn code đã định nghĩa lớp SanPham để mô hình hóa một sản

phẩm Lớp này đóng vai trò như một bản thiết kế, chứa các thuộc tính (mã, tên, giá ) và các hành vi (nhập liệu, xuất liệu) của một sản phẩm

Đối tượng (object): Khi bạn khai báo một mảng các đối tượng SanPham, bạn

thực sự đang tạo ra các sản phẩm cụ thể dựa trên bản thiết kế của lớp

Các kiểu dữ liệu:

Kiểu số: int (số nguyên), double (số thực) được sử dụng để lưu trữ mã sản phẩm,

giá

Trang 13

Kiểu chuỗi: string được sử dụng để lưu trữ tên sản phẩm, mô tả, ngày sản xuất.

Các câu lệnh điều khiển:

Câu lệnh rẽ nhánh: if-else được sử dụng để đưa ra các quyết định dựa trên điều

kiện Ví dụ: kiểm tra xem có nên thực hiện sắp xếp hay không

Vòng lặp: for được sử dụng để lặp qua các phần tử trong mảng, thực hiện các tác

vụ như nhập liệu, xuất liệu, sắp xếp

Hàm:

Hàm chính main(): Là điểm bắt đầu của chương trình.

Các hàm con: nhapSanPham(), xuatSanPham(), bubble_sort(), thực hiện các

nhiệm vụ cụ thể

Mảng:

 Dùng để lưu trữ nhiều đối tượng SanPham, tạo thành một danh sách các sản phẩm

File:

 Thư viện fstream được sử dụng để đọc và ghi dữ liệu vào file, lưu trữ thông tin sản phẩm một cách lâu dài

Các thư viện chuẩn:

 iostream: Để thực hiện các thao tác nhập xuất dữ liệu

 string: Để xử lý các chuỗi ký tự

 fstream: Để làm việc với các file

3.2 Mô tả code:

Lớp SanPham:

o Đại diện cho một sản phẩm cụ thể

o Các thuộc tính: maSanPham, tenSanPham, giaSanPham, ngaySanXuat, moTa

Ngày đăng: 11/11/2024, 16:24

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w