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.. Một trong số ứng dụng của công nghệ thông ti
Trang 1TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
TRUNG TÂM ĐÀO TẠO ELEARNING
-LỚP: CSG514A
SVTH:
CHỦ ĐỀ 06: BÀI TOÁN QUẢN LÝ BÁN SÁCH TẠI CỬA HÀNG SÁCH
BÁO CÁO BÀI TẬP LỚN MÔN: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT (IT05)
Giảng viên hướng dẫn:
ThS Trịnh Thị Xuân
Hà Nội - Năm 2022
Trang 2MỤC LỤC
CHƯƠNG 1: PHẦN MỞ ĐẦU: 2
1 LÝ DO CHỌN ĐỀ TÀI 2
MỤC TIÊU ĐỀ TÀI 2
PHẠM VI NGHIÊN CỨU 2
PHƯƠNG PHÁP NGHIÊN CỨU 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 3
1.1 GIỚI THIỆU NGÔN NGỮ LẬP TRÌNH C/C++ 3
1.1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ C++ 3
1.2.1 CÁC KIỂU DỮ LIỆU CƠ SỞ 3
1.2.2 CÁC CẤU TRÚC ĐIỀU KHIỂN 5
1.2.3 HÀM 7
1.2.4 MẢNG 7
1.2.5 KIỂU DỮ LIỆU TỰ ĐỊNH NGHĨA STRUCT 8
1.2.6 KIỂU DỮ LIỆU TỆP (FILE) 8
1.3 Mô tả bài toán bán sách: 8
CHƯƠNG 2: PHÂN TÍCH XÂY DỰNG CHƯƠNG TRÌNH 9
2.2.2 MỘT SỐ MODUL CHÍNH CỦA CHƯƠNG TRÌNH 9
CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH 14
3.1 TỔNG THỂ CHƯƠNG TRÌNH 14
3.2 MỘT SỐ HÌNH ẢNH KHI CHẠY CHƯƠNG TRÌNH 23
TÀI LIỆU THAM KHẢO 24
Trang 3CHƯƠNG 1: 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 sách bằng ngôn ngữ C/C++” làm đề tài nghiên cứu
MỤC TIÊU ĐỀ TÀI
Xây dựng một chương trình quản lý bán sách 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 sách 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…
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 sách
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 sách trong cửa hàng để xây dựng phần mềm thích hợp
Trang 4CHƯƠNG 2: 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++
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.
Trang 54 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:
1.2.1.2 KIỂU SỐ NGUYÊN
Một số dữ liệu kiểu số nguyên:
1.2.1.3 KIỂU SỐ THỰC
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
Trang 61.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];
Lệnh switch
Cú pháp:
switch(biểu thức
nguyên)
{
case hằng_1: [Lệnh
1];
case hằng 2: [Lệnh
Trang 7Vòng lặp for
Cú pháp:
for([bt1]; [bt2]; [bt1])
[Lệnh];
Lệnh while
Cú pháp:
while(biểu thức)
[Lệnh];
Lệnh do while
Cú pháp:
do{
[Lệnh];
}while(biểu thức)
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 câu lệnh] [return giá_trị_trả_về;] [các câu lệnh] [return giá_trị_trả_về;]
} >
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
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
Trang 98 Chỉ_số có thể là hằng số, biến kiểu nguyên, biểu thức nguyên
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;
};
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 sách:
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
Trang 10theo 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ó
CHƯƠNG 2: PHÂN TÍCH XÂY DỰNG CHƯƠNG TRÌNH
2.2.2 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
Trang 112.2.3.3 Hàm in thông tin khách hàng
Trang 122.2.3.4 Hàm tìm kiếm khách hàng (theo mã khách hàng)
Trang 1312 2.2.3.5 Hàm nhập sản phẩm
2.2.3.6 Hàm tìm mã sản phẩm:
2.2.3.7 Hàm nhập hóa đơn
Trang 143
Trang 15CHƯƠNG 3: CÁC CHỨC NĂNG TRONG CHƯƠNG TRÌNH
3.1 TỔNG THỂ CHƯƠNG TRÌNH
3.2 MỘT SỐ HÌNH ẢNH KHI CHẠY CHƯƠNG TRÌNH
- Thêm sản phẩm vào sách:
Trang 16- Hiển thị danh sách sản phẩm:
- Sắp xếp theo tên:
Trang 17- Sắp xếp theo thông tin giảm dần
Trang 18PHẦ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 sách
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 sách
- Hỗ trợ các nhiệm vụ chính trong quản lý bán sách ở cửa hàng: nhập hàng, bán sách 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:
-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
Tiếp tục nghiên cứu để có thể đưa chương trình vào ứng dụng thực tế Thêm các hàm phù hợp và chỉnh sửa giao diện bắt mắt hơn
Nhận được sự chỉ dẫn của thầy giáo hướng dẫn , em sẽ cố gắng khắc phục những nhược điểm và phát triển chương trình hơn
Trang 19TÀI LIỆU THAM KHẢO