Tổng hợp Bài tập OOP

Bài tập  
Câu hỏi và Bài tập trong các  
buổi học  
2
Quiz  
Cho biểu đồ use case như sau, xác định các tác nhân  
của hệ thống:  
3
Bài tập làm quen UML  
Bài 1. Cho:  
Các tác nhân: Người mua, Hệ thống E-mail, Hệ thống cho vay và Hệ  
thống báo cáo tín dụng  
Các use case: Tìm người môi giới, Quản lý hồ sơ cá nhân, Tìm kiếm  
nhà và Yêu cầu vay  
Các mối liên kết:  
Từ người mua tới Tìm người môi giới  
Từ người mua tới Quản lý hồ sơ cá nhân  
Từ người mua tới Tìm kiếm nhà  
Từ người mua tới Yêu cầu vay  
Quản lý hồ sơ cá nhân tới Hệ thống e-mail  
Tìm kiếm nhà tới Hệ thống e-mail  
Yêu cầu vay tới Hệ thống e-mail, Hꢀ thꢁng cho vay  
Yêu cầu vay tới Hệ thống báo cáo tín dụng  
Hãy vẽ biểu đồ use case tương ứng.  
4
Bài tập làm quen UML  
Bài 2: Cho:  
Các trạng thái hành động:  
Chọn hồ sơ  
Tìm hồ sơ người mua  
Tạo hồ sơ mới  
Đăng nhập  
Luồng hoạt động:  
Bắt đầu từ Chọn hồ sơ tới Tìm hồ sơ người mua rồi đi từ  
Tìm hồ sơ người mua đến Tạo hồ sơ mới nếu hồ sơ  
không tồn tại. Nếu hồ sơ tồn tại thì có thể Đăng nhập.  
Hãy vẽ Biểu đồ hoạt động tương ứng.  
5
Bài tập làm quen UML  
Bài 3: Một biểu đồ lớp gồm các lớp sau: Personal Planner Profile, Personal  
Planner Controller, Customer Profile, Buyer Record. Các lớp có các quan  
hệ sau:  
Mỗi một đối tượng Personal Planner Profile có thể liên kết với tối  
đa một đối tượng Personal Planner Controller.  
Mỗi đối tượng Personal Planner Controller phải được liên kết với  
một đối tượng Personal Planner Profile.  
Một đối tượng Personal Planner Controller có thể được liên kết  
với tối đa một đối tượng Buyer Record Customer Profile.  
Một thực thể của lớp Buyer Record có thể liên quan tới 0 hoặc 1  
đối tượng Personal Planner Controller.  
0 hoặc 1 đối tượng Personal Planner Controller được liên kết  
với mỗi thực thể Customer Profile.  
Hãy vẽ biểu đồ lớp tương ứng  
6
Bài tập làm quen UML  
Bài 4: Biểu đồ giao tiếp hoạt động như sau:  
1. Người dùng Prospective Buyer bắt đầu biểu đồ giao tiếp bằng  
cách yêu cầu đối tượng Personal Planner Profile (PPF) cập nhật  
một hồ sơ.  
2. Đối tượng PPF yêu cầu đối tượng Personal Planner Controller  
(PPC) cập nhật một hồ sơ  
3. Đối tượng PPC gửi một thông điệp cho đối tượng Buyer Record  
yêu cầu tìm hồ sơ.  
4. Sau khi tìm xong đối tượng PPF hiển thị hồ sơ.  
5. Người dùng Prospective Buyer cập nhật thông tin trong hồ sơ và  
yêu cầu PPF lưu trữ thông tin vừa cập nhật.  
6. Đối tượng PPF nhận thông tin mới và yêu cầu đối tượng PPC lưu  
trữ thông tin mới.  
7. Đối tượng PPC yêu cầu đối tượng Buyer Record cập nhật lại bản  
ghi hồ sơ với những thông tin mà người dùng đã cung cấp.  
Hãy vẽ biểu đồ tuần tự, biểu đồ giao tiếp tương ứng.  
7
8
Bài tp 0  
A
public Circle {  
double radius;  
public double {  
F
B
return radius;  
private color;  
C
}
Circle() {  
D
public double getArea() {  
G
radius = 1.0;  
color = "red";  
}
return I;  
}
}
E
public e(double r) {  
radius = r;  
color = "red";  
}
Bài tập 1:  
Mt phòng ban gm có các nhân viên là cng tác viên, nhân  
viên chính thc, trưởng phòng. Mi nhân viên cn qun lý các  
thông tin chung như:  
Mã nhân viên, htên, năm sinh, gii tính, đa ch, hslương  
(giá tr>0) và lương ti đa.  
Cộng tác viên có thêm thông tin về thời hạn hợp đồng (có các giá  
trị: "3 tháng", "6 tháng", "1 năm") và có khoản phụ cấp lao động  
được cộng thêm vào thu nhập.  
Nhân viên chính thức có thêm thông tin về vị trí công việc còn  
lương thì tính như thông thường.  
Trưởng phòng có thêm thông tin về ngày bắt đầu quản lý và có  
khoản phụ cấp quản lý được cộng thêm vào thu nhập.  
Hãy xác đnh các lp theo mô ttrên  
Xác đnh các thuc tính và phương thc ca mi lp, biu  
din bng ký pháp UML  
Viết mã ngun Java cho các lp trên  
10  
Quiz 1  
Phương án nào là khai báo phương thc hp l?  
a. void method1 { /* ... */ }  
b. void method2() { /* ... */ }  
c. void method3(void) { /* ... */ }  
d. method4() { /* ... */ }  
e. method5(void) { /* ... */ }  
11  
Quiz 2  
Cho đnh nghĩa lp như sau, thuc tính  
nào có thtruy nhp bên ngoài gói  
my.project:  
package my.project;  
public class MyClass {  
int i;  
public int j;  
private int l;  
}
12  
Quiz 3  
Cho biết kết qubiên dch đon mã sau:  
import java.util.*;  
package com.cnpm.hust;  
public class AClass {  
public Other anInstance;  
}
class Other {  
int value;  
}
Bài tập  
Bài 2: Viết khai báo một gói chứa hai lớp: lớp hình  
vuông, lớp hình tròn. Viết khai báo lớp hình vuông,  
lớp hình tròn cùng các thuộc tính thích hợp, các  
phương thức get/set thích hợp.  
Bài 3: Viết khai báo một lớp Vector gồm 3 thành  
phần với những phương thức cộng/trừ vector,  
nhân với 1 hằng sꢁ, nhân vô hướng 2 vector.  
13  
NhanVien  
Bài tập  
-tenNhanVien: String  
-luongCoBan: double  
-heSoLuong: double  
+LUONG_MAX: double  
Bài 4. Viết mã nguồn cho lớp  
NhanVien như trong hình bên biết:  
Lương = Lương cơ bản * Hꢀ sꢁ lương  
+tangLuong(double):b  
oolean  
Phương thức inTTin() hiển thị thông  
tin của đꢁi tượng NhanVien tương  
ứng.  
+tinhLuong(): double  
+inTTin()  
Phương thức tangLuong(double) tăng hꢀ sꢁ lương hiꢀn tại lên  
một lượng bằng giá trị tham sꢁ double truyền vào. Nếu điều này  
làm cho lương của nhân viên > lương tꢁi đa cho phép thì không  
cho phép thay đổi, in ra thông báo và trả về false, ngược lại trả về  
true.  
Viết các phương thức get và set cho các thuộc tính của lớp NhanVien  
14  
Quiz 1  
Lựa chọn nào là khai báo constructor hợp lệ cho lớp  
Book:  
a. Book(Book b) {}  
b. Book Book() {}  
c. private final Book() {}  
d. void Book() {}  
e. public static void Book(String[]  
args) {}  
f. abstract Book() {}  
15  
Quiz 2  
Cho biết kết quả thực hiện đoạn mã sau:  
public class MyClass {  
long var;  
public void MyClass(long param) {  
// (1)  
var = param;  
}
public static void main(String[] args) {  
MyClass a, b;  
a = new MyClass();  
// (2)  
// (3)  
b = new MyClass(5);  
}
}
16  
Bài tập 1  
Viết lớp Student  
name  
year  
1 phương thức khởi dựng  
Student(String name, int year)  
Tự tạo phương thức getter, setter cho đủ dùng  
Đảm bảo đóng gói, che dấu dữ liệu  
Lớp Test  
Nhập số phần tử cho mảng Student (trong 1 lớp học)  
Nhập lần lượt các Student  
In ra danh sách tên Student trong lớp và hiển thị tổng số  
tuổi của các Student  
17  
Student.java  
package example;  
public class Student {  
private int year;  
private String name;  
public Student(int year, String name) {  
this.year = year;  
this.name = name;  
}
public int getYear() {  
return year;  
}
public String getName() {  
return name;  
}
18  
}
Test.java  
package example;  
import java.util.Scanner;  
public class Test {  
public static void main(String[] args) {  
Scanner scanner = new Scanner(System.in);  
int N = scanner.nextInt();  
Student[] cls = new Student[N];  
for (Student s: cls){  
String name = scanner.next();  
int year = scanner.nextInt();  
s = new Student(year, name);  
}
int total = 0;  
System.out.println("Danh sach lop: ");  
for (int i=0; i<N; ++i){  
total += 2019-cls[i].getYear();  
System.out.println(cls[i].getName());  
}
System.out.println("Tong so tuoi: " + total);  
}
19  
}
NhanVien  
-tenNhanVien: String  
-luongCoBan: double  
-heSoLuong: double  
+LUONG_MAX: double  
+tangLuong(double):boolean  
+tinhLuong(): double  
+inTTin()  
Bài tập 2  
Viết mã nguồn cho lớp NhanVien  
(đã làm)  
Viết phương thức khởi tạo với các  
tham số cần thiết để khởi tạo cho  
các thuộc tính của lớp NhanVien.  
Viết lớp TestNV trong đó tạo ra 2 đối tượng của lớp  
NhanVien, thực hiện truyền thông điệp đến các đối tượng  
vừa tạo để hiển thị thông tin, hiển thị lương, tăng lương...  
20  
Tải về để xem bản đầy đủ
pdf 194 trang Thùy Anh 26/04/2022 9600
Bạn đang xem 20 trang mẫu của tài liệu "Tổng hợp Bài tập OOP", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdftong_hop_bai_tap_oop.pdf