Tải bản đầy đủ (.ppt) (174 trang)

Lập trình hướng đối tượng pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.21 MB, 174 trang )

Nguyễn Công Huy – Khoa CNTT&TT 1
LẬP TRÌNH HƯỚNG ĐỐI
LẬP TRÌNH HƯỚNG ĐỐI
TƯỢNG & C++
TƯỢNG & C++

Các khái niệm, nguyên lý cơ bản của
lập trình hướng đối tượng (OOP).

Minh họa phong cách lập trình hướng
đối tượng bằng ngôn ngữ C++.
Mục tiêu

Sau khi hoàn tất học phần này, sinh viên có khả năng:

Hiểu được thế nào là lập trình hướng đối tượng, trừu tượng hóa, 3 đặc
điểm cơ bản trong LT HĐT là bao gói, thừa kế, và đa hình.

Phân biệt được sự khác nhau giữa lớp và đối tượng, thuộc tính và
phương thức, thông điệp và truyền thông điệp.

Hiểu được khái niệm cơ bản về cách xây dựng mô hình lớp dùng UML.

Thiết kế được các lớp với các thuộc tính từ cơ bản đến phức tạp như
thành viên tĩnh, thành viên hằng, thành viên đối tượng,

Hiểu được khái niệm hàm xây dựng, hàm hủy và quá trình khởi tạo đối
tượng cũng như hủy bỏ đối tượng.

Nắm được khái niệm về phạm vi truy xuất, đối số mặc định, hàm bạn.


Vận dụng được nguyên lý tái định nghĩa để có thể tái định nghĩa các
hàm thành viên, hàm xây dựng, phép gán của một lớp và các toán tử.

Phân biệt được lớp dẫn xuất, lớp cơ sở, hàm ảo và lớp ảo trong thừa
kế. Thiết kế được các lớp có dùng thừa kế.

Phân biệt được sự khác nhau giữa liên kết tĩnh và liên kết động.

Sử dụng được các cú pháp cơ bản của ngôn ngữ lập trình hướng đối
tượng C++ để viết các chương trình theo phong cách hướng đối tượng.
Nguyễn Công Huy – Khoa CNTT&TT 2
Nguyễn Công Huy – Khoa CNTT&TT 3
Nội dung môn học
Nội dung môn học

Các đặc điểm của C++

Lập trình hướng đối tượng

Lớp và đối tượng

Hàm thành viên

Hàm xây dựng, hàm hủy và việc khởi tạo
đối tượng

Hàm bạn

Tái định nghĩa các tác tử


Thừa kế
Nguyễn Công Huy – Khoa CNTT&TT 4
Giáo trình - Tài liệu tham khảo
Giáo trình - Tài liệu tham khảo

Giáo trình:

ThS. Trương Văn Chí Công, Lập trình HĐT C++, ĐHCT, 2005.

TS. Phạm Thị Xuân Lộc, Lập trình HĐT và C++, ĐHCT, 1998.

Tài liệu tham khảo:

Herbert Schildt, C++: A beginner’s guide, 2
nd
edition,
McGrawHill, 2003.

Herbert Schildt, C++: the complete reference, 3
rd
edition,
McGrawHill, 1998.

Ali Bahrami, Object Oriented Systems Development, Irwin
McGrawHill, 1999.

Stanley B. Lippman, Essential C++, Addision Wesley, 2002.

Bjanrne Stroustrup, The C++ Programming Language,
3

rd
edition, Addision Wesley, 1997.

Bất kỳ tài liệu nào về Lập trình hướng đối tượng và C++.

Internet.
Nguyễn Công Huy – Khoa CNTT&TT 5
Phương pháp học tập và đánh giá
Phương pháp học tập và đánh giá

Phương pháp học tập:

Giáo viên giảng trực tiếp trên lớp 30 tiết.

Sinh viên phải đọc tài liệu trước ở nhà.

Phương pháp đánh giá

Thi lý thuyết cuối khóa: 50%

Thi trên hệ thống E-Learning của khoa.

Đề thi dạng
trắc nghiệm
trắc nghiệm,
không
không sử dụng tài liệu.

Thực hành


Thi thực hành: 30%

Nội dung căn bản

Bài thi còn lỗi sẽ nhận điểm 0

Đề tài nhóm: 20%

Từ 3-4 sinh viên / nhóm

Nộp báo cáo, chạy demo, trả lời chất vấn.
Nguyễn Công Huy – Khoa CNTT&TT 6
CÁC ĐẶC ĐIỂM
CÁC ĐẶC ĐIỂM
CỦA C++
CỦA C++

Các khái niệm cơ bản của C++

Lập trình cấu trúc trong C++

Các đặc điểm mới của C++
Chương 1
Chương 1
:
:
Nguyễn Công Huy – Khoa CNTT&TT 7
Nội dung
Nội dung


