Bài tập về class trong python

Bài tập 1:

Tạo class có tên SoHoc gồm có các thuộc tính và phương thức sau:

+ Thuộc tính: number1, number2

+ Phương thức:

- Phương thức tạo __init[]__

- Các phương thức get, set cho tất cả các thuộc tính

- inputInfo[]: dùng để nhập 2 số number1, number2

- printInfo[]: dùng để hiển thị number1, number2

- addition[]: dùng để cộng number1, number2

- subtract[]: trừ number1, number2

- multi[]: dùng để nhân number1, number2

- division[]: dùng để chia number1, number2.

Bài tập 2:

Viết class NhanVien gồm các thuộc tính:

+ Tên

+ Tuổi

+ Địa chỉ

+ Tiền lương

+ Tổng số giờ làm

Và các phương thức:

- Phương thức tạo

- inputInfo[] : Nhập các thông tin cho nhân viên từ bàn phím

- printInfo[] : In ra tất cả các thông tin của nhân viên

- tinhThuong[]: Tính toán và trả về số tiền thưởng của nhân viên theo công thức sau:

Nếu tổng số giờ làm của nhân viên >=200 thì thưởng = lương * 20%

Nếu tổng số giờ làm của nhân viên =100 thì thưởng = lương * 10%

Nếu tổng số giờ làm của nhân viên = 75%

c. Không vi phạm nội quy của trung tâm

d. Các kì thi chỉ thi lần đầu tiên

Các dữ liệu a b c d của 1 học viên được nhập từ bàn phím.

Viết chương trình xem học viên đó có được học bổng không.

Bài tập 5:

Tạo class SoNguyenTo gồm:

Thuộc tính a lưu trữ 1 số nguyên tố.

Constructor 1 tham số: __init__[x]. Nếu x là số nguyên tố thì lưu x vào biến a. Nếu không thì in ra màn hình: x không phải là số nguyên tố, không lưu trữ.

Phương thức isSoNguyenTo[x] kiểm tra số x có phải số nguyên tố không.

Phương thức timSoNguyenToTiepTheo[] tìm và trả về số nguyên tố liền sau số nguyên tố a.

Các phương thức get/set biến a. Nếu tham số truyền vào phương thức set là 1 số nguyên tố thì mới lưu vào thuộc tính a. Nếu không thì hiển thị thông báo: Không set.

Khai báo 1 đối tượng thuộc class SoNguyenTo và test các phương thức đã viết.

Bài tập 6:

Xây dựng lớp tam giác [Triangle] có các thành phần:

* Các thuộc tính: 3 cạnh a, b, c của tam giác.

* Các phương thức:

- Nhập độ dài 3 cạnh

- Xác định kiểu tam giác

- Tính chu vi tam giác

- Tính diện tích tam giác

Bài tập 7:

Xây dựng lớp hình chữ nhật [Rectangle] có các thành phần sau:

* Các thuộc tính: chiều dài, chiều rộng.

* Các phương thức:

- Nhập chiều dài, chiều rộng

- Tính diện tích

- Tính chu vi

Bài tập 8:

Xây dựng lớp Phân số [Fraction] có các thành phần sau:

* Các thuộc tính: Tử số, mẫu số.

* Phương thức tạo để khởi tạo giá trị cho tử số và mẫu số.

* Các phương thức setter và getter.

* Các phương thức:

- Nhập phân số

- In Phân số

- Rút gọn phân số

- Nghịch đảo phân số

- add[], sub[], mul[], div[] tương ứng để thực hiện cộng, trừ, nhân, chia hai phân số cho nhau.

Bài tập 9:

Xây dựng lớp số phức có các thành phần sau:

+ Các thuộc tính:

- Phần thực

- Phần ảo

+ Các hàm thành phần:

- Cộng hai số phức

- Trừ hai số phức

- Nhân hai số phức

- Chia hai số phức

Nhập vào 2 số phức và thực hiện các phép toán trên hai số phức đó.

Bài tập 10:

Xây dựng lớp Vectơ có các thành phần sau:

+ Các thuộc tính:

- Hoành độ đầu

- Tung độ đầu

- Hoành đô cuối

- Tung độ cuối

+ Các phương thức:

- Kiểm tra hai vectơ có bằng nhau không?

- Tính góc giữa 2 vectơ

- Tính module của 2 vectơ

- Kiểm tra hai vectơ có cùng phương không?

- Cộng hai vectơ

- Trư hai vectơ

- Nhân hai vectơ

Nhập vào 2 vectơ và thực hiện các phép toán trên hai vectơ đó.

Bài tập 11:

Xây dựng lớp đa thức [polylomial] và các phép toán trên đa thức. Thực hiện nhập vào 2 đa thức và tính tổng, tích của nó.

Bài tập 12:

Xây dựng lớp ma trận và các phép toán trên ma trận. Thực hiện nhập vào 2 ma trận và tính tổng, tích của nó.

Bài tập 13:

Xây dựng lớp đa giác, hình bình hành thừa kế từ đa giác, hình chữ nhật thừa kế từ hình bình hành và hình vuông thừa kế từ hình chữ nhật. Nhập vào các thuộc tính cần thiết của mỗi hình và tính chu vi, diện tích của hình đó.

Bài tập 14:

Xây dựng lớp điểm, lớp elip thừa kế từ lớp điểm, lớp đường tròn thừa kế từ lớp elip. Nhập vào các thuộc tính cần thiết của elip và tính diện tích.

Bài tập 15:

Xây dựng lớp tam giác, lớp tam giác vuông, tam giác cân thừa kế từ lớp tam giác. Lớp tam giác đều thừa kế từ lớp tam giác cân.

Bài tập 16:

