BAOCAOC++

10 253 0
Tài liệu đã được kiểm tra trùng lặp
BAOCAOC++

Đang tải... (xem toàn văn)

Thông tin tài liệu

sds dfdffdf

ĐẠI HỌC ĐÀ NẴNG –ĐẠI HỌC SƯ PHẠM KHOA TIN HỌC ĐỀ TÀI NHÓM MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐỀ TÀI QUẢN LÝ THƯ VIỆN õ Giáo viên hướng dẫn: Lê Thị Mỹ Hạnh õ Thành viên nhóm: 1/ Nguyễn Công Hưng Lớp 07CNTT01 2/ Bùi Thế Lân Lớp 07CNTT01 Đà Nẵng,tháng 5 năm 2009 QUẢN LÝ THƯ VIỆN I. YÊU CẦU Xây dựng bài toán bằng lập trình hướng đối tượng. Ngôn ngữ sữ dụng C++. II. PHÂN TÍCH YÊU CẦU Chương trình quản lý thư viện quản lý của thư viện về quản lý sách và bạn đọc mượn sách trong thư viện. 1. Quản lý sách: Thư viện quản lý một cuốn sách bất kì theo: - Mã sách - Tên sách,tên tác giả,,nhà xuất bản - Tổng số sách ban đầu - Số lượng sách còn lại. 2. Quản lý bạn đọc: Mỗi bạn đọc muốn mượn sách cần phải đăng kí với thư viện(làm thẽ thư viện). Thư viện sẽ quản lý bạn đọc qua các thông tin: - Mã bạn đọc. - Tên bạn đọc,các thông tin khác về bạn đọc. - Số sách mượn. - Các sách và số đầu sách đã mượn. 3. Quản lý việc mượn trả sách: Khi một bạn đọc muốn mượn một cuốn sách thư viện phải tiến hành các công việc sau: Bạn đọc Bạn đọc Thủ thư Thủ thư Đăng kí Đăng kí Tìm sách Tìm sách Mượn sách Mượn sách Trả sách Trả sách Thống kê sách Thống kê sách Thống kê bạn đọc Thống kê bạn đọc - Bạn đọc nhập vào mã bạn đọc. - Thư viện tìm kiếm thông tin về bạn đọc - Nếu tìm thấy thì tiếp tục nhập vào mã sách cần mượn. - Nếu tìm thấy sách vẫn còn trong thư viện thì cho mượn . Nếu bạn đọc mượn được sách thì: - Số sách mượn của bạn đọc tăng lên 1. - Số cuốn sách còn lại trong thư viện giảm đi 1. * Khi bạn đọc trả sách: - Nhập mã bạn đọc. - Tìm xem bạn đọc này đã mượn những sách gì . - Thực hiện việc trả sách: + Số sách bạn đọc mượn = 0. + Số lượng các loại sách mà bạn đọc trả tăng lên 1. Bạn đọc nhập mã số(thẽ thư viện) Nhập mã sách cần mượn Tìm bạn đọc Tìm sách Cho mượn Begin End. C K C K III. THIẾT KẾ CHƯƠNG TRÌNH 1. Tổng quan chương trình: Chương trình thực hiện các chức năng sau: 2. Cơ sỡ dữ liệu: Dựa vào các yêu cầu trên ta thực hiện các yêu cầu sau: Dữ liệu về bạn đọc và dữ liệu về sách được lưu trữ trong 2 File File1 = "Bandoc.DL" File2 = "Khosach.DL" Cấu trúc của File Bandoc.DL - Mã bạn đọc - Tên bạn đọc - Số sách đã mượn.(tối đa là 5 cuốn). - Danh sách gồm 5 trường. + Mã sách mượn. + Đầu sách. Ví dụ: ma = "0001" ten ="Nguyên Van An" somuon = 3 muon[1].masach = "a1" muon[1].ds = "1" muon[2].masach = "AL07" muon[2].ds = "4" muon[3].masach = "C07" muon[3].ds = "2" Cấu trúc File Khosach.DL. - Mã sách. - Tên sách. - Số lượng nhập vào kho. - Số lượng còn lại. 1- Đăng kí bạn đọc mới. 2- Thủ kho nhập một đơn vị sách mới. 3- Bạn đọc mượn sách. 4- Bạn đọc trả sách. 5- Thống kê danh sách các bạn đọc. 6- Thống kê sách trong thư viện. 2. Các lớp đối tượng Trước hết ta khai báo một cấu trúc đàu sáh như sau để lưu trữ thông tin về một cuốn sách mà bạn đọc mượn: struct Dausach { char masach[10]; int ds; }; Ta phải có 2 lớp sau: - Lớp sách. - Lớp bạn đọc. aLớp sách: Dựa vào sơ đồ quan hệ trong thư viện và các yêu cầu trong công tác quản lý thư viện ta thiết kế đối tượng sách gồm các thành phần sau: Vì đối tương bạn dọc cần truy nhập đến một số thành phần Private của đối tượng sách nên ta cần khai báo lớp bạn là lớp BanDoc. Thành phần Phạm vi Giải thích char ma[10] private Mã của một cuốn sách. char ten[80] private Tên sách. int soluong private Số lượng đã nhập vào kho. int conlai private Số lượng sách còn lại. static void nhap_sach() static Nhập 1 đơn vị sách mới. int empty() public 1 nếu tồn tại, 0 nếu không tồn tại. static Sach tim_sach(char *) static Tìm sách trả về đối tượng sách. void thong_tin() public Cho thông tin của sách. void tra() public Sách này đã được trả. static void thong_ke() static Thống kê sách trong thư viện. void ghi_tep(Sach) public Ghi 1 đơn vị sách mới vào File. void update() public Ghi lại sách nếu có sự thay đỗi thông tin(bạn dọc mượn sách). b.Lớp bạn đọc: Thành phần Phạm vi Giải thích char ma[10] private Mã bạn đọc(không được trùng nhau). char ten[40] private Tên bạn đọc. int somuon private Số sách mà bạn đọc đã mượn. Dausach muon[5] private Một cấu trúc lưu trữ mã sách và số đàu sách mà bạn đọc đã mượn. static void dang_ki() static Bạn đọc đăng kí mới. int empty() public Kiễm tra bạn đọc này có tồn tại hay không. static BanDoc tim_BD(char *) static Tìm 1 bạn đọc giá trị trả về là lớp bạn đọc. void muon_sach(Sach &) public Bạn đọc mượn 1 cuốn sách. void tra_sach() public Bạn đọc trả sách. void thong_tin() public Cho thông tin của bạn đọc. static void in_DS() static In danh sách của bạn đọc. void ghi_tep(BanDoc) public Ghi 1 bạn đọc mới vào File. void update() public Ghi lai thông tin bạn đọc nếu có sự thay đỗi. 3. Khai báo các lớp: //---------- //---Khai bao hai file luu giu thong tin tren dia //---------- const char file1[] = "bandoc.dl"; const char file2[] = "khosach.dl"; struct DauSach { char masach[10]; int ds; }; //--------- //--------Bat dau khai bao lop //----------- class BanDoc; class Sach { char ma[10]; char ten[80]; int soluong; int conlai; public: friend class BanDoc; Sach() { // Phương thức thiết lập strcpy(ma,""); strcpy(ten,""); soluong = 0; conlai = 0; } Sach(char *masach,char *tensach,int sl){// Phương thức thiết lập có tham số strcpy(ma,masach); strcpy(ten,tensach); soluong = sl; conlai = sl; } int empty(){ if (strcmp(ma,"")==0) // Mã sách rỗng nghĩa là sách không tồn tại return 1; else return 0; } static void nhap_sach(); void thong_tin(); void tra(); static void thong_ke(); static Sach tim_sach(char *); void ghi_tep(Sach); void update(); }; //---------- class BanDoc { char ma[10]; char ten[40]; int somuon; DauSach muon[5]; public: BanDoc(){ // Phương thức thiết lập strcpy(ma,""); strcpy(ten,""); somuon = 0; for (int i=0; i<5; i++){ strcpy(muon[i].masach,""); muon[i].ds = 0; } } BanDoc(char *ma_,char *ten_){ strcpy(ma,ma_); strcpy(ten,ten_); somuon = 0; for (int i=0; i<5; i++){ strcpy(muon[i].masach,""); muon[i].ds = 0; } } /// int empty() { if (strcmp(ma,"")==0) return 1; else return 0; } static void dang_ki(); static BanDoc tim_BD(char *); void muon_sach(Sach &); void tra_sach(Sach &); void thong_tin(); static void in_DS(); void ghi_tep(BanDoc); void update(); }; 4. Thủ tục tìm kiếm thông tin trên FILE: Vì “mã sách “ và “mã bạn đọc”tồn tại trên File là duy nhất nên khi tìm kiếm ta cần duyệt File bắt đầu từ vị trí thứ 0.Nếu tìm thấy thì “mã” khác rỗng.Nếu đến cuối File mà vẫn không tìm thấy “ma” rỗng. Sach Sach::tim_sach(char *ma) { FILE *handle; // con trỏ file Sach tmp,temp; // hai đối tượng tạm thời int k; // đễ kiễm tra xem có tìm thấy hay ko handle = fopen(file2,"r"); do { fread(&tmp,sizeof(Sach),1,handle);// Doc DL vaìo tmp } while (!(k=feof(handle))&&strcmp(tmp.ma,ma)!=0); fclose(handle); if (k) return temp; // trả về một biến rỗng else return tmp; } IV. GIAO DIỆN CHƯƠNG TRÌNH V. KẾT LUẬN. Chương trình đã mô phõng được việc quản lý thư viện theo phương pháp lập trình hướng đối tượng. Sữ dụng thành công việc đọc và lưu File tìm kiếm tuần tự trên File.Nhất quán cơ sỡ dữ liệu theo đúng quan hệ đã nêu. Tuy đã cố gắng nhưng vì trình độ còn hạn chế nên chương trình chưa được hoàn thiện .rất mong được sự góp ý của cô giáo và các bạn trong lớp. Chúng em xin chân thành cảm ơn. 123doc.vn

Ngày đăng: 27/02/2013, 20:38

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan