Tải bản đầy đủ (.pdf) (15 trang)

Lập trình hướng đối tượng với NET & c# chuong7 bai tap

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 (183.1 KB, 15 trang )







BÀI TẬP
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI .NET


Trình độ đào tạo
Hệ đào tạo
:
:
Đại học
Chính quy


MỤC LỤC

BÀI THỰC HÀNH 1

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

BÀI THỰC HÀNH 2

Lớp và đối tượng(tiếp).......................................................................................4

BÀI THỰC HÀNH 3

Kế thừa và đa hình ............................................................................................6



BÀI THỰC HÀNH 4

Kế thừa và đa hình(tiếp)....................................................................................7

BÀI THỰC HÀNH 5

Kế thừa và đa hình(tiếp)..................................................................................11

BÀI THỰC HÀNH 6

Giao diện .........................................................................................................13


Bài tập lập trình hướng đối tượng
Trang 2


BÀI THỰC HÀNH 1 Lớp và đối tượng
* Mục tiêu
- Khai báo lớp và đối tượng
-
Sử dựng các từ khóa đặc tả truy cập public, private, protetecd …

- Xây dựng phương thức khởi tạo
- Sử dụng đối tượng this

Bài 1: Cho thiết kế lớp Employee (nhân viên) như sau:
Các thành phần dữ liệu:
id: Định danh, kiểu int. Định danh này được sinh tự động và tăng dần bắt đầu từ 1.

name: Họ tên nhân viên, kiểu String.
yearOfBirth: Năm sinh nhân viên, kiểu int.
salaryLevel: Bậc lương, kiểu double.
basicSalary: Lương cơ bản, kiểu double. (Chú ý lương cơ bản là thuộc tính được sử dụng
chung cho mọi đối tượng của lớp Employee).
Các phương thức:
GetId( ): trả lại định danh của nhân viên.
GetName( ): trả lại tên của nhân viên.
GetYearOfBirth( ): trả lại năm sinh của nhân viên.
GetIncome( ): trả lại thu nhập của nhân viên. Thu nhập được tính bằng bậc lương nhân
lương cơ bản (salaryLevel * basicSalary).
Input(): nhập thông tin nhân viên.
Display( ): hiển thị thông tin về nhân viên. Bao gồm các thông tin: định danh, tên, năm
sinh, lương cơ bản, thu nhập.
SetSalaryLevel( ): thiết lập bậc lương cho nhân viên.
SetBasicSalary( ): thiết lập lương cơ bản.
Hãy viết chương trình cài đặt lớp Employee và lớp sử dụng Employee.

Bài 2: Xây dựng lớp Stack để mô phỏng một stack bao gồm
- Phương thức khởi tạo không tham số với việc khởi tạo stack ngầm định có 20 phần tử và
stack rỗng
- Phương thức khởi tạo một tham số với việc khởi tạo số phần tử của stack được truyền vào
thông qua đối số của phương thức và stack rỗng
- Phương thức IsEmpty kiểm tra xem stack có rỗng không
- Phương thức IsFull kiểm tra xem stack có đầy không
- Phương thức Push và Pop để thêm vào, lấy ra một phần tử
Hãy viết chương trình cài đặt lớp Stack và lớp sử dụng Stack.

Bài 3: Xây dựng lớp ComplexNumber biểu diễn số phức với các yêu cầu sau:
- Thuộc tính:

+ Phần thực
+ Phần ảo
Bài tập lập trình hướng đối tượng
Trang 3

- Phương thức:
- Phương thức thiết lập 2 tham số tương ứng với phần thực và phần ảo
- Hiển thị một số phức ra màn hình
- Thực hiện các phép toán cộng số phức
- Thực hiện các phép trừ hai số phức
Hướng dẫn:
Trong lớp ComplexNumber khi xây dựng phương thức cộng, trừ hai số phức cần chú ý
các vấn đề như sau:
- Mỗi số phức z đều được biểu diễn duy nhất dưới dạng:
z = a + b.i.
trong đó a, b là các số thực và a gọi là phần thực, b gọi là phần ảo. Dạng biểu diễn này được gọi
là dạng đại số của số phức z.
- Với cách biểu diễn dưới dạng đại số, phép cộng và nhân các số phức được thực hiện như
phép cộng và nhân các nhị thức bậc nhất với lưu ý rằng i
2
= –1. Như vậy, ta có:
(a + b.i) + (c + d.i) = (a + c) + (b + d).i
(a + b.i)(c + d.i) = (a.c - b.d) + (b.c + a.d).i

Bài 4: Viết chương trình chuyển một số từ hệ cơ số 10 sang hệ cơ đếm cơ số 16 bằng cách sử
dụng phép toán chia liên tiếp.
Hướng dẫn:
- Xây dựng một lớp stack
- Xây dựng lớp Hexa lớp này gồm
+ Các thành phần dữ liệu:

n: một số nguyên ở hệ đếm cơ số 10
s: một đối tương stack
+ Các phương thức: Nhập dữ liệu, chuyển cơ số, hiện thị kết quả.

