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

ĐỒ ÁN CUỐI KỲ : QUẢN LÍ BÁN HÀNG BẰNG NGÔN NGỮ C++ VỚI THAO TÁC XUẤT NHẬP FILE

64 1K 8

Đ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 64
Dung lượng 1,49 MB
File đính kèm DOAN-QLHH-N5.rar (3 MB)

Nội dung

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.

Trang 1

NHÓM 6 - Lớp: 14SPT

Đà Nẵng, ngày 31 tháng 5 năm 2016

Trang 2

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!

Trang 3

ĐẠ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++

Trang 4

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

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 Điểm thực hiện Điểm tổng kết [(1)+(2)]/2 Kiến thức (40%) Kỹ năng (60%) TỔNG CỘNG (1) Bản báo cáo (40%) Chương trình (60%) TỔNG CỘNG (2) Điểm số Điểm chữ SV:

Nhận xét:

[(1)+(2)]/2 Kiến

thức

(40%)

Kỹ năng

(60%)

TỔNG CỘNG (1)

Bản báo cáo (40%)

Chương trình (60%)

TỔNG CỘNG (2)

Điểm số Điểm chữ

Đà Nẵng, ngày … tháng … năm 20…

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 Điểm thực hiện Điểm tổng kết [(1)+(2)]/2 Kiến thức (40%) Kỹ năng (60%) TỔNG CỘNG (1) Bản báo cáo (40%) Chương trình (60%) TỔNG CỘNG (2) Điểm số Điểm chữ SV:

Nhận xét:

[(1)+(2)]/2 Kiến

thức

(40%)

Kỹ năng

(60%)

TỔNG CỘNG (1)

Bản báo cáo (40%)

Chương trình (60%)

TỔNG CỘNG (2)

Điểm số Điểm chữ

Đà Nẵng, ngày … tháng … năm 20…

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 Điểm thực hiện Điểm tổng kết [(1)+(2)]/2 Kiến thức (40%) Kỹ năng (60%) TỔNG CỘNG (1) Bản báo cáo (40%) Chương trình (60%) TỔNG CỘNG (2) Điểm số Điểm chữ SV:

Nhận xét:

[(1)+(2)]/2 Kiến

thức

(40%)

Kỹ năng

(60%)

TỔNG CỘNG (1)

Bản báo cáo (40%)

Chương trình (60%)

TỔNG CỘNG (2)

Điểm số Điểm chữ

Đà Nẵng, ngày … tháng … năm 20…

Trang 8

ĐẠ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 Điểm thực hiện Điểm tổng kết [(1)+(2)]/2 Kiến thức (40%) Kỹ năng (60%) TỔNG CỘNG (1) Bản báo cáo (40%) Chương trình (60%) TỔNG CỘNG (2) Điểm số Điểm chữ SV:

Nhận xét:

[(1)+(2)]/2 Kiến

thức

(40%)

Kỹ năng

(60%)

TỔNG CỘNG (1)

Bản báo cáo (40%)

Chương trình (60%)

TỔNG CỘNG (2)

Điểm số Điểm chữ

Đà Nẵng, ngày … tháng … năm 20…

Trang 9

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

Trang 10

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

Trang 11

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

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

Trang 12

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

- 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:

3 KH03 TÔ THỊ TRINH TOTRINH290996

12 NGUYỄN ĐỨC TRUNG ĐÀ NẴNG 29/9/1996

Trang 13

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

Trang 14

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

Trang 16

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

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

Trang 17

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

//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

Trang 18

- 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(::)

Trang 19

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"), …

Trang 20

 Đọ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

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:

Trang 21

f[i].ID; f[i].lai; f[i].soluong; // truy xuất đến mảng có kiểu struct

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:

Trang 22

- 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:

Trang 23

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]; NhaCungCap NCC[1000]; KhachHang KH[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ố);

Trang 24

- Cú pháp: if(biểu thức điều kiện)

fo6<<"dia chi khach hang: "<<KH[i].getadd()<<endl;

Ví dụ:

