Networks Business Online Việt Nam & International VH2

Tài liệu lập trình hướng đối tượng bộ môn tin học công nghiệp – TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP – StuDocu

Đăng ngày 08 November, 2022 bởi admin

TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP

KHOA ĐIỆN TỬ

BỘ MÔN TIN HỌC CÔNG NGHIỆP



TÀI LIỆU

LỜI GIẢI BÀI TẬP

TÊN HỌC PHẦN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++

MÃ HỌC PHẦN: TEE

BIÊN SOẠN: LÊ HẢI TRUNG

THÁI NGUYÊN – 2015

LỜI NÓI ĐẦU

Lập trình hướng đối tượng là một giải pháp lập trình được cho phép thao tác trực tiếp trên những đối tượng đơn cử, một chương trình viết theo hướng đối tượng được chia thành những lớp đối tượng từ đó được cho phép những đối tượng này hoàn toàn có thể thừa kế được những đặc tính của những đối tượng khác và hoạt động giải trí trải qua sự tương tác với những đối tượng khác nhờ chính sách truyền thông báo. Từ đó giúp lập trình theo hướng đối tượng có được sự linh động, tiện ích trong việc kiến thiết xây dựng và pháp triển những ứng dụng. Ngày nay lập trình hướng đối tượng được vận dụng thoáng đãng trên quốc tế, nó đã phần đông thay thế sửa chữa trọn vẹn những giải pháp lập trình truyền thống cuội nguồn để mang lại sự hiệu suất cao cũng như tiện ích cho người sử dụng. Các ngôn từ lập trình hướng đối tượng được tăng trưởng can đảm và mạnh mẽ và được sử dụng thông dụng như C #, C + +, Visual Basic, Java, Visual C. .. Vì vậy việc nghiên cứu và điều tra giải pháp lập trình mới này là thực sự thiết yếu so với những người làm Tin học. Cuốn bài tập này là tổng hợp giải thuật của những đề bài cơ bản về lập trình hướng đối tượng trên C + +. Đây là tài liệu tìm hiểu thêm so với những bạn sinh viên chuyên ngành CNTT, Giao hàng tốt cho việc ôn thi và là cơ sở để rèn luyện những kiến thức và kỹ năng lập trình hướng đối tượng trên những ngôn từ bậc cao hơn. Trong quy trình biên soạn chắc như đinh vẫn còn nhiều thiếu sót, hy vọng nhận được sự góp phần quan điểm nhiệt tình của thầy, cô và những bạn .

CHƯƠNG 5: KHUÔN HÌNH

5 Tóm tắt lý thuyết ……………………………………………………………………………………….. 78

5 Các dạng bài tập ……………………………………………………………………………………….. 79

5 Các vấn đề về thảo luận, thực hành, thí nghiệm ……………………………………………. 80

5 Bài tập sinh viên tự làm ……………………………………………………………………………… 80

TÀI LIỆU THAM KHẢO

CHƯƠNG 1

CÁC KHÁI NIỆM CƠ BẢN CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

1 Tóm tắt lý thuyết
 Tìm hiểu về cách tiếp cận hướng đối tượng, những ưu điểm, nhược điểm của lập
trình truyền thống và các đặc điểm của lập trình hướng đối tượng.
 Các khái niệm cơ sở của phương pháp hướng đối tượng: Đối tượng, Lớp, Trừu
tượng hóa dữ liệu và bao gói thông tin, kế thừa, tương ứng bội…
 Các bước cần thiết để thiết kế chương trình theo hướng đối tượng
 Các ưu điểm của lập trình hướng đối tượng
 Các ngôn ngữ hướng đối tượng
1 Các dạng bài tập
Câu 1:
Tại sao phải lập trình hướng đối tượng?
Để làm được các bài tập của chương này sinh viên cần nắm chắc các khái niệm cơ
bản, các đặc điểm, tính chất của lập trình hướng đối tượng,
1 Các vấn đề về thảo luận, thực hành, thí nghiệm
Không có
1 Bài tập sinh viên tự làm
Câu 1:
Nêu đặc điểm của lập trình hướng đối tượng?
Lập trình hướng đối tượng có các đặc điểm quan trọng sau:
 Nhấn mạnh trên dữ liệu hơn là thủ tục
 Các chương trình được chia thành các đối tượng
 Dữ liệu được che giấu và không thể được truy xuất từ các hàm bên ngoài
 Các đối tượng có thể giao tiếp với nhau thông qua các hàm
 Dữ liệu hay các hàm mới có thể được thêm vào khi cần
 Theo tiếp cận từ dưới lên

void stop();
void shutdown();
};
Câu 1: Liệt kê tất cả các thuộc tính và hành động của đối tượng Xe buýt. Đề xuất lớp
Bus.
 Thuộc tính: màu xe, số chỗ ngồi, trọng lượng, tuyến xe…
 Hành động: khởi động xe, chạy xe, dừng xe, tắt máy.
class Bus
{
private:
char colour[10];
int seats;
float weight;
char ways[30];
public:
void start();
void run();
void stop();
void shutdown();
};

Câu 1: Từ hai lớp Car và Bus của bài 2 và bài 3. Đề xuất một lớp Động cơ (Engine) cho
hai lớp trên kế thừa, để tránh trùng lặp dữ liệu giữa hai lớp Car và Bus.
class Engine
{
public:
char colour[10];
float weight;

public : void start ( ) ; void run ( ) ; void stop ( ) ; void shutdown ( ) ; } ;

