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

Báo cáo môn học ngôn ngữ lập trình Java

20 2,5K 19
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

Định dạng
Số trang 20
Dung lượng 1,45 MB

Nội dung

Báo cáo môn học ngôn ngữ lập trình Java

Trang 1

MỤC LỤC

Lời mở đầu 3

1.1 Lý do chọn đề tài 3

1.2 Mục tiêu của đề tài 3

1.3 Công nghệ sử dụng 3

1.4 Phạm vi nghiên cứu 4

Phân công công việc và đánh giá kết quả các thành viên trong nhóm 4

Nội dung báo cáo 4

3.1 Cơ sở lý thuyết 4

3.1.1 Giới thiệu 4

3.1.2 Một số tính chất của ngôn ngữ java 5

3.1.2.1 Đơn giản 5

3.1.2.2 Hướng đối tượng 5

3.1.2.3 Độc lập phần cứng và hệ điều hành 5

3.1.2.4 Mạnh mẽ 6

3.1.2.5 Bảo mật 7

3.1.2.6 Phân tán 7

3.1.2.7 Đa luồng 7

3.1.2.8 Linh động 7

3.2 Phân tích thiết kế hệ thống 7

3.2.1 Phân tích hệ thống 7

3.2.2 Thiết kế hệ thống 9

3.3 Kết quả 16

Kết luận 18

4.1 Đạt được 18

4.2 Chưa đạt được 20

Tài liệu tham khảo 20

Trang 2

DANH MỤC HÌNH ẢNH

Hình 1: Bảng mô tả phân công công việc

Hình 2: Luồng xử lý các rẽ nhánh chức năng

Hình 3: Các lớp thành viên

Hình 4: Lớp Main chính

Hình 5: Lớp Game

Hình 6: Lớp Game thread

Hình 7: Lớp Game panel

Hình 8: Lớp Configuration

Hình 9: Lớp Figure

Hình 10: Lớp SquareBoad

Hình 11: Lớp SquareBoad Component

Hình 12: Mô tả mỗi quan hệ giữa các lớp

Hình 13: Bắt đầu trò chơi

Hình 14: Quá trình trò chơi

Trang 3

Lời mở đầu

1 Lý do chọn đề tài

Công nghệ thông tin (CNTT) ngày càng có vai trò quan trọng trong cuộc sống hằng ngày của chúng ta Việc ứng dụng CNTT vào các lĩnh vực trong đời sống giúp công việc được tiến hành nhanh chóng và hiệu quả hơn Có rất nhiều công việc mới phát triển song song với sự phát triển của CNTT, một trong những số đó là hiệu ứng game, hướng đi dịch vụ mang lại hiệu quả kinh tế rất lớn

Chúng em chọn đề tài “Lập trình game xếp gạch bằng ngôn ngữ java” nhằm tìm hiểu sâu hơn về ngôn ngữ java trong lập trình hướng đối tượng, từ đó viết một ứng dụng cụ thể thử nghiệm làm cơ sở củng cố kiến thức và định hướng, kế hoạch xây dựng những ứng dụng game cụ thể, phát triển theo hướng dịch vụ trong tương lai

1.1 Mục tiêu của đề tài

Hiểu khái niệm phân tích và giải quyết bài toán lập trình hướng đối tượng: Xác định các đối tượng lớp, mỗi quan hệ giữa các lớp trong một hệ thống thông tin

Mục tiêu đề tài mục đích nhằm nghiên cứu môi trường phát triển, ngôn ngữ java xây dựng những ứng dụng cụ thể

1.3 Công nghệ sử dụng

Trong xu thế phát triển công nghệ thông tin như vũ bảo hiện nay,đặc biệt là trong ngành công nghệ phần mềm ,ngày càng đòi hỏi trình độ cao trong kĩ thuật lập trình.Chính vì vậy mà phương pháp lập trình hướng thủ tục cổ điển trước đây không đáp ứng được nhu cầu đặt ra của thời đại ,một phương pháp lập trình mới được xây

dựng theo nguyên lý Alan-Kay đã được ra đời nhằm đáp ứng những nhu cầu cấp thiết đó : “Phương pháp Lập Trình Hướng đối Tượng”.