while(i<=n4) {

Trang 25

if(HDX[j].getIDKH()==KH[i].getID()) {

fo6<<"ho va ten khach hang: "<<KH[i].gethoten()<<endl;

fo6<<"dia chi khach hang: "<<KH[i].getadd()<<endl;

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

Trang 26

{

case 1:tk_ngay();break; // nếu ch=1 thì hàm tk_ngay() được thực hiện case 2:tk_thang();break;// nếu ch=2 thì hàm tk_thang() được thực hiện case 3:tk_quy();break; // nếu ch=3 thì hàm tk_quy() được thực hiện default: cout<<"STOP EXIT THE PROGRAM!!!\n"; break;// nếu khác trên

 Biểu thức 1: khởi tạo giá trị ban đầu cho biến điều khiển

 Biểu thức 2: là quan hệ logic thể hiện điều kiện tiếp tục vòng lặp

 Biểu thức 3: phép gán dùng thay đổi giá trịbiến điều khiển

- Cách hoạt động:

 Bước 1: Xác định giá trị của biểu thức 1

 Bước 2: Xác định giá trị của biểu thức 2 (kiểm tra điều kiện đúng hay sai tức

1 hoặc 0) Tùy vào giá trị của biểu thức 2 mà thực hiện theo 2 hướng:

+ Nếu sai (0) sẽ thoát khỏi vòng lặp

+ Nếu đúng (1) sẽ thực hiện khối lệnh trong vòng for đến khi gặp dấu } ở cuối vòng for hoặc lệnh continue thì sẽ tưới bước 3

 Bước 3: Tính giá trị biểu thức 3, sau đó quay lại bước 2

Trang 27

Ví dụ: for( int j = 1; j < n; j++){

if( f[j].ID == id){

kiemTra = true; //tim thay => da co trong f

chimuc = j;//Lay chi muc cua SanPham thu j

} }

III.4.5 Vòng lặp while

- Cú pháp: while( biểu thức ) [lệnh];

- Trong khi biểu thức còn đúng thì thực hiện lệnh, khi sai thì thoát khỏi while

- Biểu thức: có thể là một biểu thức hoặc nhiều biểu thức con Nếu là nhiều biểu thức con thì cách nhau bởi dấu phẩy (,) và tính đúng sai của biểu thức đƣợc quyết

định bởi biểu thức con cuối cùng

 Trong thân while (khối lệnh) có thể chứa một hoặc nhiều cấu trúc điều khiển khác

 Trong thân while có thể sử dụng lệnh continue để chuyển đến đầu vòng lặp (bỏ qua các câu lệnh còn lại trong thân)

 Nếu biểu thức là một hằng khác không thì nó luôn đúng và vòng lặp diễn ra vô hạn Muốn thoát khỏi vòng lặp while tùy ý có thể dùng các lệnh break, goto, return nhƣ với lệnh for

Ví dụ: //nhap tong tin hang hoa

while(!fi2.eof()){ //khi chưa kết thúc file

HH[i++].nhap();

} fi2.close();

Trang 29

CHƯƠNG IV

PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH

IV.1 GIỚI THIỆU BÀI TOÁN

IV1.1 Mô tả các bước thực hiện để quản lý hàng hóa:

- Để thực hiện quản lý việc nhập, xuất hàng hóa chúng ta cần xây dựng các mảng chứa dữ liệu xử lý cho các đối tượng : nhân viên, hàng hóa, nhà cung cấp, khách hàng, hóa đơn xuất, hóa đơn nhập Cụ thể công việc như sau:

- Tạo 6 mảng, mỗi mảng chứa 1000 phần tử Các lớp dược định nghĩa như kiểu dữ liệu cho các mảng Mỗi mảng sẽ chứa nhiều đối tượng

- Nhập dữ liệu vào mảng từ các file INP,.TXT

- Hiển thị thông tin vừa nhập vào các file OUT

- Thực hiện thêm hóa đơn nhập: thêm mới một hóa đơn nhập, nếu mã hàng hóa đã tồn tại chỉ cần tăng lên số lượng với giá trị mỗi mặt hàng là không thay đổi Ngược lại, thêm mới một mặt hàng vào trong bảng HANG HOA; kiểm tra nhân viên thực hiện hóa đơn đã tồn tại chưa, nếu chưa thì thêm vào bảng NHÂN VIÊN; tương tự kiểm tra NHÀ CUNG CẤP

- Thực hiện thêm hóa đơn xuất: thêm mới một hóa đơn xuất, kiểm tra hàng hóa mới hay cũ, nếu là mặt hàng cũ ta thực hiện giảm số lượng hàng hóa trong kho, nếu không tồn tại trong bảng HÀNG HÓA thì thông báo lỗi hàng hóa không tồn tại; Sau đó, tiếp tục kiểm tra NHÂN VIÊN, KHÁCH HÀNG như thuật toán trong HÓA ĐƠN NHẬP

- Thống kê theo các yêu cầu sau:

 Ngày tháng năm hóa đơn xuất

 Tháng năm hóa đơn xuất

 Các quý trong năm (mỗi quý là 3 tháng kế tiếp)

- Thuật toán: nhập vào các giá trị cần thống kê, sau đó thực hiện kiểm thử, so sánh với các giá trị cùng thuộc tính và thực hiện thống kê

Trang 30

IV.1.2 Sơ đồ các chức năng chính:

IV.2 CÁC MODULE CHƯƠNG TRÌNH:

IV.2.1 Nhập vào thông tin ban đầu:

- Thuật toán này áp dụng với mọi mảng

i: địa chỉ truy xuất đến các thành phần mảng

n: số lượng thành phần mảng

fi: file dữ liệu chứa thông tin cần nhập

Trang 31

Đ

S

IV.2.2 Xuất thông tin ban đầu:

- Thực hiện xuất thông tin theo yêu cầu sau:

cout<<"BAN CAN XEM THONG TIN NAO??? "<<endl;

cout<<"1.thong tin nhan vien "<<endl;

cout<<"2.thong tin hang hoa."<<endl;

cout<<"3.thong tin nha cung cap."<<endl;

cout<<"4.thong tin khach hang."<<endl;

cout<<"5.thong tin hoa don nhap."<<endl;

cout<<"6.thong tin hoa don xuat."<<endl;

cout<<"MOI BAN CHON CONG VIEC CAN THUC HIEN: ";cin>>chon;

Begin

i:=1

!fi.eof () Nhập thông tin đối

tượng

i++

n:=i-2

fi.close() //đóng file

End

Trang 32

- Thuật toán sau minh họa cho các chức năng 1; 2; 3; 4; 5

Đ

S

 Thuật toán sau áp dụng cho công việc hiên thị các mặt hàng xuất , các khách hàng cùng chung một hóa đơn

 Chương trình con xuất thông tin hóa đơn xuất theo mã hóa đơn xuất

 Chương trình con xuất thông tin một mặt hàng trong hóa đơn xuất

 Các chương trình sau sẽ được thiết kế như sau:

Ngày đăng: 01/06/2016, 23:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
(2) (3) (4) Bài 1/trang 83. Chương 3: Khái Niệm Về Lớp – Lập Trình Hướng Đối Tƣợng C++ GS. PHẠM VĂN ẤT Khác
(5) Giáo trình Xuất Nhập File- TS. PHẠM ANH PHƯƠNG Khác
(6) Chương 3: Mảng và Con Trỏ - Giáo trình Ngôn Ngữ Lập Trình C - Th.S TRẦN UYÊN TRANG Khác
(7) Chương 5: Cấu Trúc - Giáo trình Ngôn Ngữ Lập Trình C – Th.S TRẦN UYÊN TRANG Khác
(8) Bài 2/trang 86. Chương 3: Khái Niệm Về Lớp – Lập Trình Hướng Đối Tượng C++ GS. PHẠM VĂN ẤT Khác
(9) Chương 2: Các Câu Lệnh Điều Khiển Chương Trình - Giáo trình Ngôn Ngữ Lập Trình C –Th.S TRẦN UYÊN TRANG Khác

TỪ KHÓA LIÊN QUAN

w