Các khái niệm cơ bản trong C++

Cấu trúc điều khiển

Hàm và cấu trúc chương trình

Con trỏ và chuỗi ký tự

Tham số mặc nhiên của hàm

Tái định nghĩa hàm

Hàm tại chổ (inline)

Truyền tham số

Tham chiếu

Struct
Nguyễn Công Huy – Khoa CNTT&TT 8
Các khái niệm cơ bản

Từ khóa

Dành riêng cho ngôn ngữ  không được đặt tên
trùng với từ khóa.

Là chữ thường
VD : char, int, return, for, else, const, static


Tên

Phân biệt chữ HOA và chữ thường

Gồm chữ, số, ‘_’ và phải bắt đầu bằng chữ cái.

Độ dài tối đa là 32

Nên theo quy cách đặt tên.
VD: x, hoten, a1, num_of_var, Delta, TEN,
Nguyễn Công Huy – Khoa CNTT&TT 9
Các khái niệm cơ bản

Kiểu dữ liệu
Tên kiểu
Tên kiểu
Kích thước
Kích thước
Phạm vi
Phạm vi
char 1 byte -128  127
unsigned char 1 byte
0

 255
int 2 bytes -32768  32767
unsigned int 2 bytes 0  65535
short 2 bytes 0  65535
long 4 bytes
-2

31
 2
31
- 1
unsigned long 4 bytes
0

 2
32
- 1
float 4 bytes
1.2e
-38
 3.4e
38
double 8 bytes
2.2e
-308
 1.8e
308
Nguyễn Công Huy – Khoa CNTT&TT 10
Các khái niệm cơ bản

Biến

Khai báo : bất kỳ vị trí nào trong chương trình

Khởi tạo : có thể vừa khai báo và khởi tạo
VD: int x=5, y=10;
for( int i=0, tong =0 ; i<10 ; i++)

tong +=i ;

Biến khai báo trong 1 khối lệnh : chỉ có phạm
vi hoạt động trong khối lệnh đó.
VD: if( delta >0 ) {
float x1= (-b + sqrt(delta)) / (2*a);
float x2= (-b - sqrt(delta)) / (2*a);

}
Nguyễn Công Huy – Khoa CNTT&TT 11
Các khái niệm cơ bản

Biến

Biến toàn cục : có tác dụng trong toàn bộ CT.

Biến địa phương (cục bộ): chỉ có tác dụng trong
phạm vi của nó.
VD: int so = 5;
void GanSo(int x) {
so = x;
}
int NuaSo(int x) {
int c=2;
int so =x/c ;
return so;
}
Nguyễn Công Huy – Khoa CNTT&TT 12
Các khái niệm cơ bản


Hằng

Khai báo :
VD: #define MAX 100
const int MAX=100;

Một số hằng quan trọng :

Số nguyên: 10 , -5, 300000, 1000L,

Số thực : 3.1416, .5 , 123E-5,

Ký tự : char ch1 = ‘A’ , ch2=97;

Chuỗi ký tự :
char *str=“Chuoi Ky Tu”;
char chuoi[50]; strcpy(chuoi,“ ”);
if ( strcmp(chuoi,“”)==0)
cout << “Chuoi rong”;
Nguyễn Công Huy – Khoa CNTT&TT 13
Các khái niệm cơ bản

Kiểu

Chuyển đổi kiểu :

Mặc nhiên (tự động) :
float x = 3.1416;
int y = x ; float sole = x - y;


Do người lập trình sử dụng :
Cú pháp:
( Kiểu ) biểu thức
( Kiểu ) biểu thức
hoặc
Kiểu ( biểu thức )
Kiểu ( biểu thức )
Ví dụ:
int a=10, b=3;
float c1 = a / b ;
float c2 = float (a/b);
float c3 = (float) a / b ;
float c4 = float (a)/b;
Nguyễn Công Huy – Khoa CNTT&TT 14
Các khái niệm cơ bản

Các phép toán

Số học: + , - , * , / , %

Luận lý: ==, !=, >, <, >=, <=, &&, ||, !

Gán : =

Lấy kích thước: sizeof (đối tượng dữ liệu )

Điều kiện : e1 ? e2 : e3

Lấy địa chỉ : &(biến)


Tăng giảm :
x++ , x , ++x , x
tong+= i ; tich *= i;
/= , %= , -= , &= , |= , ^=
Nguyễn Công Huy – Khoa CNTT&TT 15
Các khái niệm cơ bản

Mảng

Khai báo :
<Kiểu> <Tên mảng> [<Kích thước>];
<Kiểu> <Tên mảng> [<Kích thước>];
VD : int m[10]; float ds[MAX];

Sử dụng : phép toán lấy giá trị phần tử.

