1. Trang chủ
  2. » Thể loại khác

Bài tập thực hành:LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

35 118 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 35
Dung lượng 1,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xây d ựng lớp Account Một tài khoản ngân hàng của khách hàng có một số thông tin: Mã số tài khoản, s ố tiền • Khai báo các fields • Thêm phương thức constructor để tạo đối tượng tài k

Trang 1

TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN HỌC TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

Biên soạn:

Tôn Quang Toại

TP.HỒ CHÍ MINH, 2016

Trang 2

M ỤC LỤC

BU ỔI 1 L ỚP VÀ ĐỐI TƯỢNG (1/3) 1

BU ỔI 2 L ỚP VÀ ĐỐI TƯỢNG (2/3) 5

BU ỔI 3 L ỚP VÀ ĐỐI TƯỢNG (3/3) 9

BU ỔI 4 OPERATOR OVERLOADING 12

BU ỔI 5 TH ỪA KẾ 15

BU ỔI 6 ĐA HÌNH (1/2) 19

BU ỔI 7 ĐA HÌNH (2/2) 25

BU ỔI 8 INTERFACE 27

BU ỔI 9 X Ử LÝ NGOẠI LỆ 29

Trang 3

L ỚP VÀ ĐỐI TƯỢNG (1/3) BUỔI 1

M ỤC TIÊU

Sau khi sinh viên hoàn thành các yêu cầu của buổi này, sinh viên có thể:

1 Hiểu được nguyên tắc đầu tiên (trụ cột đầu tiên) của lập trình hướng đối tượng: Đóng gói (Encapsulation)

2 Hiểu cách mô hình các đối tượng/lớp đơn giản trong thế giới thực thành các đối tượng/lớp trong lập trình

3 Biết và Hiểu rõ các thành ph ần cơ bản của một lớp

a Fields

b Constructors

c Methods

4 Có kỹ năng xây dựng các lớp đơn giản, cùng với các phương thức tính

toán đơn giản thông qua ngôn ngữ lập trình C#

Bài 1 Xây d ựng lớp Account

Một tài khoản ngân hàng của khách hàng có một số thông tin: Mã số tài khoản,

s ố tiền

• Khai báo các fields

• Thêm phương thức constructor để tạo đối tượng tài khoản có 2 thông tin trên

• Thêm các phương thức Get/Set cho các fields

Viết phương thức Main()

• Dùng constructor để tạo 1 tài khoản, sau đó xuất thông tin tài khoản lên màn hình

• Thay đổi số tiền trong tài khoản, sau đó xuất lại thông tin tài khoản lên màn hình

Trang 4

Bài 2 Xây d ựng lớp Book

Một quyển sách chứa một số thông tin: mã sách, tên sách, giá sách, giảm giá

• Khai báo các fields

• Thêm các phương thức constructors để:

o Tạo đối tượng sách có mã sách và tên sách

o Tạo đối tượng sách có đầy đủ 4 thông tin trên

• Thêm các phương thức Get/Set cho các fields

• Thêm phương thức tính giá bán của 1 quyển sách, biết rằng:

Giá bán m ột quyển sách = Giá sách – Giảm giá

Viết phương thức Main()

• Dùng constructor để tạo 1 quyển sách

• In thông tin quyển sách ra màn hình, sau đó tính và xuất giá bán của quyển sách đó

• Thay đổi Giảm giá, sau đó in thông tin quyển sách ra màn hình

• Tính và xuất giá bán mới của quyển sách đó

Gia ban cua sach: 63000

Thong tin quyen sach sau khi cap nhat:

Trang 5

- Ten sach: Mindset

- Gia sach: 70000

- Giam gia: 24000

Gia ban cua sach: 46000

Bài 3 Xây d ựng lớp Student

Một sinh viên có một số thông tin: mã sinh viên, họ tên, năm sinh, địa chỉ

• Khai báo các fields

• Thêm các constructors để:

o Tạo đối tượng có mã sinh viên và tên sinh viên

o Tạo đối tượng có đầy đủ 4 thông tin trên

• Thêm các phương thức Get/Set cho các fields

• Thêm phương thức tính tuổi của sinh viên

Viết phương thức Main() dùng constructor để tạo 1 sinh viên, sau đó in thông