Đồ án này được thiết kế theo phương pháp LTHDT bằng ngôn ngữ Java ,do SunMicroSystem đưa ra vào năm 1991 Chính vì vậy mà nó giải quyết được những vướng mắc gặp phải khi thiết kế theo phương pháp lập trình thủ tục thuần túy

 Mã chương trình rõ ràng,dễ đọc , dễ hiểu và cô đọng

 Chương trình được tổ chức thành những Class lắp ghép lại với nhau thành một khối thống nhất

 Mỗi Class gồm có nhiều Method đảm nhận các vai trò khác nhau trong chương trinh

 Chương trình có tính mềm dẻo cao

 Có khả năng tái sử dụng tài nguyên

Trang 4

1.4 Phạm vi nghiên cứu

Nghiên cứu môi trường phát triển, ngôn ngữ java trong lập trình hướng đối tượng Tìm hiểu cách xây dựng các phương thức, thuộc tính đối tượng trong java

Phân công công việc và đánh giá kết quả các thành viên trong nhóm

Xây dựng các lớp, phương thức Hoàn thành

Hình 1: Bảng mô tả phân công công việc

Nội dung báo cáo

3.1 Cơ sở lý thuyết

3.1.1 Giới thiệu

Java là một ngôn ngữ lập trình được Sun Microsystems giới thiệu vào tháng 6 năm 1995 Từ đó, nó đã trở thành một công cụ lập trình của các lập trình viên chuyên nghiệp Java được xây dựng trên nền tảng của C và C++, do vậy nó sử dụng các cú pháp của C và các đặc trưng hướng đối tượng của C++

Vào năm 1991, một nhóm các kỹ sư của Sun Microsystems có ý định thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử như tivi, máy giặt, lò nướng,… Mặc dù C và C++ có khả năng làm việc này nhưng trình biên dịch lại phụ thuộc vào từng loại CPU

Trình biên dịch thường phải tốn nhiều thời gian để xây dựng nên rất đắt, vì vậy

để mỗi loại CPU có một trình biên dịch riêng là rất tốn kém Do đó nhu cầu thực tế đòi hỏi một ngôn ngữ chạy nhanh, gọn, hiệu quả và độc lập thiết bị tức là có thể chạy trên nhiều loại CPU khác nhau, dưới các môi trường khác nhau “Oak” đã ra đời và vào năm 1995 được đổi tên thành Java Mặc dù mục tiêu ban đầu không phải cho Internet nhưng do đặc trưng không phụ thuộc thiết bị nên Java đã trở thành

Trang 5

3.1.2 Một số tính chất của ngôn ngữ java

Java là ngôn ngữ lập trình được phát triển từ ngôn ngữ lập trình C/C++ Nó kế thừa, phát huy các thế mạnh của ngôn ngữ C/C++ và lược bỏ đi các cú pháp phức tạp của C/C++ Ngôn ngữ lập trình Java có một số đặc trưng tiêu biểu: đơn giản, hướng đối tượng, độc lập phần cứng và hệ điều hành, mạnh mẽ, bảo mật, phân tán,

đa luồng và linh động

3.1.2.1 Đơn giản

Những người thiết kế mong muốn phát triển một ngôn ngữ dễ học và quen thuộc với đa số người lập trình Do vậy Java loại bỏ các đặc trưng phức tạp của C và C++ như:

 Loại bỏ thao tác con trỏ, thao tác định nghĩa chồng toán tử

 Không cho phép đa kế thừa mà sử dụng các giao diện

 Không sử dụng lệnh “goto” cũng như file header (.h)

 Loại bỏ cấu trúc “struct” và “union”

3.1.2.2 Hướng đối tượng

Java là ngôn ngữ lập trình thuần hướng đối tượng, mọi chương trình viết trên Java đều phải được xây dựng trên các đối tượng Nếu trong C/C++ ta có thể tạo ra các hàm (chương trình con không gắn với đối tượng nào) thì trong Java ta chỉ có thể tạo ra các phương thức (chương trình con gắn liền với một lớp cụ thể) Trong Java không cho phép các đối tượng có tính năng đa kế thừa mà được thay thế bằng các giao diện (interface)

3.1.2.3 Độc lập phần cứng và hệ điều hành

Đối với các ngôn ngữ lập trình truyền thống như C/C++, phương pháp biên dịch được thực hiện như sau :

Hình 1.1: Các biên dịch chương trình hệ thống

Trang 6

Với mỗi nền phần cứng khác nhau, có một trình biên dịch khác nhau để biên dịch mã nguồn chương trình cho phù hợp với nền phần cứng ấy Do vậy, khi chạy trên một nền phần cứng khác bắt buộc phải biên dịch lại mã nguồn