Thứ tự phần tử : từ 0 đến (kích thước -1)
VD: // CT tính tổng của 10 số Fibonacci đầu tiên
long a[10]; a[0]=a[1]=1;
for (int i=2; i<10 ; i++)
a[i] = a[i-1] + a[i-2];
long tong=0;
for(i=0 ; i<10 ; i++)
tong+=a[i];
Nguyễn Công Huy – Khoa CNTT&TT 16
Các khái niệm cơ bản

Chú thích

Trên 1 dòng :

// chú thích trên 1 dòng

Trên nhiều dòng :
/* chú thích trên nhiều dòng */

Các chỉ thị tiền biên dịch :
# define # undefine # include
# if # else # endif
# if # elif # else # endif
# ifdef # else # endif
# ifndef # else # endif
# error
Nguyễn Công Huy – Khoa CNTT&TT 17
Các khái niệm cơ bản

Nhập xuất

Thư viện hàm : # include <iostream.h>

Nhập :
cin >> Biến
cin >> Biến

Xuất :
cout << (Biểu thức)
cout << (Biểu thức)

Các kiểu dữ liệu có thể nhập xuất :
char , int, unsigned, long, unsigned long, …
float, double, char* , char []

(void*): lấy địa chỉ đầu của chuỗi

Có thể nhập xuất liên tục trên một dòng.
VD: cout << “Gia tri x = “ << x << “ , y = “ <<y;
cout << “Nhap n = “; cin >> n;
Nguyễn Công Huy – Khoa CNTT&TT 18
Các khái niệm cơ bản

Nhập xuất

Một số hàm định dạng toàn cục:

cin.width(n)

cout.width(n)

cout.precision(n)

cin.seekg(n)

Ký tự đặc biệt : \n, \t, \0, \b, \r

Định dạng khác: endl, ends, flush, …

Nhập chuỗi :

gets(char* str);

cin.getline(char* str, int n);
Nguyễn Công Huy – Khoa CNTT&TT 19

Các khái niệm cơ bản

Cấu trúc 1 chương trình đơn giản
Nguyễn Công Huy – Khoa CNTT&TT 20
Cấu trúc điều khiển

Tuần tự

Câu lệnh : viết trên một hay nhiều dòng

Khối lệnh :

Là dãy các lệnh viết trong cặp { }

Tương đương với 1 câu lệnh

Giá trị của biểu thức điều kiện

Bằng 0 : <=> SAI

Khác 0 : <=> đúng
VD: int x=0;
if(x=2)
cout<< “ x bang 2 “;
else
cout<< “ x khac 2 “;
Nguyễn Công Huy – Khoa CNTT&TT 21
Cấu trúc điều khiển

Rẽ nhánh


if (biểu thức)
Lệnh 1;
else
Lệnh 2;

switch (biểu thức) {
case ‘giá trị 1’ : Lệnh 1; [ break; ]
case ‘giá trị 2’ : Lệnh 2; [ break; ]

case ‘giá trị n’ : Lệnh n; [ break; ]
default : Lệnh n+1;
}
Nguyễn Công Huy – Khoa CNTT&TT 22
Cấu trúc điều khiển

Lặp

while (biểu thức)
Lệnh ;

do
Lệnh ;
while (biểu thức);

for ( e1 ; e2 ; e3 )
Lệnh;
e1 : biểu thức khởi tạo
e2 : biểu thức điều kiện
e3 : biểu thức lặp

Nguyễn Công Huy – Khoa CNTT&TT 23
Cấu trúc điều khiển

Từ khóa break

Thoát ra khỏi cấu trúc switch

Thoát ra khỏi vòng lặp : while, do while, for

Từ khóa continue: Trở về đầu vòng lặp

Lệnh nhảy goto

Dùng chung với nhãn lệnh

Không nên sử dụng vì sẽ phá vở cấu trúc CT

Ưu điểm : thoát khỏi các vòng lặp lồng sâu
Nguyễn Công Huy – Khoa CNTT&TT 24
Hàm và cấu trúc chương trình

Hàm

Cú pháp :
<Kiểu trả về> <Tên hàm> (Danh sách kiểu và tham số)
{ [ Khai báo dữ liệu cục bộ ]
[ Thân hàm ]
[ Câu lệnh return ]
}
VD: int Max ( int x, int y) {

int somax;
somax = (x>y) ? x : y;
return somax;
}
Nguyễn Công Huy – Khoa CNTT&TT 25
Hàm và cấu trúc chương trình

Hàm

Khai báo prototype :
<Kiểu trả về> <Tên hàm> ( Danh sách kiểu );
VD: int Max ( int , int );
int Min ( int , int );
void main() {
int a =10 , b =5;
cout<<“So max= “<< Max(a,b)<<endl;
cout<<“So min= “<< Min(a,b)<<endl;
}
int Max (int x , int y) { }
int Min (int x , int y) { }

×