1. Trang chủ
  2. » Luận Văn - Báo Cáo

Ứng Dụng Phương Pháp Luận-Phương Pháp Sáng Tạo Trong Lập Trình Phần Mềm Quản Lí Thư Viện

13 585 2
Tài liệu đã được kiểm tra trùng lặp

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng Dụng Phương Pháp Luận-Phương Pháp Sáng Tạo Trong Lập Trình Phần Mềm Quản Lí Thư Viện
Tác giả Huỳnh Tấn Mẫn
Người hướng dẫn GS.TSKH. Hoàng Kiếm
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đề tài cuối kỳ
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 13
Dung lượng 334,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- Đồng thời khi chia nhỏ các đối tượng sẽ giúp cho việc quản lí dễ dàng và đi sâu vào từng đối tượng hơn

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

-0o0 -KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

ĐỀ TÀI CUỐI KỲ

MÔN : PHƯƠNG PHÁP LUẬN SÁNG TẠO – KHOA HỌC

Đề tài : Ứng Dụng Phương Pháp Luận-Phương Pháp Sáng Tạo

Trong Lập Trình Phần Mềm Quản Lí Thư Viện

Giảng viên : GS.TSKH HOÀNG KIẾM

Sinh viên : HUỲNH TẤN MẪN

MSSV : 06520281

I Giới thiệu :

Trong thời đại công nghệ phát triển nhanh chóng như ngày nay, thì việc ứng dụng công nghệ thông tin vào trong mọi lĩnh vực là một trong những nhu cầu cấp thiết và tất yếu Đặc biệt là trong lĩnh vực quản lí,càng ngày lượng thông tin và dữ liệu bạn quản lí sẽ tăng lên gấp bội và công việc quản lí của bạn trở nên phức tạp khó khăn hơn, thì việc ứng dụng công nghệ thông tin lại càng cấp thiết hơn, cùng với sự hổ trợ của các phần mềm quản lí, nó giúp bạn quản lí mọi việc dễ dàng nhanh chóng, đáp ứng mọi yêu cầu lưu trữ và truy xuất dữ liệu,tiết kiệm được thời gian và chi phí cho công việc

Điển hình như trong công việc quản lí thư viện,bạn không thể giải quyết

và quản lí các hoạt động của thư viện trong thời gian nhanh nhất với hàng đống

xổ sách, nhưng với chiếc máy tính và phần mềm quản lí thư viện, bạn có thể quản lí hàng trăm công việc như : quản lí việc cho mượn sách, báo chí , quản

lí việc lưu trữ sắp xếp, hổ trợ độc giả việc tra cứu thông tin, tìm kiếm sách nhanh chóng và hiệu quả nhất

II.Ứng dụng các phương pháp, nguyên lý để giải quyết bài toán :

Trang 2

A Những nguyên tắc được dùng để xử lý bài toán :

Việc giải quyết vấn đề trên máy tính chỉ là thao tác lập trình hay là sự chuyển đổi lời giải từ ngôn ngữ bên ngoài sang các ngôn ngữ được sử dụng trong máy tính Nên để giải quyết bài toán này trước tiên ta cần xây dựng các đối tượng, phân tích bài toán và thiết kế mô hình, đồng thời tìm ra cách giải tối

ưu nhất Để xây dựng mô hình và các thuật toán tối ưu nhất cho bài toán ta sẽ

sử dụng các nguyên tắc sau thực hiện :

* Nguyên tắc chia nhỏ :

- Để thực hiện nguyên tắc này ta sẽ thực hiện các bước sau :

+ Chia đối tượng thành các phần độc lập

+ Làm đối tượng trở nên tháo lắp được

+ Tăng mức độ chia nhỏ đối tượng

- Áp dụng các bước trên ta sẽ chia nhỏ chia bài toán thành nhiều phần

để dễ thực hiện và quản lí :

 Quá trình phân tích :

 Khảo sát hiện trạng hệ thống và phân tích yêu cầu

 Thiết lập các sơ đồ(sơ đồ chức năng, sơ đồ dòng dữ liệu)

 Thiết lập mô hình dữ liệu

 Thiết lập mô hình quan hệ và mô tả tiến trình

 Quá trình thiết kế :

 Thiết kế cơ sở dữ liệu

 Thiết kế giao diện người dùng

- Đồng thời khi chia nhỏ các đối tượng sẽ giúp cho việc quản lí dễ dàng và đi sâu vào từng đối tượng hơn