Đối với các chương trình viết bằng Java, trình biên dịch Javac sẽ biên dịch

mã nguồn thành dạng bytecode Sau đó, khi chạy chương trình trên các nền phần cứng khác nhau, máy ảo Java dùng trình thông dịch Java để chuyển mã bytecode thành dạng chạy được trên các nền phần cứng tương ứng Do vậy, khi thay đổi nền phần cứng, không phải biên dịch lại mã nguồn Java

Hình 1.2: Biên dịch hệ thống java

3.1.2.4 Mạnh mẽ

Java là ngôn ngữ yêu cầu chặt chẽ về kiểu dữ liệu

 Kiểu dữ liệu phải khai báo tường minh

 Java không sử dụng con trỏ và các phép toán con trỏ

 Java kiểm tra tất cả các truy nhập đến mảng, chuỗi khi thực thi để đảm bảo rằng các truy nhập đó không ra ngoài giới hạn kích thước

 Trong các môi trường lập trình truyền thống, lập trình viên phải tự mình cấp phát bộ nhớ, trước khi chương trình kết thúc thì phải tự giải phóng

bộ nhớ đã cấp Vấn đề có thể nảy sinh khi lập trình viên quên giải phóng bộ nhớ đã xin cấp trước đó Trong chương trình Java, lập trình viên không phải bận tâm đến việc cấp phát bộ nhớ Quá trình cấp phát, giải phóng được thực hiện tự động, nhờ dịch vụ thu nhặt những đối tượng không còn sử dụng nữa (garbage collection)

Trang 7

 Cơ chế bẫy lỗi của Java giúp đơn giản hóa qúa trình xử lý lỗi và hồi phục sau lỗi

3.1.2.5 Bảo mật

Java cung cấp một môi trường quản lý thực thi chương trình với nhiều mức

để kiểm soát tính an toàn:

 Ở mức thứ nhất, dữ liệu và các phương thức được đóng gói bên trong lớp Chúng chỉ được truy xuất thông qua các giao diện mà lớp cung cấp

 Ở mức thứ hai, trình biên dịch kiểm soát để đảm bảo mã là an toàn, và tuân theo các nguyên tắc của Java

 Mức thứ ba được đảm bảo bởi trình thông dịch; chúng kiểm soát xem bytecode có đảm bảo các quy tắc an toàn trước khi thực thi không

 Mức thứ tư kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống

3.1.2.6 Phân tán

Java được thiết kế để hỗ trợ các ứng dụng chạy trên mạng bằng các lớp mạng (java.net) Hơn nữa, Java hỗ trợ nhiều nền chạy khác nhau nên chúng được sử dụng rộng rãi như là công cụ phát triển trên Internet - nơi sử dụng nhiều nền khác nhau

3.1.2.7 Đa luồng

Chương trình Java cung cấp giải pháp đa luồng (Multithreading) để thực thi các công việc đồng thời Chúng cũng cung cấp giải pháp đồng bộ giữa các luồng Đặc tính hỗ trợ đa luồng này cho phép xây dựng các ứng dụng trên mạng chạy hiệu quả

3.1.2.8 Linh động

Java được thiết kế như một ngôn ngữ động để đáp ứng cho những môi trường

mở Các chương trình Java chứa rất nhiều thông tin thực thi nhằm kiểm soát và truy nhập đối tượng lúc chạỵ Điều này cho phép khả năng liên kết mã động

3.2 Phân tích thiết kế hệ thống

3.2.1 Phân tích hệ thống

Quy trình thực hiện trò chơi và các thao tác

 Khởi động trò chơi

Hướng đi thứ nhất: Người chơi thực hiện trò chơi, chương trình

cộng điểm, đến giới hạn điểm, chương trình tự động nâng mức độ

Trang 8

của trò chơi lên Đến mức độ cao nhất, hệ thống thông báo kết thúc và dừng trò chơi

Hướng đi thứ hai: Người chơi thực hiện trò chơi, trong quá trình

chơi, người dùng muốn khởi tạo lại mới trò chơi

Hướng đi thứ ba: Người chơi thực hiện trò chơi, trong quá trình

chơi, người chơi muốn tạm dừng hoặc tiếp tục trò chơi

Hình 2: Luồng xử lý các rẽ nhánh chức năng

Trang 9

3.2.2 Thiết kế hệ thống

Hình 3: Các lớp thành viên

Trang 10

Hình 4: Lớp Main chính