tin sinh viên ra màn hình và tính tuổi của sinh viên đó

- Dia chi: 123 Nguyen Trai, P10, Q5, TP.HCM

Tuoi cua sinh vien: 19 tuoi

Bài 4 Xây d ựng lớp Circle

Một hình tròn có bán kính r

• Khai báo field

• Thêm các constructors:

o Constructor dùng để tạo đối tượng hình tròn có bán kính r

o Constructor không có tham số (còn gọi là parameterless

constructor hay default constructor) để tạo đối tượng hình tròn

có bán kính r bằng 1

Trang 6

• Thêm các phương thức Get/Set cho field

• Thêm phương thức Input() để nhập thông tin của hình tròn từ bàn phím

• Thêm phương thức Output() để xuất thông tin của hình tròn ra màn hình

• Thêm phương thức tính diện tích của hình tròn: 𝑆 = 𝜋 𝑟2

• Thêm phương thức tính chu vi của hình tròn: 𝐶 = 2 𝜋 𝑟

Viết phương thức Main()

• Dùng default constructor để tạo 1 hình tròn có giá trị mặc định

• Xuất thông tin hình tròn ra màn hình

Nhap hinh tron:

Nhap ban kinh r: 16

Thong tin hinh tron:

Ban kinh r: 16

Dien tich hinh tron: …

Chu vi hinh tron: …

Trang 7

L ỚP VÀ ĐỐI TƯỢNG (2/3) BUỔI 2

M ỤC TIÊU

Sau khi sinh viên hoàn thành các yêu cầu của buổi này, sinh viên có thể:

1 Có kỹ năng sử dụng các properties

2 Có kỹ năng sử dụng các lớp đã xây dựng:

a Tạo Mảng các đối tượng của lớp đã xây dựng

b Tạo Field của lớp có kiểu là lớp khác

Bài 1 Dùng property v ới lớp Account

Trong lớp Account thay thế các phương thức Get/Set thành các properties Và kiểm tra tính hợp lệ trước khi thay đổi dữ liệu của field

• S ố tiền phải là số dương

Bài 2 Dùng properties v ới lớp Book

Trong lớp Book thay thế các phương thức Get/Set thành properties Và kiểm

tra tính hợp lệ trước khi thay đổi dữ liệu của các fields

• Tên sách không được là chuỗi rỗng

• Giá sách phải là số dương

• Gi ảm giá không được là số âm

Bài 3 Dùng properties v ới lớp Student

Trong lớp Student thay thế các phương thức Get/Set thành properties Và kiểm

tra tính hợp lệ trước khi thay đổi dữ liệu của các fields

• H ọ tên không được là chuỗi rỗng

Năm sinh là phải là số dương

Địa chỉ không được là chuỗi rỗng

Trang 8

Bài 4 Dùng properties v ới lớp Circle

Trong lớp Circle thay thế các phương thức Get/Set thành properties Và kiểm tra tính hợp lệ trước khi thay đổi dữ liệu của field

• Bán kính r là phải là số không âm

Bài 5 S ử dụng mảng đối tượng của lớp Circle

Tạo project mới, sau đó thêm lớp Circle ở project trên vào project này

Viết phương thức Main()

• Khai báo và nhập n hình tròn (số n được nhập từ bàn phím)

• Xuất thông tin n hình tròn đã nhập ra màn hình

• Tính và xuất diện tích của từng hình tròn trên

• Tìm diện tích lớn nhất trong n hình tròn trên

Ví dụ:

Nhap so duong tron n: 3

Nhap duong tron thu 1:

Dien tich cua 3 duong tron:

Dien tich duong tron 1: …

Dien tich duong tron 2: …

Dien tich duong tron 3: …

Dien tich duong tron lon nhat: …

Bài 6 T ạo lớp Color

Trên máy tính, màu (color) được biểu diễn bằng các giá trị red, green, blue (có

giá trị từ 0 đến 255) và alpha (hay transparency, mức độ trong suốt của màu,

Trang 9

cũng có giá trị từ 0 đến 255, với 0 là hoàn toàn trong suốt, 255 là đậm đặc) Hãy tạo lớp Color

• Thêm các instance variables (một cách gọi khác của fields)

• Thêm các constructors

