You are on page 1of 6

Bài 1

Viết chương trình quản lý điểm tuyển sinh của một trường cấp 2. Biết trường có thí sinh
(ThiSinh) tuyển vào lớp thường gồm thông tin mã thí sinh (maTS), học tên (hoTen), năm
sinh (namSinh), khu vực xét tuyển (khuVuc) gồm 3 khu vực 0, 1, 2 dành tính điểm ưu
tiên, và các điểm toán (diemToan), văn (diemVan) và anh (diemAnh). Bên cạnh đó,
trường có 3 loại lớp chuyên ban là toán, văn và tiếng anh, cho nên thí sinh lớp chuyên
ban (ChuyenBan) có thêm thông tin chuyên ban (chuyenBan) ứng với mã 0, 1, và 2 lần
lượt cho chuyên toán, văn và anh văn.
Tổng điểm của thí sinh vào trường được tính như sau:
• Thí sinh lớp thường: Tổng điểm = điểm toán + điểm văn + điểm tiếng anh + điểm
ưu tiên khu vực (không quá 1 điểm).
• Thí sinh chuyên ban: tính như thí sinh lớp thường tuy nhiên chuyên ban tương ứng
được nhân với hệ số 2.
Biết rằng điểm ưu tiên cho các khu vực 0, 1 và 2 là 0, 0.5, và 1.
Các ràng buộc trên dữ liệu:
• Tuổi tối thiểu tuyển sinh là 10.
• Điểm thi các môn từ 0 đến 10 làm tròn 1 số lẻ. Tổng điểm được làm tròn lấy 1 số lẻ.
• Chuyên ban có mã là 0, 1, và 2. Khu vực có mã là 0, 1 và 2.
Anh/Chị hãy xây dựng một chương trình hướng đối tượng theo sơ đồ lớp dưới đây:

1
(1) Xây dựng lớp ThiSinh với các yêu cầu sau: (4đ)
a) Định nghĩa các thuộc tính:
Tên Phạm vi Kiểu Giá trị
STT Mô tả
thuộc tính truy cập dữ liệu mặc định
1 maTS protected string “” Mã thí sinh
2 hoTen protected string “” Họ tên
3 namSinh protected int 0 Năm sinh
4 khuVuc protected int -1 Hệ số lương
5 diemToan protected double 0 Điểm toán
6 diemVan protected double 0 Điểm văn
7 diemAnh protected double 0 Điểm anh văn
b) Cài đặt các phương thức khởi tạo thỏa mãn các ràng buộc dữ liệu, lưu ý điểm
toán, văn và anh được làm tròn 1 số lẻ:
public ThiSinh() { }
public ThiSinh (string maTS, string hoTen, int namSinh, int khuVuc, double
diemToan, double diemVan, double diemAnh) { }
c) Cài đặt các tính chất MaTS, HoTen, NamSinh, KhuVuc thỏa mãn các ràng buộc
dữ liệu.
public string MaTS { get; set; }

2
public string HoTen { get; set; }
public int NamSinh { get; set; }
public int KhuVuc { get; set; }
d) Cài đặt phương thức NhapDiem để nhập điểm của thí sinh thỏa mãn ràng buộc dữ
liệu với môn toán, văn và anh văn tương ứng mã môn 0, 1 và 2.
public void NhapDiem(int monThi, double diemSo) { }
e) Cài đặt phương thức nhập Input để nhập dữ liệu thí sinh từ bàn phím thỏa mãn
các ràng buộc dữ liệu.
public virtual void Input() { }
f) Cài đặt phương thức xuất ToString trả về chuỗi thông tin thí sinh với định dạng
“LopThuong[{maTS}, {hoTen}, {namSinh}, {khuVuc}, ({diemToan},
{diemVan}, {diemAnh})]”.
public override string ToString() { }
g) Cài đặt phương thức TinhTuoi để tính tuổi thí sinh biết tuổi được tính bằng cách
lấy năm hiện tại trừ cho năm sinh.
public int TinhTuoi() { }
h) Cài đặt phương thức TinhTongDiem để tính điểm xét tuyển theo qui định của
trường, lưu ý tổng điểm được làm tròn 1 số lẻ.
public double TinhTongDiem() { }