- Ví dụ : trong chương trình quản lí thư viện chúng ta sẽ chia nhỏ quá trình quản lí thành các phần như sau : quản lí lưu trữ và cập nhật sách, quản lí việc trả mượn sách, hổ trợ tìm kiếm sách theo các thể loại

- Khi lập trình thay vì chỉ viết một lớp, chúng ta chia nhỏ bài toán chính thành nhiều lớp nhỏ thuận tiện cho việc quản lí và sữa lỗi

Trang 3

- Trong phần thiết kế cơ sở dữ liệu ta cũng chia thành nhiều bảng : sách, độc giả, ưu tiên, kho sách từ đó việc quản lí thông tin về sách, độc giả dễ dàng hơn và việc cập nhật thông tin thuận tiện hơn Và phần lưu trữ cơ

sỡ dữ liệu ta sẽ kết nối với các server quản lí cơ sở dữ liệu như : SQL Server,

My SQL để quản lí dữ liệu với khối lượng lớn và truy xuất nhanh thay vì lưu vào trong file Chẳng hạn như trong khi lập trình phần mềm quản lí này, để tiện cho việc kết nối và quản lí truy xuất cơ sở dữ liệu ta tạo một lớp

“GetConnection.java” Lớp này có nhiệm vụ kết nối với server quản lí cơ sở

dữ liệu và khi các lớp khi muốn truy xuất cơ sở dữ liệu chỉ cần gọi lại đối tượng của lớp này mà không cần tạo lại kết nối

- Ngoài ra trong phần thiết kế các form ta cũng chia nhỏ các form theo từng mục đích như : form mượn sách, form tìm kiếm sách, form thông tin đọc

giả

* Nguyên tắc đổi màu :

- Thay đổi màu sắc giữa các form để đọc giả dễ phân biệt, trong các form nhập liệu khi đang ở tình trạng “thêm” hay “sửa” dữ liệu thì các đối tượng nào được nhập dữ liệu sẽ có màu khác với các đối tượng không được nhập dữ liệu, điều này giúp người dùng dễ thao tác hơn

- Ví dụ sau đây, chúng ta thấy form “Các qui định” hiển thị như sau :

Trang 4

Form quản lí có dạng như sau :

- Khi người quản lí đang xem chuyên mục nào thì chuyên mục đó sẽ sáng lên và có màu khác với màu của các chuyên mục khác Đồng thời khi ở chuyên mục đó nếu bạn chọn: Add, Delete, Modify hay Refesh thì button đó

có màu khác so với các button còn lại

Trang 5

- Khi người quản lí cập nhật hay thêm mới thông tin về sách hay đọc giả, trong trường hợp thành công hay thất bại chương trình sẽ hiện ra các form thông báo có biểu tượng khác nhau để người sử dụng phân biệt

* Nguyên tắc thực hiện sơ bộ :

- Thực hiện trước sự thay đổi cần có, hoàn toàn hoặc từng phần, đối với đối tượng

- Cần sắp xếp đối tượng trước, sao cho chúng có thể hoạt động từ vị trí thuận lợi nhất, không mất thời gian dịch chuyển

- Thông thường ta thường đặt ra các câu hỏi trước khi thực hiện nguyên

tắc này: hệ thống cho trước có những nhược điểm gì? Nó bao gồm những phần việc gì được thực hiện theo tuần tự thời gian như thế nào? Việc thực hiện trước một hoặc tất cả các phần việc có giúp khắc phục các nhược điểm nêu trên không? Nếu có thì tìm cách giải quyết?

- Ta sẽ xây dựng cơ sở dữ liệu cho chương trình này như sau : cơ sở dữ liệu gồm 13 bảng bao gồm : sách, độc giả, bản sách, ưu tiên, kho sách, nhà xuất bản, nhân viên, chi tiết mượn trả, được mượn, phục vụ, mã quyển truy nhập, thông tin người dùng, thông tin truy nhập Từ các bảng cơ sở dữ liệu ta xây dựng các biểu mẫu mô phỏng các giao diện cho chương trình

- Ví dụ :

 Từ bảng sách, độc giả ta xây dựng được các biểu mẫu như sau: Bảng Độc giả :

Ma_so_the char(10) NOT NULL, primary key

Ma_uu_tien char(10) NOT NULL, foreign key

Trang 6

Từ bảng Độc giả ta có biểu mẫu như sau :

Mã số thẻ Mã ưu tiên Tên độc giả Ngày sinh

……… ……… ……… ………

Nghề nghiệp Địa chỉ Ngày lập thẻ Ngày hết hạn

 Từ các khóa chính, khóa ngoại của các bảng dữ liệu ta xây dựng một ma trận :