o Constructor không tham số (default constructor) để tạo đối

tượng sao cho các fields: red, green, blue, alpha có giá trị mặc định

là 255 (màu trắng)

o Constructor có tham số để tạo đối tượng màu có 4 thông tin trên

o Constructor có tham số là đối tượng color cho trước Constructor này có nhiệm vụ tạo đối tượng màu và sao chép thông tin của đối tượng color trong tham số vào đối tượng mới tạo (Người ta còn gọi

constructor này là Copy constructor)

public Color() {}

public Color(int red, int green, int blue, int alpha) {}

public Color(Color color) {}

• Thêm các properties cho các fields với các ràng buộc của các field như

đã mô tả

• Thêm phương thức tính giá trị mức xám (grayscale) của màu (grayscale

bằng trung bình của red, green, blue)

Bài 7 Xây d ựng lớp Ball, sử dụng lớp Color làm field

Trái banh có các fields: kích thước (size hay radius), màu sắc (color) và số lần

ném banh (timeOfThrown)

• Khai báo các fields cho Ball (field color nên dùng kiểu Color đã tạo

trong bài trước)

Trang 10

• Thêm các properties cho các fields (nhớ ràng buộc dữ liệu hợp lý)

Thêm phương thức Pop (Pop nghĩa là mô hình việc làm cho trái banh nổ):

Banh nổ nghĩa là thay đổi size thành giá trị 0

• Thêm phương thức Throw (Throw nghĩa là mô hình việc ném trái banh): Ném banh nghĩa là cộng 1 vào số lần ném (nhưng chỉ cộng khi banh chưa

bị nổ)

• Viết phương thức Input() để nhập thông tin trái banh

• Viết phương thức Output() xuất thông tin trái banh

Viết phương thức Main()

• Khai báo và tạo n trái banh có giá trị mặc định (số n được nhập từ bàn phím)

• Nhập lại thông tin trái banh thứ 0

• Xuất thông tin n trái banh ra màn hình (kiểm tra xem dữ liệu có như mong đợi không)

• Ném trái banh thứ 1, 2

• Cho nổ trái banh thứ 1 và nén trái banh thứ 1

• In số lần nén của các trái banh

Trang 11

L ỚP VÀ ĐỐI TƯỢNG (3/3) BUỔI 3

M ỤC TIÊU

Sau khi sinh viên hoàn thành các yêu cầu của buổi này, sinh viên có thể:

Có kỹ năng sử dụng các lớp đã xây dựng:

a Tạo Field của lớp là mảng/danh sách có kiểu là lớp khác

b Tạo Phương thức có tham số là lớp

c Tạo Phương thức có kiểu trả về là lớp

Bài 1 Xây d ựng lớp Account

Một tài khoản ngân hàng của khách hàng có một số thông tin: Mã số tài khoản,

o Tạo đối tượng tài khoản có 2 thông tin trên

• Thêm các properties cho các fields

Thêm phương thức Input() để nhập thông tin tài khoản từ bàn phím

Thêm phương thức Output() để xuất thông tin tài khoản ra màn hình

Bài 2 Xây d ựng lớp Customer sử dụng lớp Account

Một khách hàng của ngân hàng có một số thông tin sau: Mã số khách hàng, số

Chứng minh nhân dân, địa chỉ Ngoài ra, một khách hàng có thể có nhiều tài

Trang 12

o Constructor tạo đối tượng khi có mã số khách hàng

• Thêm các properties cho các fields

Thêm phương thức Input() để nhập thông tin khách hàng từ bàn phím

(Không nhập danh sách tài khoản của khách hàng)

Thêm phương thức Output() để xuất thông tin khách hàng ra màn hình

(Bao gồm cả thông tin các tài khoản của khách hành)

Viết phương thức Main()

• Nhập thông tin của một khách hàng

• Xuất thông tin khách hàng đã nhập lên màn hình

Bài 3 Phương thức có tham số là lớp đã định nghĩa

Trong lớp Customer, cài đặt phương thức để thêm một tài khoản đã nhập của khách hàng vào danh sách các tài khoản của khách hàng

public void AddAcount(Account account)

Viết phương thức Main()

• Nhập thông tin của một tài khoản

