Thứ Sáu, 28 tháng 11, 2008
Bảng mã ASCII
Joomla là gì?
Study by yourself
joomla : Là hệ thống quản trị nội dung mã nguồn mở. Joomla được viết bằng ngôn ngữ PHP và kết nối tới cơ sở dữ liệu MYSQL, cho phép người sử dụng có thể dễ dàng xuất bản các nội dung của họ lên internet hoặc intranet.
joomla có các đặt tính cơ bản là : Bộ đệm trang (page caching) để tăng tốc độ hiển thị, lập chỉ mục, đọc tin RSS (RSS feeds), trang dùng để in, bản tin nhanh, blog, diễn đàn, bình chọn, lịch biểu, tìm kiếm trong site và hỗ trợ đa ngôn ngữ.
Viết thế này có hiểu được joomla ko?
- Joomla là một sản phẩm mã nguồn mở. Vậy mã nguồn mở là : là phần mềm cho phép bất cứ ai cũng có thể nghiên cứu, cải tiến phần mềm và phân phối phần mềm ở dạng chưa thay đổi hoặc đã thay đổi.
- Joomla mà một hệ quản trị nội dung. Vậy hệ quản trị nội dung là : CMS (Content Management System) cũng được gọi là hệ thống quản lý nội dung. Là phần mềm để tổ chức và tạo môi trường cộng tác thuận lợi, nhằm mục đích xây dựng một hệ thống tài liệu và các loại nội dung khác một cách thống nhất.
- Joomla được viết trên PHP, sử dụng cơ sở dữ liệu MySQL.
Page caching là kĩ thuật giúp cho tăng tốc độ hiển thị web, truy cập web sẽ nhanh hơn. Page caching là gì?
Lập chỉ mục: index. Index giúp cho việc tìm kiếm thông tin trên web dễ dàng và nhanh chóng
RSS feed dùng để đọc tin RSS, công nghệ này đã được sử dụng từ lâu. Rất hiệu quả. Thử dùng xem
Blog. Ok?
Diễn đàn. Ok?
hỗ trợ đa ngôn ngữ...
Joomla! được sử dụng ở khắp mọi nơi trên thế giới, từ những website cá nhân cho tới những hệ thống website doanh nghiệp có tính phức tạp cao, cung cấp nhiều dịch vụ và ứng dụng. Joomla có thể dễ dàng cài đặt, dễ dàng quản lý và có độ tin cậy cao.Joomla có mã nguồn mở do đó việc sử dụng Joomla là hoàn toàn miễn phí cho tất cả mọi người trên thế giới.
Điều hay ho và quan trọng mà joomla giúp cho chúng ta là nếu chúng ta muốn 1 trang web, sử dụng joomla sẽ giúp chúng ta tiết kiệm đến 99% công sức viết code. Hơn nữa, joomla được cộng đồng đánh giá cao và phát triển trong một thời gian dài với hàng ngàn lập trình viên tham gia.
Joomla có hầu hết mọi thứ mà chúng ta cần. Giống như khi chúng ta cần 1 cái nhà, thay vì phải đi mua gạch đá và tất cả vật liệu hì hục xây trong mấy tháng trời, thì dùng joomla y như chúng ta có sẵn nhà rồi, chỉ cần trang trí chút ít nữa là xài thôi. Mà joomla là cả một biệt thự hay tòa lâu đài, còn giỏi lắm chúng ta tự tay làm được túp lều nhỏ thôi.
Is it ok?
Thứ Năm, 27 tháng 11, 2008
Thực hành Stream and File
* Created on 2 janv. 2009
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package Day30_2009jan1;
/**
* @author Administrator
*
* TODO Tao ra khung Frame hien thi cac thu muc va tap tin trong o dia cung.
* page 156/205 JavaTV
*/
import java.awt.*;//Bo giao dien trinh bay.
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;
public class FileDemo {
public static void main(String[] args) {
Frame fr = new Frame("File Demo");
fr.setBounds(10, 10, 300, 200);
fr.setLayout(new BorderLayout());
Panel p = new Panel(new GridLayout(1, 2));
List list_C = new List();
list_C.add("F:\\");
//tao doi tuong file.
File driver_C = new File("F:\\");
String[] dirs_C = driver_C.list();
for(int i=0; i <>
File f = new File("F:\\" + dirs_C[i]);
//kiem tra xem tap tin co phai la thu muc khong?
if(f.isDirectory()){
list_C.add("
}else{
list_C.add("Day la file: " + dirs_C[i]);
}
}
List list_D = new List();
list_D.add("E:\\");
File driver_D = new File("E:\\");
String[] dirs_D = driver_D.list();
for(int i=0; i <>
File f = new File("E:\\" + dirs_D[i]);
if(f.isDirectory()){
list_D.add("
}else{
list_D.add("Day la file:" + dirs_D[i]);
}
}
p.add(list_C);
p.add(list_D);
fr.add(p, BorderLayout.CENTER);
fr.setVisible(true);
fr.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}//end class.
/*
* Created on 29 déc. 2008 by huu truc
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package Day27_2008dec28;
/**
* @author Administrator
*
* TODO Dung DataOutputStream va DataInputStream de ghi va doc
* nhung kieu du lieu khac nhau tren file.
* page 142/205
*/
import java.io.*;
class RWData {
public static void main(String[] args) throws IOException{
//hien thuc interface DataOutput
DataOutputStream dataOut;
DataInputStream dataIn;
int i = 10;
double d = 1023.56;//kieu so thuc
boolean b = true;
try{
//DataOutputStream : Luong xuat co nhung phuong thuc ghi
//nhung kieu du lieu chuan trong java.
//fileOutputStream : Luong xuat cho phep ghi du lieu xuong file.
dataOut = new DataOutputStream(new FileOutputStream("F:\\testdata.txt"));
}catch(IOException exc){
System.out.println("Cannot open file.");
return;
}
try{
System.out.println("Writing " + i);
dataOut.writeInt(i);
System.out.println("writing " + d);
dataOut.writeDouble(d);
System.out.println("Writing " + b);
dataOut.writeBoolean(b);
System.out.println("Writing " + 12.2*7.4);
dataOut.writeDouble(12.2*7.4);
}catch(IOException exc){
System.out.println("Write error.");
}
dataOut.close();
System.out.println();
//Now, read them back.
try{
//DataInputStream : Luong nhap co nhung phuong thuc doc
//nhung kieu du lieu chuan trong java.
//FileInputStream : Luong nhap cho phep doc du lieu tu file.
dataIn = new DataInputStream(new FileInputStream("F:\\testdata"));
}catch(IOException exc){
System.out.println("Cannot open file.");
return;
}
try{
i = dataIn.readInt();
System.out.println("Reading " + i);
d = dataIn.readDouble();
System.out.println("Reading " + d);
b = dataIn.readBoolean();
System.out.println("Reading " + b);
d = dataIn.readDouble();
System.out.println("Reading " + d);
}catch(IOException exc){
System.out.println("Read error");
}
dataIn.close();
}
}//end class.
/*
* Created on Dec 5, 2008 by huu truc
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package Day26_2008dec4;
/**
* @author Administrator
*
* TODO Copy noi dung mot file text den mot file text khac
* page 139/205
*/
import java.io.*;
class CopyFile {
public static void main(String[] args) throws IOException{
int i;
FileInputStream fin;
FileOutputStream fout;
try{
//open input file
try{
fin = new FileInputStream("F:\\source.txt");
}catch(FileNotFoundException exc){
System.out.println("Input File Not Fould");
return;
}
//open output file
try{
fout = new FileOutputStream("F:\\dest.txt");
}catch(FileNotFoundException exc){
System.out.println("Error Opening Output File");
return;
}
}catch(ArrayIndexOutOfBoundsException exc){
System.out.println("Usage : CopyFile from To");
return;
}
//copy file
try{
do{
i = fin.read();
if(i != -1)fout.write(i);
//tra ve -1 khi het file
}while(i != -1);
//nem ra IOException khi co loi doc
}catch(IOException exc){
System.out.println("File Error");
}
fin.close();
fout.close();
}
}//end class
- /*
* Created on Dec 1, 2008 by huu truc
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package Day25_2008nov30;
/**
* @author Administrator
*
* TODO Hien thi noi dung cua mot file ten text.txt luu tai
* D:\text.txt
* page 137
*/
import java.io.*;
class ShowFile {
public static void main(String[] args) throws IOException{
int i;
//Mo mot file de doc du lieu.
FileInputStream fin;
try{
fin = new FileInputStream("D:\\text.txt");
//neu file khong ton tai thi nem ra FileNotFoundException.
}catch(FileNotFoundException exc){
System.out.println("File Not Found");
return;
}
catch(ArrayIndexOutOfBoundsException exc){
System.out.println("Usage : ShowFile File");
return;
}
//Read bytes until EOF is encountered
do{
i = fin.read();
if(i != -1) System.out.print((char) i);
}while(i != -1);
fin.close();
}
}//end class
/*
* Created on Nov 24, 2008 by huu truc
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package Day23_2008nov23;
/**
* @author Administrator
*
* TODO Chuong trinh minh hoa viec doc mot mang bytes tu System.in
* page 135
*/
import java.io.*;
class ReadBytes {
public static void main(String[] args) throws IOException{
//khai bao mang data[] kieu byte voi kich thuoc 100.
byte data[] = new byte[100];
System.out.print("Enter some characters : ");
//Luong nhap chuan, mac dinh la ban phim, la mot doi tuong
//kieu InputStream.
System.in.read(data);
System.out.print("you entered : ");
for(int i=0; i <>
System.out.print((char)data[i]);
}
}
Thứ Tư, 26 tháng 11, 2008
Tạo file PDF
Mình xingiới thiệu với các bạn một cách convert từ file word sang pdf cực kì đơn giản ngay trong Microsoft Word.
Đầu tiên các bạn download chương trình doPdf ( chương trình hoàn toàn miễn phí ) về cài đặt.
Sau khi cài đặt thành công, bạn chỉ cần mở tà liệu word bằng Microsoft Word lên, sau đó chọn menu Print , tại ô Name bạn chọn Printer là doPdf.
Sau đó chỉ việc nhấn Ok là xong rùi. quá dễ
Nguồn tham khảo từ http://www.blogthuthuat.com/?p=398
Thông tin về host của site
Vào các trang sau đây để biết:
Kết hợp sử dụng các tool:
- ping
- lookup
- trace
- whois
Và đây là kết quả: (http://www.cqcounter.com/whois/)
210.245.124.123 - Geo Information
IP Address 210.245.124.123
Host mail.sjcr.vn
Location VN, Vietnam
City Van Tan, 26 -
Organization Dai IP su dug cho Hosting game server
ISP The Corporation for Financing and Promoting Techno
AS Number AS18403 The Corporation for Financing & Promoting Technology
Latitude 18°45'00" North
Longitude 105°55'00" East
Distance 8007.16 km (4975.42 miles)
210.245.124.123 - Whois Information
% [whois.apnic.net node-1]
% Whois data copyright terms http://www.apnic.net/db/dbcopyright.html
inetnum: 210.245.120.0 - 210.245.125.255
netname: IPHostingGame-NET
country: vn
descr: Dai IP su dug cho Hosting game server
admin-c: FHIG2-AP
tech-c: FHIG2-AP
status: ALLOCATED NON-PORTABLE
changed: hm-changed@vnnic.net.vn 20080411
mnt-by: MAINT-VN-FPT
source: APNIC
role: FPT HCMC IPADMIN GROUP
address: 66-68 Vo Van Tan
address: HCMC
country: VN
phone: +84-8-9301280
fax-no: +84-4-7262163
e-mail: abuse@hcm.fpt.vn
trouble: send spam reports to abuse@hcm.fpt.vn
trouble: and abuse reports to abuse@hcm.fpt.vn
admin-c: LPC5-AP
tech-c: LTVL1-AP
nic-hdl: FHIG2-AP
notify: hm-changed@vnnic.net.vn
mnt-by: MAINT-VN-FPT
changed: hm-changed@vnnic.net.vn 20080128
source: APNIC
Tiếp tục nghiên cứu
Thứ Ba, 25 tháng 11, 2008
Tuần 24 - 30 Nov 2008
Tuesday : 25 Nov 2008 19.30 - 22.00
- Học : đọc lại luồng và tập tin ở chương 5.
- Thắc mắc cần giải đáp : tìm phần mềm tạo file *.pdf.
- PDF creator
- Cute PDF
- Học : java về luồng và tập tin. Đã tìm ra phần mềm doPDF để tạo ra file pdf từ word.
- Thực hành : Day 23_2008nov23 ReadBytes.java.
- Thắc mắc cần giải đáp : tìm cách ghi đĩa CD từ phần mềm Ner0, hoặc phần mềm tương tự?
- Viết Blog : Tạo file pdf, hướng dẫn sử dụng phần mềm.
Friday : 28 Nov 2008 20.40 to 22.30
- Học luồng và tập tin.
- Viết blog : Joomla là gì?, Bảng mã ASCII.
- Thực hành : Day24_2008nov28, WriteDemo.java.
Sunday : 30nov2008 19.30 to 22.16
- Học luồng và tập tin.
- Thực hành : Day25_2008nov30 Showfile.java.
- Thắc mắt cần giải đáp : làm thế nào để đọc file nằm trong thư mục, chứ không phải ổ đĩa như ví dụ ShowFile.java? ở Day25_2008nov30.
- Giải đáp : gõ tiếp theo dấu \\tên thư mục\\tên file
fin = new FileInputStream("D:\\tham khao linh tinh\\text.txt");
Thứ Bảy, 22 tháng 11, 2008
- Mở một File để đọc dữ liệu
FileInputStream(String filename) throws
FileNotFoundException.
Nếu file không tồn tại thì ném ra FileNotFoundException.
- Đọc Dữ liệu : Dùng phương thức read()
int read( ) throws IOException : Đọc từng byte từ file và trả về giá trị của byte đọc được. Trả về -1 khi hết file, và ném ra IOException khi có lỗi đọc.
- Đóng file : dùng phương thức close ( )
void close ( ) throws IOException : Sau khi làm việc xong cần đóng file để giải phóng tài nguyên hệ thống đã cấp phát cho file.
- Streams : luồng. Tất cả những hoạt động nhập/xuất dữ liệu(Nhập dữ liệu từ bàn phím, lấy dữ liệu từ mạng về, ghi dữ liệu ra đĩa, xuất dữ liệu ra màn hình, máy in,...) đều được quy về một khái niệm gọi là Luồng(Streams). Luồng có thể là nơi sản xuất và tiêu thụ thông tin. Tất cả các Luồng đều có chung một nguyên tắc hoạt động ngay cả khi chúng được gắng kết với các thiết bị vật lý khác nhau.
- Luồng Byte : hay Luồng dựa trên Byte. Hỗ trợ việc xuất nhập dữ liệu trên Byte, thường được dùng khi đọc ghi dữ liệu nhị phân.
- Luồng ký tự : được thiết kế hỗ trợ việc xuất nhập dữ liệu kiểu ký tự (Unicode). Trong một vài trường hợp Luồng ký tự sử dụng hiệu quả hơn Luồng Byte, nhưng ở mức hệ thống thì tất cả những xuất nhập đều phải quy về byte. Luồng ký tự hỗ trợ hiệu quả chỉ đối với việc quản lý, xử lý các ký tự.
- System.out : Luồng xuất chuẩn, mặc định là console. System.out là một đối tượng kiểu PrintStream.
- System.in : Luồng nhập chuẩn, mặc định là bàn phím. System.in là một đối tượng kiểu InputStream.
- System.err : Luồng lỗi chuẩn, mặc định cũng là console. System.err cũng là một đối tượng kiểu PrintStream giống System.out.
Thứ Sáu, 21 tháng 11, 2008
Xây dựng mô hình lớp ở mức phân tích.
Lập trình hướng đối tượng không ai bác bỏ nó là một xu hướng đang phát triển của ngành công nghệ phần mềm. khác với lập trình cấu trúc thì lập trình hướng đối tượng nó cố gắng ánh xạ các thực thể bên ngoài thế giới thực vào trong chương trình phần mềm.
Khi lập trình hướng đối tượng có 1 vài khái niệm quan trọng đó là class, các từ khóa khai báo về tầm vực.
Class là một thể hiện của một lớp đối tượng bên ngoài thế giới thực mà bạn đang quan tâm. Nó bao gồm các thuộc tính và các “hành động”(phương thức) tương ứng mà bên ngoài đối tượng có.
Tầm vực của một thuộc tính/một phương thức là khả năng cho phép truy cập biến/phương thức đó bên ngoài ở bên ngoài phạm vi của lớp.
Một số ký hiệu của hướng đối tượng.
• Ký hiệu của class: (hình chữ nhật)


Cái này sẽ nói rõ hơn trong mục dưới.
• Ký hiệu của private: (nó là ổ khóa mà nó không cho ) nói cho dễ nhớ: private tức là bên ngoài không vào được, mà muốn bên ngoài không “vào” được thì phải “khóa” cửa lại --> riêng tư. Private (nếu mà vẽ ra giấy thì nó có ký hiệu là dấu trừ “-”).
• Ký hiệu của protected: ký hiệu là chìa khóa và bên có một hình màu xanh đẹp đẹp.(nếu vẽ ra giấy thì ký hiệu là dấu thăng. “#” giống chữ CSharp)
• Ký hiệu của public: là ô chữ nhật màu đỏ: nếu viết ra giấy thì nó là dấu cộng(“+”).
2. Các loại quan hệ giữa 2 lớp đối tượng
2.1. Quan hệ kế thừa.
Như ở trên đã nói thì quan hệ kế thừa là một trường hợp rất hay gặp của lập trình và phân tích hướng đối tượng nó góp phần tạo nên hướng lập trình này.
Mô hình ở mức tổng quát:

Ví dụ:

2.2. Quan hệ Association:
Quan hệ Association là một quan hệ ở mức phổ biến giữa 2 lớp. Nó thể hiện là trong lớp này có chứa lớp kia(chấm hết không nói thêm gì nữa.)
Hình vẽ:

Hoặc trong class A có chứa 1 hay nhiều thuộc tính là class B.
Hoặc là trong class B có chứa 1 hay nhiều thuộc tính là class A.
Ví dụ: quan hệ Lớp học (CLopHoc) và Học Sinh (CHocSinh).

Lưu ý chiều của quan hệ: A -> B hay B -> A nó nêu lên sự chủ động gọi.
Từ A->B


VD1: đặt một ngữ cảnh như sau. Bạn đang có một cửa hàng, cửa hàng của bạn có nhiều kho hàng. Do một nguyên do nào đó mà bạn hủy kho đó đi thì hàng của bạn trong kho đó sẽ bị hủy?? không bị hủy mà bạn sẽ đưa nó đi một chổ khác. Cái này cũng tương tự như vậy.

VD2: trong chương trình nghe nhạc của bạn thường thấy các list nhạc mà bạn tạo rao. Khi bạn xóa cái list nhạc đó thì các bài nhạc trong máy của bạn mà thuộc cái list đó nó sẽ không bị xóa theo.

Hình vẽ:

Ví dụ: lấy ví dụ dễ thấy: trong máy tính của bạn có thư mục và file. Thư mục chứa file.


Phân tích thiết kế hướng đối tượng (vidu 2)
Công ty ABC là công ty sản xuất bánh ngọt họ muốn xây dựng một website bán hàng cho mình qua mạng internet.
Khách hàng có thể đăng ký, đặt hàng với công ty qua mạng hay qua điện thoại. nếu qua điện thoại thì có nhân viên sẽ là người nhập các đơn đặt hàng cho bạn. Khi khách hàng đặt một loại bánh nào đó thì hệ thống sẽ kiểm tra xem bánh đó có còn hay không. Hiện tại công ty có các loại bánh như sau: bánh ngọt, bánh mặn, bánh chay.
Công ty hiện cũng áp dụng chương trình “khách hàng thân thiết” với chiến dịch là người dùng thường xuyên của cửa hàng sẽ được giảm 5 % giá thành của bánh khi mua tại thời điểm hiện tại. Khi một khách hàng thường mua hàng hơn lần trong vòng 3 tháng thì họ sẽ trở thành khách hàng thân thiết và được áp dụng chương trình khuyến mãi trên. Trong trường hợp “khách hàng thân thiết” không mua sản phẩm trong một khoảng thời gian 3 tháng thì họ sẽ không còn là khách hàng thân thiết nữa.
Khi người dùng đăng nhập thì hệ thống sẽ liệt kê danh sách các sản phẩm của công ty đang có và cho người dùng xem. Trong quá trình xem người dùng có thể chọn mua cho mình những sản phẩm mà họ vừa ý nhất.
Khi người dùng chọn mua các sản phầm thì họ luôn luôn có một cái “giỏ” để bỏ hàng vào đó, họ sẽ kết thúc mua hàng khi họ tính tiền với cửa hàng, trong trường hợp mà khách hàng quyết định không mua bất kỳ sản phẩm nào trong giỏ hàng thì khách hàng có thể trả lại hàng cho công ty.
Khi khách hàng thanh toán bằng các dịch vụ ATM, Visa thì hệ thống sẽ kết nối với một hệ thống bên ngân hàng để kiểm tra xem thẻ này còn hiệu lực hay không, hệ thống sẽ không lưu các thông tin về tài khoản của khách hàng mà khách hàng nhập vào rồi sẽ chuyển qua bên ngân hàng kiểm tra.
Mô hình class ở mức phân tích (các bạn lưu ý ở mức này chúng ta chưa cần phải đưa ra các phương thức của lớp).

Phân tích thiết kế hướng đối tượng (vidu)
Ví dụ bạn có một bài toán như sau cần giải quyết(chế thôi

Trong công ty thời trang Trần Trụi phòng nhân sự có nhu cầu quản lý nhân viên của công ty sao cho dễ dàng hơn nên họ quyết định đặt bạn xây dựng cho họ một phần mềm là phần mềm quản lý Nhân viên của công ty.
Hàng ngày thì nhân viên đi làm và chấm công bằng cách quét thẻ nhân viên qua một máy chấm công, hàng ngày nhân viên phòng nhân sự phải đưa cho các trưởng phòng là trong ngày này ai đi làm và ai vắng mặt của từng phòng tương ứng, ai tới muộn. cuối tháng phải đưa bảng thống kê xuống phòng kế toán để tính lương cho các nhân viên trong công ty. Mỗi khi có nhu cầu tuyển thêm nhân viên mới thì phòng nhân sự phải thông báo lên các phương tiện, các trang web, sau đó nhân viên phòng nhân sự sẽ tiếp nhận đơn đăng ký của các ứng viên đã đăng ký và lên lịch phỏng vấn cho các ứng viên. Khi ứng viên đi phỏng vấn thì hệ thống sẽ phải đưa ra câu hỏi cho ứng viên từ ngân hàng câu hỏi sẵn có của công ty và ứng viên phải trả lời câu hỏi đó. Nếu có ứng viên nào được nhận thì tổ chức tiếp nhận họ vào công ty.(quá trình tiếp nhận chỉ là việc thêm nhân viên vào danh sách nhân viên vào phân vào phòng nào đó). Với trưởng phòng nhân sự thì được quyền sửa đổi thông tin của các nhân viên trong công ty.
Thỉnh thoảng các nhân viên phòng nhân sự cần tìm kiếm thông tin của một nhân viên để làm một công việc gì đó(chưa rõ).
Khi thêm một nhân viên mới thì kiểm tra xem nhân viên đó đã có trong công ty hay chưa(có trường hợp nhân viên nghĩ việc rồi sau đó một khoảng thời gian họ quay lại công ty làm).
2. Mô hình Usecase:

Download
3. đặc tả usecase
Ở đây do không có nhiều thời gian nên mình xin nói lên một số Usecase sau: Tim Kiem Nhan Vien, Them Nhan Vien, Xem Cau Hoi, Tra Loi Cau Hoi.
a) Usecase Tim Kiếm Nhân Viên
• Tóm tắt.
Usecase tìm kiếm nhân viên được nhân viên phòng nhân sự sử dụng để tìm kiếm thông tin của một nhân viên. Usecase này được sử sử dụng khi một nhân viên phòng nhân sự cần tra cứu thông tin của một nhân viên nào đó trong công ty.
• Dòng sự kiện
a. Dòng sự kiện chính:
Usecase bắt đầu khi nhân viên phòng nhân sự gọi chức năng tìm kiếm nhân viên. Hệ thống sẽ kiểm tra nhân viên đang dùng đã đăng nhập hay chưa. Hệ thống sẽ tiếp nhận người dùng nhập thông tin tìm kiếm. Hệ thống sẽ thực hiên tìm kiếm trong cơ sở dữ liệu, sau đó hệ thống sẽ hiển thị tất cả các thông tin tìm được ra màn hình cho người dùng.
b. Các dòng sự kiện khác.
Nếu người dùng chưa đăng nhập thì hệ thống phải yêu cầu người dùng đăng nhập.
Nếu hệ thống không tìm thấy dữ liệu trả về thì hệ thống sẽ thông báo là không tìm thấy dữ liệu và đợi người dùng thao tác tiếp.
• Các yêu cầu
Người dùng phải đăng nhập vào hệ thống trước khi sử dụng chức năng này.
• Trạng thái hệ thống khi User bắt đầu Usecase
Trước khi bắt đầu chức năng này Người dùng phải đăng nhập vào hệ thống.
• Trạng thái hệ thống sau khi thực hiện Usecase
Hệ thống sẽ hiện ra thông báo kết quả tìm được cho User và chờ tác vụ tiếp theo của người dùng.
• Điểm mở rộng.
Không có.
b) Usecase Them Nhan Vien
• Tóm tắt.
Usecase tìm kiếm nhân viên được nhân viên phòng nhân sự sử dụng để tìm kiếm thông tin của một nhân viên. Usecase này được sử sử dụng khi một nhân viên phòng nhân sự cần tra cứu thông tin của một nhân viên nào đó trong công ty.
• Dòng sự kiện
i. Dòng sự kiện chính:
Usecase bắt đầu khi nhân viên phòng nhân sự gọi chức năng thêm mới nhân viên. Hệ thống sẽ kiểm tra nhân viên đang dùng đã đăng nhập hay chưa. Hệ thống kiểm tra dữ liệu người dùng nhập vào có đúng như qui định không. Hệ thống sẽ tiếp nhận người dùng nhập thông tin của nhân viên mới. Hệ thống sẽ thực hiên tìm trong dữ liệu đã có nhân viên này chưa ở trong cơ sở dữ liệu, sau đó hệ thống sẽ thêm tất cả các thông tin mà người dùng nhập vào.
ii. Các dòng sự kiện khác.
Nếu người dùng chưa đăng nhập thì hệ thống phải yêu cầu người dùng đăng nhập.
Nếu mà có lỗi xảy ra trong quá trình nhập dữ liệu của người dùng thì thông báo cho người dùng biết là đã có chổ nhập không đúng và để con trỏ chuột tới vị trí sai đầu tiên xuống cho người dùng sửa.
Nếu người mới được thêm vào đã có trong cơ sở dữ liệu rồi thì cập nhật lại trạng thái của họ là đang đi làm.
Nếu hệ thống không thêm được thì sẽ báo lỗi cho người dùng
• Các yêu cầu
Người dùng phải đăng nhập vào hệ thống trước khi sử dụng chức năng này.
• Trạng thái hệ thống khi User bắt đầu Usecase
Trước khi bắt đầu chức năng này Người dùng phải đăng nhập vào hệ thống
• Trạng thái hệ thống sau khi thực hiện Usecase
Hệ thống sẽ có thêm một người mới được thêm vào cơ sở dữ liệu hay là một record mới được cập nhật.
Hệ thống sẽ hiện ra thông báo kết quả tìm được cho User và chờ tác vụ tiếp theo của người dùng.
• Điểm mở rộng.
Không có.
c) Usecase Xem Cau Hoi.
• Tóm tắt:
Usecase xem câu hỏi được bắt đầu ứng viên tiến hành đi phỏng vấn và chức năng nay sẽ được gọi. Usecase này được sử dụng khi một ứng viên xem câu hỏi để trả lời trong buổi phỏng vấn
• Dòng sự kiện
i. Dòng sự kiện chính
Khi bắt đầu phỏng vấn Ứng viên bắt đầu được xem câu hỏi đầu tiên từ ngân hàng câu hỏi mà hệ thống trả về.
ii. Các dòng sự kiện khác
Không có.
• Yêu cầu
Không có.
• Trạng thái hệ thống khi user bắt đầu Usecase
Hệ thống sẽ chờ đợi người dùng sẵn sàng.
• Trạng thái hệ thống sau khi User bắt đầu Usecase
Hệ thống lấy câu hỏi từ ngân hàng câu hỏi về để hiển thị lên cho người dùng xem.
• Điểm mở rộng.
Không có.
Cách thức thiết kế lớp đối tượng
Để xác định tên lớp như thế nào thì các bạn phải dựa vào kinh nghiệm bản thân mà không thể nói một cách dễ dàng được. tuy nhiên nó tuân theo một số qui tắc sau:
1 – Tên lớp phải là danh từ.
2 – Tên lớp phải có chu trình sống của mình, phải có thời điểm sinh ra, chết đi của đối tượng đó.
3 – Nó độc lập tương đối với các đối tượng khác (tức là nó sẽ độc lập hơn đối tượng khác một cách tương đối, về các mặt khác nó có thể phụ thuộc lẫn nhau giữa các đối tượng, nhưng nó là một thể thức ngoài đời có.).
Quan trọng hơn là nó phải nằm trong phạm vi quản lý của yêu cầu bài toán.
Nói túm lạ ngoài đời có gì thì bên trong chương trình của mình có lớp đó.
Phần xác định các quan hệ . Việc xác định các quan hệ giữa các lớp là việc phải lập ra một từ điển quan hệ giữa các lớp ví như: lớp A là con lớp B chẳng hạn. nó cũng có một số qui tắc sau để qui ước là: tên quan hệ phải là động từ, Nó nói lên sự phụ thuộc lẫn nhau của các đối tượng.
Việc xác định các thuộc tính nó có một số qui định như sau: tên thuộc tính phải là danh từ, nó phải có sự lệ thuộc duy nhất vào đối tựng đang xét. Trong khi xác định thuộc tính cần chú ý: nếu thuộc tính đó phụ thuộc một đối tượng thì thuộc tính đó là thuộc tính của đối tượng, thuộc tính phụ thuộc vào nhiều đối tượng thì thuộc tính đó là thuộc tính quan hệ. lư ý ở trên chỉ nói đến thuộc tính của một lớp.
Việc xác định phương thức thực chất đó là các hành động, công việc, của các phương thức đó, nên tên phương thức có nhiều loại phương thức trong xây dựng một lớp đối tượng:
1 - các phương thức thuộc nhóm khởi tạo: gồm phương thức khởi tạo mặc định, phương thức khởi tạo khi biêt một số thuộc tính của nó, phương thức phá hủy.
2 – các phương thức thuộc nhóm cung cấp (phương thức get)
3 – các phương thức thuộc nhóm thiết lập (phương thức set)
4 – các phương thức xử lý tính toán: các phương thức này sẽ đóng vai trò là nơi thực thi các tính toán của từng class tương ứng trước khi thêm, hay làm gì đó với hệ thống dữ liệu của bạn.
5 – các phương thức thuôc nhóm kiểm tra. Đây là nơi kiểm tra các ràng buộc về dữ liệu cho class tương ứng của bạn.
Sau đây là một số quy ước để thiết kế một class.
1 – để thiết kế một class trước tiên bạn phải đưa ra tên của nó là gì.
2 – xác định các phương thức, thuộc tính cho class đó như đã nói ở trên.
3 – Nếu các thuộc tính có cấu trúc phức tạp hoặc có các thuộc tính liên hệ với nhau và nó có ngữ nghĩa cụ thể (ngoài đời có nó) thì nên tách nó ra thành một lớp độc lập với nhau.
4 – Khi 2 hay nhiều lớp có các thuộc tính chung thì nên tách thành một lớp cha của các lớp đó và các lớp đó được kế thừa từ lớp cha của nó.
5 – Khi gặp các thuộc tính có khả năng phân loại trong một số trường hợp thì ta tách các thuôc tính con của nó thành thuộc tính con tương ứng.
1-Thiết kế các class như các cách ở trên đã nêu.
3 - Xác định quan hệ giữa các class
2-Xác định các quan hệ và bảng số của nó.
Bảng số của 2 lớp là phần mô tả dữ liệu giữa 2 lớp đó
I- Một nhiều
1 A thì tương ứng với nhiều B
1B tương ứng với 1A

1B tưng ứng với 1A.
1A tương ứng với 1B

1 A tương ứng với nhiều B.
1B tương ứng với nhiều A

Phân tích thiết kế hướng đối tượng (bai3)
Chúng ta dùng cái lược đồ use-case để biểu diển.
Trong lược đồ use-case 2 khái niệm đầu tiên cần phải hiểu đó là Actor và UseCase.
1. Actor
Nó bao gồm các phần mềm bên ngoài, phần cứng, và con người mà có tác động trực tiếp đến phần mềm mà chúng ta đang xây dựng.
Hình vẽ của nó: (hình người).

Lấy ví dụ:
Trong phần mềm là trang web 4rum thì những Actor là người dùng mà bạn có thể dễ dàng chỉ ra là: Admin, Mod, Người Dùng Bình Thường, Khách.
ở đây mình sẽ giải thích tại sao người ta lại dùng từ Actor để gọi chung các cái này. Đó là vì ngoài đời Actor có nghĩa là “Diễn Viên” tức là 1 người có khả năng đóng nhiều vai khác nhau ứng với các bộ phim khác nhau(trong đây là ứng với các góc nhìn khác nhau.). Nói rõ hơn là các UserCase là người dùng nhìn dưới các góc độ của một phần mềm.
Ví dụ trong một phần mềm quản lý: bạn được thuê làm quản lý hệ thống đó. Và sau đó khi yêu cầu công việc cần thêm một người nhập liệu cho chương trình thì bạn xin làm để kiếm thêm thu nhập(thời kỳ lạm phát). Thì khi đó bạn không còn là một admin nữa mà là một người dùng bình thường chỉ có quyền ghi đối với cơ sở dữ liệu.
Đôi khi để cho dễ nhìn hơn trong mô hình usecase người ta còn có nhu cầu tổ chức nói (các quyền của Actor này thì Actor khác đều có thể làm thì bạn có thể chế ra một Actor khác là cha của 2 Actor này.)
Ví dụ trong phần mềm quản lý khách hàng thì khách hàng tiềm năng và khách hàng thông thường đều được quyền đặt hàng.(cái này chỉ có tác dụng là cho đỡ rối hình vẽ thôi) thì chúng ta “chế” ra Actor khách hàng chung. Lưu ý cái này nó chỉ mượn ký hiệu kế thừa bên thiết kế lớp đối tượng chứ không nói là Khách hàng và khách hàng đặc biệt là 2 lớp được kế thừa lại từ lớp khách hàng.
VD:
trước khi chế.


2. UseCase
UseCase là những chức năng trong chương trình của bạn cung cấp cho người dùng. Cái này có thể hiểu là một chức năng của hệ thống mang lại một ý nghĩa nhất địn đối với người dùng.
Hình vẽ nó được biểu diễn bằng một hình Elip.

Dùng hình vẽ sau để miêu tả nó ( nó là hình mũi tên với đường nét liền). ở đây do mình làm biếng up hình nên vẽ đại vậy chứ hình thiệt nó sẽ hơi khác.

___________________________>
Chiều của mũi tên thể hiện vai trò của sự tương tác: cái nào chủ động gọi cái nào
• Từ Actor vào một User
Vd: trong 4Rom thì tạo Actor Mod được quyền sử dụng UseCase Xóa bài viết.

Ví dụ khi bạn tạo một chương trình chơi game có qui định là chương trình là: sẽ tự động sắp xếp người chơi vào một vị trí.

Đôi lúc trong khi sử dụng Chức năng này(UserCase1) lại có nhu cầu phát sinh chức năng thứ 2 ngay sau đó.
Ví dụ: trong các trang web Eshopping thì chức năng đặt hàng và chức năng thanh toán.
Chức năng đặt hàng sẽ gọi thực hiện một chức năng thanh toán.
Nó có thể được biểu diễn như sau:
Chức năng A luôn luôn gọi chức năng B


Tại đây bạn sẽ mô tả con đường đi chính thức mà chương trình bạn sẽ “đi” từ khi bắt đầu đến khi kết thúc(chỉ nói các sự kiện chính chứ không nói các trương hợp khác ngoài sự kiện chính).
5. Đặc tả UserCase
ứng với mỗi Usecase các bạn nêu các ý sau:
• Tóm tắt.
• Dòng sự kiện
• Các yêu cầu
• Trạng thái hệ thống khi User bắt đầu Usecase
• Trạng thái hệ thống sau khi thực hiện Usecase
• Điểm mở rộng.
Phân tích thiết kế hướng đối tượng (bai 2)
Mục đích của quá trình này là trả lời các câu hỏi sau: cái người dùng yêu cầu mình làm là cái gì? Các yêu cầu đó ra sao? Các yêu cầu đó như thế nào? Các nghiệp vụ của người đó ra sao? Trong họ trình độ tin học hóa tới đâu?(về trình độ sử dụng máy tính và phần cứng của họ). Các thói quen nghiệp vụ của họ ra sao? …
Mục đích của quá trình này là đưa ra được một văn bản dạng như các bài tập mà các bạn thường gặp trong các kỳ thi học kỳ của mình.
2. Tại sao lại xác định yêu cầu:
Yêu cầu là gì mà chúng ta phải xác định nó:
Theo định nghĩa của Wikipedia: Trong các ngành kỹ thuật, một yêu cầu (requirement) là một đòi hỏi được tài liệu hóa về các chức năng và đặc điểm của một sản phẩm hoặc dịch vụ.(nguồn: http://vi.wikipedia.org/wiki/Y%C3%AAu_c%E1%BA%A7u )
Về phần này thì mình cũng đã nói rõ hơn trong bài trước.(trong giai đoạn xác định yêu cầu.)
3. Các cách xác định yêu cầu
Có rất nhiều cách để thu thập yêu cầu mình có thể liệt kê ra ở đây ví như:
• Phỏng vấn trực tiếp
• Đưa ra bảng câu hỏi
• Mượn các tài liệu và nghiên cứu nó
• Quan sát thực tế
• …
- Phỏng vấn:
có 2 loại là phỏng vấn cá nhân và phỏng vấn nhóm.
Đối với phỏng vấn cá nhân dùng khi những câu hỏi mà chúng ta đưa ra mang tính chất ‘tế nhị’ m%
Phân tích thiết kế hướng đối tượng
Vậy vì sao khi làm phần mềm đòi hỏi phải có qui trình. Qui trình là sản phẩm công sức của trí tuệ và kinh nghiệm thực tế của người đi trước hay của bản thân cá nhân mình. Qui trình nói lên từng bước tiến hành nó phải làm như thế nào ở bước này và bước kế tiếp.
Có rất nhiều qui trình phát triển phần mềm, tùy theo từng phần mềm mà áp dụng các qui trình khác nhau nhưng căn bản nhất vẫn là qui trình thác nước(đây là một mô hình được coi là cổ điển, nó có mặt trong tất cả các mô hình phát triển phần mềm.). có thể tham khảo thêm một số qui trình như: Qui trình xoắn ốc, Qui trình Prototype …
ở đây là qui trình thác nước đã được cải tiến(có sự quay lại.)
Hình vẽ mô hình thác nước.

1. Giai đoạn khảo sát hiện trạng.
Đây là giai đoạn đầu tiên nhất trong quá trình phát triển phần mềm, nó cho biết hiện trạng bài toán như thế nào. Ví như hiện trạng về mô hình tổ chức, hiện trạng về các nghiệp vụ, hiện trạng về quá trình tin học của khách hàng mà phần mềm chúng ta nhắm tới. trong đó hiện trạng về nghiệp vụ là quan trọng nhất mục tiêu của giai đoạn này là phải hiểu rõ được qui trình nghiệp vụ của khách hàng như là có bao nhiêu quá trình nghiệp vụ, những nghiệp vụ đó họ làm như thế nào?….
2. Giai đoạn xác định yêu cầu.
Có 2 loại yêu cầu là yêu cầu chức năng và yêu cầu phi chức năng.
Yêu cầu chức năng: đây là yêu cầu bất khả kháng mà khách hàng đưa ra cho bạn, nếu không có nó thì coi như bạn chết..
Cứ tưởng tượng là 23h55 tối nay bạn phải nộp bài đồ án cuối kỳ nếu không nộp coi như bạn rớt môn học này. mà giờ là 12h trưa bạn mới ngủ dậy[tối qua coi c1 khuya quá]. Trong khi đó chương trình của bạn chưa làm được gì cả thì công việc đầu tiên bạn nghĩ phải làm gì thì nó chính là các yêu cầu chức năng.
Yêu cầu phi chức năng là yêu cầu của hệ thống mà mình đưa ra,ví dụ như chức năng bảo mật thông tin, chức năng phân quyền người dùng, chức năng có thể đáp ứng yêu cầu của dữ liệu trong khoảng thời gian bao nhiêu….
Trong giai đoạn này là giai đoạn sông còn, vì yêu cầu là rất khó biết. giả sử bạn đang làm trang web cá nhân cho bạn, bạn đang trong giai đoạn phân tích yêu cầu cho trang web của chính bạn chắc rằng bạn sẽ không biết được yêu cầu của mình nó như thế nào, cho dù đưa ra được yêu cầu rồi thì bạn có chắc là ngày mai ngủ dậy nó vẫn còn là như vậy không?(vì bản chất của đề án hay yêu cầu là thay đổi). Vì vậy việc xác định yêu cầu đúng là rất quan trọng trong suốt quá trình làm phần mềm. thử tưởng tượng điều gì xảy ra nếu trong môn đồ họa máy tính thầy yêu cầu bạn làm chương trình vẽ con mèo, bạn mê ngủ sau đó về nhà bạn vẽ ra con khỉ thì chắc bạn biết điều gì đã xảy ra với mình rồi.hihi
3. Giai đoạn phân tích.
Trong giai đoạn này chúng ta sẽ phân tích các yêu cầu, và mô hình hóa chúng kết quả của quá trình này là cho ra một sơ đồ lớp đối tượng trong chương trình chúng ta.
4. Thiết kế
Giai đoạn này chúng ta sẽ thiết kế các thuật toán, và thiết kế mô hình dữ liệu nó cho ra một mô hình lớp và dữ liệu ở mức chi tiết.(2 cái phân tích và thiết kế trong bài sau mình sẽ đi vào phân tích nó).
5. Cài đặt
Phần này chúng ta sẽ chính thức bắt tay vào code.
6. Kiểm chứng
Bạn sẽ test chương trình của mình
7. Triển khai
Bạn sẽ mang chương trình của mình đi triển khai
Chủ Nhật, 16 tháng 11, 2008
Tuần 17-23 Nov 2008
- Học : level A lesson 3 mark 19/20, lesson 4 mark 19/20
- Thực hành:
- Viết blog nào:
- Thắc mắc cần giải đáp:
Tueday 18 Nov 2008 : 20.00 đến 23.00
- Học : level A lesson 5 Mark 12/20
- Thực hành : DialogDemo.java and Message.java of package Day22_2008Nov18.
Wednesday 19 Nov 2008 : 20.30 to 22.10
- Học : DialogDemo.java and Message.java of package Day22_2008Nov18. tiếp theo.
- Thực hành : DialogDemo.java and Message.java of package Day22_2008Nov18.
Thurday 20 Nov2008 : 19.30 to 22.00
- Học : java, DialogDemo.java and Message.java of package Day22_2008Nov18. tiếp theo.
Friday : 21 Nov2008 : 20.00 to 23.00
- Học : java về các sự kiện đóng Dialog
- Thực hành : DialogDemo.java and Message.java of package Day22_2008Nov18. tiếp theo.
Saturday 22Nov2008 : 21.00 to 22.00
- Học luồng và tập tin.
- Viết blog : Streams and Files
Sunday 23Nov2008 : 19.30 to 22.30
- Học về bài thực hành trong phần chương 5 Luồng và tập tin trang 135. javaTV.
- Thực hành : Day23_2008nov23 ReadBytes.java
- yêu cầu : đọc lại lý thuyết Luồng và tập tin để hiểu rõ.
Thứ Ba, 11 tháng 11, 2008
Tuần 10-16 Nov 2008
- Học : mô hình xử lý sự kiện
- Thực hành: tạo Frame, các button, Textfield, TextArea
- Viết blog nào: sửa các blog cho hợp lý
- Thắc mắc cần giải đáp:
Tueday Nov 11: (mấy tiếng) sáng :9.00 - 10.30 chiều: 13.00 - 17.00 tối: 19.00-23.00
- Học : đọc lý thuyết về visual studio. ôn tập lại lý thuyết java từ đầu đến giờ.
- Thực hành: tự viết một chương trình calculator
- Viết blog nào: nhật ký học tập.
- Thắc mắc cần giải đáp: làm sao xắp sếp lại các button trong chương trình calculator? : đã giải quyết một phần. còn việc thực hiện tính toán cho calculator?
Wednesday Nov 12: sáng 7.30 - 9.00
- Học : UML, english lesson 2 level A: 13/20 mark
- Thực hành: ListDemo.java in Day21_2008nov12
- Viết blog nào: UML
- Thắc mắc cần giải đáp:
Thursday Nov 13: evening 20. -
- Học : Mạng máy tính
- Thực hành: ListDemo.java in Day21_2008nov12 tiếp tục
- Viết blog nào:
- Thắc mắc cần giải đáp: what is instanceof ?
saturday Nov 15-2008
- Học : English level A lesson 2 Mark 17/20. level A lesson 3 Mark 11/20
- Thực hành:
- Viết blog nào:
- Thắc mắc cần giải đáp: Tương lai java sẽ về đâu?
Sunday 16 Nov 2008
- Học : English level A lesson 3 Mark 14/20. lesson 4 Mark 11/20
- Thực hành:
- Viết blog nào:
- Thắc mắc cần giải đáp:
Đến Nov 11 2008
Học được : khái niệm java, lịch sử java, các diễn đàn java, tìm hiểu về nghề coder và phân tích các mặt của vấn đề. so sánh java và các ngôn ngữ khác
Thực hành: từ chương trình cơ bản in ra dòng chữ Helloworld đến mô hình xử lý sự kiện trong lập trình gui, lập trình oop.
Viết những bài blog nào: các bài về java, từ lý thuyết lập trình đến các đấu câu, đến ý nghĩa các câu lệnh.
Thứ Hai, 10 tháng 11, 2008
ý nghĩa các dấu trong java
/*text*/
// text
/**document*/ công cụ javadoc trong bộ JDK sử dụng chú thích này để chuẩn bị cho việc tự động phát sinh tài liệu.
- DẤU "{" và "}" (dấu mở và đóng ngoặc nhọn)là bắt đầu và kết thúc một khối lệnh.
- DẤU ";" (dấu chấm phẩy ) là kết thúc một dòng lệnh.
-DẤU [] (dấu ngoặc vuông) : là chỉ số mảng.
- DẤU ' (dấu nháy đơn) : bao một ký tự (character). ví dụ ký tự Unicode '\u0022' là dấu ", '\u0021' là dấu !.
-DẤU " (dấu nháy kép) : đưa ra chuỗi (string).
-DẤU ( )(dấu ngoặc tròn) : tham số hàm hay gọi hàm.
-DẤU ~(dấu Bù Bit) : toán tử trên Bit.
-DẤU = (1 dấu bằng) : Là phép gán giá trị cho một biến.
-DẤU == (2 dấu bằng) : phép So sánh bằng của toán tử quan hệ và logic.
-DẤU != (dấu thang và dấu bằng) : phép so sánh khác nhau của toán tử quan hệ logic.
-DẤU += (dấu cộng và dấu bằng) : tính tổng bằng 1 số nào đó. ví dụ : sum += total[i]; ra đáp số là tổng của các giá trị trong mảng total[i].
-DẤU && (2 dấu &) : AND (biểu thức Logic).
- \n : xuống hàng khi in ra. ví dụ : System.out.println("\n sorted array is ;");
-\t : Tab (ý nghĩa).
-\r : Dấu Enter.
-\f: Dấu đẩy trang.
-\" : in ra dấu nháy kép. ví dụ : \"IBM\" IN ra chữ "IBM"
-DẤU % (dấu phần trăm) : chia dư. ví dụ : 3%2 == 1; (3 chia 2 thì dư 1)
*chú ý : trong khai báo 2 biến: ví dụ biến min và max
cách 1: dùng dấu ,(dấu phẩy) ví dụ : int min, max;
cách 2: dùng dấu ;(dấu chấm phẩy) ví dụ: int min; int max;
-nhập ++t tức là tăng t lên 1 đơn vị trước khi thực hiện các thao tác tiếp theo, t++ thì thực hiện các thao tác tính toán , sau đó mới tăng t lên 1 đơn vị.
- \u0022 cho ra dấu ", \u0021 cho ra dấu !, \u0024 cho ra dấu $, ... Đây là những ký tự được in ra theo Mã Unicode
code conventions
/** document*/.
- mỗi dòng không quá 80 ký tự, nếu dài hơn thì xuống dòng, luôn nhớ dòng trên luôn luôn dài hơn dòng dưới.
- dấu ngoặc nhọn mở luôn sát câu trên, sau hàm.
- chú thích // xuống hàng ngay sau hàm nếu cần, chú thích // kết quả sau kết quả.
-không đánh 2 kiểu dữ liệu khác nhau trên cùng một dòng(ví dụ như khai báo biến với mảng).
- nên tránh khai báo biến ngay sau hàm if.
- gõ dấu"}" ngay sau dấu "}", tương tự như các dấu (), [].
-nên tránh kí tự tăng ++, giảm -- trên cùng một dòng.
- giữa ký tự logic And nên đóng dấu ngoặc ví dụ : if((a==b)&&(c==d)) //right.
ý nghĩa các cấu trúc
}
catch{
}
nếu phát sinh lỗi trong quá trình chạy trong try thì nó sẽ nhảy qua catch để thực hiện.
- arg (argument) :tham số.
-CẤU TRÚC LẶP:
Dạng 1: while(...)
while(Điều_kiện_lặp){
khối lệnh;
}
Dạng 2: Do{...} while;
Do{
khối_lệnh;
} while (điều_kiện); thực hiện khối lệnh trước, áp dụng điều kiện sau.
Dạng 3: cấu trúc for(...)
for(khởi_tạo_biến_đếm; đk_lặp; tăng_biến){
khối_lệnh;
}
-CẤU TRÚC ĐIỀU KHIỂN: SWITCH ... CASE
switch ()
{
case :
;
break;
….
case :
;
break;
default:
;
}
ý nghĩa câu lệnh Java
ví dụ : System.out.print("chieu dai cua chuoi str1 la : " + str1.length());
- java luôn đếm từ 0: dù là mảng hay chuỗi, hay là gì đi nữa.
ví dụ: có chuỗi "một hai ba bốn" String substr= orgstr.substring(4,7); kết quả: hai (vì ký tự thứ 4 là trắng, ký tự thứ 7 là i.)
-In ra màn hình ký tự thứ i trong chuỗi:
ví dụ : System.out.print(str1.charAt(i)); : in ra màn hình ký tự thứ i trong chuỗi str1.
-public void windowClosing(WindowEvent e){
dùng đóng cửa sổ ứng dụng. từ window phải viết thường. nếu viết hoa Eclipse vẫn không báo lỗi, tuy nhiên chương trình không đóng ứng dụng được.
-CÂU LỆNH TRONG GUI:
public void setLocation(Point p);
Public void setSize(Demention p);
Public void setBounds (rectangle r);
Ví dụ:
MyButton.setSize(new Dimention(20, 10));
MyButton.setLocation(new Point(10, 10));
MyButton.setBounds(10, 10, 20, 10);
import java.awt.*; nhập vào kiểu đồ hoạ.
import java.util.*;
radius = (circleRadius >= 0 ? circleRadius: 0);
(điều kiện ? command1 : command2);
có nghĩa là điều kiện kiểu boolean?
nếu thỏa điều kiện thì trả về command1.
nếu không thỏa điều kiện thì trả về command2.
command1 cách command2 bởi dấu :
đối với bài này điều kiện là circleRadius >=0 ?
command1 là circleRadius
command2 là 0
* so sánh câu lệnh này với câu lệnh if:
giống : cho điều kiện thực hiện ra kết quả.
khác : câu lệnh này cần có 2 kết quả để trả về mới đúng(chạy được). còn if chỉ cần một kết quả trả về là chạy đươc.(có hoặc không có else). hơn nữa if kết quả trả về có thể là một lệnh gán. nói chung if dùng được cho mọi trường hợp.
- Tạo đường kẻ ngang trong MenuItem con ví dụ trong menu help:
menuHelp.addSeparator();
Thuật ngữ và các từ viết tắt
- ODBC :
- EOF : Là viết tắt của End Of File.
- Unicode : Là viết tắt của từ Universal code, tức là bộ mã vạn năng, có thể dùng để mã hóa tất cả các ngôn ngữ chính trên toàn thế giới (trong đó có Tiếng Việt), được dùng chủ yếu trong trao đổi hiển thị dữ liệu trong các hệ thống công nghệ thông tin. Unicode là bộ mã 16-Bit (có 65.536 ô mã) tức là 2 mũ 16.
- UTF-8 : Là viết tắt của cụm từ Unicode Transformation Format 8-Bit. Là dạng chuyển đổi Unicode dùng để chuyển ký tự 16-Bit Unicode thành chuỗi ký tự 8-Bit tương đương. Vì đa phần các ứng dụng, các môi trường hiện hành (kể cả Unix-Linux) thường chỉ hỗ trợ các dữ liệu 8-Bit, nên để tăng khả năng tương thích với các hệ thống cũ trong nhiều trường hợp người ta lưu đoạn dữ liệu Unicode thành dạng 8-Bit.
-JDK : Java Development Kit ( Bộ công cụ cho người phát triển ứng dụng bằng ngôn ngữ lập trình java) là một tập hợp những công cụ phần mềm được phát triển bởi Sun Microsystems, dành cho các nhà phát triển phần mềm.
-PHÍM NÓNG Eclipse :
ALT + Left/Right Arrow
chuyển đổi cửa sổ các file trên Eclipse. Change windows of files on Eclipse.
CTRL + M
Maximize or umaximize current tab.
ALT + Up/Down Arrow
Move the row (or the entire selection) up or down. Very useful when rearranging code. You can even select more rows and move them all. Notice, that it will be always correctly indented.
CTRL + D
Delete row. Try it! You no more need to grab the mouse and select the line, no more Home, Shift + End, Delete. Quick and clean.
- Graphic User interface - GUI : giao diện người dùng.
- interface : những giao tiếp.
- Layout managers : bộ quản lý trình bày.
- thư viện JFC : Java Foundation Class. Sự thành lập lớp java.
- Struts : là một framwork để phát triển các ứng dụng web bằng java.
- framwork :
-API : Application Programming Interface. giao diện lập trình ứng dụng.
-setBounds :
-IDE : Integrated Development Environment môi trường phát triển tích hợp: là một loại phần mền có công dụng giúp đỡ các lập trình viên trong việc phát triển phần mềm. ví dụ Eclipse
-J2SE : Java 2 Standard Edition vừa là một đặt tả vừa là một nền tảng thực thi. Bao gồm cả phát triển và triển khai trong các ứng dụng java.
-J2ME : Java 2 Micro Edition là một nhánh của ngôn ngữ lập trình java để phát triển các ứng dụng trên điện thoại di động hay trên các thiết bị cầm tay khác.
-J2EE : java 2 Platform, Enterprise Edition
ôn tập bằng viết chương trình calculator
Frame f = new Frame("Calculator");
//tao cac menu bar
MenuBar menu = new MenuBar();
Menu menuEdit = new Menu("Edit");
MenuItem copyItem = new MenuItem("Copy Ctrl+C");
MenuItem pasteItem = new MenuItem("Paste Ctrl+v");
//them thanh phan con vao menu
menuEdit.add(copyItem);
menuEdit.add(pasteItem);
Menu menuView = new Menu("View");
MenuItem standar = new MenuItem("Standar");
MenuItem scientific = new MenuItem("Scientific");
MenuItem DigitGrouping = new MenuItem("Digit grouping");
menuView.add(standar);
menuView.add(scientific);
menuView.add(DigitGrouping);
Menu menuHelp = new Menu("Help");
MenuItem HelpTopic = new MenuItem("Help topic");
MenuItem AboutCalculator = new MenuItem("About calculator");
menuHelp.add(HelpTopic);
menuHelp.add(AboutCalculator);
f.setMenuBar(menu);
menu.add(menuEdit);
menu.add(menuView);
menu.add(menuHelp);
f.setLayout(new BorderLayout());
//tao cac panel trong Frame
Panel panel1 = new Panel();
Panel panel2 = new Panel();
Panel panel3 = new Panel();
Panel panel11 = new Panel();
panel1.add(panel11);
Panel panel12 = new Panel();
panel1.add(panel12);
panel1.setLayout(new GridLayout(2,1,10,10));
panel2.setLayout(new GridLayout(4,2,10,10));
panel3.setLayout(new GridLayout(4,4,10,10));
panel11.add(new TextField(20));
panel12.add(new Checkbox("ABC", true));
panel12.add(new Checkbox("DEF",true));
int[] buttName = new int[10];
Button[] buttons = new Button[10];
f.add(panel1,BorderLayout.NORTH);
f.add(panel3,BorderLayout.CENTER);
f.add(panel2,BorderLayout.EAST);
// for(int i=9; i>=0; i--){
// buttons[i] = new Button(i +"");
// panel3.add(buttons[i]);
// }
panel3.add(new Button("7"));
panel3.add(new Button("8"));
panel3.add(new Button("9"));
panel3.add(new Button("4"));
panel3.add(new Button("5"));
panel3.add(new Button("6"));
panel3.add(new Button("1"));
panel3.add(new Button("2"));
panel3.add(new Button("3"));
panel3.add(new Button("0"));
panel3.add(new Button("+/-"));
panel3.add(new Button("."));
panel2.add(new Button("/"));
panel2.add(new Button("sqrt"));
panel2.add(new Button("*"));
panel2.add(new Button("%"));
panel2.add(new Button("-"));
panel2.add(new Button("1/x"));
panel2.add(new Button("+"));
panel2.add(new Button("="));
f.pack();
f.setSize(200, 300);
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
/*
* Created on Nov 9, 2008 by huu truc
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package Day19_2008nov9;
/**
* @author Administrator
*
* TODO programming gui
* page 119
*/
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class TextComponentDemo extends Frame{
//private chi duoc truy cap ben trong lop khai bao.
//TextField nhap mot dong.
private TextField textField;
//TextArea nhap nhieu dong.
private TextArea textArea;
//tao hai nut nhap, xoa
private Button enter, clear;
public TextComponentDemo(String title){
//super lop thua ke muon nho lop cha lam viec gi do
super(title);
//tao nhieu dong text voi thanh cuon doc
textArea = new TextArea("", 0, 0,
TextArea.SCROLLBARS_VERTICAL_ONLY);
textArea.setEditable(false);
//tao mot dong text
textField = new TextField();
//tao nut Enter
enter = new Button("Enter");
//tao nut Clear
clear = new Button("Clear");
//layout the GUI
//bien this duoc su dung khi chay va tham khao den ban than lop chua no
this.add(textArea, BorderLayout.CENTER);
Panel southEast = new Panel(new BorderLayout());
//xac dinh vi tri button enter
southEast.add(enter, BorderLayout.EAST);
//xac dinh vi tri button clear
southEast.add(clear, BorderLayout.WEST);
Panel south = new Panel(new BorderLayout());
south.add(textField, BorderLayout.CENTER);
south.add(southEast, BorderLayout.EAST);
this.add(south, BorderLayout.SOUTH);
//setup the event handling
CreateList listener = new CreateList(textField, textArea);
enter.addActionListener(listener);
clear.addActionListener(listener);
textField.addActionListener(listener);
}
public TextField getTextField(){
return textField;
}
public static void main(String arg[]){
//tao khung Frame voi ten TextComponentDemo
TextComponentDemo f = new TextComponentDemo("TextComponentDemo");
//dat kich thuoc Frame
f.setSize(300, 200);
//hien thi Frame
f.setVisible(true);
f.getTextField().requestFocus();
//create command close Frame
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
}//end class
/*
* Created on Nov 10, 2008 by huu truc
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package Day19_2008nov9;
/**
* @author Administrator
*
* TODO programming gui
* page 121
*/
import java.awt.*;
//mo hinh xu ly su kien
import java.awt.event.*;
//sau implements la interface
public class CreateList implements ActionListener {
//private chi duoc truy cap ben trong ban than lop khai bao.
private int counter = 0;
//TextField chi nhap duoc mot dong
private TextField source;
//TextArea nhap duoc nhieu dong.
private TextArea destination;
//khoi tao constructor 2 tham so
public CreateList(TextField s, TextArea d){
source = s;//phep gan TextField
destination = d;//phep gan TextArea
}
public void actionPerformed(ActionEvent e){
String action = e.getActionCommand();
if(action.equalsIgnoreCase("Enter")){
String text = source.getText();
counter++;//Tang bien counter truoc khi gan destination trong TexrArea.
destination.append(counter + "." + text + "\n");
source.setText("");
}else{
if(action.equalsIgnoreCase("Clear")){
destination.setText("");
counter = 0;
}
}
}
}
visual Studio
Yêu cầu ngôn ngữ: VC#, ASP.NET, XML, JavaScript (ưu tiên những người có kinh nghiệm lập trình Ajax, Ajax.NET)
- Thao tác và lập trình thành thạo với MS SQL Server 2000, Crytal Report
- Môi trường VS.NET 2005, Netframework 2.0
- Thành thạo WinForm, WebForm, Network Programming (TCP/IP, UDP Socket), XML
- Thành thạo lập trình hướng đối tượng
- Khả năng đọc và hiểu tiếng Anh tốt
java 2 Platform Packages
java.awt
java.awt.color
java.awt.datatransfer
java.awt.dnd
java.awt.event
java.awt.font
java.awt.geom
java.awt.im
java.awt.im.spi
java.awt.image
java.awt.image.renderable
java.awt.print
java.beans
java.beans.beancontext
java.io
java.lang
java.lang.ref
java.lang.reflect
java.math
java.net
java.nio
java.nio.channels
java.nio.channels.spi
java.nio.charset
java.nio.charset.spi
Giới thiệu về tôi
Các mục chính
- ASCII (1)
- Analyse and design (7)
- Basic java (13)
- Become a programer (10)
- Blog Friends (1)
- Cách sử dụng các phần mềm (2)
- Cách xử lý sự kiện trong java (1)
- Công nghệ phần mềm (1)
- Entertainment (19)
- HTML (1)
- Hero In 4 Ocean (2)
- Học UML (1)
- IDE Tuyệt vời (1)
- Interface và class (1)
- Joomla (2)
- Layout trong java (1)
- Lập trình giao diện (5)
- Lập trình giao diện với AWT (1)
- Nhật ký học tập (5)
- PHP (8)
- Streams and Files (1)
- Thuật ngữ và các từ viết tắt (1)
- Thủ Thuật Tin Học và kinh nghiệm sửa máy (9)
- Thực hành GUI (1)
- Thực hành Luồng và tập tin (1)
- Visual Studio (1)
- Web master (4)
- code conventions (1)
- Ý nghĩa các dấu trong PHP (1)
- Ý nghĩa câu lệnh PHP (1)
- ý nghĩa các câu lệnh (1)
- ý nghĩa các cấu trúc (1)
- ý nghĩa các dấu trong java (1)
- ý nghĩa các từ khoá(key words) (2)
Website trang tin tức thương mại điện tử cao hoàng
Chat voi Truc
Lưu trữ Blog
-
▼
2008
(89)
-
▼
tháng 11
(51)
- Bảng mã ASCII
- Joomla là gì?
- Thực hành Stream and File
- Tạo file PDF
- Thông tin về host của site
- Tuần 24 - 30 Nov 2008
- Đọc Dữ liệu từ File:- Mở một File để đọc dữ liệuFi...
- Luồng và tập tin
- Xây dựng mô hình lớp ở mức phân tích.
- Phân tích thiết kế hướng đối tượng (vidu 2)
- Phân tích thiết kế hướng đối tượng (vidu)
- Cách thức thiết kế lớp đối tượng
- Phân tích thiết kế hướng đối tượng (bai3)
- Phân tích thiết kế hướng đối tượng (bai 2)
- Phân tích thiết kế hướng đối tượng
- Tuần 17-23 Nov 2008
- Bộ công cụ IDE của Microsoft chạy trên .Net 3.0
- Tuần 10-16 Nov 2008
- Đến Nov 11 2008
- ý nghĩa các dấu trong java
- code conventions
- ý nghĩa các cấu trúc
- ý nghĩa câu lệnh Java
- Thuật ngữ và các từ viết tắt
- ôn tập bằng viết chương trình calculator
- visual Studio
- java 2 Platform Packages
- ý nghĩa các từ khoá(key words)
- Interface và class
- Học UML
- Cách xử lý sự kiện trong java
- Lập trình giao diện với AWT
- Không có tiêu đề
- Layout trong java
- Layout trong java
- Các công nghệ mới của java
- Học UML
- Phân tích thiết kế hệ thống
- Công nghệ phần mềm
- Học .Net
- Network
- Học Linux
- Học thuật toán
- Học cơ sở dữ liệu
- Học java thì học những gì?
- Lập trình giao diện với SWING
- Layout trong java
- Lập trình giao diện với AWT
- Interface và class
- Cách xử lý sự kiện trong java
- Lập trình giao diện
-
▼
tháng 11
(51)