BẢN SÁCH =>BẢN SÁCH (Mã lưu trữ, Mã tài liệu, Mã vị trí, Số đăng ký)

SÁCH => SÁCH (Mã sách, Mã NXB) NHÀ XUẤT BẢN => NHÀ XUẤT BẢN (Mã NXB) KHO SÁCH => KHO SÁCH (Mã vị trí)

ĐỘC GIẢ => ĐỘC GIẢ (Mã số thẻ, Mã ưu tiên)

ƯU TIÊN => ƯU TIÊN (Mã ưu tiên) NHÂN VIÊN => NHÂN VIÊN (Mã nhân viên) MƯỢN => MƯỢN TRẢ (Mã số thẻ, Mã lưu trữ, Ngày mượn, Hạn trả)

ĐƯỢC MƯỢN => ĐƯỢC MƯỢN (Mã lưu trữ, Mã ưu tiên) PHỤC VỤ => PHỤC VỤ (Mã nhân viên, Mã số thẻ)

Ta có ma trận như sau : Thuộc

tính khoá 1 2 3 4 5 6 7 8 9 10 11 12 13 Liên kết

12)

Trang 7

13)

Mã nhân

viên

Mã số thẻ,

Mã lưu trữ,

Mã nhân

viên, Mã số

thẻ

Dòng loại

- Từ ma trận trên ta sẽ dễ dàng xét các điều kiện ràng buộc giữa các đối tượng trong quá trình truy xuất và nhập dữ liệu

- Trước khi bắt tay vào lập trình ta sẽ sử dụng các đoạn mã giả mô phỏng chương trình trước để tiện cho việc xử lý các sự kiện của từng đối tượng, đặt các biến, trình bày và sử dụng các thuật toán sao cho phù hợp

- Ví dụ : Sau đây là một đoạn mã giả cho các tiến trình trong việc cập nhật sách Các tiến trình này đơn giản và chúng thực thi liên tiếp nhau để tạo ra một output cuối cùng Các tiến trình sau nhận output từ tiến trình trước đó làm input của mình Ta chỉ tạo được ra mã giả cho 3 tiến trình mà có thể lập trình

để xử lý yêu cầu:

 Phân loại sách

 Tạo số đăng ký riêng

 Tạo danh mục

Mã giả cho việc cập nhật sách là:

READ (thông tin về sách nhận về)

DO WHILE (các bản ghi về loại sách chưa xét)

IF (có thông tin trùng với thông tin trên sách)

THEN

Lấy thông tin về loại sách GENERATE (số đăng ký riêng) cho sách

Trang 8

UPDATE (Danh mục) cho sách vừa tạo số đăng ký

ENDI ENDD

* Nguyên tắc kết hợp :

- Nguyên tắc này thường đi chung với nguyên tắc chia nhỏ , kết hợp các đối tượng đồng nhất hoặc các đối tượng dùng cho các hoạt động kế cận, kết hợp về mặt thời gian các hoạt động đồng nhất hoặc kế cận, đồng thời chúng

ta phải đặt ra câu hỏi: kết hợp theo kiểu gì?, kết hợp như thế nào?, đến mức nào?, để có phương pháp thực hiện tốt nhất

- Điển hình như khi lập trình phần mềm quản lí thư viện này phần dữ liệu thường được tạo và quản lý bằng SQL Server hay My SQL còn phần giao diện thường được lập trình bằng một trong các ngôn ngữ C#, java … và các báo cáo thường được thiết kế bởi Crysral Report

- Trong quá trình lập trình sau khi chia nhỏ các đối tượng ra để tiện cho việc lập trình và quản lí, người ta sẽ kết hợp các đối tượng đó lại thành một bài toán hoàn chỉnh Cũng như khi lập trình ta chia thành các lớp nhỏ, mỗi lớp nhỏ chứa từng đối tượng riêng biệt và các sự kiện liên quan tới từng đối tượng đó,

và sau đó kết hợp các lớp với nhau để hoàn thiện chương trình

- Trong phần tạo các biểu mẫu mô phỏng giao diện của chương trình, ta

sẽ kết hợp một số thuộc tính trong các bảng dữ liệu với nhau Ví dụ : ta kết hợp một số thuộc tính trong bảng Đọc giả và một số thuộc tính trong bảng Sách để

có biểu mẫu như sau :

 Phần : Số thẻ, Họ tên, Nghề nghiệp, Địa chỉ thuộc bảng Đọc giả và

Mã sách, Tên sách, Thể loại, Tác giả thuộc bảng Sách