• Thêm tài khoản đã nhập vào danh sách tài khoản của khách hàng

• Xuất thông tin khách hàng đã nhập lên màn hình (kiểm tra xem có thông tin tài khoản vừa mới thêm vào chưa)

Bài 4 Phương thức có kiểu trả về là kiểu lớp

Trong lớp Customer, viết phương thức tìm kiếm tài khoản có mã số tài khoản cho trước

Account SearchAccount(string accountNo)

Viết phương thức Main()

• Nhập mã số tài khoản của khách hàng

Trang 13

• Kiểm tra xem khách hàng có tài khoản đó không? Nếu có xuất thông tin

của tài khoản

Trang 14

OPERATOR OVERLOADING BUỔI 4

M ỤC TIÊU

Sau khi sinh viên hoàn thành các yêu cầu của buổi này, sinh viên có thể:

1 Hiểu được ý nghĩa của operator overloading

2 Biết được các phép toán được overload và phép toán không được overload

3 Có k ỹ năng sử dụng operator overloading

Bài 1 Xây d ựng lớp Vector

Một vector trong không gian 2 chiều gồm có 2 phần x và y

Ví dụ:

𝑎⃗ = (1, 2) 𝑏�⃗ = (3, 4)

T ổng 2 vector được định nghĩa : 𝑐⃗ = 𝑎⃗ + 𝑏�⃗ = (1 + 3, 2 + 4) = (4, 6)

Hi ệu của 2 vector được định nghĩa : 𝑑⃗ = 𝑎⃗ − 𝑏�⃗ = (1 − 3, 2 − 4) = (−2, −2)

Hãy xây dựng lớp Vector:

• Khai báo cáo fields

• Viết default constructor tạo vector (0, 0)

• Viết constructor tạo vector có 2 thành phần trên

Cài đặt các properties

• Overload phép toán cộng 2 vector

• Overload phép toán trừ 2 vector

Viết phương thức Main() tạo 2 đối tượng vector, tính tổng và hiệu 2 vector đó, sau đó xuất kết quả ra màn hình để kiểm tra kết quả đúng hay không

Bài 2 Overload phép toán so sánh

Hai vector được gọi là bằng nhau khi các thành phần của 2 vector tương ứng

bằng nhau, nghĩa là với: 𝑎⃗ = (𝑎1, 𝑎2); 𝑏�⃗ = (𝑏1, 𝑏2);

Trang 15

𝑎⃗ == 𝑏�⃗ ⟺ �𝑎𝑎1 = 𝑏1

2 = 𝑏2Trong lớp vector hãy overload phép toán so sánh bằng “==” giữa hai vector Viết phương thức Main() kiểm tra phép toán “==” vừa overload

Bài 3 Cộng số thực với vector

Cộng vector với một số thực được định nghĩa như sau:

Cho 𝑎⃗ = (𝑎1, 𝑎2) và số thực 𝑘

𝑎⃗ + 𝑘 = (𝑎1 + 𝑘, 𝑎2+ 𝑘) Trong lớp vector hãy

• Overload phép toán cộng vector với 1 số thực

• Overload phép toán cộng 1 số thực với 1 vector

Bài 4 Lớp Phân số

Phân số (PhanSo) gồm có tử số và mẫu số Hãy xây dựng lớp phân số:

• Khai báo các fields

• Constructor không tham số để tạo phân số 0/1

• Constructor có tham số để tạo phân số có 2 thông tin trên

Cài đặt các Properties

• Phương thức nhập phân số từ bàn phím

• Phương thức xuất phân số ra màn hình

• Overload các phép toán cộng (+), trừ (-) hai phân số

• Overload các phép toán nhân (*), chia (/) hai phân số

Viết phương thức Main() nhập vào 2 phân số, tính tổng, hiệu, tích, thương của 2 phân số

Trang 16

Sử dụng lớp phân số trên thực hiện các chức năng

• Nhập n phân số (n nhập từ bàn phím) (Có thể dùng List nếu đã học)

• Tính tổng n phân số và xuất kết quả ra màn hình

Bài 6 Các phép toán so sánh trong phân s

Trong lớp phân số, hãy cài đặt thêm các phép toán so sánh

Trong phương thức Main()

• Nh ập n phân số

