Tuy nhiên có một hiện trạng thực tế thì ở một số nhà sách, hiệu sách nhỏ ở các vùng nông thôn, nơi chưa tiếp cận được với sự phát triển của công nghệ thông tin thì các chủ nhà sách vẫn s
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ
BÁO CÁO ĐỒ ÁN MÔN: LẶP TRÌNH CĂN BẢN
Lê Hoàng Thái
Trang 2ĐẠI HỌC CẠN THƠ
Mục lục 1
Phần I: Giới thiệu đề tài 2
1.1 Lí do chọn đề tài 2
1.2 Mục đích/Yêu cầu đề tài 2
1.3 Phạm vi nghiên cứu và phương pháp nghiên cứu 2
Phần II: Thiết kế và viết chương trình 3
2.1 Giải thuật chi tiết 3
2.1.1 Giải thuật bằng ngôn ngữ tự nhiên 3
2.1.2 Giải thuật bằng lưu đồ 4
2.2 Chương trình chi tiết 13
Phần III: Kết luận……… 21
3.1 Kết quả thiết kế chương trình 21
3.2 Hướng dẫn sử dụng chương trình 21
3.3 Nhận xét về ưu điểm và khuyết điểm của chương trình và hướng phát triển .22
3.3.1 Ưu điểm chương trình 22
3.3.2 Khuyết điểm chương trình 22
Phần IV: Phụ lục và tài liệu tham khảo 23
1
Trang 3ĐẠI HỌC CẠN THƠ
PHẦN I GIỚI THIỆU ĐỀ TÀI
1.1 Lí do chọn đề tài
Trong một xã hội phát triển tri thức không ngừng như hiện nay thì một người bạn không thể thiếu của mỗi con người đó chính là sách Hiện nay việc đọc sách khôngcòn là sở thích riêng của một bộ phận nào mà nó đã trở thành thói quen ăn sâu vàomáu thịt của tất cả con người ở nhiều bộ phận, tầng lớp xã hội khác nhau Nhờ vàonhu cầu mua sách ngày càng cao như hiện nay của đọc giả đã thúc đẩy sự ra đời vàphát triển của những nhà sách lớn nhỏ có mặt ở khắp nơi từ thành thị đến nông thôn với quy mộ lớn nhỏ khác nhau Tuy nhiên có một hiện trạng thực tế thì ở một
số nhà sách, hiệu sách nhỏ ở các vùng nông thôn, nơi chưa tiếp cận được với sự phát triển của công nghệ thông tin thì các chủ nhà sách vẫn sử dụng cách ghi chép thủ công để quản lí số lượng sách ở cửa hàng gây ra những phiền toái về việc nhập
và quản lí sách, không thể kiểm soát được tối đa lượng sách nhập cũng như bán sách Vì lí do đó mà nhóm chúng tôi muốn tạo ra một chương trình quản lí sách đơn giản để có thể đưa đến tay các chủ nhà sách, hiệu sách quy mô nhỏ để giúp họ
có thể quản lí tốt hơn nguồn sách và tiết kiệm thời gian trong việc kiểm tra quản lí sách
1.2 Mục đích và yêu cầu đề tài
-Mục đích: Tạo ra một chương trình quản lí sách đơn giản giúp ích cho việc quản
lí và kinh doanh sách ở các nhà sách, hiệu sách quy mô nhỏ
-Yêu cầu đề tài: Có thể tạo ra một chương trình máy tính đơn giản trên nền tảng
ngôn ngữ lập trình C/C++ với các chức năng sau:
+Thêm sách mới vào bộ nhớ chương trình
+Sửa đổi thông tin sách mới
Trang 4ĐẠI HỌC CẠN THƠ
PHẦN II THIẾT KẾ VÀ VIẾT CHƯƠNG TRÌNH
Tóm tắt các công việc của chương trình “Quản lí sách đơn giản” như sau:
+ Thêm sách mới vào bộ nhớ chương trình
+ Sửa đổi thông tin sách
+ Xóa sách
+ Tìm kiếm sách
+ Mục lục
+ Phân loại thể loại sách
2.1 Giải thuật chi tiết
2.1.1 Giải thuật bằng ngôn ngữ tự nhiên
- Giải thuật chương trình tổng quát: Chương trình quản lí sách đơn giản có 7 chức năng tương ứng với 7 lệnh xuất hiện ở màn hình chính của chương trình gồm: thêm sách mới, xóa sách, sửa sách, tìm kiếm sách, mục lục, thể loại sách, lưu và thoát chương trình Ngoài ra chương trình còn có các chương trình đọc, ghi dữ liệu, kiểm tra vị trí không hiện trên danh sách chính
-Bước 1: Chương trình chính dùng lệnh switch(c) với c=(0…6), hiển thị ra màn hình danh sách chức năng:
-Bước 3: Thực hiện các chương trình con:
3.1 Kiểm tra sách: Hàm kiemTraSach(dsSach a) dùng lệnh for gán i, so sánhchuỗi để xác định mã sách đã tồn tại hay chưa
3.2 Thêm sách mới: thực hiện vòng lặp for …while, và thực hiện bước 3.1.Nếu mã sách tồn tại thông báo lỗi, nếu mã sách chưa tồn tại tiếp tục nhập thông tin sách thứ k+1
3
Trang 5ĐẠI HỌC CẠN THƠ
3.3 Sửa sách: Nhập mã sách cần sửa x Thực hiện bước 3.1 nếu x tồn tại thì nhập thông tin mới của sách, ngược lại không tìm thấy mã sách quay lại nhập mã sách khác
3.4 Xóa sách: Nhập MS x, thực hiện bước 3.1 nếu x tồn tại thì xóa x trong dsSach a, ngược lại quay lại nhập MS khác
3.5 Tìm kiếm sách: Nhập MS x, thực hiện bước 3.1, nếu x tồn tại, thực hiện in thông tin sách có MS x, ngược lại quay lại bước nhập MS x
3.6 Mục lục: Đọc file dữ liệu D:\\DuLieu.txt , nếu a=0 thông báo bạn chưa
có sách, ngược lại in tất cả sách trong dsSach a
3.7 Thể loại: Nhập thể loại sách cần tìm , dùng lệnh lặp for và so sánh chuỗi Nếu tìm thấy thể loại thì in liệt kê sách cùng thể loại Ngược lại thông báo không có thể loại
3.8 Lưu và thoát chương trình: thực hiện hàm ghi file và thoát chương trình
-Bước 4: Kết thúc chương trình
2.1.2 Giải thuật bằng lưu đồ
a Lưu đồ chương trình tổng quát
Trang 6ĐẠI HỌC CẠN THƠ
Hình 1: Lưu đồ chương trình tổng quát
b Lưu đồ các chương trình con:
1 Kiểm tra sách( hàm kiểm tra vị trí của sách thứ i): Dùng lệnh lặp for và
so sánh chuỗi để xác định vị trị mã sách x
5
Trang 10ĐẠI HỌC CẠN THƠ
Hình 4: Lưu đồ tìm kiếm sách
5 Mục lục
B1: In số lượng sách bạn đã lưu trong file
B2: Thực hiên đọc file D:\\ DuLieu.txt, nếu dsSach a=0 thì thông báo bạn chưa lưu sách nào Ngược lại in tất cả sách trong dsSach a
9
Trang 11B3: Vòng lặp for, gán i=0, xét điều kiện i<= a.S -1 Nếu đúng thì thực hiện
so sánh chuỗi tìm thể loại sách trong a và in thông tin, tiếp tục tăng i lên 1 đơn vị, quay lại xét điều kiện Ngược lại nếu điều kiện sai , thì thông báo không tìm thấy sách, quay lại B2
Trang 12ĐẠI HỌC CẠN THƠ
Hình 6: Lưu đồ thể loại sách
7 Sửa sách:
B1: Nhập MS x cần sửa
B2: Thực hiện kiemTraSach với x Nếu x không tồn tại thì thông báo không tìm thấy mã sách, quay lại bước 1 Ngược lại thì thông báo nhập thông tin sách mới, ghi file
11
Trang 13ĐẠI HỌC CẠN THƠ
Hình 7: Lưu đồ sửa sách
8 Chương trình chính
B1: Khai báo c, DSS
B2: In ra màn hình giao diện chương trình
B3: Sử dụng cấu trúc lựa chọn switch(c)
Trang 15void themSach(dsSach *a);
void timkiemSach(dsSach a);
void xoaSach(dsSach *a);
void suaSach(dsSach *a);
void sachTheLoai(dsSach a);
void inTatCaSach(dsSach a);
int kiemTraSach(dsSach a,char x[50]);
void docfilemucluc(dsSach *a);
void ghifile(dsSach a);
void insertBook(sach s, dsSach *a);
void docfiledau(dsSach *a);
Trang 16}// ham them sach
void timkiemSach(dsSach a){
int vitri;
sach sachtim;
char x[30];
printf("Tong so sach ban da luu la: %d\n", a.S);
printf("\n *************** Tim Kiem Sach ***************");do{
printf("\nNhap ma sach can tim: ");
printf("%20s %20s - %20s - %20s\n",a.ds[vitri].MaSach,
a.ds[vitri].TenSach, a.ds[vitri].TheLoai, a.ds[vitri].nxb);
printf("\nSach o vi tri: %d\n", vitri+1);
}// ham tim kiem sach
15
Trang 17printf("Tong so sach ban da luu la: %d\n", a->S);
printf("\n *************** Xoa Sach ***************");
printf("\nDa xoa xong");
} // ham xoa sach
void suaSach(dsSach *a){
int vitri, sosachthem=0;
sach sachcansua;
char x[50];
printf("Tong so sach ban da luu la: %d\n", a->S);
printf("\n*************** Sua Chi Tiet Sach ***************");printf("\nNhap ma sach can sua: ");
Trang 18}// ham sua sach
void sachTheLoai(dsSach a){
char x[50];
sach s;
int t=0, i;
printf("Tong so sach ban da luu la: %d\n", a.S);
printf("*************** Thong Ke The Loai Sach ***************\n");printf("\nNhap the loai can thong ke: ");
fflush(stdin);
gets(x);
printf("\n _Thong tin sach theo the loai \n");printf(" %20s %20s %20s %20s\n","Ma Sach", "Ten Sach", "The Loai", "Nha Xuat Ban");
}}
if(!t){
system("cls");
printf("\n Khong co the loai sach nay");
}
}// ham the loai
void inTatCaSach(dsSach a){
docfilemucluc(&a);
}// ham in tu ham docfilemucluc
void docfiledau(dsSach *a){
Trang 19}// ham doc file
void docfilemucluc(dsSach *a){
FILE *f;
sach s;
int i=0, k;
printf("Tong so sach ban da luu la: %d\n", a->S);
printf("*************** Muc Luc Sach ***************\n\n");
printf(" %s %20s %20s %20s %20s \n", "SoTT", "Ma Sach", "TenSach", "The Loai", "Nha Xuat Ban");
-\n");
Trang 20printf("\n1.Them Sach Moi");
printf("\n2 Sua Sach");
printf("\n3 Xoa Sach");
printf("\n4 Tim Kiem Sach");
printf("\n5 Muc Luc");
printf("\n6 The loai sach");
Trang 21printf("\n An bat ki de tro ve man hinh chinh");
int manhinhchinh=getch();
break;
}while(1);
return 0;
}
PHẦN III KẾT LUẬN 3.1 Kết quả đạt được
- Về mục tiêu đề ra: Nhóm đã thiết kế cơ bản thành công chương trình quản lí
Trang 22-Bước 3: Nhấn chọn 0 để thoát chương trình.
3.3 Nhận xét về ưu điểm và khuyết điểm của chương trình và hướng phát triển
3.3.1 Ưu điểm của chương trình
Chương trình được tạo ra theo đúng yêu cầu từ đầu đề ra là một chương trình không quá phức tạp, dễ sử dụng, có thể tiếp cận được với những người dùng không có nhiều kiến thức về công nghệ với giao diện đơn giản, trực quan tuy nhiên chương trình vẫn thực hiện được tương đối đầy đủ những nhu cầu về quản lísách của người sử dụng.Ngoài ra chương trình có thể thu thập và lưu trữ số lượng lớn sách giúp người dung có thể quản lí được nhiều đầu sách khác nhau trong cửa hàng
3.3.2 Hạn chế của chương trình
Chương trình vẫn chưa thực hiện được các công việc cần thiết khác như in hóa
đơn bán lẻ, ghi nhận đánh giá của người đọc về sách, thống kê các sách bán chạy, nhập vào một lần nhiều sách cùng loại, chưa thực hiện được chương trình con đếm
số lần thực hiện chương trình,…
Hướng phát triển: Trong thời gian tới nhóm sẽ tiếp tục cải tiến và bổ sung
các chức năng cần thiết khác để chương trình có thể hoàn thiện hơn Nhóm
đề ra mục tiêu sẽ them một số chức năng khác vào chương trình như: in hóa
21
Trang 23ĐẠI HỌC CẠN THƠ
đơn bán lẻ, quản lí số lượng sách bán ra, chức năng ghi nhận đánh giá sách của người đọc, thống kê các sách có doanh thu cao,…
PHẦN IV PHỤ LỤC VÀ TÀI LIỆU THAM KHẢO
4.1 Tài liệu tham khảo chương trình quản lí thư viện
- Link: https://sites.google.com/site/ctt3bichvan/quan-li-thu-vien
- Link chương trình quản lí sinh viên trinh-quan-ly-sinh-vien-su-dung-struct/
https://nguyenvanhieu.vn/chuong vien-trong-lap-trinh-cpp-co-de-bai.cpp
Trang 24http://diendan.congdongcviet.com/threads/t27752::bai-tap-quan-ly-thu-ĐẠI HỌC CẠN THƠ
23