Trang 9

Thư viện THPT Nguyễn Du

PHIẾU MƯỢN SÁCH

Số thẻ:………

Họ tên:………

Nghê nghiệp:……….

Địa chỉ:………

Mã sách Tên sách Thể loại Tác giả Ngày… tháng… năm 20…  Trong quá trình đọc giả tìm sách ta sẽ kết hợp nhiều câu truy vấn SQL thành một câu truy vấn duy nhất, giúp cho câu lệnh ngắn gọn dễ quản lí và sửa lỗi Ở đoạn code dưới đây đọc giả có thể tìm sách theo từng đối tượng : sách, tác giả, nhà xuất bản, ngôn ngữ hay thể loại hoặc theo tất cả các đối tượng Chẳng hạn như khi đọc giả muốn tìm theo tác giả thì các đối tượng còn lại đều là null, vì không có nhập liệu String sach = " TenSach like '%" + txtSach.getText().trim() + "%' "; String tacgia = " and TenTacGia like '%" + txtTacGia.getText().trim() + "%' "; String nxb = " and TenNXB like '%" + txtNhaXuatBan.getText().trim() + "%' "; String ngonngu = " and TenNgonNgu like '%" + txtNgonNgu.getText().trim() + "%' "; String theloai = " and TenTheLoai like '%" + txtTheLoai.getText().trim() + "%' "; test.sql = "Select

MaSach,TenSach,TenTacGia,TenNgonNgu,TenTheLoai,TenNXB,NoiDung,ViTri,Tra ngThai from Sach, TacGia, NXB, NgonNgu, TheLoai" +

" where Sach.matacgia = TacGia.matacgia and " +

" Sach.manxb = NXB.manxb and " +

" Sach.mangonngu = NgonNgu.mangonngu and " +

" Sach.matheloai = TheLoai.matheloai and "

+ sach + tacgia + nxb + ngonngu + theloai;

* Nguyên tắc đảo ngược :

- Ta thường đặt ra câu hỏi hệ thống cho trước có chức năng gì ? Có thể đảo ngược về mặt chức năng hay không?

- Để giải quyết bài toán quản lí thư viện này người lập trình cần đảo ngược vai trò của mình, đứng ở hai vị trí : người quản lí thư viện và đọc giả

Trang 10

Có như vậy thì phần mềm quản lí thư viện mới có đầy đủ các chức năng mà người quản lí và đọc giả đòi hỏi

- Ví dụ :

+ Ở vị trí người quản lí thư viện có các nhu cầu : cập nhật thông tin sách, quản lí việc trả mượn sách, cập nhật thông tin đọc giả, thống kê

+ Ở vị trí đọc giả có các nhu cầu : tra cứu tài liệu xem chi tiết tài liệu, xem thông tin cá nhân, thay đôi thông tin cá nhân

* Nguyên tắc tách khỏi :

- Tách phần gây “phiền phức” (tính chất “phiền phức”) hay ngược lại, tách phần duy nhất “cần thiết” (tính chất “cần thiết”) ra khỏi đối tượng, cũng

là phân nhỏ nhưng tách thành hai phần độc lập : phần giữ lại để sử dụng và phần không giữ lại (tách khỏi) là phần không cần thiết

- Nguyên tắc này được áp dụng trong quá trình truy xuất dò tìm để truy xuất cơ sở dữ liệu khi đọc giả tra cứu tìm sách, trong quá trình cập nhật thông tin sách hoặc thông tin đọc giả

- Ví dụ : trong quá trình mượn sách nếu có hai đọc giả mượn cung một quyển sách thì ta sẽ lấy độ ưu tiên của đọc giả để so sánh đọc giả nào có độ ưu tiên cao hơn sẽ được mượn sách

sql = "Select Ma-uu-tien from DocGia";

rs = s.executeQuery(sql);

int a = 0;

