1. Trang chủ
  2. » Tất cả

phát triển phần mềm quản lý nhập hàng

38 14 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 đề Phát triển phần mềm quản lý nhập hàng
Tác giả Nhóm tác giả
Người hướng dẫn Thầy Tạ Chí Hiếu
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Công nghệ Thông tin
Thể loại Dự án tốt nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 38
Dung lượng 253,48 KB
File đính kèm Quanlynhaphang.zip (488 KB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

1 LỜI CẢM ƠN Lời đầu tiên, em xin gửi lời cảm ơn chân thành tới Học viện Công nghệ Bưu chính Viễn thông, Khoa Công nghệ Đa phương tiện đã tận tình chỉ bảo, góp ý và tạo điều kiện cho em có thời gian h.

Trang 1

1

LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn chân thành tới Học viện Công nghệ Bưuchính Viễn thông, Khoa Công nghệ Đa phương tiện đã tận tình chỉ bảo, góp ý vàtạo điều kiện cho em có thời gian hoàn thiện bộ môn Lập trình hướng đối tượngC++ một cách tốt nhất Em xin cảm ơn Thầy Tạ Chí Hiếu đã nhiệt tình hướng dẫn,chỉ bảo tận tình trong quá trình nghiên cứu và hoàn thiện tốt bài báo cáo cuối kìcủa bộ môn

Trong quá trình hoàn thiện bài, em đã cố gắng nỗ lực, tuy nhiên không tránhkhỏi sai sót, rất mong các thầy, cô bỏ qua Bên cạnh đó, với kinh nghiệm và kiếnthức còn có nhiều hạn chế, em rất mong nhận được sự đóng góp ý kiến của thầy, cô

để bài báo cáo và sản phẩm của em được hoàn thiện hơn

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

2

Trang 2

MỤC LỤC

LỜI CẢM ƠN

2 MỤC LỤC 3

PHẦN MỞ ĐẦU

5 CHƯƠNG 1: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

6 1 Tổng quan chung .6

1.1 Đặc trưng 6

1.2 Ưu điểm 6

2 Một số khái niệm cơ bản 7

2.1 Đối tượng (Object) 7

2.2 Lớp (Class) 7

2.3 Đóng gói dữ liệu (Encapsulation) 7

2.4 Kế thừa (Inheritance) 8

2.5 Đa hình (Polymorphsim) 8

CHƯƠNG 2: PHẦN MỀM QUẢN LÝ NHẬP HÀNG 9

1 Class HangHoa 9

1.1 Thuộc tính 9

1.2 Các phương thức: 9

1.2.1 Hàm khởi tạo 9

1.2.2 Hàm xuất HH 9

1.2.3 Hàm khởi tạo có tham số 10

1.2.4 Các hàm getter các thuộc tính 10 1.2.5 Các hàm setter các thuộc tính 11

2 class NhapHang 11

2.1 Thuộc tính 11

2.2 Phương thức

11 3 Class NhapChiTiet 13

3.1 Các thuộc tính 13

3.2 Các phương thức .

13 4 Hàm main .15 4.1 Hàm checkMAHANG 15 4.2 Hàm checkMAHANG_1 16 4.3 Hàm checkMADONNHAP 17 4.4 Hàm checkMANCC 17

4.5 Hàm checkNGAY 18

Trang 3

4.6 Hàm themMoiHH 18

4.7 Hàm nhapHang .

19 4.8 Hàm THONGKESOTONCUACACMATHANG

21 3 4.9 TONGTIENTRACHO1NCC 23

4.10 Hàm tinhsoluongnhapcuamotmahang .

23 4.11 Hàm readFileHH

25 4.12 Hàm ReadFileNhap

26 4.13 Hàm ReadFileNhapChiTiet

27 4.14 Hàm saveFileHH 27 4.15 Hàm saveFileNhap 28 4.17 Hàm menu 28 4.18 Hàm main 29

5 Kết quả khi chạy chương trình 31

5.1 Menu chính của chương trình 31

5.2 Chức năng thoát chương trình 32

5.3 Chức năng 1 Thêm mới hàng hóa 32

5.4 Chức năng 2 thêm mới lần nhập hàng .

33 5.5 Chức năng 3 Thống kê số tồn của các mặt hàng 34 5.6 Chức năng 4 Tổng tiền đã chi cho 1 nhà cung cấp 35 5.7 Chức năng 5 Tính số lượng nhập của một mã hàng 35 5.8 Chức năng hiển thị 36 5.9 File source code và các file txt 38

6 Tính kế thừa .38 7 Tính trừu tượng .38 8 Tính đóng gói 39 9 Tính đa hình 40

Trang 4

4

Trang 5

PHẦN MỞ ĐẦU

Trong thời đại CNTT phát triển như hiện nay, thì các nhà lập trình luôn phảisuy nghĩ xem làm thế nào để tạo ra những chương trình hay, tiện ích Và một trongnhững thứ hỗ trợ người lập trình là ngôn ngữ lập trình Có một số phương pháp lậptrình truyền thống như lập trình tuyến tính, lập trình cấu trúc Với lập trình tuyếntính thì một số ứng dụng phức tạp không thể thực hiện được Trong khi đó với lậptrình cấu trúc, chúng ta không quản lý được sự thay đổi dữ liệu khi có nhiều chươngtrình cùng sử dụng một biến chung, không tiết kiệm được tài nguyên Để khắc phụcmột số hạn chế trên, người ta xây dựng một số mô hình lập trình tiên tiến hơn như:Lập trình hàm, lập trình logic, lập trình trực quan, lập trình tương tranh, lập trìnhphân tán, lập trình hướng đôi tượng Trong bài báo cáo này, em đi vào nghiên cứu

mô hình lập trình hướng đổi tượng trong đó có các nội dung cơ bản gồm: Tổngquan về lập trình hướng đổi tượng; một số tính chất đặc trưng của lập trình hướngđổi tượng

Với thời lượng quy định của một báo cáo môn học, lượng nội dung kiến thức

sẽ không đủ truyền tải hết trong báo cáo Các nội dung được nêu trong báo cáo chỉ

là các nội dung trọng tâm nhất của lập trình hướng đối tượng

5

Trang 6

CHƯƠNG 1: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

1 Tổng quan chung

Trong lập trình hướng đối tượng:

- Người ta coi các thực thể trong chương trình là các đối tượng và sau đó, người

ta trừu tượng hoá đối tượng thành lớp đối tượng

- Dữ liệu được tổ chức thành các thuộc tính của lớp Nguời ta ngăn chặn việcthay đổi tuỳ tiện dữ liệu trong chương trình bằng các cách giới hạn truy nhập, chỉcho phép truy nhập dữ liệu thông qua đối tượng, thông qua các phương thức mà đốitượng được cung cấp

- Quan hệ giữa các đối tượng là quan hệ ngang hàng hoặc quan hệ kế thừa: Nếu lớp B kế thừa từ lớp A thì A được gọi là lớp cơ sở và B được gọi là lớp dẫn xuất Ngôn ngữ lập trình hướng đối tượng phổ biến hiện nay là Java và C++ Tuy nhiên, C++ mặc dù cũng có những đặc trưng cơ bản của lập trình hướng đối tượng nhưng vẫn không phải là ngôn ngữ lập trình thuần hướng đối tượng

1.1 Đặc trưng

Lập trình hướng đối tượng có hai đặc trưng cơ bản:

- Đóng gói dữ liệu: dữ liệu luôn được tổ chức thành các thuộc tính của lớp

đối tượng Việc truy nhập đến dữ liệu phải thông qua các phương thức của đối tượng lớp

- Sử dụng lại mã nguồn: việc sử dụng lại mã nguồn được thể hiện thông qua

cơ chế kế thừa Cơ chế này cho phép các lớp đối tượng có thể kế thừa từ các lớp đối tượng khác Khi đó, trong các lớp dẫn xuất, có thể sử dụng các phương thức

(mã nguồn) của các lớp cơ sở mà không cần phải định nghĩa lại 1.2 Ưu điểm

Lập trình hướng đối tượng có một số ưu điểm nổi bật:

6

- Không còn nguy cơ dữ liệu bị thay đổi tự do trong chương trình Vì dữ

Trang 7

liệu đã được đóng gói vào các đối tượng Nếu muốn truy nhập vào dữ liệu phải thông qua các phương thức được cho phép của đối tượng

- Khi thay đổi cấu trúc dữ liệu của một đối tượng, không cần thay đổi mã nguồn của các đối tượng khác, mà chỉ cần thay đổi một số thành phần của đối tượng dẫn xuất Điều này hạn chế sự ảnh hưởng xấu của việc thay đổi dữ liệu đếncác đối tượng khác trong chương trình

- Có thể sử dụng lại mã nguồn, tiết kiệm tài nguyên, chi phí thời gian Vì nguyêntắc kế thừa cho phép các lớp dẫn xuất sử dụng các phương thức từ lớp cơ sở như

những phương thức của chính nó, mà không cần thiết phải định nghĩa lại 2 Một số khái niệm cơ bản

2.1 Đối tượng (Object)

- Trong lập trình hướng đối tượng, đối tượng được coi là đơn vị cơ bản nhỏ nhất Các dữ diệu và cách xử lí chỉ là thành phần của đối tượng mà không được coi

là thực thể Một đối tượng chứa các dữ liệu của riêng nó, đồng thời có các phương thức (hành động) thao tác trên các dữ liệu đó:

Đối tượng = dữ liệu + phương thức

2.2 Lớp (Class)

- Khi có nhiều đối tượng giống nhau về mặt dữ liệu và phương thức, chúng được nhóm lại với nhau và gọi chung là lớp: Lớp là sự trừu tượng hoá của đối tượng Đối tượng là một thể hiện của lớp

2.3 Đóng gói dữ liệu (Encapsulation)

- Các dữ liệu được đóng gói vào trong đối tượng Mỗi dữ liệu có một phạm vi truy nhập riêng

- Không thể truy nhập đến dữ liệu một cách tự do như lập trình cấu trúc

7

- Muốn truy nhập đến dữ liệu, phải thông qua các đối tượng, nghĩa là phải sử

Trang 8

dụng các phương thức mà đối tượng cung cấp mới có thể truy nhập đến dữ liệu củađối tượng đó

2.4 Kế thừa (Inheritance)

- Tính kế thừa của lập trình hướng đối tượng cho phép một lớp có thể kế thừa

từ một số lớp đã tồn tại Khi đó, lớp mới có thể sử dụng dữ liệu và phương thức của các lớp cơ sở như là của mình Ngoài ra, lớp dẫn xuất còn có thể bổ sung thêmmột số dữ liệu và phương thức

- Ưu điểm của kế thừa là khi thay đổi dữ liệu của một lớp, chỉ cần thay đổi các phương thức trong phạm vi lớp cơ sở, mà không cần thay đổi trong các lớp dẫn xuất

2.5 Đa hình (Polymorphsim)

- Đa hình là khái niệm luôn đi kèm với kế thừa Do tính kế thừa, một lớp có thể sử dụng lại các phương thức của lớp khác Tuy nhiên, nếu cần thiết, lớp dẫn xuất cũng có thể định nghĩa lại một số phương thức của lớp cơ sở Đó là sự nạp chồng phương thức trong kế thừa

- Nhờ sự nạp chồng phương thức này, ta chỉ cần gọi tên phương thức bị nạpchồng từ đối tượng mà không cần quan tâm đó là đối tượng của lớp nào Chươngtrình sẽ tự động kiểm tra xem đối tượng là thuộc kiểu lớpởc sở hay thuộc lớp dẫnxuất, sau đó sẽ gọi phương thức tương ứng với lớp đó Đó là tính đa hình

8

CHƯƠNG 2: PHẦN MỀM QUẢN LÝ NHẬP HÀNG

1 Class HangHoa

Trang 9

1.1 Thuộc tính

MAHANG: là chuỗi có độ dài 10 kí tự

TEN: tên hàng hóa

SOLG: số lượng hàng hóa có độ dài 3

DONGIABAN: đơn giá bán có độ dài 5 kí tự

TRANGTHAI: trạng thái có một trong các giá trị sau:

Trang 10

Hàm khởi tạo có các tham số là mã hàng hóa, tên hàng hóa, số lượng, đơn giá,trạng thái

1.2.4 Các hàm getter các thuộc tính

Các hàm này trả về thông tin các thuộc tính

10

1.2.5 Các hàm setter các thuộc tính

Trang 11

Các hàm này sẽ đặt các giá trị cho các thuộc tính

2 class NhapHang

2.1 Thuộc tính

2.2 Phương thức

2.2.1 Hàm khởi tạo có tham số

2.2.2 Hàm khởi tạo không có tham số

11

2.2.3 Hàm ngày nhập

Trang 12

Hàm này trả về định dạng dd/mm/yyyy từ chuỗi có định dạng yyyyMMdd Ví dụ chuỗi vào: 20220103 hàm này sẽ trả về là 03/01/2022

Trang 13

Được kế thừa từ class NhapHang bao gồm các thuộc tính và các hàm phươngthức như sau:

3.1 Các thuộc tính

MÃ HÀNG: mã hàng hóa có độ dài 10 kí tự

SOLGNHAP: Số lượng nhập có 3 kí tự

DONGIANHAP: Đơn giá nhập

THANHTIEN: thành tiền = Số lượng nhập x đơn giá nhập

Trang 15

- Đầu ra là kiểu true hoặc false:

+ Nếu mã hàng không phải 10 kí tự thì trả vê false

+ Nếu mã hàng đã có trong danh sách bằng cách so sánh tuần tự mã hàng cần tìmvới các mã hàng trong danh sách thì trả về false

+ Nếu thỏa mãn điều kiện thì trả về true

Trang 16

- Đầu ra là kiểu true hoặc false:

+ Nếu mã đơn nhập không phải 10 kí tự thì trả vê false

+ Nếu mã đơn nhập đã có trong danh sách bằng cách so sánh tuần tự mã hàng cầntìm với các mã đơn nhập trong danh sách thì trả về false

+ Nếu thỏa mãn điều kiện thì trả về true

Trang 17

4.4 Hàm checkMANCC

Hàm này check mã nhà cung cấp có đủ 10 kí tự không, nếu đủ 10 kí tự thì trả về

true ngược lại trả về false

Trang 18

18

Hàm này sẽ nhập mới một hàng hóa vào danh sách

+ Nhập vào mã hàng và kiểm tra nhập mã hàng

Trang 19

vị 4.7 Hàm nhapHang

19

Trang 20

Hàm này sẽ tiến hành thêm mới lần nhập hàng bao gồm thêm mới đơn nhập hàng

và chi tiết của đơn nhập, trong quá trình thêm thì cũng update số lượng hàng hóa trong file hh.txt đối với mỗi hàng hóa được nhập trong chi tiết đơn nhập

Trang 21

Chú ý: trong 1 đơn nhập thì có nhiều chi tiết và các chi tiết này cùng 1 mã đơn nhập và các mặt hàng khác nhau nghĩa là cùng 1 đơn nhập thì có thể nhập nhiều mặt hàng và tổng tiền của mã đơn nhập sẽ được tính theo các chi tiết nhập này

4.8 Hàm THONGKESOTONCUACACMATHANG

21

Hàm này sẽ thống kê số tồn của các mặt hàng, số lượng tồn = SOLG trong file hàng hóa và thông tin số lượng tồn sẽ được hiển thị ra đưới dạng bảng

Trang 22

22

4.9 TONGTIENTRACHO1NCC

Dựa vào thông tin trong file nhap.txt sẽ có các mã nhà cung cấp hàm này sẽ tính tổng tiền cho từng nhà cung cấp và hiển thị thông tin dưới dạng bảng tổng tiền của từng nhà cung cấp

4.10 Hàm tinhsoluongnhapcuamotmahang

23

Trang 23

- Đầu vào là danh sách chi tiết nhập, số lượng chi tiết nhập

- Trong hàm này sẽ tiến hành nhập vào mã hàng và sau đó dựa vào chi tiết nhập

sẽ tiến hàng kiểm tra và đếm số lượng của mã hàng được nhập vào sau đó tiến hành thông báo ra màn hình tổng số lượng của mã hàng đó nhập được bao nhiêu

24

4.11 Hàm readFileHH

Trang 24

- Hàm này sẽ đọc file hh.txt

25

File hh.txt có định dạng như yêu cầu là

Sau khi đọc các thông tin từng dòng sẽ là một hàng hóa và được lưu trữ vào trong danh sách hàng hóa, đồng thời biến n cũng được gán cho số lượng hàng hóa

4.12 Hàm ReadFileNhap

Trang 26

Hàm này sẽ tiến hành đọc file Nhapchitiet.txt có định dạng

Sau khi đọc xong sẽ được lưu trữ trong danh sách nhapchitiet

Trang 27

Hàm này lưu danh sách NhapHang ra file Nhap.txt

Trang 28

29

Trang 29

30

Trang 30

5 Kết quả khi chạy chương trình

5.1 Menu chính của chương trình

31

5.2 Chức năng thoát chương trình

Khi người dùng nhân thoát thì sẽ có thông báo là “Ban chon thoat” và tiến hành thoát chương trình

Trang 31

5.3 Chức năng 1 Thêm mới hàng hóa

Nhập vào mã hàng đã tồn tại trong danh sách thì sẽ thông báo là 1 mã hàng đa tồn tại và bắt người dùng nhập mới

32

Khi nhập thành công thì sẽ thông báo là thêm mới hàng hóa thành công

5.4 Chức năng 2 thêm mới lần nhập hàng

Trang 33

5.5 Chức năng 3 Thống kê số tồn của các mặt hàng

Khi nhấn chọn 3 từ menu chính

34

Chương trình sẽ hiển thị bảng thông tin về số lượng tồn của các mặt hàng cho người dùng

5.6 Chức năng 4 Tổng tiền đã chi cho 1 nhà cung cấp

5.7 Chức năng 5 Tính số lượng nhập của một mã hàng

Trang 34

35

5.8 Chức năng hiển thị

Hiển thị danh sách hàng hóa

Trang 36

Trong project thì đã trừu tượng các đối tượng thành 3 lớp dữ liệu 1 hàng hóa

sẽ có các thông tin như mã hàng hóa, tên hàng hóa, số lượng, đơn giá bán, trạng

Trang 37

thái…

8 Tính đóng gói

Trong lớp HangHoa tính đóng gói được thể hiện qua các thuộc tính MAHANG, SOLG, DONGIABAN, TRANGTHAI, TEN và các phương thức

getter, setter Bạn không thể truy cập đến các private data hoặc gọi đến private

methods của class từ bên ngoài class đó

Có thể nói tính đóng gói (Encapsulation) là cơ chế của che giấu dữ liệu (Data Hiding) bởi chúng được lớp (class) che giấu đi (ở dạng private) một số dữ

liệu, hàm và phương thức để đảm bảo rằng các dữ liệu đó sẽ được truy cập và sử

dụng đúng mục đích, đúng cách thông qua các hàm và phương thức ở dạng public

mà class cung cấp Đó là lý do bạn không thể truy cập đến các thuộc tính private

hoặc gọi đến phương thức private của class từ bên ngoài class đó

39

9 Tính đa hình

Đa hình (polymorphism) nghĩa là có nhiều hình thái khác nhau Tiêu biểu là, đa hình xuất hiện khi có một cấu trúc cấp bậc của các lớp và chúng liên quan với nhau bởi tính kế thừa

Trang 38

Trong lớp NhapHang Có định nghĩa hàm Xuat()

Lớp NhapChiTiet được kế thừa từ lớp nhập hàng và định nghĩa lại hàm Xuat này như sau:

Hay trong class HangHoa có các phương thức khởi tạo có tham số và không có tham số đây cũng

là một dạng của đa hình:

40

Ngày đăng: 26/11/2022, 09:35

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w