(2) Xây dựng lớp ChuyenBan với các yêu cầu sau: (4đ)
a) Định nghĩa các thuộc tính:
Tên Phạm vi Kiểu Giá trị
STT Mô tả
thuộc tính truy cập dữ liệu mặc định
1 chuyenBan protected int -1 Mã chuyên ban
b) Cài đặt các phương thức khởi tạo thỏa mãn các ràng buộc dữ liệu, lưu ý điểm
toán, văn và anh được làm tròn 1 số lẻ:
public ChuyenBan() { }
public ChuyenBan(string maTS, string hoTen, int namSinh, int khuVuc, double
diemToan, double diemVan, double diemAnh, int chuyenBan) { }
c) Cài đặt tính chất TenChuyenBan để trả về tên chuyên ban của thí sinh gồm
“ChuyenToan”, “ChuyenVan”, và “ChuyenAnhVan” lần lượt ứng với mã chuyên
ban 0, 1, và 2.
public string TenChuyenBan { get; }
d) Cài đặt phương thức nhập Input để nhập dữ liệu thí sinh chuyên ban từ bàn phím
thỏa mãn các ràng buộc dữ liệu.
public virtual void Input() { }
e) Cài đặt phương thức xuất ToString trả về chuỗi thông tin thí sinh chuyên ban với
định dạng “{TenChuyenBan}[{maTS}, {hoTen}, {namSinh}, {khuVuc},
({diemToan}, {diemVan}, {diemAnh})]”.
public override string ToString() { }
f) Cài đặt phương thức DoiChuyenBan để cập nhập lại mã chuyên ban chỉ gồm các
giá trị 0, 1 và 2.
public void DoiChuyenBan(int chuyenBan) { }
g) Cài đặt phương thức TinhTongDiem để tính điểm xét tuyển theo qui định của
trường và làm tròn 1 số lẻ.
public double TinhTongDiem() { }

(3) Viết hàm Main thực hiện các chức năng sau: (2đ)
• Tạo thí sinh 1 ts1 với thông tin xác định.
• Tạo thí sinh 2 ts2 dữ liệu rỗng và nhập từ bàn phím.
• Tạo chuyên ban 1 cb1 với thông tin xác định.

3
• Tạo chuyên ban 2 cb rỗng, nhập từ bàn phím, và đổi chuyên ban thành chuyên anh
văn.
• Tạo mảng thí sinh chứa các biến ts1, ts2, cb1, và cb2.
• Duyệt mảng, in thông tin ra màn hình thông tin chung, và thông tin tổng điểm xét
tuyển, tuổi của các thí sinh.

Bài 2:
Viết chương trình quản lý và tính lương nhân viên cho một công ty. Thông tin cần quản
lý Nhân viên và Quản lý, nơi mà thông tin nhân viên (NhanVien) bao gồm mã nhân viên
(maNV), họ tên (hoTen), năm vào làm (namVaoLam) và hệ số lương (heSoLuong).
Thông tin quản lý (QuanLy) tương tự nhân viên nhưng có thêm thông tin cấp bậc
(capBac) có các giá trị 0, 1 và 2 ứng với phó phòng, trưởng phòng và giám đốc.
Lương nhân viên được tính như sau:
• Nhân viên: Lương tháng = lương cơ bản * hệ số lương + phụ cấp nhân viên
• Quản lý: Lương tháng như nhân viên nhưng có thêm phụ cấp chức vụ
Biết rằng:
• Phụ cấp nhân viên tính theo thâm niên với 1.2 * lương cơ bản cho nhân viên công
tác trên 3 năm và 1.0 * lương cơ bản cho dưới 3 năm.
• Phụ cấp chức vụ cho bậc phó phòng là 1.5 * lương cơ bản, trưởng phòng là 2.0 *
lương + cơ bản, và giám đốc là 3.0 * lương cơ bản.
• Lương cơ bản hiện nay của công ty là 1,550,000.
• Công ty thành lập 2010
Các ràng buộc trên dữ liệu:
• Năm vào làm không nhỏ hơn năm thành lập công ty và lớn hơn năm hiện tại.
• Hệ số lương nhỏ nhất là 0.7
• Cấp bậc có các giá trị 0, 1 và 2