Mô phỏng sự hoạt dộng của một chiếc đèn pin. Với hai nhóm đối tượng cơ bản là Đèn [FlashLamp] và Pin [Battery]. Đối tượng pin mang trong mình thông tin về trạng thái năng lượng, đối tượng đèn sữ sử dụng một đối tượng pin để cung cấp năng lượng cho hoạt động chiếu sáng.

Mô tả chi tiết lớp các đối tượng pin và đèn như sau:

Đối tượng Đèn [FlashLamp]:

- status: thuộc tính thể hiện trạng thái của đèn [bật hay tắt]

- battery: thuộc tính thể hiện pin của đèn

+ FlashLamp[]: hàm tạo

+ setBattery[Battery]: lắp pin cho đèn

+ getBatteryInfo[]: lấy thông tin pin của đèn

+ turnOn[]: bật đèn

+ turnOff[]: tắt đèn

Đối tượng Pin [Battery]:

- energy: thuộc tính thể hiện năng lượng của pin

+ Battery[]: hàm tạo

+ setEnergy[]: phương thức sạc pin

+ getEnergy[]: phương thức lấy năng lượng pin

+ decreaseEnergy[]: phương thức tiêu hao năng lượng pin

1. Xây dựng lớp Pin [Battery] với các thuộc tính và các phương thức đã cho như trong sơ đồ trên. Trong đó:

- Thuộc tính energy: thể hiện năng lượng của Pin.

- Hàm tạo Battery[]: khởi tạo mặc định giá trị năng lượng Pin [energy] là 10

- Các phương thức:

+ setEnergy[energy]: Thiết đặt lại giá trị mới cho pin [thực hiện việc sạc pin]

+ getEnergy[]: Trả về thông tin năng lượng pin đang có

+ decreaseEnergy[]: mỗi lần Pin được sử dụng, năng lượng của Pin sẽ giảm đi 2 đơn vị.

2. Xây dựng lớp FlashLamp với các thuộc tính và phương thức như trong sơ đồ trên. Trong đó:

- Các thuộc tính:

+ status: trạng thái của đèn, nếu status = true tức đèn được bật, ngược lại đèn tắt.

+ battery: đối tượng của Battery[] là pin của đèn

- Hàm tạo:

FlashLamp[]: khởi tạo trạng thái đèn tắt và chưa có pin.

- Các phương thức:

+ setBattery[b]: nạp pin cho đèn, với b là đối tượng của lớp Battery[]

+ getBatteryInfo[]: lấy về năng lượng Pin của đèn

+ turnOn[]: Chuyển trạng thái đèn là true. In ra thông tin đèn có sáng hay không [năng lượng > 0 là sáng]

+ turnOff[]: Chuyển trạng thái đèn là false. In ra thông tin: Đèn tắt.

3. Xây dựng lớp TestFlashLamp chứa phương thức main[] với kịch bản như sau:

- Tạo một đối tượng Battery

- Tạo một đối tượng FlashLamp

- Lắp pin cho đèn

- Bật và tắt đèn pin 10 lần

- Hiển thị ra màn hình mức năng lượng còn lại trong pin.

Bài tập 17:

Câu hỏi 1:

Một lớp gọi là MyPoint, thể hiện một mô hình điểm hai chiều [2D] gồm hai tọa độ x và y, được thiết kế theo dạng sơ đồ lớp. Lớp MyPoint bao gồm:

- Hai thuộc tính x và y.

- Hàm tạo dùng để khởi tạo một điểm có tọa độ [0,0].

- Các phương thức getter và setter cho các biến thể hiện x và y.

- Một phương thức setXY[] để set giá trị cho cả x và y.

- Phương thức toString[] trả về mộ mô tả chuỗi theo định dạng "[x, y]".

- Một phương thức gọi là distance[x, y] trả về khoảng cách từ điểm này tới điểm khác tại các tọa độ [x, y] đã cho.

- Một phương thức tải chồng distance[point1] trả về khoảng cách từ điểm hiện thời tới điểm point1, với point1 là đối tượng của lớp MyPoint.

Yêu cầu dành cho bạn: Viết mã lệnh xây dựng lớp MyPoint ở trên. Rồi viết một lớp có tên TestMyPoint để kiểm thử chương trình của bạn.

Gợi ý:

// Tải chồng phương thức distance[]
def distance[x, y] {
  xDiff = this.x - x;
  yDiff = ...
  return sqrt[xDiff * xDiff + yDiff * yDiff];
}
def distance[another] {
  xDiff = this.x - another.x;
  ...
}
// Chương trình kiểm thử:
p1= MyPoint[3,0];
p2= MyPoint[0,4];
...
// Kiểm thử việc tải chồng phương thứcdistance[]:
print[p1.distance[p2]];
print[p1.distance[5,6]];

Câu hỏi 2:

Một lớp gọi là MyCircle, nó miêu tả một hình tròn có tâm là [x,y] và một bán kính. Lớp MyCircle sử dụng một thể hiện của lớp MyPoint [đã tạo ở câu 1] làm tâm của nó. Lớp MyCircle bao gồm:

- Hai thuộc tính: tâm [một thể hiện của MyPoint] và bán kính.

- Một hàm tạo.

- Các phương thức getter và setter.

- Phương thức toString[] trả về một chuỗi mô tả hình tròn hiện thời theo dạng "Hình tròn @ [x,y] bán kính=r".

- Phương thức getArea[] trả về diện tích của hình tròn.

Bạn hãy xây dựng lớp MyCircle. Ngoài ra, bạn viết lớp TestMyCircle để kiểm thử chương trình của bạn.

Bài tập 18: Hệ thống quản lý sản phẩm

1. Tạo một lớp có tên Product bao gồm các thuộc tính và phương thức sau:

· Name

· Description

· Price // 0 < Price

Chủ Đề