Bài 5: Xây dựng lớp Phân Số biểu diễn một phân số bao gồm:
+ Các thuộc tính
- Tử số
- Mẫu số
+ Các phương thức sau cho lớp.
- Phương thức khởi tạo không có tham số, tạo phân số có tử = 0, mẫu =1.
- Phương thức khởi tạo có tham số.
- Phương thức khởi tạo sao chép.
- Phương thức cộng, trừ, nhân, chia phân số này với một phân số khác.
- Phương thức kiểm tra hai phân số có bằng nhau không.
- Phương thức rút gọn phân số: làm cho phân số tối giản.
- Phương thức in phân số ra màn hình dạng ts/ms.
Hãy viết chương trình cài đặt và sử dụng lớp Phân Số.


Bài tập lập trình hướng đối tượng
Trang 4

BÀI THỰC HÀNH 2 Lớp và đối tượng(tiếp)
* Mục tiêu
- Nạp chồng phương thức
- Thuộc tính và thủ tục thuộc tính
- Thành phần tĩnh và cách sử dụng

Bài 1: Xây dựng lớp Phanso và thao tác lớp với các phương thức bao gồm:
- Phương thức khởi tạo phân số có tử bằng 0 và mẫu bằng 1

- Phương thức khởi tạo (int ts, int ms) để khởi tạo phân số có tử số bằng ts và mẫu số bằng
ms
- Phương thức nhập thông tin cho phân số
- Phương thức cộng hai phân số
- Phương thức cộng phân số với một số
- Phương thức trừ hai phân số
- Phương thức trừ 1 phân số cho một số
- Phương thức in kết quả ra màn hình
Hướng dẫn:
Thuộc tính của lớp: int ts,ms: tử số và mẫu số của phân số
Các phương thức của lớp:
- Khởi tạo không tham số: pulic phanso() và gán giá trị của tử =0, mẫu số=1
- Khởi tạo hai tham số: public phanso(int tu,int mau)
- Cộng phân số với phân số
- Cộng phân số với một số
- Trừ phân số cho phân số
- Trừ phân số cho một số
- Phương thức hiện kết quả lên màn hình
Vì trong Bài tập này có nhiều phương thức chồng nhau (sự chồng phương thức) nên các bạn chú
ý cách gọi các phương thức.

Bài 2: Xây dựng một chương trình thực hiện yêu cầu sau:
- Nhập vào thông tin của các học sinh với số lượng học sinh ∈[2,30]. Thông tin của học
sinh bao gồm: Họ tên, điểm toán, điểm lí, điểm hóa.
- Hiển thị danh sách các sinh viên phải thi lại (điểm trung bình <5). Nếu không có sinh viên
nào thi lại thì đưa ra thông báo “Không có học sinh nào phải thi lại”
Hướng dẫn:
- Xây dựng một lớp có tên HocSinh, trong lớp HocSinh chúng ta phải xây dựng các thuộc
tính đối với các thành phần dữ liệu điểm toán, điểm lí, điểm hóa để sau này cho phép các
lớp khác can thiệp tới các thành phần dữ liệu này.

- Xây dựng là lớp QuanLy dùng để quản lý danh sách các học sinh

Bài 3: Xây dựng chương trình quản lý lương cho công ty ABC. Thông tin để tính lương cho mỗi
Nhân viên trong công ty bao gồm: Họ tên, quê quán, hệ số lương, lương cơ bản. Hãy nhập vào
một danh sách các Nhân viên của công ty sau đó thực hiện các yêu cầu sau:
- Tính và hiển thị lương của các Nhân viên có trong danh sách
Bài tập lập trình hướng đối tượng
Trang 5

- Liệt kê những nhân viên có hệ số lương cao nhất
- Sắp xếp danh sách theo thứ tự tăng dần của trường hệ số lương
Hướng dẫn:
- Xây dựng lớp có tên NhanVien với các thành phần
o Dữ liệu: Họ tên, quê quán, hệ số lương, lương cơ bản(là thành phần dữ liệu tĩnh)
o Phương thức: Các thuộc tính để truy xuất tới các thành phần dữ liệu họ tên, hệ số
lương, phương thức nhập, hiển thị, tính lương,…
- Xây dựng lớp QuanLy nhân viên bao gồm
o Dữ liệu: ds là một mảng các nhân viên
o Phương thức: Phương thức nhập, hiển thị, sắp xếp,…
Bài 4: Xây dựng lớp Học viên để quản lý họ tên, năm sinh, các môn học của học viên của lớp
học. Cho biết bao nhiêu học viên trong lớp được phép làm luận văn tốt nghiệp, bao nhiêu học
viên thi tốt nghiệp, bao nhiêu người phải thi lại và tên môn thi lại. Tiêu chuẩn để xét:
- Làm luận văn phải có điểm trung bình các môn lớn hơn 7 trong đó không có môn nào dưới 5.
- Thi tốt nghiệp khi điểm trung bình các môn lớn hơn 5 và điểm các môn không dưới 5.
- Thi lại có môn dưới 5.
Hướng dẫn:
- Xây dựng lớp có tên Môn học với các thành phần
o Dữ liệu: Tên môn học, tỷ lệ kiểm tra, điểm kiểm tra, điểm thi.
o Phương thức: phương thức nhập, hiển thị, tính trung bình môn theo tỷ lệ kiểm tra.
- Xây dựng lớp có tên HocVien với các thành phần