• S ắp xếp các phân số tăng dần và xuất ra màn hình để kiểm chứng

• Tìm 1 phân số có giá trị lớn nhất và xuất ra màn hình phân số này

Trang 17

TH ỪA KẾ BUỔI 5

M ỤC TIÊU

Sau khi sinh viên hoàn thành các yêu cầu của buổi này, sinh viên có thể:

1 Hiểu được nguyên tắc thứ hai (trụ cột thứ hai) của lập trình hướng đối

tương: th ừa kế (inheritance)

2 Xây dựng lớp mới (l ớp dẫn xuất) bằng cách thừa kế từ lớp cũ (lớp cơ sở)

và thêm các fields, properties và method mới

3 Sử dụng constructor của lớp cơ sở

4 Sử dụng constructor c ủa lớp cơ sở

• Viết default constructor để tạo đối tượng có giá trị mặc định

• Viết parameter constructor để tạo đối tượng có 2 thông tin trên

Bài 2 L ớp dẫn xuất

Chúng ta cần quản lý thông tin của một sinh viên (Student) trên máy tính Sinh

viên (Student) cũng là một người (Person) thông thường, nghĩa là cũng có các

thông tin như: tên (name), email Tuy nhiên, sinh

viên còn có thêm thông tin khác là mã sinh viên

(StudentID)

Hãy xây dựng lớp Student

• Lớp Student th ừa kế lớp Person

• Khai báo Field

Cài đặt Property

Trang 18

• Viết default constructor để tạo đối tượng có giá trị mặc định

• Viết parameter constructor để tạo đối tượng có 3 thông tin trên

Viết phương thức Main() tạo 1 đối tượng sinh viên (dùng constructor để tạo) và

xuất thông tin sinh viên lên màn hình

Bài 3 Gọi constructor của lớp cơ sở

Trong bài 2, chỉnh sửa lại parameter constructor của lớp Student sao cho constructor này có thể gọi constructor của lớp cơ sở (Person) để nhờ khởi tạo

name và email khi tạo đối tượng sinh viên

Bài 4 Xây d ựng lớp Tam giác và lớp Ch ữ nhật

L ớp cơ sở: Lớp hình (Shape)

Xây dựng lớp hình (Shape) dùng để mô hình hóa một hình gồm có thông tin

chiều cao (height) và chiều rộng (width) của hình

• Khai báo các Fields

Cài đặt default constructor để tạo đối tượng có giá trị mặc định

Cài đặt parameter constructors để tạo đối tượng có 3 thông tin trên

Cài đặt các properties

L ớp dẫn xuất: Xây dựng lớp tam giác (Triangle) và lớp hình chữ nhật

(Rectangle)

Hình Tam giác và hình chữ nhật cũng là một hình có các thông tin như sau:

Trong đó tham số base của tam giác có thể coi như là width

Xây dựng 2 lớp dẫn xuất là lớp hình tam giác (Triangle) và lớp hình chữ nhật

(Rectangle) th ừa kế từ lớp Shape

height height

Trang 19

Sơ đồ thừa kế

Cài đặt default constructor

Cài đặt parameter constructors

Cài đặt các properties (Chú ý: lớp Triangle tạo property có tên là Base thay vì Width)

Cài đặt thêm phương thức Area() để tính diện tích các hình tương ứng

𝑆𝑡𝑎𝑚 𝑔𝑖á𝑐 = 12 × ℎ𝑒𝑖𝑔ℎ𝑡 × 𝑤𝑖𝑑𝑡ℎ

𝑆𝑐ℎữ 𝑛ℎậ𝑡 = ℎ𝑒𝑖𝑔ℎ𝑡 × 𝑤𝑖𝑑𝑡ℎ

Bài 5 Xây dựng lớp dựa trên sơ đồ

Cho sơ đồ lớp như sau

Trang 20

• Hãy xây dựng các lớp thừa kế theo sơ đồ trên

• Product có constructor với 2 tham số

• Software có constructor với 3 tham số

• Hardware có constructor với 3 tham số

• Tạo đối tượng Software và xuất thông tin đối tượng ra màn hình

• Tạo đối tượng Hardware và xuất thông tin đối tượng ra màn hình

Ngày đăng: 18/11/2020, 23:30

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w