while(rs.next()){

if(rs.getString(2)>a){

a = rs.getString(2);// Mã ưu tiên của đọc giả nằm ở cột 2 }

}

sql = “select * from docgia where Ma-uu-tien like’%” +a+”%’”;

rs = s.executeQuery(sql);

* Nguyên tắc trung gian :

- Sử dụng đối tượng trung gian, chuyển tiếp

- Trong nhiều chương trình máy tính, người ta có thể viết những biểu thức tính toán phức tạp trên cùng một hàng Điều này tuy chẳng ảnh hưởng đến

Trang 11

kết quả tính toán cuối cùng nhưng sẽ làm cho việc đọc biểu thức trở nên khó khăn hơn và khó kiểm tra hơn khi bị lỗi

- Điển hình như trong khi lấy dữ liệu từ các textbox do đọc giả nhập vào hay người quản lí nhập vào, nếu ta không đặt các biến trung gian thì cú pháp câu lệnh để insert dữ liệu vào cơ sở dữ liệu trở nên dài dòng, nhập nhằn

và khó kiểm tra khi bị lỗi

- Ví dụ : Khi thêm người quản lí thêm một số thể loại vào trong cơ sở

dữ liệu ta có câu lệnh như sau :

 Khi ta không sử dụng các biến trung gian

sql = "Insert into TheLoai values (" +" +

txtMaTheLoai.getText().trim().toUpperCase()+ "', +'" +

txtTenTheLoai.getText().trim()+"' + ")";

 Khi ta sử dụng các biến trung gian

String maTheLoai = "'" + txtMaTheLoai.getText().trim().toUpperCase()+ "',";

String tenTheLoai = "'" + txtTenTheLoai.getText().trim()+"'";

sql = "Insert into TheLoai values (" + maTheLoai + tenTheLoai + ")";

* Nguyên tắc vạn năng :

- Một đối tượng có thể thực hiện nhiều chức năng khác nhau

- Để tiện cho việc kết nối cơ sở dữ liệu khi lập trình phần mềm quản lí thư viện, ta dùng một lớp GetConnection.java để tạo kết nối với cơ sở dữ liệu, vừa phục vụ cho việc truy xuất dữ liệu, vừa phục vụ cho việc insert dữ liệu vào

cơ sở dữ liệu

- Chẳng hạn như trong lớp panelDocgia.java, lớp này vừa thực nhiệm

vụ hiển thị thông tin các độc giả, vừa cho phép thêm, xóa, sửa thông tin đọc giả

//hiển thị thông tin đọc giả

sql = "Select * from " + tableName;

rs = s.executeQuery(sql);

//System.out.println(rs);

model = new ScrollTable(rs);

// Xóa một đọc giả nào đó

if (KiemTraXoa(dong,"DocGia","MuonSach", "MaDocGia"))

Remove(dong,"DocGia");

Refresh("DocGia",jTable1);

* Nguyên tắc chứa trong :

Trang 12

- Hầu như khi lập trình bất kỳ phần mềm nào thì nguyên tắc này đều được áp dụng Điển hình như trong lớp MainIntroduction.java có các chức năng :quản lí thư viện, các luật,tìm sách,quản lí tài khoản Khi ta nhấp vào một trong các button đó thì các hàm hay các lớp liên quan được gọi thực thi Ví dụ :

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {

QuyDinhFrame frame = new QuyDinhFrame();

}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

MainFrame frame = new MainFrame();

}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

TimSachFrame frame = new TimSachFrame();

}

Khi ta tạo một đối tượng frame của lớp QuyDinhFrame,MainFrame

hay TimSachFrame thì các hàm bên trong các lớp này được gọi thực thi

B Các phương pháp được dùng xử lý bài toán :

Kết hợp cả hai phương pháp trực tiếp và gián tiếp Phương pháp gián tiếp được thực hiện trước để tìm ra thuật toán tối ưu cho bài toán Sau khi tìm

ra thuật toán ta sử dụng phương pháp gián tiếp để chuyển đổi lời giải từ ngôn ngữ bên ngoài sang các ngôn ngữ được sử dụng trong máy tính

* Phương pháp trực tiếp :

- Áp dụng nguyên lý thứ nhất, ta chuyển đổi dữ liệu bài toán thành dữ

liệu của chương trình Ta biểu diễn dữ liệu bài toán trong ngôn ngữ lập trình (viết trên java) như sau :

String TenDocGia;

String NgaySinh;

int dateNgaySinh ; int monthNgaySinh;

- Áp dụng nguyên lý thứ năm, ta chia bài toán thành các bài toán nhỏ hơn Trong bài toán quản lí thư viện ta lại chia ra hai bài toán nhỏ hơn để giải quyết: giải quyết vấn đề quản lí cập nhật thông tin sách, vấn đề quản lí thông tin đọc giả, vấn đề trả mượn sách, làm thẻ thư viện

* Phương pháp gián tiếp :

- Ta sử dụng nguyên lý vét cạn toàn bộ trong phương pháp thử - sai để tìm ra tất cả các thuật toán có thể có cho bài toán, sau đó kết hợp nguyên lý thu gọn không gian tìm kiếm và nguyên lý giảm độ phức tạp của thử và sai để thu

Ngày đăng: 25/04/2013, 09:19

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w