o Dữ liệu: Họ tên, năm sinh, mảng môn học.
o Phương thức: phương thức nhập, hiển thị, tính trung bình các môn.
- Xây dựng lớp QuanLy học viên bao gồm
o Dữ liệu: ds là một mảng các học viên
o Phương thức: Phương thức nhập, hiển thị danh sách học viên làm luận văn, danh
sách thi tốt nghiệp, danh sách thi lại.

Bài 5: Xây dựng lớp NGUOI nhằm thể hiện một người bất kỳ. Các thông tin về một người bao
gồm; họ tên, năm sinh, chiều cao(tính bằng m-có số lẻ), trọng lượng(tính bằng kg-có số lẻ)
Yêu cầu:
- Các vùng dữ liệu phải được khai báo là private
- Viết một số hàm khởi tạo: Hàm khởi tạo mặc định, hàm khởi tạo sao chép, hàm khởi tạo
nhận 4 tham số cho biết họ tên, năm sinh, chiều cao, cân nặng của một người.
- Thiết kế phương thức trả về một số nguyên cho biết tình trạng sức khỏe người đó. Biết
cách tính chỉ số sức khỏe như sau:
K=Trọng lượng/(Chiều cao)
2

Nếu K trong phạm vi từ 19 đến 25: Sức khỏe tốt và phương thức trả về giá trị là 0
Nếu K trong phạm vi nhỏ hơn 19: Gầy ốm và phương thức trả về giá trị là -1
Nếu K trong phạm vi lớn hơn 25: Béo phì và phương thức trả về giá trị là +1
Bài tập lập trình hướng đối tượng
Trang 6

- Thiết kế phương thức ToString()-override. Phương thức này trả về 1 chuỗi thể hiện đầy
đủ thông tin của một người( Họ tên, năm sinh, cân nặng, chiều cao cùng với tình trạng sức
khỏe của họ)
- Thiết kế các thuộc tính cho phép lấy/gán các thông tin về trọng lượng và chiều cao của
một người. Lưu ý là chiều cao một người phải nằm trong phạm vi từ 1m2 đến 1m8, trọng
lượng phải nằm trong phạm vi từ 35kg đến 150kg, các thuộc tính lấy ra họ và tên của một

người.
- Thiết kế phép toán "cộng" giữa 2 người với ý nghĩa: Tổng trong lượng 2 người là bao
nhiêu?
- Thiết kế phép toán "cộng" giữa 1 người và 1 số thực f với ý nghĩa: Tổng trọng lượng
người này với f kg là bao nhiêu?
Viết một lớp thử nghiệm(có chứa hàm Main) nhằm thực hiện các yêu cầu sau:
- Khai báo 1 mảng có 5 người với dữ liệu tùy ý
- In ra thông tin của từng người trong danh sách
- In ra thông tin của những người trong danh sách có chiều cao >=1m7 và trọng lượng
>=70kg.
- Với chỉ số tối thiểu là 19 để đạt yêu cầu tình trạng sức khỏe tốt, anh chị hãy in ra họ tên
từng người(hiện có thể trạng gầy ốm trong danh sách) với số kg trọng lượng mà mỗi
người cần phải tăng thêm để họ đạt thể trạng tốt(mà vẫn giữ nguyên chiều cao).

BÀI THỰC HÀNH 3 Kế thừa và đa hình
* Mục tiêu
- Xây dựng lớp dẫn xuất
- Gọi phương thức khởi tạo của lớp cơ sở
- Truy xuất các thành phần của lớp cơ sở

Bài 1: Xây dựng lớp có tên là TienDien với các thông tin bao gồm:
+ Dữ liệu:
- Họ tên chủ hộ
- Địa chỉ
- Số công tơ tháng trước
- Số công tơ tháng này
+ Phương thức
- Phương thức thiết lập không tham số và 4 tham số
- Phương thức nhập dữ liệu
- Phương thức hiển thị dữ liệu

- Thuộc tính tính số công tơ điện đã dùng(=Số công tơ tháng này- Số công tơ tháng trước)
- Phương thức tính tiền điện được tính theo công thức: Số điện đã dùng*1240
Sau đó xây dựng lớp TienDienMoi bằng việc kế thừa lớp TienDien để tính tiền điện theo
một quy định mới. Việc tính tiền điện lúc này căn cứ vào định mức quy định. Nếu trong định
mức là 1240, ngoài định mức là 1600
Hướng dẫn:
- Xây dựng lớp TienDien theo như đã mô tả

×