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.
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
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
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
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
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)
// 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 []
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
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) {