Trang 11

Hình 5: Lớp Game

Hình 6: Lớp Game thread

Trang 12

Hình 7: Lớp Game panel

Trang 13

Hình 8: Lớp Configuration

Trang 14

Hình 9: Lớp Figure

Trang 15

Hình 10: Lớp SquareBoad

Hình 11: Lớp SquareBoad Component

Trang 16

Hình 12: Mô tả mỗi quan hệ giữa các lớp

Lớp cha

Lớp con

Múi tên chỉ lớp con kế thừa lớp cha Quan hệ kết hợp có biến thể hiện Quan hệ kết hợp không có biến thể hiện

3.3 Kết quả

Trang 17

 Bắt đầu chơi

Để bắt đầu trò chơi xếp gạch, người chơi click chuột vào nút “Bắt đầu”.

 Tạm dừng trò chơi:

 Trong quá trình chơi xếp gạch, khi muốn tạm dừng trò chơi lại,

người chơi nhấn nút “Tạm dừng” hoặc nhấn phím “P”.

Để tiếp tục quá trò chơi, người chơi nhấn nút “Tiếp tục” hoặc nhấn phím “P”.

 Hiển thị gạch:

o Chức năng này giúp người chơi biết trước được lát gạch nào sẽ xuất hiện trong thao tác kế tiếp, giúp người chơi định hướng dễ dàng hơn

o Để tắt hoặc mở chức năng này, người chơi nhấn phím “N”.

 Dịch chuyển và đảo gạch:

o Chức năng này cho phép người chơi dịch chuyển và đảo gạch theo chiều, hướng và dạng thù hình mà mình mong muốn

 Dịch sang trái: Nhấn phím

 Dịch sang phải: Nhấn phím

 Dịch nhanh xuống dưới: Nhấn phím

 Đảo gạch: Nhấn phím

 Tính điểm:

o Chức năng này tính điểm cho người chơi, khi người chơi xếp một hàng đầy trên khung, hàng gạch này sẽ tự biến mất và người dùng

sẽ được cộng thêm 100 điểm

 Mức độ và hoàn thành:

o Mức độ: Là chức năng làm tăng độ khó của game, khi người chơi đạt được 100 điểm thì mức độ sẽ được tăng lên 1 bậc, quá trình được tiếp tục cho đến khi người chơi về đích

o Hoàn thành: Khi người chơi đạt đến mức độ 9 thì chương trình sẽ báo bạn đã hoàn thành màn chơi và trò chơi lại bắt đầu lại từ đầu

 Kết thúc:

Trang 18

o Khi các viên gạch được chồng lên nhau, nếu như nó chạm tới đỉnh của khung chính thì chữ Kết thúc trò chơi xuất hiện Như vậy người chơi sẽ kết thúc trò chơi, và trò chơi sẽ khởi tạo lại

Kết luận

4.1 Đạt được

Hiểu và làm việc được với môi trường phát triển, ngôn ngữ java

Cơ hội tìm hiểu thực tế bài toán

Xây dựng được chương trình cụ thể

Hình 13: Bắt đầu trò chơi

Trang 19

Hình 14: Quá trình trò chơi

Hình 15: Kết thúc trò chơi

Trang 20

4.2 Chưa đạt được

Chưa thực hiện được chức năng Lưu trò chơi

Trên một máy tính duy nhất, tại một thời điểm chưa thực hiện được chức năng chơi hai người, một người chơi bằng bàn phím, một người chơi bằng chuột

Chưa có chức năng đổi được giao diện cho các viên gạch theo ý của người chơi

Chưa có chức năng cho người chơi tự điều khiển mức độ của trò chơi

Tài liệu tham khảo

[1] java.sun.com

[2] Herbert Schildt Java 2 A Beginner’s Guide Secon

Edition McGraw-Hill - 2003

[3] Dr Harvey M Deitel - Paul J Deitel Java How

Program, 4th Ed (Deitel) Prentice Hall - 2002

[4] Simon Roberts – Philip Heller – Michael Ernest Comple

Java 2 Certification – study guide BPB Publications – 2000

[5] Cay S Horstmann – Gary Cornell Core Java Volum 1

Fundamentals The Sun Microsystems press 1997

[6] Cay S Horstmann – Gary Cornell Core Java Volum 2

Advanced Features The Sun Microsystems press 1997

[7] codeproject.com

Ngày đăng: 02/11/2012, 11:45

TỪ KHÓA LIÊN QUAN

w