Chatting program

79 329 0
Chatting program

Đ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

Khoá luận tốt nghiệp Đại học Chatting Program LờI CảM ƠN Trớc tiên em xin chân thành cảm ơn thầy Lê Văn Minh đã tận tình hớng dẫn và giúp đỡ về tài liệu, thiết bị để em hoàn thành khoá luận này. Xin cảm ơn các thầy cô trong khoa Công nghệ thông tin cùng các thầy cô giáo trờng Đại học Vinh đã truyền thụ cho em những tri thức quý báu trong suốt 4 năm học qua. Công ơn dạy dỗ của thầy cô chỉ có thể đền đáp bằng thái độ học tập nghiêm túc và hăng say, em sẽ cố gắng làm đợc điều đó không chỉ trong quá trình làm khoá luận mà trong cả quá trình công tác sau này. Sự quan tâm giúp đỡ của bố mẹ, gia đình và bạn bè cũng là một nguồn động viên lớn, con mong rằng những gì làm đợc trong quá trình học tập này sẽ là một phần nhỏ bé đền đáp công ơn của bố mẹ và lòng tin tởng của mọi ngời. Vinh ngày 26/05/2003 Sinh viên :Phạm thị Thanh - 71 - Giáo viên hd : ThS Lê Văn Minh, Sinh viên th : Phạm Thị Thanh Mục Lục Chơng I : Đặt Vấn Đề 1. Giới thiệu về chat 2. Lựa chọn công cụ thực hiện chơng ii : ngôn ngữ lập trình java 1. Tổng quan về ngôn ngữ java 2. Lập trình giao diện 3. Lập trình với JFC 4. Xử lý luồng và tập tin 5. Điều khiển sự kiện 6. Lập trình mạng Chơng iii : phân tích bàI toán và càI đặt chơng trình Chơng iV : Hớng phát triển Tài liệu tham khảo - 2 - Khoá luận tốt nghiệp Đại học Chatting Program Chơng I : Đặt vấn đề 1. Giới thiệu về chat CHAT,CHAT,CHAT Trò chyện trên Net Bạn có rất nhiều điều cần phải trao đổi với bạn bè học hỏi kinh nghiệm, tâm sự chia sẻ buồn vui, trao đổi về một vấn đề gì đó Nhng bạn của bạn lại không ở gần bạn, họ có thể đang học ở Hà Nội, đang ở Sài Gòn hay du học bên Mỹ, Bạn gọi điện thoại ? Bạn không thể nói đợc nhiều nh mong muốn mà lại rất tốn kém. Bạn có quá nhiều thời gian rảnh rỗi trong ngày ? Chỉ cẫn đến tra là xong hết việc, nửa ngày còn lại chẳng biết làm gì ? Bạn đã quá mệt mỏi, kiệt sức với đống bài vở ở trờng? Bạn căng thẳng, lo âu, stress vì công việc công ty ? Bạn cô đơn, không tìm ra ngời tâm sự ? Bạn là một cô gái rụt rè, khép kín, không tự tin giao tiếp ở chốn đông ngời ? Hay bạn đang tò mò muốn khám phá thế giới ? Hoan hô chat trên Internet : một bớc tiến vợt lên cả e-mail và newsgroup .Vâng, dĩ nhiên e-mail và newsgroup đều rất tuyệt bạn gửi th đi và nhận th về. Nhng nếu bạn muốn đợc hồi đáp ngay thì sao? Bạn phải nói chuyện thực sự với ai đó. ồ không, không thực sự nói, mà là gõ chữ đến ngời kia. Bạn gõ chữ, họ gõ trả lời tiếp. Gần nh là điện đàm, chỉ có điều không có tiếng đằng hắng dọn giọng, không có tiếng cời khúc khích, cũng không có nhiễu xuyên âm. Hơi bị chậm nữa Thực ra chat chỉ là một hình thức bắt chớc nghèo nàn của điện đàm nhng dẫu sao nó cũng có nhiều u điểm không thể phủ nhận: Từ Vinh mà nói chuyện với ngời thân ở California qua Internet rẻ hơn nhiều so với nói chuyện bằng điện thoại Bạn có thể liên hệ với một ngời mà bạn không nắm số điện thoại, chỉ có địa chỉ Internet Nhóm đông ngời có thể tổ chức cuộc họp trực tuyến dễ hơn và rẻ tiền hơn. Với vài hệ thống, bạn thực sự có thể truyền đi một tập tin máy tính trong thời gian đàm thoại -đố bạn làm đợc trên máy điện thoại không dây! - 71 - Giáo viên hd : ThS Lê Văn Minh, Sinh viên th : Phạm Thị Thanh Nếu tiếp xúc với ngời nớc ngoài, bạn có dịp trau dồi ngoại ngữ - thờng là tiếng Anh -đặc biệt là tiếng lóng, ngôn ngữ thông tục . Nguyên tắc cơ bản khi chat trên trang Web là chọn cho mình một nichname ( biệt hiệu) và chọn phòng tán gẫu. Loại hình trò chuyện thứ ba là gửi thông điệp tức thời (instant messaging). Đối với loại hình này, bạn sẽ đợc liên lạc kín đáo, tay đôi với ngời nào tuỳ ý. Có thể lập ra danh sách những ngời mà bạn muốn trò chuyện, do vậy khi ngời có tên trong danh sách lên Net, bạn sẽ đợc thông báo về điều đó, đồng thời những ngời kia cũng đợc thông báo về tình trạng trực tuyến của bạn . Với những lợi ích nh vậy, việc viết một chơng trình chat để có thể chạy đợc trên mạng là một công việc khá thú vị nó liên quan đến nhiều kiến thức về chuyển thông tin trên mạng, giao diện với ngời dùng, lu trữ thông tin . 2. Lựa chọn công cụ thực hiện Lập trình hớng đối tợng (OOP) là con đờng mới mẻ cho các nhà lập trình. Đối tợng là khái niệm cơ sở của OOP. Nó không chỉ là những con số, cũng không chỉ là những cấu trúc thông thờng. Nó bao gồm các số liệu nh là những thuộc tính riêng (properties) và các hàm nh là các phơng thức (methods) để nó trao đổi với các đối tợng khác. Thay vì phải chuyển cho nhau những số liệu trong hệ thống mở, nh bằng các hàm, trong OOP, các đối tợng dùng thông báo để gửi thông tin, dữ liệu cho nhau và để nhắc đối tợng kia phải thực hiện nhiệm vụ của mình. Các nguyên lý về làm việc với đối tợng là những điều đầu tiên cần phải biết của lập trình viên Đó là một khối chứa các dữ liệu (gọi là biến, vùng hay thuộc tính) biểu diễn những tính năng của đối tợng và phơng thức biểu diễn các ứng xử của đối tợng trớc tác động của các đối tợng khác hay chính nó. Đối tợng có thể đợc nhân bản hay thêm tính năng mà không làm h các định nghĩa cũ. Khi một chơng trình cần mở rộng, chúng ta chỉ cần định nghĩa thêm các thuộc tính, các phơng thức cho đối tợng sẵn có hay có thể nhân bản thêm cho phù hợp với những hoạt động mới. Các đối tợng có thể mở rộng hay dẫn xuất từ một đối tợng khác, do đó thời gian viết lệnh sẽ giảm đi. Quan trọng hơn là, cũng từ điều trên, việc - 4 - Khoá luận tốt nghiệp Đại học Chatting Program bẫy lỗi và sửa chữa sẽ giảm đi rất nhiều vì ta chỉ cần xem xét trên lớp mới tạo mà thôi. Sử dụng OOP, ta cũng có sự đơn giản tơng tự. Ta tạo một cấu trúc chứa dữ liệu và định nghĩa các phơng thức để làm việc với dữ liệu. Nh thế, đối t- ợng tạo và kết hợp dữ liệu bằng mã lệnh. Chúng ta có một đối tợng có đủ điều. Bớc phát triển thứ hai của khái niệm đối tợng là tạo đợc nhiều đối tợng mới trên nền của một đối tợng cao cấp. Vấn đề thứ ba là cần phải lấy đợc đối tợng là tập hợp nhiều thực thể. Cái sai lầm thờng mắc phải trong lập trình thủ tục là ta nghĩ rằng dữ liệu là cố định. Ví dụ trong thủ tục xuất dữ liệu ra màn hình. Vấn đề xảy ra khi ta phải chọn màn hình, thay đổi các điều kiện môi trờng (loại màn hình, độ phân giải, card xử lý ) và phải xuất dữ liệu ra trên nhiều màn hình khác nhau. Kết quả việc xuất dữ liệu trên màn hình sẽ không giống nhau khi chuyển chơng trình sang một màn hình mới. Trong trờng hợp này, OOP xác định rõ ràng là thủ tục xuất dữ liệu ra màn hình là riêng của màn hình đó. Nghĩa là chúng ta có những đối tợng màn hình khác nhau có các phơng thức xuất dữ liệu ra màn hình khác nhau. Sau hết, nếu Bạn nghĩ rằng: nếu tôi có hai màn hình khác nhau thì khi tôi muốn in ra màn hình, tôi cần phải xác định đúng vị trí cần in trên từng màn hình và chú ý đến các tơng tác với ngời dùng ở những cửa sổ khác nhau, thì Bạn cần nên biết rằng trong OOP, Bạn không cần phải làm điều đó. Bởi vì sau khi Bạn đã trừu tợng hoá đầy đủ các yếu tố của một đối tợng màn hình, lúc bạn sẽ viết thủ tục, các yếu tố cụ thể sẽ không còn ảnh hởng đến thủ tục bạn viết đối tợng màn hình sẽ tính toán giùm bạn. Tổ chức mã lệnh Lập trình hớng đối tợng sẽ tổ chức các mã lệnh của bạn một cách gọn gàng vì hai nhân tố sau: Khi sử dụng đúng, OOP bắt buộc ta phải tổ chức các mã lệnh thành nhiều đoạn nhỏ để dễ quản lý. Và vì dùng OOP, mỗi đoạn mã nhỏ đó sẽ đợc tổ chức rất tự nhiên, không cần ta phải suy nghĩ nhiều về việc tố chức. - 71 - Giáo viên hd : ThS Lê Văn Minh, Sinh viên th : Phạm Thị Thanh Java hớng đối tợng Sự hỗ trợ lập trình hớng đối tợng là cốt lõi của java. Mọi hoạt động, mọi câu lệnh của java đều phải tác động lên và qua các đối tợng. Mà tợng trng cho chung là các Lớp (class). Đối tợng là những mẫu (instance) của lớp. Trong ý nghĩa này, lớp có thể đợc xem nh một cái khuôn đúc nên các đối tợng. Lấy hình chữ nhật làm ví dụ, ta có thể tạo ra một hình chữ nhật với toạ độ x,y của đỉnh thứ nhất, chiều dài, chiều rộng, cách di chuyển, ph- ơng thức đổi kích thớc tạo ra một lớp Rectangle, và viết mã lệnh cho nó. Nh thế khi thực hiện các mã lệnh, ta cần tạo ra một mẫu của lớp này. Mẫu ấy chính là một đối tợng Rectangle cụ thể Sự kế thừa và thiết kế OOP Để có thể phát triển thêm cho ứng dụng, có một công thức cần theo: + Chia nhỏ mã lệnh thành đơn vị nhỏ nhất: Khi viết một chơng trình OOP điều cần thiết đầu tiên là phải hình dung đủ các thành phần. Sau đó chia nhỏ chúng thành các đơn vị nhỏ nhất. Ví dụ với yếu tố viên đạn, ta có các đơn vị yếu tố nhỏ hơn là có thể cháy, kích th- ớc viên đạn, tầm sát thơng, số lợng. + Xem xét các tính chất chung giữa các đơn vị trên: Bớc kế tiếp là xem xét kỹ mối liên hệ chung giữa các đơn vị thành phần. Ví dụ trong chơng trình quản lý th viện, thủ th và ngời mợn đều có tính chung là ngời: có tên tuổi, có chức vụ, có địa chỉ. Vậy ta có đa cả hai đối tợng này vào cùng một lớp? + Xem xét sự khác nhau giữa các đơn vị: Ngợc lại trên, ta sẽ phân tích các đơn vị có điều gì khác biệt mà không thể gom lại. Trở lại ví dụ vừa nêu, rõ ràng thủ th là ngời quản lý, coi nh sở hữu cuốn sách, có nhiệm vụ phải nhận lại cuốn sách đã cho mợn, còn ngời mợn phải trả lại cuốn sách đã mợn. + Tìm tính chất chung nhất của tất cả các đơn vị: Rất hiếm khi ta không thể tìm thấy một tính chất nào chung cho mọi đơn vị. Nh thế, có thể một đơn vị nào đó không dùng chung bất kỳ tính chất nào với những đơn vị khác. Ta hãy xét một chơng trình trò chơi chiến đấu, viên đạn, máy bay, ngời bảo vệ, nhà cửa, rõ ràng là rất khác nhau, tuy vậy ta có thể thấy những cái chung của máy bay, ngời, viên đạn, có thể di chuyển, mìn, nhà cửa, máy bay, ngời có thể bị nổ, những tính chất chung nào bao trùm lên mọi đơn vị? Có một điều rõ ràng mà bạn có thể quên là chúng đều có thể vẽ trên màn hình. Nh vậy chúng ta có lớp Draw_Object. + Gom các tính chất chung và lặp lại. Ta sắp xếp các đơn vị có chung một số tính chất lại với nhau và lặp lại nhiều lần nh vậy cho đến mức thấp nhất. - 6 - Khoá luận tốt nghiệp Đại học Chatting Program + Sử dụng các đối tợng để thêm vào theo yêu cầu Trong nhiều trờng hợp, ngời sử dụng yêu cầu thêm các yếu tố mới. Ta chỉ nên tạo những đối tợng mới hơn là định nghĩa những biến mới. Điều này dễ thấy ở những ai đã từng lập trình với các ngôn ngữ khác. Ta thờng hay tạo ra một biến mới bất kỳ lúc nào ta cần. Với OOP, khi cần ta hãy tạo hẳn một đối tợng mới. Chơng II : Ngôn ngữ lập trình java 1. tổng quan về Ngôn ngữ Java 1.1 Ghi chú - 71 - Giáo viên hd : ThS Lê Văn Minh, Sinh viên th : Phạm Thị Thanh Chúng ta rất cần các ghi chú để gợi nhớ lại quá trình suy nghĩ của mình, kiểm ngiệm các lập luận và nhất là khi chúng ta cần bổ sung, sửa chữa, nâng cấp chơng trình. Java hỗ trợ hai cách ghi chú: Bắt đầu Kết thúc Mục đích / * * / Đoạn văn bị giới hạn là phần ghi chú // ( không có gì) Phần câu văn còn lại là ghi chú / ** * / Phần câu văn bị giới hạn là phần ghi chú dùng cho JavaDoc 1.2 .Từ khoá abstract, boolean, Break, Byte, Case, Catch, Char, Class, const, continue, default, do, double, else, extends, final, finally,float, for, goto, if, implements, import, instanceof, int, inferface, long, native,new, package, private, protected, public, return, short, static, super, switch, synchronized, this, throw, throws, transient, try, void, volatile, while. Chúng ta cũng lu ý rằng True, False dù không nằm trong danh sách các từ khoá của Java, cũng vẫn là hai giá trị thật sự và có thể coi là từ khóa. 1.3 . Kiểu dữ liệu Java có hai loại: 1. Kiểu dữ liệu gốc ( chuẩn) Primitive type 2. Kiểu dữ liệu dẫn xuất Reference types Kiểu dữ liệu gốc là các khối dữ liệu đã đợc xác định trong ngôn ngữ. Nh vật chất đợc cấu tạo từ các nguyên tử, thì các kiểu dữ liệu phức tạp đợc tạo thành từ các dữ liệu gốc. Các kiểu dữ liệu gốc của Java bao gồm các nhóm sau: số nguyên, số thực( dấu chấm động) ký tự ( character) giá trị đúng sai ( Boolean). Tơng tự nh C / C++ , trong java, ta khai báo một biến theo mẫu sau kiểu dữ liệu tên biên 1.4. Đặt tên hằng và biến Việc đặt trên cho một hằng và biến cần theo những nguyên tắc sau: + Chỉ bắt đầu bằng một ký tự (chữ), một dấu gạch dới hay một dấu dollard $ + Không có khoảng trắng giữa tên + Sau ký tự đầu, có thể dùng các ký tự (chữ), ký số, dấu dollard, dấu gạch dới + Không trùng với các từ khoá - 8 - Khoá luận tốt nghiệp Đại học Chatting Program Chú ý rằng trong Java, có phân biệt chữ thờng và chữ in. Ta có thể dùng chữ in nh LONG để biểu thị một biến hay hằng dù trùng với từ khoá long. Tuy nhiên chúng tôi đề nghị không dùng cách này 1.5. Mảng Nh đã nói ở trên, ngoài kiểu dữ liệu gốc, Java còn có loại dữ liệu dẫn xuất. Có 3 kiểu dữ liệu dẫn xuất: 1. Mảng ( array) 2. Lớp ( class) 3. Giao tiếp ( inferface) Chúng ta sẽ tìm hiểu Lớp và Giao tiếp ở đoạn dành riêng, còn Mảng thì tơng đối đơn giản và có liên quan nhiều đến các kiểu dữ liệu gốc sẽ đợc trình bày trong cùng đoạn này. 1.5.1 . Khai báo: Đặc trng của mảng là đợc đặt trong cặp ngoặc vuông [ ] (bracket symbols). Một mảng đợc khai báo bằng hai cách: 1. Cặp ngoặc vuông đặt sau tên biến 2. Cặp ngoặc vuông đặt sau kiểu dữ liệu 1.5.2 . Định vị ( allocation) Sau khi khai báo, bản thân mảng cha đợc xác định. Mảng cần đợc định vị trong vùng nhớ, nói cách khác cần đợc cấp vùng nhớ. Không nh các ngôn ngữ khác, kích thớc của mảng không dợc xác định ngay khi khai báo 1.5.3 . Khởi tạo ( initialization) Cũng có thể định vị một mảng bằng cách liệt kê các phần tử của nó 1.5.4 . Truy cập một mảng Các phần tử trong một mảng luôn đợc đánh số bắt đầu từ số 0. Phần tử đầu tiên là phần tử thứ 0, và phần tử cuối cùng của một mảng n phần tử sẽ có số thứ tự là n-1. Ta có thể tham khảo giá trị của một phần tử bằng cách gán số thứ tự của phần tử ta muốn truy cập vào giữa hai cặp ngoặc vuông 1.6. Toán tử và Biểu thức Toán tử trong một ngôn ngữ thờng đợc để tạo ra hay thay đổi các giá trị của chơng trình. Java có một tập hợp rất phong phú các toán tử (còn gọi là tác tử) Các toán tử đợc chia làm hai loại: Toán tử đôi: cần có 2 toán hạng, tạo ra một giá trị mới là kết của 2 toán hạng này. Toán tử đơn: chỉ cần một toán hạng, tạo ra một giá trị mới là kết của sự thay đổi giá trị của toán hạng. - 71 - Giáo viên hd : ThS Lê Văn Minh, Sinh viên th : Phạm Thị Thanh 1.6.1 . Tổng quát = > < ! ~ ? : = = <= >= | = && | | ++ -- + - * / & | ^ % << >> >>> += - = *= / = &= | = ^= %= <<= >>= >>>= 1.6 .2 . Điều khiển Điều khiển các hệ lệnh kiểm tra và điều khiển quá trình thực hiện các câu lệnh sao cho chơng trình thực hiện đúng và đạt đợc yêu cầu đặt ra. Thông thờng các câu lệnh đợc thực hiện tuần tự thành một tiến trình (program flow). Tuy nhiên tùy theo dữ liệu, có những lúc các câu lệnh không còn tuân theo quy luật tuần tự. Chúng có thể nhảy sang một hớng tiến trình khác (rẽ nhánh- branching, hay nhảy- jumping) hay lặp lại tiến trình (vòng lặp- looping). Để thực hiện những cấu trúc lệnh trên ta có các cấu trúc điều khiển sau: 1.6.3 . Lựa chọn Khi có sự rẽ nhánh dựa trên một quyết định, ta gọi đó là sự lựa chọn: 1.6.3.1 . Lệnh if then Lệnh if then là một phép thử của một biểu thức Boolean. If < biểu thức Boolean> then < khối lệnh> ; Nếu biểu thức Boolean đúng, khối lệnh 1 sẽ đợc thực hiện, còn biểu thức đó sai, khối lệnh 1 sẽ bỏ qua. Một hình thức khác của if then là if then else if < biểu thức boolean> then < khối lệnh 1> else < khối lệnh 2 > Nếu biểu thức boolean đúng, thực hiện khối lệnh 1, ngợc lại thực hiện khối lệnh 2 - 10 - . Khoá luận tốt nghiệp Đại học Chatting Program LờI CảM ƠN Trớc tiên em xin chân thành cảm ơn thầy Lê Văn Minh. Hớng phát triển Tài liệu tham khảo - 2 - Khoá luận tốt nghiệp Đại học Chatting Program Chơng I : Đặt vấn đề 1. Giới thiệu về chat CHAT,CHAT,CHAT Trò chyện

Ngày đăng: 18/12/2013, 15:42

Hình ảnh liên quan

Một hình thức khác của if .. then là if .. then .. else .. - Chatting program

t.

hình thức khác của if .. then là if .. then .. else Xem tại trang 10 của tài liệu.
Từ trớc đến giờ ta vẫn thờng hay in dữ liệu ra màn hình bằng cách gọi:                      System.out.println ( ) ;  - Chatting program

tr.

ớc đến giờ ta vẫn thờng hay in dữ liệu ra màn hình bằng cách gọi: System.out.println ( ) ; Xem tại trang 57 của tài liệu.

Từ khóa liên quan

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

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

Tài liệu liên quan