Bài giảng về vật liệu ceramic ( sứ vệ sinh, gạch ốp lát )
Đồ Án Quản Lý Bán Hàng bằng C++
1. TRƯỜNG ĐẠI HỌC DUY TÂN
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN CƠ SỞ
NGÀNH KHOA HỌC MÁY TÍNH
ĐỀ TÀI: QUẢN LÝ BÁN HÀNG
Giảng viên hướng dẫn: Ths. Nguyễn Quốc Long
Sinh viên thực hiện: nguyễn văn thọ
Lớp: K19TPM3
Mã sinh viên: 3175
Đà Nẵng, tháng 03/2015
2. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
MỤC LỤC
PHẦN MỞ ĐẦU:
1. LÝ DO CHỌN ĐỀ TÀI
Hiện nay, công nghệ thông tin đang phát triển nhanh chóng và ngày càng được ứng dụng
rộng rãi vào cuộc sống của con người. Cũng như trên thế giới, Việt Nam là một nước đang
phát triển và công nghệ thông tin cũng đang phát triển nhanh chóng thì việc đầu tư cho công
cuộc phát triển, nghiên cứu và ứng dụng công nghệ thông tin là rất quan trọng.
Một trong số ứng dụng của công nghệ thông tin là vào lĩnh vực quản lý .Hiện nay, công
nghệ thông tin (CNTT) đang hiện diện và đóng vai trò quan trọng không thể thiếu trong quá
trình quản trị, điều hành các hoạt động sản xuất kinh doanh của mỗi cửa hàng. Sự phát triển và
ứng dụng của Internet đã làm thay đổi mô hình và cách thức hoạt động kinh doanh của cửa
hàng, việc chuyển dần các giao dịch truyền thống sang giao dịch điện tử đã ảnh hưởng đến vị
trí, vai trò và cả nhu cầu của các bên hữu quan ( sản phẩm,khách hàng,…) của cửa hàng
Vì vậy mà em chọn đề tài “Xây dựng chương trình quản lý bán hàng bằng ngôn ngữ C/C++”
làm đề tài nghiên cứu
2. MỤC TIÊU ĐỀ TÀI
Xây dựng một chương trình quản lý bán hàng bằng ngôn ngữ lập trình C/C++ đơn giản,
dễ sử dụng cho người quản lý.
Giải quyết các vấn đề: quản lý bán hàng trong một năm học, số tính chỉ đăng ký, số điểm
đạt được, môn học, nhập liệu, tìm kiếm và sửa thông tin…
3. PHẠM VI NGHIÊN CỨU
Nghiên cứu, phân tích và xây dựng hệ thống quản lý bán hàng.
4. PHƯƠNG PHÁP NGHIÊN CỨU
Ngô Thị Thu Uyên – K19TPM3
Page 2
3. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
Thực hiện đề tài này, em đã ứng dụng các kiến thức đã học về lập trình, tham khảo một
số tài liệu về ngôn ngữ C/C++.
Tham khảo, nghiên cứu việc quản lý bán hàng trong cửa hàng để xây dựng phần mềm
thích hợp.
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C/C++
Ngôn ngữ lập trình C do Brain W.Kernighan và Dennis Ritchie phát minh vào năm
1972 tại phòng thí nghiệm Bell Telephone với mục đích tạo ngôn ngữ để viết hệ điều hành
UNIX, nhưng do tính ưu việt cũng như tính mềm dẻo của nó, cho nên giới tin học nhanh chóng
chấp nhận như một ngôn ngữ nhà nghề.
Năm 1978, bản in đầu tiên được in thành sách, đó là cuốn “The C Programming
Language” do chính hai tác giả của ngôn ngữ biên soạn. Viện chuẩn quốc gia Mỹ ANSI
(American National Standard Institute) công bố chuẩn ngôn ngữ C vào năm 1983 với tên
“ANSI C”.
Ngôn ngữ C rất tiện dụng trong việc viết các phần mềm hệ thống (hệ điều hành, chương
trình dịch, soạn thảo văn bản, cơ sở dữ liệu, bản tính…)
Là ngôn ngữ có ít từ khoá, có cấu trúc modun, dễ thích nghi cho các hệ thống máy tính
khác nhau.
Cuối năm 1980, cũng tại phòng thí nghiệm Bell Telephone, Bjrane Stroustrup phát triển
ngôn ngữ C để tạo thành một phiên bản mới, phiên bản mới này có tên là C++. C++ thực hiện
được hết các khả năng của C, bao trùm lên C, ngoài ra còn bổ sung thêm nhiều khái niệm và
khả năng mới và mạnh mẽ hơn. Những bổ sung của C++ so với C chia thành hai nhóm sau:
• Nhóm một là các kiểu dữ liệu mới, các dòng dữ liệu mới, các hàm mới.. làm cho
ngôn ngữ mạnh mẽ hơn va dễ lập trình hơn.
• Nhóm hai là các khái niệm lớp, đối tượng va những khái niệm liên quan tạo cơ
sở cho lập trình hướng đối tượng và làm cho C++ trở thành ngôn ngữ lập trình
hướng đối tượng.
1.1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ C++
Ngô Thị Thu Uyên – K19TPM3
Page 3
4. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
1.2.1 CÁC KIỂU DỮ LIỆU CƠ SỞ
1.2.1.1 KIỂU KÝ TỰ
Ký tự là một chữ cái, chữ số hoặc ký tự đặc biệt và được định nghĩa bằng từ khoá char.
Một ký tự chiếm 1 byte, biểu diễn 1 ký tự trong bảng mã ASCII (American Standard
Code for Information Interchangre) và nằm cặp nháy đơn.
Bảng mã của một số ký tự biễu diễn được:
Ký tự Mã ASCII
Các ký tự điều khiển(enter, esc,tab…) 0..31
Space bar(‘ ‘) 32
! ” # $ % & … 33..47
0..9 48..57
A..Z 65..90
a..z 97..122
1.2.1.2 KIỂU SỐ NGUYÊN
Một số dữ liệu kiểu số nguyên:
Từ khoá Số byte Miền giá trị
int 2 -215
→ 215
– 1 (-32768..32767)
short 2 -215
→ 215
– 1
long 4 -231
→ 231
– 1 (-2.1 tỷ..2.1 tỷ)
unsigned int 2 0 →216
– 1 (0..65535)
unsigned short 2 0 →216
– 1
unsigned long 2 1 →232
– 1 (0..4.2 tỷ)
1.2.1.3 KIỂU SỐ THỰC
Từ khoá Số byte Miền giá trị Độ chính xác
Float 4 ±2*10-38
→ ±3.4*1038
7 chữ số
Double 8 ±2.2*10-308
→ ±8*10308
15 chữ số
Ngô Thị Thu Uyên – K19TPM3
Page 4
5. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
Long double 10 ±3.4*10-4932
→ ±3.4*104932
15 chữ số
Một số dữ liệu kiểu số thực:
1.2.2 CÁC CẤU TRÚC ĐIỀU KHIỂN
1.2.2.1 Cấu trúc rẽ nhánh
• Cấu trúc if
Cú pháp:
• Lệnh switch
Ngô Thị Thu Uyên – K19TPM3
Page 5
if(biểu thức)
[Lệnh 1];
else
6. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
Cú pháp:
Ngô Thị Thu Uyên – K19TPM3
Page 6
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;
7. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
1.2.2.2 Các lệnh vòng lặp
• Vòng lặp for
Cú pháp:
Ngô Thị Thu Uyên – K19TPM3
Page 7
for([bt1]; [bt2]; [bt1])
[Lệnh];
8. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
• Lệnh while
Cú pháp:
• Lệnh do..while
Cú pháp:
Ngô Thị Thu Uyên – K19TPM3
Page 8
while(biểu thức)
[Lệnh];
9. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
Ngô Thị Thu Uyên – K19TPM3
Page 9
do{
[Lệnh];
}while(biểu thức)
10. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
1.2.3 HÀM
Cú pháp:
[kiểu trả về | void] < Tên hàm([danh_sách_tham_số_hình_thức])>
< { [khai báo biến cục bộ]
[các câu lệnh]
[return giá_trị_trả_về;]
[các câu lệnh]
[return giá_trị_trả_về;]
} >
1.2.4 MẢNG
1.2.4.1 KHÁI NIỆM MẢNG
Mảng là một tập hợp hữu hạn các phần tử (biến) cùng kiểu dữu liệu liên tục trong bộ
nhớ và có chung một tên. Mỗi phần tử trong mảng được xác định qua chỉ số (vị trí trong mảng)
của nó.
Các phần tử của mảng nằm trong các ô nhớ liên tục nhau, địa chỉ thấp nhất của ô nhớ
tương ứng với phần tử thú nhất và địa chỉ cao nhất của ô nhớ tương ứng với phần tử cuối cùng.
Số phần tử của mảng được xác định ngay khi khai báo mảng. Mỗi phần tử của mảng được truy
cập trực tiếp thông qua tên mảng và chỉ số của nó.
Có nhiều loại mảng, mảng một chiều (vecto), mảng 2 chiều (ma trận), mảng nhiều
chiều.
1.2.4.2 MẢNG MỘT CHIỀU
• Khai báo:
Kiểu_dữ_liệu Tên _mảng[Số_phần_tử];
• Truy cập:
Tên_mảng[Chỉ_số];
Trong đó:
0 ≤ Chỉ_số ≤ Số_phần_tử -1
Chỉ_số có thể là hằng số, biến kiểu nguyên, biểu thức nguyên.
Ngô Thị Thu Uyên – K19TPM3
Page 10
11. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
1.2.5 KIỂU DỮ LIỆU TỰ ĐỊNH NGHĨA STRUCT
struct kiểu_struct{
kiểu_đã_có_1: danh sách các trường cùng kểu;
kiểu_đã_có_2: danh sách các trường cùng kểu;
kiểu_đã_có_n: danh sách các trường cùng kểu;
};
1.2.6 KIỂU DỮ LIỆU TỆP (FILE)
• Khái niệm
Tệp là một tập hợp dữ liệu có liên quan với nhau được nhóm lại lưu trữ trên bộ nhớ
ngoài hoặc các thiết bị và tồn tại ngay cả khi chương trình kết thúc hoặc mất điện.
Có hai loại tệp: tệp văn bản và tệp nhị phân. Trong chương trình này sử dụng tệp nhị
phân.
Sử dụng thư viện fstream.
• Tệp nhị phân
Tệp nhị phân là tệp mà các phần tử của nó chỉ biểu diễn một kiểu dữ liệu. Một tệp tin
dù được xây dựng bằng cách nào thì bản chất của nó cũng chỉ là dãy các byte (0..255) ghi tren
đĩa, với cách quan niệm này người ta gọi là tệp nhị phân.
Một số thao tác trên tệp:
+ Khai báo con trỏ file: fstream f;
+ Mở file để ghi: f.open(tên_tệp, ios::out | ios::binary);
Ghi file: f.write((char*) & x, sizeof(x));
+ Mở file để đọc: f.open(ten_tệp, ios::in | ios::binary);
+ Đóng file: f.close();
1.3 Mô tả bài toán bán hàng:
Trong cửa hàng sẽ có nhiều sản phẩm với đơn vị tính và đơn giá khác nhau, để tránh
nhầm lẫn chúng ta gán mã sản phẩm cho từng sản phẩm (mã sản phẩm không trùng
nhau). Khi khách hàng vào mua hàng cần có thông tin về tên khách hàng, địa chỉ loại
sản phẩm cần mua, số lượng mua. Từ đó tính hóa đơn, trong hóa đơn ta tính thành tiền
bằng việc dựa vào mã sản phẩm (khi nhập mã sản phẩm và số lượng chương trình sẽ tự
hiểu đơn giá và tính thành tiền bằng công thức đơn giá nhân với số lượng). Qua chương
trình có thể thực hiện thao tác tìm kiếm thông tin khách hàng theo mã khách hàng, tìm
kiếm thông tin sản phẩm theo mã sản phẩm, cũng như vậy xóa , thêm : sản phẩm hay
khách hàng thông qua mã của nó.
Ngô Thị Thu Uyên – K19TPM3
Page 11
12. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
CHƯƠNG 2: PHÂN TÍCH XÂY DỰNG CHƯƠNG TRÌNH
2.1GIỚI THIỆU THUẬT TOÁN
Chương trình quản lý bán hàng quản lý các vấn đề:
+ Quản lý thông tin khách hàng và sản phẩm
+ Hóa Đơn bán hàng
Mỗi mục là một mảng struct quản lý các vấn đề cụ thể:
• Quản lý thông tin khách hàng:
• Mã khách hàng
• Họ và tên
• Địa chỉ
• Quản lý thông tin sản phẩm:
Mã sản phẩm
Tên sản phẩm
Số lượng
Đơn giá
Đơn vị tính
• Hóa Đơn
Nhập mã khách hàng
Nhập mã sản phẩm
Số lượng mua
Thành tiền
• Quản lý thông tin khách hàng thực hiện các công việc
Hỏi người dùng nhập thông tin từ file hay tạo mới file
Nhập thông tin khách hàng
In danh sách khách hàng
Tìm khách hàng (qua mã khách hàng)
Sửa thông tin, thêm ,xoá khách hàng nào đó
• Quản lý thông tin sản phẩm thực hiện các công việc
Hỏi người dùng nhập thông tin từ file hay tạo mới file
Nhập mã sản phẩm
Nhập tên sản phẩm
In danh sách sản phẩm
Nhập số lượng sản phẩm
Nhập đơn giá sản phẩm
Nhập đơn vị tính sản phẩm
Cập nhật sản phẩm mới
Tìm sản phẩm (qua mã sản phẩm)
Xóa sản phẩm (qua mã sản phẩm)
• Quản lý hóa đơn
Hỏi người dùng nhập thông tin từ file hay tạo mới file
In hóa đơn
2.2CÁC MODUL CHÍNH TRONG CHƯƠNG TRÌNH
Ngô Thị Thu Uyên – K19TPM3
Page 12
13. TẠO/ NHẬP FILE
QL KHÁCH HÀNG
NHẬP KH
THÊM KH
IN KH
XÓA KH
TÌM THEO MÃ
KH
QL SẢN PHẨM
NHẬP SP
IN SP
XÓA SP
THÊM SP
TÌM THEO MÃ
SP
QL HÓA ĐƠN
NHẬP HÓA
ĐƠN
IN HÓA ĐƠN
QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
2.2.1 SƠ ĐỒ TỔNG QUÁT
2.2 .2 CÁC THUẬT TOÁN
2.2.2.1 Hàm nhập dữ liệu từ file
B1: Tạo file mới
B2: Nhập tên file
B3: Nhập dữ liệu vào file
B4: Kết thúc
2.2.2.2 Hàm nhập khách hàng
B1: Khởi tạo gán cho i=0,n
B2: Kiểm tra i<n , nếu i<n thì sang B3, ngược lại sang B4
B3: Nhập thông tin khách hàng
B4: Kết thúc
2.2.2.3 Hàm in thông tin khách hàng
Ngô Thị Thu Uyên – K19TPM3
Page 13
14. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
B1: Khởi tạo gán cho i=0,n
B2: Kiểm tra i<n , nếu i<n thì sang B3,ngược lại sang B4
B3: Nhập thông tin khách hàng
B4: Kết thúc
2.2.2.4 Hàm tìm kiếm khách hàng( theo mã khách hàng)
B1: Nhập mã khách hàng
B2: Khởi tạo gán cho i=0,n
B3: Kiểm tra i<n thì sang B4, ngược lại sang B5
B4: In thông tin khách hàng
B5: Kết thúc
2.2.2.5 Hàm nhập sản phẩm
B1: Khởi tạo gán cho i=0,n
B2: Kiểm tra i<n , nếu i<n thì sang B3, ngược lại sang B4
B3: Nhập thông tin sản phẩm
B4: Kết thúc
2.2.2.6 Hàm tìm mã sản phẩm
B1: Nhập mã sản phẩm
B2: Khởi tạo gán cho i=0,n
B3: Kiểm tra i<n thì sang B4, ngược lại sang B5
B4: In thông tin sản phẩm
B5: Kết thúc
2.2.2.7 Hàm nhập hóa đơn
B1: Khởi tạo gán cho i=0,n
B2: Kiểm tra i<n , nếu i<n thì sang B3, ngược lại sang B4
B3: Nhập thông hóa đơn
B4: Kết thúc
2.2.3 MỘT SỐ MODUL CHÍNH CỦA CHƯƠNG TRÌNH
2.2.3.1 Hàm tạo/ nhập dữ liệu từ file
Ngô Thị Thu Uyên – K19TPM3
Page 14
15. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
2.2.3.2 Hàm nhập khách hàng:
Ngô Thị Thu Uyên – K19TPM3
Page 15
16. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
2.2.3.3 Hàm in thông tin khách hàng
Ngô Thị Thu Uyên – K19TPM3
Page 16
17. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
Ngô Thị Thu Uyên – K19TPM3
Page 17
18. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
Ngô Thị Thu Uyên – K19TPM3
Page 18
19. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
2.2.3.4 Hàm tìm kiếm khách hàng (theo mã khách hàng)
Ngô Thị Thu Uyên – K19TPM3
Page 19
20. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
2.2.3.5 Hàm nhập sản phẩm
Ngô Thị Thu Uyên – K19TPM3
Page 20
21. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
2.2.3.6 Hàm tìm mã sản phẩm:
Ngô Thị Thu Uyên – K19TPM3
Page 21
22. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
2.2.3.7 Hàm nhập hóa đơn
Ngô Thị Thu Uyên – K19TPM3
Page 22
23. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH
3.1 TỔNG THỂ CHƯƠNG TRÌNH
Ngô Thị Thu Uyên – K19TPM3
Page 23
Tải bản FULL (file word 44 trang): bit.ly/2Ywib4t
Dự phòng: fb.com/KhoTaiLieuAZ
24. QUẢN LÝ BÁN HÀNG GVHD: Ths. Nguyễn Quốc Long
3.1.1 Các hàm khai báo
Code
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<fstream>
#include<string.h>
#include<stdlib.h>
#include<iomanip>
#include<windows.h>
3.1.2 Hàm main
Code
{
KhachHang a[100];
SanPham b[100];
HoaDon c[100];
int soLuongKhachHang,soLuongKhachHangBoSung,soLuongKhachHangXoa;
int soSanPham,soSanPhamBoSung,soSanPhamXoa;
int soLuongHoaDon;
MeNu(soLuongKhachHang,a,soLuongKhachHangBoSung,soLuongKhachHangXoa,soSanPham,b,so
SanPhamBoSung,soSanPhamXoa,soLuongHoaDon,c);
}
3.1.3 Một số hàm chính
+ Nhập danh sách khách hàng:
Code
void NhapDanhSachKhachHang(int &soLuongKhachHang,KhachHang *a){
for(int i=0;i<soLuongKhachHang;i++)
{
do{
cout<<"nNHAP MA KHACH HANG THU "<<i+1<<" : ";
Ngô Thị Thu Uyên – K19TPM3
Page 24