Tải bản đầy đủ (.docx) (44 trang)

Đồ Án Quản Lý Bán Hàng bằng C++

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.17 MB, 44 trang )

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


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

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



GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

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


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG
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


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

Long double

10

±3.4*10-4932 → ±3.4*104932

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:
if(biểu thức)
[Lệnh 1];
else



Lệnh switch

Ngô Thị Thu Uyên – K19TPM3

Page 5

15 chữ số


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

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;

Ngô Thị Thu Uyên – K19TPM3
Page 6


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

Các lệnh vòng lặp

1.2.2.2



Vòng lặp for

Cú pháp:
for([bt1]; [bt2]; [bt1])
[Lệnh];

Ngô Thị Thu Uyên – K19TPM3
Page 7


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG



Lệnh while

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

Cú pháp:



Lệnh do..while

Ngô Thị Thu Uyên – K19TPM3

Page 8


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

do{
[Lệnh];
}while(biểu thức)

Ngô Thị Thu Uyên – K19TPM3
Page 9


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

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


GVHD: Ths. Nguyễn Quốc Long


QUẢN LÝ BÁN HÀNG
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


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

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


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG
2.2.1 SƠ ĐỒ TỔNG QUÁT

TẠO/ NHẬP FILE

QL KHÁCH HÀNG

QL SẢN PHẨM

QL HÓA ĐƠN

NHẬP KH

NHẬP SP

NHẬP HÓA
ĐƠN

THÊM KH


IN SP

IN HÓA ĐƠN

IN KH

XÓA SP

XÓA KH

THÊM SP

TÌM THEO MÃ
KH

TÌM THEO MÃ
SP

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

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


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG
B1: Khởi tạo gán cho i=0,n

B2: Kiểm tra iB3: 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 iB4: 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 iB3: 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

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


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

2.2.3.2 Hàm nhập khách hàng:

Ngô Thị Thu Uyên – K19TPM3
Page 15


GVHD: Ths. Nguyễn Quốc Long


QUẢN LÝ BÁN HÀNG

2.2.3.3 Hàm in thông tin khách hàng
Ngô Thị Thu Uyên – K19TPM3
Page 16


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

Ngô Thị Thu Uyên – K19TPM3
Page 17


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

Ngô Thị Thu Uyên – K19TPM3
Page 18


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

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


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

2.2.3.5 Hàm nhập sản phẩm

Ngô Thị Thu Uyên – K19TPM3
Page 20


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

2.2.3.6 Hàm tìm mã sản phẩm:

Ngô Thị Thu Uyên – K19TPM3
Page 21


GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG
2.2.3.7 Hàm nhập hóa đơn

Ngô Thị Thu Uyên – K19TPM3
Page 22



GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

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


QUẢN LÝ BÁN HÀNG
3.1.1

GVHD: Ths. Nguyễn Quốc Long

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{
do{
cout<<"\nNHAP MA KHACH HANG THU "<Ngô Thị Thu Uyên – K19TPM3
Page 24



GVHD: Ths. Nguyễn Quốc Long

QUẢN LÝ BÁN HÀNG

fflush(stdin);gets(a[i].maKH);
if(KiemTraMaKhachHangTonTai(i,a)){
cout<<"\nMA KHACH HANG DA TON TAI\n";
}
}while(KiemTraMaKhachHangTonTai(i,a));
cout<<"\nNHAP TEN KHACH HANG THU "<fflush(stdin);gets(a[i].tenKH);
cout<<"\nNHAP DIA CHI KHACH HANG THU "<fflush(stdin);gets(a[i].diaChi);
}
}

+Nhập danh sách sản phẩm:
Code

void NhapDanhSachKhachHang(int &soLuongKhachHang,KhachHang *a)
{
for(int i=0;ido{
cout<<"\nNHAP MA KHACH HANG THU "<fflush(stdin);gets(a[i].maKH);
if(KiemTraMaKhachHangTonTai(i,a)){
cout<<"\nMA KHACH HANG DA TON TAI\n";
}
}while(KiemTraMaKhachHangTonTai(i,a));
cout<<"\nNHAP TEN KHACH HANG THU "<

fflush(stdin);gets(a[i].tenKH);
cout<<"\nNHAP DIA CHI KHACH HANG THU "<fflush(stdin);gets(a[i].diaChi);
}
}
Ngô Thị Thu Uyên – K19TPM3
Page 25


×