Đồ án quản lý bán hàng viết bằng ngôn ngữ C++ Các chức năng chính: + Phía khách hàng :thêm, xóa, sửa, tìm kiếm một khách hàng cụ thể theo điều kiện cho trước + Phía Nhà quản lý: thêm xóa hoặc sửa 1 sản phẩm được viết bằng mảng
Trang 1ĐỒ ÁN CƠ SỞ NGÀNH KHOA HỌC MÁY TÍNH
Trang 2MỤC LỤC
PHẦN MỞ ĐẦU: 3
1 LÝ DO CHỌN ĐỀ TÀI 3
2 MỤC TIÊU ĐỀ TÀI 3
3 PHẠM VI NGHIÊN CỨU 3
4 PHƯƠNG PHÁP NGHIÊN CỨU 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4
1.1 GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C/C++ 4
1.1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ C++ 5
1.2.1 CÁC KIỂU DỮ LIỆU CƠ SỞ 5
1.2.2 CÁC CẤU TRÚC ĐIỀU KHIỂN 6
1.2.3 HÀM 9
1.2.4 MẢNG 9
1.2.5 KIỂU DỮ LIỆU TỰ ĐỊNH NGHĨA STRUCT 10
1.2.6 KIỂU DỮ LIỆU TỆP (FILE) 10
1.3 MÔ TẢ BÀI TOÁN BÁN HÀNG: 10
CHƯƠNG 2: PHÂN TÍCH XÂY DỰNG CHƯƠNG TRÌNH 11
2.1 GIỚI THIỆU THUẬT TOÁN 11
2.2 CÁC MODUL CHÍNH TRONG CHƯƠNG TRÌNH 12
2.2.1 SƠ ĐỒ TỔNG QUÁT 12
2.2.2 CÁC THUẬT TOÁN 12
2.2.3 MỘT SỐ MODUL CHÍNH CỦA CHƯƠNG TRÌNH 14
CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH 19
3.1 TỔNG THỂ CHƯƠNG TRÌNH 19
3.1.1 CÁC HÀM KHAI BÁO 19
3.1.2 HÀM MAIN 19
3.1.3 MỘT SỐ HÀM CHÍNH 20
3.2 MỘT SỐ HÌNH ẢNH KHI CHẠY CHƯƠNG TRÌNH (demo) 27
3.2.1 GIAO DIỆN CHƯƠNG TRÌNH: 27
3.2.2 QUẢN LÝ SẢN PHẨM– TẠO MỚI FILE: 27
3.2.3 QUẢN LÝ SẢN PHẨM – IN DỮ LIỆU TỪ FILE: 28
3.2.4 QUẢN LÝ SẢN PHẨM – XÓA SẢN PHẨM 28
3.2.5 QUẢN LÝ SẢN PHẨM– THÊM SẢN PHẨM: 29
3.2.6 QUẢN LÝ SẢN PHẨM-TÌM KIẾM SẢN PHẨM: 29
3.2.7 QUẢN LÝ KHÁCH HÀNG –TẠỌ FILE MỚI: 30
3.2.7 QUẢN LÝ KHÁCH HÀNG- IN DỮ LIỆU TỪ FILE: 30
3.2.8 QUẢN LÝ KHÁCH HÀNG – THÊM DANH SÁCH KHÁCH HÀNG: 31
3.2.10 QUẢN LÝ KHÁCH HÀNG – XÓA KHÁCH HÀNG: 31
3.2.11 QUẢN LÝ KHÁCH HÀNG- TÌM KIẾM KHÁCH HÀNG: 32
3.2.12 QUẢN LÝ HÓA ĐƠN- NHẬP HÓA ĐƠN: 32
3.2.13 QUẢN LÝ HÓA ĐƠN- IN HÓA ĐƠN: 33
TÀI LIỆU THAM KHẢO 35
Trang 3PHẦ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ụngrộ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 đangphá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ôngcuộ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ôngnghệ 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ửahà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
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ềmthích hợp
Trang 4CHƯƠ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ànhUNIX, 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óngchấ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 ProgrammingLanguage” 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
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 chongô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ìnhhướng đối tượng
1.1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ C++
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 StandardCode 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:
Trang 5Một số dữ liệu kiểu số nguyên:
Trang 61.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
Trang 71.2.2.2 Các lệnh vòng lặp
Vòng lặp for
Cú pháp:
Lệnh while
Biểu thức
Lệnh
TRUE FALSE
Lệnh
Biểu thức
TRUE
Trang 81.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 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 truycậ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ềuchiều
Trang 91.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;
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ánhnhầ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ùngnhau) 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ạisả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ềnbằ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ươngtrì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ìmkiế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 haykhách hàng thông qua mã của nó
Trang 10CHƯƠ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:
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
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
Trang 112.2.2.2 Hàm nhập khách hàng
B1: Khởi tạo gán cho i=0,nB2: Kiểm tra i<n , nếu i<n thì sang B3, ngược lại sang B4B3: Nhập thông tin khách hàng
B4: Kết thúc
NHẬP HÓA ĐƠN
IN HÓA ĐƠN
IN HÓA ĐƠN
Trang 12B1: 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àngB4: 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àngB2: Khởi tạo gán cho i=0,nB3: Kiểm tra i<n thì sang B4, ngược lại sang B5B4: 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,nB2: Kiểm tra i<n , nếu i<n thì sang B3, ngược lại sang B4B3: 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ẩmB2: Khởi tạo gán cho i=0,nB3: Kiểm tra i<n thì sang B4, ngược lại sang B5B4: 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,nB2: Kiểm tra i<n , nếu i<n thì sang B3, ngược lại sang B4B3: 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
Trang 132.2.3.1 Hàm tạo/ nhập dữ liệu từ file
NHẬP TÊN FILE
END
BEGIN
i=0; n
NHẬP MKH, TÊN KH, ĐỊA CHỈ,
i<n
i++
END TRUE
FLASE
Trang 14i=0; n
IN THÔNG TIN KH i<n
i++
END TRUE
FLASE
Trang 152.2.3.4 Hàm tìm kiếm khách hàng (theo mã khách hàng)
BEGIN
END
NHẬP MÃ KH
TRUE
TRUE
i++
FALSE
Trang 16TRUE
i++
FALSE
Trang 17i=0; n
NHập THÔNG TIN HÓA ĐƠN i<n
i++
END TRUE
FLASE
Trang 18CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH
}
3.1.3 Một số hàm chính
Trang 19cout<<"\nNHAP TEN KHACH HANG THU "<<i+1<<" : ";
Trang 20void NhapDanhSachKhachHang(int &soLuongKhachHang,KhachHang *a)
cout<<"\nNHAP TEN KHACH HANG THU "<<i+1<<" : ";
void NhapDanhSachHoaDon(int &soLuongHoaDon,HoaDon *c,int soLuongKhachHang,KhachHang
*a,int soSanPham,SanPham *b,int &x)
Trang 21cout<<"\nKHACH HANG MUON MUA THEM SAN PHAM THI NHAN <1>\n";
cout<<"\nKHACH HANG KHONG MUON MUA SAN PHAM NUA THI NHAN <2>\n"; cin>>ch;
Trang 22+Xóa sản phẩm bằng việc người dùng nhập mã sản phẩm:
- Cho biến đếm d=0, vòng lặp I chạy từ 0 soLuongSP-1
- Nếu istrcmp(a[i].maSP,x)==0 thì in ra sản phẩm cần tìm
- Ngược lại d++
- Nếu d bằng số lượng sản phẩm thì in ra mã sản phẩm không tồn tại
Trang 23KiemTraMaSanPhamTonTai_1(a[i].maSP,soSanPham,b));
XoaSanPham(ViTriMaSanPhamTonTai(a[i].maSP,soSanPham,b),soSanPham,b); }
}
+ Hàm tìm kiếm sản phẩm theo mã sản phẩm:
- Tìm kiếm sản phẩm bằng việc người dùng nhập mã sản phẩm
- Cho biến đếm i=0, vòng lặp i chạy từ 0 soLuongSP
- Nếu strcmp(a[i].maSP,x)==0 thì in ra thông tin sản phẩm cần tìm, ngược lại biến đếm tăng lên 1 (d++)
- Nếu d=soLuongSP thì in ra “Ma san pham khong ton tai”
Trang 25cout<<"\nNhap maSP thu "<<n+1<<" : ";
fflush(stdin);
gets(a[n].maSP);
cout<<"\nNhap tenSP thu "<<n+1<<" : ";
fflush(stdin);gets(a[n].tenSP);
cout<<"\nNhap soluong SP thu "<<n+1<<" : ";cin>>a[n].soLuong;
cout<<"\nNhap donGia SP thu "<<n+1<<" : ";cin>>a[n].donGia;
cout<<"\nNhap donvitinh SP thu "<<n+1<<" : ";
3.2 MỘT SỐ HÌNH ẢNH KHI CHẠY CHƯƠNG TRÌNH (demo)
3.2.1 Giao diện chương trình:
Trang 273.2.2 Quản lý sản phẩm– tạo mới file:
Trang 293.2.3 Quản lý sản phẩm – in dữ liệu từ file:
3.2.4 Qu n lý s n ph m – xóa s n ph m ản lý sản phẩm – xóa sản phẩm ản lý sản phẩm – xóa sản phẩm ẩm – xóa sản phẩm ản lý sản phẩm – xóa sản phẩm ẩm – xóa sản phẩm
Trang 303.2.5 Quản lý sản phẩm– thêm sản phẩm:
3.2.6 Quản lý sản phẩm-tìm kiếm sản phẩm:
Trang 313.2.7Quản lý khách hàng –tạọ file mới:
3.2.7 Quản lý khách hàng- in dữ liệu từ file:
Trang 323.2.8 Quản lý khách hàng – thêm danh sách khách hàng:
3.2.10 Quản lý khách hàng – xóa khách hàng:
Trang 333.2.11 Quản lý khách hàng- tìm kiếm khách hàng:
3.2.12 Quản lý hóa đơn- nhập hóa đơn:
Trang 343.2.13 Quản lý hóa đơn- in hóa đơn:
Trang 35PHẦN KẾT LUẬN
1 CÁC KẾT QUẢ ĐẠT ĐƯỢC
Đã hoàn thiện được yêu cầu cơ bản của chương trình quản lý bán hàng
2 ƯU VÀ NHƯỢC ĐIỂM CỦA ĐỀ TÀI
+Ưu điểm:
- Giao diện dễ sử dụng, dễ thao tác
- Giải quyết được vấn đề quản lý bán hàng
- Hỗ trợ các nhiệm vụ chính trong quản lý bán hàng ở cửa hàng: nhập hàng, bán hàng
và xuất hàng
- Cung cấp chức năng hỗ trợ nhân viên và khách hàng tìm kiếm thông tin sản phẩm vàtìm kiếm thông tin khách hàng
+Nhược điểm:
Chương trình còn thiếu sót như:
-Tìm kiếm hóa đơn, xóa hóa đơn, cập nhật hóa đơn
- Giao diện chưa được bắt mắt
Trang 36TÀI LIỆU THAM KHẢO
[1] Ths Nguyễn Thị Bảo Trang, Bài giảng Lập trình cơ sở - Lưu hành nội bộ
[2] TS Phạm Anh Phương, Lập trình cơ sở- Nhà xuất bản Thông Tin
[3] GS Phạm Văn Ất, Kỹ thuật lập trình C cơ sở và nâng cao, NXB KH&KT- 1999
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 37
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN
Trang 38