ĐẠI HỌC ĐÀ NẴNG – ĐẠI HỌC SƢ PHẠM
KHOA TIN HỌC
----------
ĐỒ ÁN MÔN HỌC
Đề tài: “Xây Dựng Chƣơng Trình Quản Lý
Bán Hàng Bằng Ngôn Ngữ Lập Trình C++ ”
Giảng viên hƣớng dẫn: Th.s TRẦN UYÊN TRANG
Nhóm SV thực hiện:
TRẦN THỊ LÀNH
TÔ THỊ TRINH
NGUYỄN THỊ YẾN
NGUYỄN THỊ NGUYỆT
HOÀNG THỊ MINH TÚ
NGUYỄN THỊ KIỀU NƢƠNG
NGUYỄN THỊ TRANG
NHÓM 6 - Lớp: 14SPT
Đà Nẵng, ngày 31 tháng 5 năm 2016
SVTH : Nhóm 5
Trang 1
LỜI MỞ ĐẦU
Trong những năm cuối thế kỷ 20 đầu thế kỷ 21, công nghệ thông tin là ngành có
tốc độ phát triển nhanh nhất. Công nghệ thông tin ở nƣớc ta còn mới, song tốc độ phát
triển của nó rất nhanh và mạnh, chiếm một vị trí quan trọng trong các ngành khoa học
công nghệ. Một trong những lĩnh vực đang đƣợc ứng dụng tin học hóa rất phổ biến ở
nƣớc ta là lĩnh vực quản lý. Tin học hóa trong quản lý đã giúp cho các nhà quản lý điều
hành công việc một cách khoa học, chính xác và hiệu quả.
Bên cạnh sự phát triển mạnh mẽ của công nghệ thông tin là sự phát triển của các
ngành khoa học kĩ thuật. Ngành khoa học kĩ thuật đem lại những sản phẩm đáp ứng nhu
cầu của con ngƣời, trong đó phải kể đến nhu cầu sử dụng điện thoại ngày càng đƣợc tăng
cao chính vì lẽ đó mà hàng loạt các siêu thị, cửa hàng bán điện thoại di động xuất hiện
trên thị trƣờng nhƣ hiện nay. Việc kinh doanh của các cửa hàng, siêu thị ngày càng phát
triển, kéo theo việc đòi hỏi ra đời các hệ thống để trợ giúp họ trong việc quản lý bán hàng
đơn giản, nhanh chóng và thuận tiện hơn. Xuất phát từ nhu cầu thực tế đó mà chúng em
đã thực hiện đồ án “Quản lý bán hàng điện thoại bằng ngôn ngữ lập trình C++”.
Chúng em xin tỏ lòng biết ơn chân thành tới cô giáo TRẦN UYÊN TRANG –
ngƣời trực tiếp giảng dạy bộ môn ngôn ngữ lập trình C++ đã truyền đạt cho em những
kiến thức quý báu để hoàn thành bài viết này!
SVTH : Nhóm 5
Trang 2
ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC SƢ PHẠM
KHOA TIN HỌC
--------------
NHIỆM VỤ ĐỒ ÁN MÔN HỌC
Chuyên ngành:……SƢ PHẠM TIN HỌC ......Khóa: ………….2014-2018 ...............
Giảng viên hƣớng dẫn: …………..Th.s TRẦN UYÊN TRANG....................................
Sinh viên thực hiện:
1/…..TRẦN THỊ LÀNH ............................... MSSV: ……312011141121 ..............
2/ ….NGUYỄN THỊ TRANG ..................... MSSV: ……312011141143 ..............
3/ …..NGUYỄN THỊ YẾN ........................... MSSV:…….312011141150…………
4/ …..NGUYỄN THỊ NGUYỆT .................. MSSV: ……312011141128 ..............
5/ …..TÔ THỊ TRINH .................................. MSSV: ……312011141146 ..............
6/ …..HOÀNG THỊ MINH TÚ .................... MSSV: …….312011141148 .............
7/ …..NGUYỄN THỊ KIỀU NƢƠNG.......... MSSV: ……312011141131 ..............
Tên đồ án: .........................................................................................................................
………………. Quản Lý Bán Hàng Bằng Ngôn Ngữ Lập Trình C++ ............................
...........................................................................................................................................
...........................................................................................................................................
SVTH : Nhóm 5
Trang 3
Nội dung đồ án: Nhập dữ liệu file vào, xuất dữ liệu file ra, thêm dữ liệu vào file, thống kê
số lƣợng và lợi nhuận theo ngày, tháng, quý trong năm ..................................................
...........................................................................................................................................
Kết quả đạt đƣợc: tƣơng đối hoàn thành mục tiêu đề ra ..................................................
...........................................................................................................................................
Ngày bắt đầu: ……20/4/2016 ..................... Ngày kết thúc:….19/5/2016 ........................
Đà Nẵng, ngày ... tháng ... năm 20…
Giảng viên hƣớng dẫn
SVTH : Nhóm 5
Trang 4
ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC SƢ PHẠM
KHOA TIN HỌC
-------------NHẬN XÉT CỦA GIẢNG VIÊN HƢỚNG DẪN
SV: ...........................................................................................................................................................
Nhận xét: .................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
Điểm quá trình
Kỹ năng
(60%)
Kiến thức
(40%)
Điểm tổng kết
Điểm thực hiện
TỔNG
CỘNG
Bản báo
cáo
(40%)
Chƣơng
trình
(60%)
(1)
[(1)+(2)]/2
TỔNG
CỘNG
Điểm số
Điểm chữ
(2)
SV: ..........................................................................................................................................................
Nhận xét: .................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
Điểm quá trình
Điểm tổng kết
Điểm thực hiện
[(1)+(2)]/2
Kiến
Kỹ năng
TỔNG
Bản báo
Chƣơng
TỔNG
thức
(60%)
CỘNG
cáo
trình
CỘNG
(1)
(40%)
(60%)
(2)
(40%)
Điểm số
Điểm chữ
Đà Nẵng, ngày … tháng … năm 20…
Giảng viên hƣớng dẫn
SVTH : Nhóm 5
Trang 5
ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC SƢ PHẠM
KHOA TIN HỌC
-------------NHẬN XÉT CỦA GIẢNG VIÊN HƢỚNG DẪN
SV: ...........................................................................................................................................................
Nhận xét: .................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
Điểm quá trình
Kỹ năng
(60%)
Kiến thức
(40%)
Điểm tổng kết
Điểm thực hiện
TỔNG
CỘNG
Bản báo
cáo
(40%)
Chƣơng
trình
(60%)
(1)
[(1)+(2)]/2
TỔNG
CỘNG
Điểm số
Điểm chữ
(2)
SV: ..........................................................................................................................................................
Nhận xét: .................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
Điểm quá trình
Điểm tổng kết
Điểm thực hiện
[(1)+(2)]/2
Kiến
Kỹ năng
TỔNG
Bản báo
Chƣơng
TỔNG
thức
(60%)
CỘNG
cáo
trình
CỘNG
(1)
(40%)
(60%)
(2)
(40%)
Điểm số
Điểm chữ
Đà Nẵng, ngày … tháng … năm 20…
Giảng viên hƣớng dẫn
SVTH : Nhóm 5
Trang 6
ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC SƢ PHẠM
KHOA TIN HỌC
-------------NHẬN XÉT CỦA GIẢNG VIÊN HƢỚNG DẪN
SV: ...........................................................................................................................................................
Nhận xét: .................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
Điểm quá trình
Kỹ năng
(60%)
Kiến thức
(40%)
Điểm tổng kết
Điểm thực hiện
TỔNG
CỘNG
Bản báo
cáo
(40%)
Chƣơng
trình
(60%)
(1)
[(1)+(2)]/2
TỔNG
CỘNG
Điểm số
Điểm chữ
(2)
SV: ..........................................................................................................................................................
Nhận xét: .................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
Điểm quá trình
Điểm tổng kết
Điểm thực hiện
[(1)+(2)]/2
Kiến
Kỹ năng
TỔNG
Bản báo
Chƣơng
TỔNG
thức
(60%)
CỘNG
cáo (40%)
trình
CỘNG
(60%)
(2)
(40%)
(1)
Điểm số
Điểm chữ
Đà Nẵng, ngày … tháng … năm 20…
Giảng viên hƣớng dẫn
SVTH : Nhóm 5
Trang 7
ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC SƢ PHẠM
KHOA TIN HỌC
-------------NHẬN XÉT CỦA GIẢNG VIÊN HƢỚNG DẪN
SV: ...........................................................................................................................................................
Nhận xét: .................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
Điểm quá trình
Kỹ năng
(60%)
Kiến thức
(40%)
Điểm tổng kết
Điểm thực hiện
TỔNG
CỘNG
Bản báo
cáo
(40%)
Chƣơng
trình
(60%)
(1)
[(1)+(2)]/2
TỔNG
CỘNG
Điểm số
Điểm chữ
(2)
SV: ..........................................................................................................................................................
Nhận xét: .................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
Điểm quá trình
Điểm tổng kết
Điểm thực hiện
[(1)+(2)]/2
Kiến
Kỹ năng
TỔNG
Bản báo
Chƣơng
TỔNG
thức
(60%)
CỘNG
cáo (40%)
trình
CỘNG
(60%)
(2)
(40%)
(1)
Điểm số
Điểm chữ
Đà Nẵng, ngày … tháng … năm 20…
Giảng viên hƣớng dẫn
SVTH : Nhóm 5
Trang 8
MỤC LỤC
LỜI MỞ
ĐẦU……………………………………………………………………………………………………………………………Error!
Bookmark not defined.
NHIỆM VỤ ĐỒ ÁN MÔN HỌC .................................................................... Error! Bookmark not defined.
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN................................................. Error! Bookmark not defined.
CHƯƠNG I:TỔNG QUAN VỀ ĐỒ ÁN ......................................................... Error! Bookmark not defined.1
I.1 Giới thiệu chung ........................................................................... Error! Bookmark not defined.1
I.1.1 Giới thiệu về chƣơng trình xây dựng đồ án quản lý................ Error! Bookmark not defined.1
I.1.2 Hƣớng dẫn sử dụng ................................................................ Error! Bookmark not defined.1
I.2 Mục đích và mục tiêu.................................................................... Error! Bookmark not defined.2
I.2.1 Mục đích: ............................................................................... Error! Bookmark not defined.2
I.2.2 Mục tiêu: ................................................................................ Error! Bookmark not defined.2
I.3 Dữ liệu đƣợc sử dụng trong chƣơng trình: ................................... Error! Bookmark not defined.2
CHƯƠNG II: TỔNG QUAN NGÔN NGỮ LẬP TRÌNH C++ ............................. Error! Bookmark not defined.6
II.1 Lập trình hƣớng đối tƣợng (Object Oriented Programming) .... Error! Bookmark not defined.6
II.1.1 Sơ lƣợc về lập trình hƣớng đối tƣợng(1) ................................. Error! Bookmark not defined.6
II.1.2 Cấu trúc của một chƣơng trình C++ ..................................... Error! Bookmark not defined.6
II.2 Những thuật ngữ của lập trình hƣớng đối tƣợng ........................ Error! Bookmark not defined.7
II.2.1 Lớp (class) ............................................................................ Error! Bookmark not defined.7
II.2.1.1 Khái niệm về lớp: ............................................................... Error! Bookmark not defined.7
II.2.1.2 Định nghĩa về lớp: .............................................................. Error! Bookmark not defined.7
II.2.2 Thuộc tính của lớp: .............................................................. Error! Bookmark not defined.7
II.2.3 Phƣơng thức của lớp:........................................................... Error! Bookmark not defined.8
CHƯƠNG III: KIẾN THỨC CƠ SỞ NGÔN NGỮ LẬP TRÌNH C++ .................... Error! Bookmark not defined.9
III.1 Các thƣ viện sử dụng: ............................................................... Error! Bookmark not defined.9
III.2 Thao tác với file: ........................................................................ Error! Bookmark not defined.9
III.3 Các kiểu dữ liệu: .................................................................................................................. 20
III.3.1 Kiểu struct: ................................................................................................................... 20
III.3.2 Các kiểu dữ liệu chuẩn, không chuẩn: ................................. Error! Bookmark not defined.1
III.3.3 Danh sách mảng 1 chiều: ..................................................... Error! Bookmark not defined.1
III.3.3.1 Khái niệm mảng 1 chiều: .................................................. Error! Bookmark not defined.1
III.3.3.2 Ƣu và nhƣợc điểm của mảng một chiều: ........................... Error! Bookmark not defined.2
III.3.4 Mảng đối tƣợng ................................................................... Error! Bookmark not defined.3
III.3.4.1 Khai báo ........................................................................... Error! Bookmark not defined.3
III.3.4.2 Các vấn đề liên quan đến mảng đối tƣợng ........................ Error! Bookmark not defined.3
SVTH : Nhóm 5
Trang 9
III.4 Các lệnh và vòng lặp .................................................................. Error! Bookmark not defined.4
III.4.1 Lệnh If ................................................................................ Error! Bookmark not defined.4
III.4.2 Lệnh break: ......................................................................... Error! Bookmark not defined.5
III.4.3 Lệnh switch: ........................................................................ Error! Bookmark not defined.6
III.4.4 Vòng lặp For ....................................................................... Error! Bookmark not defined.6
III.4.5 Vòng lặp while ..................................................................... Error! Bookmark not defined.7
III.4.6 Vòng lặp do…while ............................................................ Error! Bookmark not defined.8
CHƯƠNG IV: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH ................................. Error! Bookmark not defined.9
IV.1. GIỚI THIỆU BÀI TOÁN.......................................................... Error! Bookmark not defined.9
IV1.1. Mô tả các bƣớc thực hiện để quản lý hàng hóa: ................... Error! Bookmark not defined.9
IV.1.2. Sơ đồ các chức năng chính:........................................................................................... 30
IV.2. CÁC MODULE CHƢƠNG TRÌNH:................................................................................... 30
IV.2.1. Nhập vào thông tin ban đầu: ........................................................................................ 30
IV.2.2. Xuất thông tin ban đầu: ...................................................... Error! Bookmark not defined.1
IV.2.4. Thêm hóa đơn nhập:……………………………………………………………………….35
IV.2.4. Thêm hóa đơn xuất:............................................................ Error! Bookmark not defined.8
IV.2.5. Thống kê sản phẩm: ..................................................................................................... 40
IV.2.5.1.Thống kê hàng hóa bán ra theo ngày : ........................................................................ 40
IV.2.5.2. Thống kê hàng hóa bán ra theo tháng: ....................................................................... 41
IV.2.5.3. Thống kê hàng hóa bán ra theo quý : ......................................................................... 41
CHƯƠNG V: CÀI ĐẶT CHƯƠNG TRÌNH VÀ CHẠY THỬ NGHIỆM .......................................................... 42
V.1 GIỚI THIỆU CHƢƠNG TRÌNH ................................................ Error! Bookmark not defined.2
V.2 THỰC HIỆN CHƢƠNG TRÌNH ................................................ Error! Bookmark not defined.2
1.
Nhập dữ liệu ban đầu ............................................................. Error! Bookmark not defined.3
2.
Xuất dữ liệu. ........................................................................... Error! Bookmark not defined.3
3.
Thêm hóa đơn nhập ................................................................ Error! Bookmark not defined.6
4.
Thêm hóa đơn xuất ................................................................. Error! Bookmark not defined.8
5.
Thống kê ................................................................................. Error! Bookmark not defined.1
V.3 Bộ Kiểm Thử ............................................................................... Error! Bookmark not defined.8
V.3.1 Bộ I ....................................................................................... Error! Bookmark not defined.9
V.3.1 Bộ II ................................................................................................................................ 60
V.3.1 Bộ IIII ............................................................................................................................. 60
Chƣơng 6 : tổng kết ......................................................................................................................... 62
Tài liệu tham khảo ............................................................................................................................ 63
Bảng phân công công việc ................................................................................................................. 64
SVTH : Nhóm 5
Trang 10
Quản lý hàng hóa
GVHD: Trần Uyên Trang
CHƢƠNG I:
TỔNG QUAN VỀ ĐỒ ÁN
I.1 Giới thiệu chung
I.1.1 Giới thiệu về chƣơng trình xây dựng đồ án quản lý
-
Chƣơng trình “Quản Lý Hàng Hóa” của nhóm chúng tôi lấy ý tƣởng từ nhu cầu
quản lý của các cửa hàng, siêu thị,…hiện nay. Nó đƣợc viết theo ngôn ngữ C++.
-
Chƣơng trình này có thể áp dụng quản lý nhiều mặt hàng khác nhau và quản lý cửa
hàng điện thoại mà nhóm tôi đang thực hiện là một trong những mặt hàng có thể sử
dụng chƣơng trình này.
-
Chƣơng trình áp dụng các thuật toán tìm trong mảng không sắp xếp.
-
Ngoài ra còn áp dụng xuất nhập file tạo thuận lợi cho việc in, ấn thông tin ra giấy.
I.1.2 Hƣớng dẫn sử dụng
-
Các nhân viên chỉ cần đọc thông tin trên màn hình DEV C++ và nhập số tƣơng
ứng theo nhu cầu cần thực hiện của mình. Menu gồm có:
1. Nhập thông tin ban đầu.
2. Xuất thông tin theo yêu cầu.
3. Thêm hóa đơn nhập.
4. Thêm hóa đơn xuất.
5. Thống kê.
-
Khi bắt đầu sử dụng chƣơng trình bạn hãy chọn menu 1 để nhập thông tin ban đầu
vào cho hệ thống tiếp nhận thông tin.
-
Nếu bạn muốn xuất các thông tin nhƣ hàng hóa, nhân viên, khách hàng… thì bạn
hãy chọn menu 2. Khi bạn chọn menu 2 sẽ xuất hiện một menu con nhƣ sau:
BẠN CẦN HIỂN THỊ THÔNG TIN NÀO:
1. Thông tin hàng hóa.
2. Thông tin nhân viên.
3. Thông tin khách hàng.
SVTH : Nhóm 5
Trang 11
Quản lý hàng hóa
GVHD: Trần Uyên Trang
4. Thông tin nhà cung cấp.
5. Thông tin hóa đơn nhập.
6. Thông tin hóa đơn xuất.
-
Bạn muốn thông tin nào hiện ra thì sẽ nhập số tƣơng ứng nhƣ trên, nhập số vào
không tồn tại ở menu thì nó sẽ hiển thị “STOP. EXIT THE PROGRAM!!!” và trở
về menu ban đầu. Tƣơng tự nhƣ vậy cho những menu tiếp theo.
I.2 Mục đích và mục tiêu
I.2.1 Mục đích:
- Chƣơng trình này có thể áp dụng quản lý hàng hóa trong các công ty, xí nghiệp,
siêu thị, cửa hàng,… để việc quản lý tối ƣu hiệu quả, thuận lợi nhất.
- Có thể phát triển thành các chƣơng trình quản lý có yêu cầu cao hơn.
I.2.2 Mục tiêu:
- Thiết kế một chƣơng trình quản lý dễ sử dụng để có thể chạy tốt trên máy tính.
- Áp dụng quản lý trong các cửa hàng điện thoại.
I.3 Dữ liệu đƣợc sử dụng trong chƣơng trình:
Bảng KHÁCH HÀNG
S
T
T
ID
TÊN KHÁCH
HÀNG
EMAIL
SỐ ĐIỆN
THOẠI
ĐỊA CHỈ
NGÀY SINH
1
KH01
LẠI MINH
TUẤN
TUANNK23@GM
AIL.COM
0908764123
66 VÕ VĂN TẦNTPHCM
25/5/1989
KH02
HỒ NGUYỆT
NGA
NGABABECUTE
@GMAIL.COM
0903123576
544 NGUYỄN TẤT
THÀNH ĐÀ NẴNG
1/7/1995
3
KH03
TÔ THỊ TRINH
TOTRINH290996
@GMAIL.COM
01653431199
12 NGUYỄN ĐỨC
TRUNG ĐÀ NẴNG
29/9/1996
4
KH04
NGUYỄN THỊ
NGUYỆT
NGUYETNGUYE
0122684678
HÕA PHƢỚC ĐÀ
NẴNG
26/5/1995
NGUYỄN THỊ
TRANG
TRANGNGUYEN
@GMAIL.COM
2
5
KH05
SVTH : Nhóm 5
0906345678
THU HƢƠNG HUẾ
12/12/1995
Trang 12
Quản lý hàng hóa
GVHD: Trần Uyên Trang
Bảng NHÀ CUNG CẤP
STT
ID
IDHH
EMAIL
SỐ ĐIỆN
THOẠI
ĐỊA CHỈ
1
N1
NOKIA
0905876675
530 BÌNH CHÁNH
TPHCM
2
O1
OPPO
08812130
76 HỒ XUÂN
HƢƠNG HÀ NỘI
3
S1
SAMSUNG
051123467
120 LIÊN CHIỂU ĐÀ
NẴNG
4
B1
BLACKBERY
051045609
123 HOÀNG VĂN
THÁI HUẾ
5
AS1
ASUS
0907123456
02 ÔNG ÍCH KHIÊM
HÀ NỘI
6
L1
LG
0125783423
345 ĐIỆN BIÊN PHỦ
TP HẢI PHÒNG
7
VT1
VIETTEL
0162567890
45 NGUYỄN HOÀNG
TPHCM
Bảng HÀNG HOÁ
STT
ID
TÊN HÀNG HÓA
ĐƠN VỊ TÍNH
SỐ LƢỢNG
ĐƠN GIÁ
1
NOKIA1
LUMIA 650 DUAL SIM
SAN PHAM
500
3990000
2
NOKIA2
LUMIA 550
SAN PHAM
320
2990000
3
NOKIA3
NOLIA 320
SAN PHAM
200
1390000
4
NOKIA4
NOKIA 305 DUAL SIM
SAN PHAM
380
429000
5
IPHONE1
IPHONE SE 16GB ROSE GOLD
SAN PHAM
600
20000000
6
SAMSUNG
SAMSUNG GALAXY S7 EGDE
SAN PHAM
240
18490000
7
OPPO1
OPP1 S1
SAN PHAM
455
5990000
8
HTC1
HTC DESIRE 826 DUAL SIM
SAN PHAM
215
2400000
SVTH : Nhóm 5
Trang 13
Quản lý hàng hóa
GVHD: Trần Uyên Trang
Bảng NHÂN VIÊN
ST
T
ID
HỌ VÀ TÊN
NGÀY
SINH
NGÀY LÀM
VIỆC
ĐỊA CHỈ
1
NV01-005
PHẠM DUY
PHƢƠNG
15/3/1986
13/7/2000
BỐ TRẠCH QUẢNG BÌNH
2
NV02-002
MAI THỊ KIỀU
03/02/1983
01/06/2005
ĐIỆN BÀN QUẢNG NAM
3
NV02-001
NGUYỄN NHƢ VŨ
25/7/1986
03/02/2003
HẢI CHÂU ĐÀ NẴNG
4
NV01-001
TRẦN TUẤN ANH
01/01/1983
25/02/2013
MỘ ĐỨC QUẢNG NGÃI
5
NV01-003
ĐÀO THỊ CÚC
11/01/1987
02/03/2008
SƠN TỊNH QUẢNG NGÃI
6
NV02-007
NGUYỄN THỊ ĐÀO
26/3/1984
23/3/2009
PHÖ THƢỢNG HUẾ
7
QL01-001
NGUYỄN VĂN
NGHĨA
23/8/1985
14/4/2010
ĐIỆN BÀN QUẢNG NAM
8
QL01-002
NGÔ PHƢƠNG
THẢO
12/11/1986
13/4/2015
VĨNH LINH QUẢNG TRỊ
9
MM01-010
LÊ VĂN BẰNG
02/7/1984
20/5/2005
KỲ ANH HÀ TĨNH
Bảng HÓA ĐƠN XUẤT
STT
IDHDX
IDNV
IDHH
IDKH
NGÀY XUẤT
SỐ LƢỢNG
LÃI
SUẤT
1
HDX001
NV01-001
NOKIA1
KH01
17/8/2015
13
10
2
HDX001
NV01-001
NOKIA3
KH01
17/8/2015
12
10
3
HDX005
NV01-003
NOKIA1
KH03
17/8/2015
20
10
4
HDX002
NV02-002
IPHONE1
KH05
20/5/2016
22
12
5
HDX003
NV01-005
SAMSUNG
KH06
01/01/2016
5
10
6
HDX003
NV01-005
NOKIA1
KH06
01/01/2016
10
10
SVTH : Nhóm 5
Trang 14
Quản lý hàng hóa
GVHD: Trần Uyên Trang
Bảng HÓA ĐƠN NHẬP
STT
IDNV
IDHH
IDNCC
NGAY NHAP
SỐ
LƢỢNG
ĐƠN GIÁ
1
NV01-005
NOKIA1
N1
04/6/2015
45
3990000
2
NV01-005
NOKIA2
N1
01/02/2013
29
2990000
3
NV01-006
NOKIA1
N1
01/02/2016
100
3990000
4
NV02-002
SAMSUNG
S1
12/3/2013
30
18490000
5
NV01-003
SAMSUNG
S1
29/9/2013
120
18490000
6
QL01-001
IPHONE1
O1
01/02/2015
122
20000000
7
NV01-005
SAMSUNG
S1
23/5/2014
34
18490000
SVTH : Nhóm 5
Trang 15
Quản lý hàng hóa
GVHD: Trần Uyên Trang
CHƢƠNG II:
TỔNG QUAN NGÔN NGỮ LẬP TRÌNH C++
II.1 Lập trình hƣớng đối tƣợng (Object Oriented Programming)
II.1.1 Sơ lƣợc về lập trình hƣớng đối tƣợng(1)
-
Lập trình hƣớng đối tƣợng là ngôn ngữ đƣợc xây dựng trên nền tảng của lập trình
có cấu trúc với sự trừu tƣợng hóa dữ liệu.
-
Sự trừu tƣợng dữ liệu tác động trên các dữ liệu cũng nhƣ sự trừu tƣợng hóa chức
năng đã làm trên chức năng. Khi sự trừu tƣợng hóa dữ liệu xảy ra, các cấu trúc dữ
liệu và các phần tử có thể đƣợc sử dụng mà không cần đƣợc chú ý đến các chi tiết
cụ thể mà ngƣời ta xây dựng.
-
Sự thay đổi căn bản ở một chỗ: 1 chƣơng trình hƣớng đối tƣợng đƣợc thiết kế xoay
quanh dữ liệu mà ta làm việc trên nó hơn là bản thân chức năng chƣơng trình.
-
Lập trình hƣớng đối tƣợng sẽ liên kết cấu trúc dữ liệu với thao tác theo cách mà
chúng ta thƣờng nghĩ về thế giới xung quanh đó là: gắn một hành động cụ thể với
một loại đối tƣợng nào đó.
-
Lập trình hƣớng đối tƣợng cho phép sử dụng các quá trình suy nghĩ về thế giới
quan vào dữ liệu.
II.1.2 Cấu trúc của một chƣơng trình C++
(1): [Khai báo thƣ viện]
(2): [Khai báo các nguyên mẫu hàm của ngƣời dùng]
(3): [Các định nghĩa kiểu]
(4): [Các định nghĩa Macro]
(5): [Các định nghĩa biến, hằng]
(6): <kiểu hàm> main ([khai báo tham số])
(7): {
(8): Thân hàm main
(9): }
(10): Các định nghĩa hàm của ngƣời dùng
SVTH : Nhóm 5
Trang 16
Quản lý hàng hóa
GVHD: Trần Uyên Trang
II.2 Những thuật ngữ của lập trình hƣớng đối tƣợng
II.2.1 Lớp(2) (class)
II.2.1.1 Khái niệm về lớp:
- Lớp (class) là khái niệm trung tâm của lập trình hƣớng đối tƣợng.
- Lớp là sự mở rộng khái niệm cấu trúc (struct) của C và bản ghi (record) của pascal.
- Ngoài ra các thành phần dữ liệu nhƣ cấu trúc, lớp còn chứa các thành phần hàm, còn
gọi là phƣơng thức (method) hay hàm thành viên (member function).
- Lớp là một kiểu đối tƣợng và nó đƣợc dùng để khai báo kiểu đối tƣợng khác.
II.2.1.2 Định nghĩa về lớp:
- Lớp đƣợc định nghĩa nhƣ sau:
Class tenlop
{
Private:
//Khai báo các thuộc tính gồm các biến thành phần, dữ //liệu các biến. Và
nó không truy xuất ra bên ngoài lớp.
Public:
//khai báo các phƣơng thức gồm các hàm
//nó truy xuất trong và ngoài lớp.
}
II.2.2 Thuộc tính(3) của lớp:
- Thuộc tính thƣờng đƣợc khai báo private để đảm bảo tính giấu kín, bảo vệ an toàn
dữ liệu của lớp, không cho các hàm hay phƣơng thức bên ngoài xâm nhập vào dữ
liệu của lớp.
SVTH : Nhóm 5
Trang 17
Quản lý hàng hóa
GVHD: Trần Uyên Trang
- Thuộc tính của lớp có thể là các biến, mảng, con trỏ kiểu chuẩn (int, float,
char,…) hoặc kiểu ngoài chuẩn đã đƣợc định nghĩa trƣớc. Thuộc tính của lớp
không thể là kiểu của chính lớp đó nhƣng có thể là con trỏ của lớp này.
Ví dụ: class A{
int x,y; // khai báo hai thuộc tính kiểu số nguyên.
float z;// khai báo z có kiểu số thực.
A p;// không đƣợc phép.
A *p;// khai báo con trỏ p kiểu A.}
II.2.3 Phƣơng thức(4) của lớp:
- Phƣơng thức thƣờng đƣợc khai báo public để chúng có thể đƣợc gọi tới từ các
hàm khác trong chƣơng trình
- Phƣơng thức có thể đƣợc định nghĩa bên ngoài hay bên trong lớp. Thông thƣờng
phƣơng thức ngắn sẽ đƣợc định nghiã bên trong lớp, phƣơng thức dài sẽ đƣợc
định nghĩa bên ngoài lớp. Khi định nghĩa bên ngoài lớp ngƣời ta sử dụng toán tử
phạm vi(::).
Ví dụ: Class B{
private:
int x,y;
public:
void nhap(){
cout<<”nhap toa do x va y: “;
cin>>x>>y;}
void display();//định nghĩa phƣơng thức bên ngoài lớp
}
void B::display(){
cout<<”toa do diem vua nhap la: “<<”( ”<
SVTH : Nhóm 5
Trang 18
Quản lý hàng hóa
GVHD: Trần Uyên Trang
CHƢƠNG III:
KIẾN THỨC CƠ SỞ NGÔN NGỮ LẬP TRÌNH C++
III.1 Các thƣ viện sử dụng:
- #include<iostream>: thƣ viện của các hàm tiêu chuẩn để đọc và viết ra các dòng
chuẩn (standard stream) hay xuất và nhập (dữ liệu) từ C++.
- #include<bits/stdc++.h>
- #include<fstream>: Định nghĩa các hàm hỗ trợ các phép toán cho dòng xuất nhập
(iostream) trên các chuỗi chứa trong các tập tin bên ngoài.
- using namespace std;
III.2 Thao tác với file(5):
Mở file để ghi dữ liệu:
ofstream <fileVar> (FileName);
Ví dụ: ofstream fo1("NHANVIEN.OUT"), fo2("HANGHOA.OUT"), …
Mở file để đọc dữ liệu:
ifstream <fileVar> (FileName);
Ví dụ: ifstream fi1("NHANVIEN.INP"), fi2("HANGHOA.TXT"), …
Đóng file:
fileVar.close();
Ví dụ: fi1.close(); fi2.close();…
Ghi dữ liệu vào file:
fileVar<
Ví dụ: fo2<
SVTH : Nhóm 5
Trang 19
Quản lý hàng hóa
GVHD: Trần Uyên Trang
Đọc dữ liệu từ file:
fileVar>>Var1>>Var2>>...>>VarN;
Ví dụ: getline(fi2,ID); getline(fi2,tenhh); fi2>>sl>>giahang;….
III.3 Các kiểu dữ liệu:
III.3.1 Kiểu struct(6):
- Đối với danh sách mảng, chỉ có thể lƣu nhiều thông tin có cùng kiểu dữ liệu nhất
định. Nhƣng với struct ta có thể lƣu thông tin có nhiều kiểu dữ liệu khác nhau.
- Cú pháp:
struct tên _kiểu_cấu_trúc
{
Khai báo các thành phần của kiểu;s
} danh_sách_các_biến_thuộc_kiểu_cấu_trúc;
-
Ví dụ: //khai báo struct cho ngày tháng năm
typedef struct {
int day,month,year;
} DATE;
// khai báo struct có các kiểu dữ liệu khác nhau
struct typef {
int soluong,lai;
string ID; }
-
f[i];
Truy cập đến các thành phần của cấu trúc:
Để truy nhập đến thành phần của cấu trúc ta sử dụng toán tử chấm (.).
Tên_cấu_trúc . tên_thành_phần;
Nhƣ ví dụ trên ta truy cập nhƣ sau:
SVTH : Nhóm 5
Trang 20
Quản lý hàng hóa
GVHD: Trần Uyên Trang
f[i].ID; f[i].lai; f[i].soluong; // truy xuất đến mảng có kiểu struct
DATE d;
d.day; d.month; d.year; // truy xuất đến ngày tháng năm.
…
Khi đã truy xuất đƣợc tới các thành phần của cấu trúc thì mỗi thành phần đó là 1 biến
bình thƣờng và ta gán giá trị hoặc nhập xuất giá trị cho chúng nhƣ cách bình thƣờng mà
chúng ta vẫn làm.
III.3.2 Các kiểu dữ liệu chuẩn, không chuẩn:
-
Các kiểu dữ liệu chuẩn là:
string: kiểu kí tự
int: kiểu số nguyên có miền giá trị -215 -> 215 -1
long long – 231 -> 231 -1.
-
Kiểu không chuẩn: DATE và typef ( định nghĩa theo struct)
III.3.3 Danh sách mảng 1 chiều:
III.3.3.1 Khái niệm mảng 1 chiều(7):
- Mảng là kiểu dữ liệu có cấu trúc bao gồm nhiều phần tử cùng kiểu và đƣợc bố trí
vùng nhớ liên tục. Một mảng số nguyên gồm các phần tử là các biến số nguyên.
Một mảng số thực bao gồm các phần tử là các biến thực.
- Kích thƣớc của mảng chính là số các phần tử trong mảng. Kích thƣớc này phải
đƣợc khai báo tƣờng minh trong phần khai báo mảng vì nó xác định vị trí và kích
thƣớc của vùng nhớ trong bộ nhớ đƣợc cấp phát cho mảng.
III.3.3.2 Ƣu và nhƣợc điểm của mảng một chiều:
2.1 Ƣu điểm:
SVTH : Nhóm 5
Trang 21
Quản lý hàng hóa
GVHD: Trần Uyên Trang
- giúp ta tiết kiệm tài nguyên hệ thống. Ta có thể sử dụng một mảng có kích thƣớc
lớn trong một thời gian nào đó rồi xóa bỏ để trả lại vùng nhớ cho hệ thống.
- Dễ cài đặt và truy nhập các phần tử dữ liệu.
- Tốc độ truy nhập đến một vị trí bất kì nhanh và hiệu quả.
2.2 Nhƣợc điểm:
- Cần phải xác định trƣớc số phần tử mảng trƣớc khi sử dụng => không phù hợp
với các bài toán chƣa biết số lƣợng phần tử.
- Khó khăn trong các thao tác chèn và xóa một phần tử bất kì trong mảng.
- Nếu bài toán mà việc chèn phần tử xóa phần tử diễn ra liên tục thì tốc độ xử lí sẽ
diễn ra rất chậm.
2.3 Các thao tác cơ bản trên mảng một chiều:
Nhập giá trị cho các phần tử mảng
Xuất giá trị các phần tử mảng( ra màn hình )
Thêm một phần tử vào mảng
Xóa một phần tử ra khỏi mảng
Tìm kiếm trên mảng
Sắp xếp mảng
- Các thao tác trên thực chất là duyệt mảng và xử lí trên từng phần tử mảng nhờ
vào cấu trúc lặp
Nhập giá trị cho từng phần tử
for (i=0; i
cout<<”a[ “<
cin>>a[i];
}
Hiển thị mảng
for (i=0; i
cout<
SVTH : Nhóm 5
Trang 22
Quản lý hàng hóa
GVHD: Trần Uyên Trang
III.3.4 Mảng đối tƣợng(8)
III.3.4.1 Khai báo
- Tƣơng tự nhƣ khai báo mảng int, char, float… Mảng đối tƣợng dùng tên lớp để
khai báo theo mẫu:
tên_lớp tên_mảng[kích cở];
Ví dụ: NhanVien NV[1000]; HangHoa HH[1000];
KhachHang KH[1000];
NhaCungCap NCC[1000];
HoaDonNhap HDN[1000]; HoaDonXuat HDX[1000];
III.3.4.2 Các vấn đề liên quan đến mảng đối tƣợng
Khởi gán
- Khởi gán giá trị cho các phần tử của mảng đối tƣợng, có thể dùng hàm tạo hay
các phƣơng thức nhập nhƣ sau:
Tên_lớp tên_mảng[kích cở] ={ Tên_lớp( các tham số),…};
Ví dụ : HangHoa HH[1000] = HangHoa(); //khởi gán bởi cấu tử không đối.
Biểu thị thành phần của phần tử mảng
- Để biểu thị thuộc tính của phần tử mảng đối tƣợng, ta viết nhƣ sau:
Tên_mảng[ chỉ số].Tên_thuộc_tính;
Ví dụ: HH[1].ID; HH[2].tenhh;
- Để thực hiện phƣơng thức đối với phần tử mảng ta có thể viết nhƣ sau:
Tên_mảng[ chỉ số].Tên_phƣơng_thức(danh sách tham số);
Ví dụ: HH[i].nhap();
NCC[i].xuat();
III.4 Các lệnh và vòng lặp(9)
III.4.1 Lệnh If
- Lệnh IF là một trong các lệnh phổ biến và cho phép bạn so sánh lô-gic giữa một
giá trị và những gì bạn mong đợi. Câu lệnh IF có thể có hai kết quả. Kết quả đầu
tiên là nếu so sánh của bạn là True, thứ hai nếu so sánh của bạn là False.
SVTH : Nhóm 5
Trang 23
Quản lý hàng hóa
-
GVHD: Trần Uyên Trang
Cú pháp: if(biểu thức điều kiện)
{
xử lí 1;}
} else {
xử lí 2;
}
- Ví dụ: nếu ID khách hàng trong hóa đơn xuất bằng ID khách hàng trong mảng khách
hàng thì hiển thị tên khách hàng đó.
if(HDX[j].getIDKH()==KH[i].getID())
{
fo6<<"ho va ten khach hang: "<
fo6<<"dia chi khach hang: "<
};
III.4.2 Lệnh break:
- Thông thƣờng lệnh break dùng để thoát khỏi vòng lặp không xác định điều kiện
dừng hoặc bạn muốn dừng vòng lặp theo điều kiện do bạn chỉ định.
- Việc dùng lệnh break để thoát khỏi vòng lặp thƣờng sử dụng phối hợp với lệnh if.
Lệnh break dùng trong for, while, do…while, switch. Lệnh break thoát khỏi vòng
lặp chứa nó.
Ví dụ:
while(i<=n4)
{
SVTH : Nhóm 5
Trang 24
Quản lý hàng hóa
GVHD: Trần Uyên Trang
if(HDX[j].getIDKH()==KH[i].getID())
{
fo6<<"ho va ten khach hang: "<
fo6<<"dia chi khach hang: "<
break;
}
else i++;
}
III.4.3 Lệnh switch:
- Cũng giống cấu trúc “if else”, nhƣng nó mềm dẻo hơn và linh động hơn nhiều so
với sử dụng if. Tuy nhiên, nó cũng có mặt hạn chế là kết quả của biểu thức phải là
giá trị hằng nguyên (có giá trị cụ thể). Một bài toán sử dụng lệnh switch thì cũng
có thể sử dụng if, nhƣng ngƣợc lại còn tùy thuộc vào giải thuật của bài toán.
- Cú pháp:
switch(biểu thức nguyên) {
case hằng_1: [lệnh 1;]
case hằng_2: [lệnh 2;]
case hằng_n: [lệnh n;]
default: [lệnh n+1;]
}
Ví dụ: switch(ch)
SVTH : Nhóm 5
Trang 25