Anh/Chị hãy xây dựng một chương trình hướng đối tượng theo sơ đồ lớp dưới đây:

4
(1) Xây dựng lớp NhanVien với các yêu cầu sau: (4đ)
i) Định nghĩa các thuộc tính:
Tên Phạm vi Kiểu Giá trị
STT Mô tả
thuộc tính truy cập dữ liệu mặc định
1 maNV protected string “” Mã nhân viên
2 hoTen protected string “” Họ tên
3 namVaoLam protected int 0 Năm vào làm
4 heSoLuong protected double 1.0 Hệ số lương
j) Cài đặt các phương thức khởi tạo thỏa mãn các ràng buộc dữ liệu:
public NhanVien() { }
public NhanVien(string maNV, string hoTen, int namVaoLam, double heSoLuong) { }
k) Cài đặt các tính chất MaNV, HoTen, NamVaoLam, HeSoLuong thỏa mãn các
ràng buộc dữ liệu.
public string MaNV { get; set; }
public string HoTen { get; set; }
public int NamVaoLam { get; set; }
public double HeSoLuong { get; set; }
l) Cài đặt phương thức nhập Input để nhập dữ liệu nhân viên từ bàn phím thỏa mãn
các ràng buộc dữ liệu.
public virtual void Input() { }
m) Cài đặt phương thức xuất ToString trả về chuỗi thông tin nhân viên với định dạng
“NhanVien[{maNV}, {hoTen}, {namVaoLam}]”.
public override string ToString() { }
n) Cài đặt phương thức TinhThamNien để tính thâm niên nhân viên biết thâm niên
là năm hiện tại trừ cho năm vào làm.
public int TinhThamNien() { }

5
o) Cài đặt phương thức TinhLuong để tính lương nhân viên theo qui định công ty.
public double TinhLuong() { }

(2) Xây dựng lớp QuanLy với các yêu cầu sau:(4đ)
h) Định nghĩa các thuộc tính:
Tên Phạm vi Kiểu Giá trị
STT Mô tả
thuộc tính truy cập dữ liệu mặc định
1 capBac protected Int -1 Cấp bậc quản lý
i) Cài đặt các phương thức khởi tạo thỏa mãn các ràng buộc dữ liệu:
public QuanLy() { }
public QuanLy(string maNV, string hoTen, int namVaoLam, double heSoLuong, int
capBac) { }
j) Cài đặt tính chất TenCapBac để trả về tên cấp bậc quản lý “Phó phòng”, “Trưởng
phòng”, và “Giám đốc” lần lượt ứng tính chất capBac có giá trị 0, 1, và 2.
public string TenCapBac { get; }
k) Cài đặt phương thức nhập Input để nhập dữ liệu nhân viên từ bàn phím thỏa mãn
các ràng buộc dữ liệu.
public virtual void Input() { }
l) Cài đặt phương thức xuất ToString trả về chuỗi thông tin nhân viên với định dạng
“{TenCapBac}[{maNV}, {hoTen}, {namVaoLam}]”.
public override string ToString() { }
m) Cài đặt phương thức NangCapBac để cập nhập lại cấp bậc quản lý chỉ gồm các
giá trị 0, 1 và 2.
public void NangCapBac(int capBac) { }
n) Cài đặt phương thức TinhLuong để tính lương quản lý theo qui định công ty.
public double TinhLuong() { }

(3) Viết hàm Main thực hiện các chức năng sau: (2đ)
• Tạo nhân viên 1 nv1 với thông tin xác định.
• Tạo nhân viên 2 nv2 dữ liệu rỗng và nhập từ bàn phím.
• Tạo quản lý 1 ql1 với thông tin xác định.
• Tạo quản lý 2 ql2 rỗng, nhập từ bàn phím, và nâng bậc thành giám đốc.
• Tạo mảng nhân viên chứa các biến nv1, nv2, ql1, và ql2.
• Duyệt mảng, in ra màn hình thông tin nhân viên cùng với lương, và thâm niên.

Lưu ý:
Hàm nào không định nghĩa được, anh/chị vẫn có thể viết lại phần khai báo hàm và được
sử dụng kết quả của hàm đó để cài đặt tiếp hàm Main
--- Hết ---

You might also like