2 Các dạng bài tập
Câu 2:
Cho biết kết quả khi thực hiện chương trình sau:
#include
class samp {
int a, b;
public:
samp(int n, int m) { a=n; b=m; }
int get_a() {return a; }
int get_b() {return b; }
};
void main() {
samp ob[4]= {samp(1, 2), samp(3, 4), samp(5, 6), samp(7, 8) };
int i;
samp *p;
p=ob;
for(i=0; i<4; i++) { cout <get_a()<< “ ”; cout <get_b()<< “ ”; p++; } cout <<”\n”; }

Hướng dẫn:
Với dạng bài này cần nắm vững ý nghĩa, tác dụng của từng câu lệnh trong chương
trình để từ đó xác định được kết quả hiển thị ra màn hình khi chương trình được thực
hiện.
Trong chương trình trên khi ta truyền tham số samp(1,2) khi đó tham số n, m trong
samp sẽ lần lượt nhận giá trị là 1 và 2. Sau đó a sẽ nhận giá trị của n tức là 1, b sẽ nhận
giá trị của m tức là 2 để trả lại kết quả cho hai giá trị a, b do đó trên màn hình sẽ in ra giá
trị của a và b lần lượt là 1 và 2, tương tự cho các samp tiếp theo. Sau khi chương trình
được thực hiện kết quả hiển thị ra màn hình lần lượt là:
1 2 3 4 5 6 7 8
2 Các vấn đề về thảo luận, thực hành, thí nghiệm
Chương này cung cấp kiến thức cơ bản về lập trình hướng đối tượng C++ cho sinh
viên, cơ chế hoạt động ý nghĩa của các câu lệnh đơn giản về lập trình hướng đối tượng từ
đó giúp sinh viên bước đầu làm quen với lập trình hướng đối tượng. Kết thúc chương 2
yêu cầu sinh viên phải hiểu và viết được những chương trình đơn giản
2 Bài tập sinh viên tự làm
Câu 2:
Cho biết kết quả khi thực hiện chương trình sau:
#include
class samp {
int a;
public:
void set_a(int n) { a=n; }
int get_a() {return a; } };
void main() {
samp ob[4]; int i;
for(i=0; i<4; i++) ob[i].set_a(i); for(i=0; i<4; i++) cout<< ob[i].get_a();

public:
samp(int n)
{i=n; }
int get_i()
{return i; }
};
int sqr_it(samp o){ return o_i()*o_i(); }
void main() {
samp a(10), b(4);
cout << sqr_it(a) <<”\n”; cout << sqr_it(b) << “\n”; } Sau khi chương trình được thực hiện kết quả hiển thị ra màn hình lần lượt là: 100 16 Câu 2: Viết chương trình xây dựng một lớp a tính giá trị của tổng sau:
S=1+2+3+…+n (n nguyên dương)
#include
class a{
int n,i;
float s;
public:
void nhap(){
cout<<"nhap n="; cin>>n;}
float tong(){
s=0;

for(i=1;i<=n;i++) s=s+i; return s;} void hienthi(){ cout<<" tong s="<

Câu 2: Xây dựng một lớp TamGiac để mô tả các đối tượng tam giác bao gồm các hàm
thành phần như sau:
class TamGiac
{
private:
double a, b, c; //Ba cạnh tam giác
public:
TamGiac(double aa = 0, double bb = 0, double cc = 0);
void Nhap(); //Nhập ba cạnh
void Xuat(); //Xuất thông tin tam giác
int HopLe(); //Kiểm tra ba cạnh tam giác hợp lệ không?
void PhanLoai(); //Phân loại tam giác
double ChuVi(); //Tính chu vi tam giác
double DienTich(); //Tính diện tích tam giác
};

{ if ( ( a + b > c ) và và ( b + c > a ) và và ( c + a > b ) và và ( a > 0 ) và và ( b > 0 ) và và ( c > 0 ) ) return 1 ; else return 0 ; } void phanloai ( ) { if ( ( ( a ! = b ) và và ( a ! = c ) ) | | ( ( b ! = a ) và và ( b ! = c ) ) | | ( ( c ! = a ) và và ( c ! = b ) ) ) { if ( ( a = = b ) | | ( b = = c ) | | ( c = = a ) ) cout < < " Tam giac can " ; else if ( ( aa = = bb + cc ) | | ( bb = = aa + cc ) | | ( cc = = aa + b * b ) ) cout < < " Tam giac vuong " ; else cout < < " Tam giac thuong " ; } else cout < < " Tam giac deu " ; } double chuvi ( ) { double p ; p = a + b + c ; return p ; } double dientich ( ) { double p, s ; p = ( a + b + c ) / 2 ;

s=sqrt(p*(p-a)(p-b)(p-c));
return s;
}
};
void main()
{
tamgiac a;
a();
a();
cout<

Câu 2: Xây dựng một lớp Mang1c dữ liệu thành phần kiểu số nguyên, các hàm thành
phần gồm:
– Hàm khởi tạo mảng
– Hàm in mảng
– Hàm in phần tử lớn nhất, phần tử nhỏ nhất của mảng

if (maxa[i]) min=a[i];
}
cout<<”\nMinimum value: “<

Câu 2: Xây dựng lớp Date. Dữ liệu thành phần bao gồm ngày, tháng, năm. Các hàm
thành phần bao gồm: hàm tạo, hàm truy cập dữ liệu, hàm normalize() để chuẩn hóa dữ
liệu nằm trong khoảng quy định của ngày (1  ngày

#include
#include
class date
{
public:
int day, month, year;
public:
void create()
{
cout<<"Input the value of day: "; cin>>day;
cout<<"Input the value of month: "; cin>>month;
cout<<"Input the value of year: "; cin>>year;
}
int get_day()
{
return day;
}
int get_month()
{
return month;
}
int get_year()
{
return year;
}
int daysIn(int month)
{
int daysIn;

Source: https://vh2.com.vn
Category : Tin Học