C# - C Sharp: Bài tập phần Class

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

Bài tập 1:

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

+ Trường private float: number1, number2

+ Phương thức:

- Các hàm tạo không tham số, đầy đủ tham số

- Các Property cho tất cả các trường

- 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 (kiểu double)

+ Tổng số giờ làm (kiểu int)

Constructor không tham số. Constructor đầy đủ tham số. Các Property cho tất cả các trường.

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

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

- void printInfo() : in ra tất cả các thông tin của nhân viên

- double 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 <200 và >=100 thì thưởng = lương * 10%

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

Bài tập 3:

Tạo lớp Student, lưu trữ các thông tin một sinh viên:

- Mã sinh viên: chứa 8 kí tự

- Điểm trung bình: từ 0.0 – 10.0

- Tuổi: Phải lớn hơn hoặc bằng 18

- Lớp: Phải bắt đầu bởi kí tự ‘A’ hoặc kí tự ‘C’

Constructor không tham số. Constructor đầy đủ tham số. Các Property cho tất cả các trường.

a. phương thức inputInfo(), nhập thông tin Student từ bàn phím

b. phương thức showInfo(), hiển thị tất cả thông tin Student

c. Viết phương thức xét xem Student có được học bổng không? Điểm trung bình trên 8.0 là được học bổng

Bài tập 4:

Học viện V1Study thực hiện trao học bổng cho các học viên xuất sắc và đáp ứng đủ các yêu cầu sau:

a. Là học viên đăng ký khóa học HDSE

b. Có điểm tổng kết >= 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:

biến a lưu trữ 1 số nguyên tố.

Constructor không tham số. 

Constructor 1 tham số: public SoNguyenTo(int 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ữ.

Hàm boolean isSoNguyenTo(int x){} kiểm tra số x có phải số nguyên tố không.

Hàm int timSoNguyenToTiepTheo(){} tìm và trả về số nguyên tố liền sau số nguyên tố a.

Property cho trường a. Nếu giá trị set cho Property là 1 số nguyên tố thì mới set cho a, nếu không thì hiển thị thông báo: không set.

Ở hàm Main: 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ố.

* Hàm tạo không đối số và hai đối số để 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:

FlashLamp

- status: boolean

- battery: Battery

+ FlashLamp()

+ setBattery(Battery): void

+ setBatteryInfo(): int

+ turnOn(): void

+ turnOff(): void

Battery

- energy: int

+ Battery()

+ setEnergy(int): void

+ getEnergy(int): int

+ decreaseEnergy(): void

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 có kiểu số nguyên 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

- Phương thức:

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

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

+ void 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 đó:

- Thuộc tính:

+ boolean 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 battery: 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.

- Phương thức:

+ void setBattery(Battery b): nạp pin cho đèn

+ int getBatteryInfo(): lấy về năng lượng Pin của đèn

+ void 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)

+ void 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 biến thể hiện x (kiểu int) và y (int).

- Hàm tạo không đối số dùng để khởi tạo một điểm có tọa độ (0,0).

- Một hàm tạo dùng để khởi tạo một điểm với tọa độ đã cho theo người dùng.

- 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(int x, int 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(MyPoint point1) trả về khoảng cách từ điểm hiện thời tới điểm point1.

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()
public double distance(int x, int y) {
int xDiff = this.x - x;
int yDiff = ...
return Math.sqrt(xDiff * xDiff + yDiff * yDiff);
}
public double distance(MyPoint another) {
int xDiff = this.x - another.x;
...
}
// Chương trình kiểm thử:
MyPoint p1=new MyPoint(3,0);
MyPoint p2=new MyPoint(0,4);
...
// Kiểm thử việc tải chồng phương thứcdistance():
System.out.println(p1.distance(p2));
System.out.println(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 biến thể hiện private: tâm (một thể hiện của MyPoint) và bán kính (có kiểu int).

- Một hàm tạo để khởi tạo hình tròn với tâm có tọa độ (x,y) và bán kính được đưa ra từ người dùng.

- Một hàm tạo khác để khởi tạo một hình tròn với tâm là thể hiện của lớp MyPoint và bán kính tương ứng.

- 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:

· String Name

· String Description

· double Price // 0 < Price <= 100

· int[ ] rate // lưu các đánh giá của người dùng cho sản phẩm, giá trị từ 1 - 5

· void viewInfo() // hiển thị tên, giá và mô tả về sản phẩm

2. Tạo lớp Shop gồm các thuộc tính và phương thức sau:

· List ProductList // lưu danh sách các sản phẩm của shop

· void  addProduct()  // yêu cầu người dùng nhập thông tin của sản phẩm rồi lưu vào ProductList

· void removeProduct() // yêu cầu người dùng nhập vào tên sản phẩm sau đó tìm và xóa sản phẩm có tên tương ứng trong ProductList

· void iterateProductList() // hiển thị các sản phẩm trong ProductList, gọi phương thức  viewInfo() của lớp Product, tính trung bình cộng đánh giá cho từng sản phẩm và hiển thị thông tin ra màn hình.

· void searchProduct() // yêu cầu người dùng nhập vào 2 số, sau đó tìm và hiển thị thông tin của những sản phẩm có giá nằm giữa hai số đó.

3. Tạo menu:

PRODUCT MANAGEMENT SYSTEM

  1. Add new product
  2. Remove product
  3. Iterate product list
  4. Search product
  5. Exit

và thực thi các phương thức tương ứng trong lớp Shop với mỗi mục chọn.

Câu hỏi thêm:

Tạo thêm một mục trong Menu ứng với phương thức gọi là sortProduct() đặt trong lớp Shop để sắp xếp các sản phẩm trong ProductList theo giá.

Bài tập 19: Quản lý tài khoản ngân hàng

Hãy cài đặt lớp BankAcount theo mô tả như hình dưới đây:

BankAccount class

Trong đó:

- accountNumber : Số tài khoản ngân hàng

- accountName : Tên chủ tài khoản

- balance : Số tiền có trong tài khoản

+ BankAccount (String, String): Phương thức thiết lập để tạo tài khoản với số tiền =0; tên tài khoản và số tài khoản là tham số truyền vào.

+ getAccountNumber() : Lấy về thông tin số tài khoản

+ getAccountName() : Trả về tên chủ tài khoản

+ getBalance() : Trả về số tiền hiện có trong tài khoản

+ deposit(double): Nạp tiền vào tài khoản

+ withdraw(double) : Chuyển khoản/rút tiền với số tiền được truyền vào là tham số; hàm trả về true nếu số tiền cần rút <= số tiền trong tài khoản; cập nhật lại số tiền trong tài khoản nếu rút thành công; ngược lại hàm trả về false.

Cho lớp Bank có quan hệ với lớp BankAccount như sau

Relationship between Bank and BankAccount classs

Hãy cài đặt lớp Bank như mô tả dưới đây

Bank class

- list: List <BankAccount>

Chứa danh sách các tài khoản hiện có tại ngân hàng.

Có 7 phương thức được mô tả như dưới đây:

- search(String) : int

 Phương thức này trả về chỉ số của tài khoản ngân hàng có số tài khoản là tham số trong list; nếu không  tồn tại tài khoản nào có số tài khoản như tham số thì hàm trả về -1.

+ getTotal(): int

Phương thức này trả về số lượng tài khoản hiện có tại ngân hàng.

+ getItem(String): BankAccount

Phương thức này nhận tham số đầu vào là số tài khoản ngân hàng, và trả về đối tượng BankAccount có số tài khoản là tham số truyền vào; nếu số tài khoản không hợp lệ hàm sẽ trả về giá trị null.

+ addAccount(String, String): boolean

Phương thức này nhận 2 xâu ký tự lần lượt là số tài khoản và tên chủ tài khoản. Nếu số tài khoản đã tồn tại trong hệ thống thì hàm sẽ trả về giá trị false; ngược lại hàm sẽ thêm một tài khoản mới có thông tin là tham số truyền vào và trả về giá trị true.

+ depositMoney(String, double) : boolean

Thực hiện nạp tiền vào tài khoản; nếu tồn tại số tài khoản trong hệ thống thì cập nhật lại số tiền của tài khoản và trả về giá trị true, ngược lại trả về false

+ withdrawMoney(String, double) : boolean

Thực hiện rút tiền từ tài khoản; nếu tồn tại số tài khoản trong hệ thống và số tiền trong tài khoản >= số tiền cần rút thì cập nhật lại số tiền của tài khoản và trả về giá trị true, ngược lại trả về false.

+ removeAccount(String) : boolean

Loại bỏ tài khoản có số tài khoản được truyền vào khỏi danh sách; nếu không tồn tại tài khoản nào có số tài khoản đó thì trả về false; ngược lại trả về true.

Bạn hãy xây dựng chương trình quản lý ngân hàng với các chức năng sau:

  • Nhập một danh sách các tài khoản hiện có của ngân hàng
  • Sinh ngẫu nhiên số tiền trong tài khoản cho các tài khoản hiện có trong hệ thống
  • Hiển thị ra màn hình thông tin các tài khoản cho ngân hàng
  • Nạp thêm 500 triệu đồng cho số tài khoản 1050008855
  • Thực hiện rút 30 triệu đồng từ tài khoản 1050008854
  • Hiển thị in ra màn hình thông báo số dư và tình trạng giao dịch sau khi thực hiện nạp và rút tiền tại các tài khoản ở trên.

Bài tập 20: Quản lý số

Xây dựng một lớp có tên So gồm các thuộc tính và phương thức sau:

+ Các thuộc tính:

  • double number

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

  • Các phương thức tạo không tham số, đầy đủ tham số
  • Các phương thức getter, setter
  • inputNumber() để nhập liệu
  • showNumber() để hiển thị
  • kiemTraNguyen() để kiểm tra number có phải số nguyên không
  • kiemTraChanLe()
  • kiemTraAmDuong()
  • kiemTraChanDuong()
  • kiemTraLeAm()
  • kiemTraChinhPhuong()
  • kiemTraNguyenTo()
  • kiemTraHoanHao()
  • kiemTraDacBiet()

Bài tập 21:

Title

Car showroom.

Background 

N/A

Program Specifications

There are three types of car in the showroom:

AUDI:

  • Available colors: WHITEYELLOWORANGE
  • Price: 5500, 3000, 4500 $
  • Sold on: FRIDAY SUNDAY MONDAY

MERCEDES:

  • Available colors: GREENBLUEPURPLE
  • Price: 5000, 6000, 8500 $
  • Sold on: TUESDAYSATURDAYWEDNESDAY

BMW:

  • Available colors:  PINK, RED, BROWN
  • Price: 2500, 3000, 3500 $
  • Sold on: MONDAYSUNDAY, THURSDAY

Write a program to help salesmen to check that the customer’s needs match the current cars showroom is selling.

  • Given that customers can choose unpainted car to get $100 discount.
  • Customers can choose other options which will be added to the final price of the car.

Function details: 

Function 1: Display Gui And Input Data.

  • User runs the program. The program prompts user to input data.
  • Auto next Function 2.

Function 2: Perform function

  • Program displays information of customer’s request, and check if they match the cars in showroom? 
  • Display message and exit program.

Expectation of User interface:

Guidelines

Student must implement methods

  • checkCar 
  • getPrices
  •  getColors
  • getDaySells

in startup code.

Hint

  • Create ExceptionCar class which inherits Exception class; pass the message content to the constructor.
  • Create Car Enum:
    • Create methods getPrices, getColors, getDaySells which return the List of sale information.
    • Create method Car getCar(String car)
  • Create Enum Day:
    •  List all days in a week
    • Create method Day getDay(String day), if day is not a Day Enum then return null.
  • Create Enum Color: 
    • List all colors of car in showroom, and “no color” option.
    • Create method Color getColor(String color), if color is not a Color Enum then return null.
  • Create method checkCar whose input is the information of customer’s request. It validates the information and return the Car Enum if matched, if not it throws the ExceptionCar.
  • In Main, use scanner to enter the car information
    • If name of car is not in Car Enum, enter null value using getCar method.
    • If color of car is not in Color Enum, enter null value using getColor method.
    • If the day is not in Day Enum, enter null value using getDay method.

Function 1: Validate car sale information

  • Method name: public Car checkCar(Car car, String color, Day day,  String price) thows ExceptionCar
  • Input:
    • car: Enum Car
    • color: Enum Color
    • day: Enum Day
    • price: Prices of car
  • Return:
    • Enum Car
    • ExceptionCar

Bài tập 22:

Viết chương trình thực hiện những công việc sau:

* Nhập danh sách gồm n học viên (n nhập từ bàn phím) gồm các thông tin: Mã sinh viên, họ tên, giới tính, điểm Python, điểm C#.

* Xây dựng các phương thức thực hiện các công việc sau:

- Tính điểm trung bình (diemTB) = (diemJava*2 + diemPython)/3 .

- Xét kết quả đậu hay trượt theo quy ước sau:

+ Nếu điểm trung bình >= 5 thì kết quả là đậu.

+ Nếu điểm trung bình <5 và giới tính là "Nam" thì kết qủa là trượt.

+ Nếu điểm trung bình <5 và phái là "Nu" thì kết quả là đậu.

- In danh sách học viên và tính toán gồm mã sinh viên, họ tên, giới tính, điểm Python, điểm Java, điểm TB, và kết quả (đậu hay trượt).

- Sắp xếp học viên theo thứ tự giảm dần theo điểm trung bình.

- Nhập vào họ tên học viên cần tìm và tìm kiếm trong danh sách học viên, nếu không tìm thấy thì in ra học viên có họ tên không tìm thấy. Nếu có nhiều học viên có cùng họ tên cần tìm thì hãy in ra tất cả những học viên đó.

- Hiển thị thông tin những bạn đã đậu.

- Hiển thị thông tin những bạn đã trượt.

- Hiển thị thông tin những bạn có điểm trung bình >=8.

Bài tập 23: CHƯƠNG TRÌNH QUẢN LÝ TRANH

Viết chương trình theo dạng menu chọn như sau:

1. Nhập thông tin tranh và ghi ra file

2. Sắp xếp theo tên tăng dần từ A-Z

3. Sắp xếp theo diện tích giảm dần

4. Thống kê tranh theo tên tác giả

5. Tìm và hiển thị tranh theo thể loại

6. Tìm và hiển thị tranh có giá bán thấp nhất và cao nhất

7. Tìm và hiển thị tranh có diện tích bé nhất

8. Thoát

Cấu trúc dữ liệu tranh: tên, tác giả, thể loại, chiều dài (cm), chiều rộng (cm), giá bán ($).

Dữ liệu mẫu:

Tên: Thiếu Nữ Bên Hoa Huệ

Tác Giả: Tô Ngọc Vân

Thể Loại: Con Người

Chiều Dài: 90

Chiều Rộng: 60

Giá Bán: 10

--------------------------

Tên: Bức Thư

Tác Giả: Tô Ngọc Vân

Thể Loại: Con Người

Chiều Dài: 80

Chiều Rộng: 70

Giá Bán: 15

--------------------------

Tên: Trước Giờ Biểu Diễn

Tác Giả: Bùi Xuân Phái

Thể Loại: Con Người

Chiều Dài: 70

Chiều Rộng: 60

Giá Bán: 12.5

--------------------------

Tên: Phố Hàng Mắm

Tác Giả: Bùi Xuân Phái

Thể Loại: Phong Cảnh

Chiều Dài: 50

Chiều Rộng: 40

Giá Bán: 14

--------------------------

Tên: Tát Nước Đồng Chiêm

Tác Giả: Trần Văn Cẩn

Thể Loại: Phong Cảnh

Chiều Dài: 100

Chiều Rộng: 75

Giá Bán: 20.5

Bài tập 24

Viết chương trinh quản lý nhân sự theo yêu cầu sau:

1. Tạo một class Employee gồm các thuộc tính sau:

id (int - auto increase)

name (String - tối đa 20)

country (String - tối đa 15)

birthyear (int)

salary (float - USD)

2. Tạo header menu chương trình:

Chương trình quản lý nhân sự

1. Nhập liệu | 2. Sắp xếp theo lương | 3. Hiển thị theo quê | 4. Tìm theo quê và lượng | 5. Thoát

Menu sẽ hiển thị khi chương trình bắt đầu.

Sau khi người dùng chọn tính năng và thực thi xong, trừ option 7 sẽ hiển thị thông báo xem người dung mong muốn tiếp tục không.

Do you want to continue?

- Yes. (bấm phím ‘y’, ‘Y’)

- No (bấm phím  ‘n’, ‘N’)

- Clear màn hình! (bấm phím ‘c’, ‘C’)

Lựa chọn của bạn:

Nếu người dùng chọn trường hợp không hợp lệ, yêu cầu nhập lại.

Lưu ý: chương trình cần đáp ứng được yêu cầu người dùng nhập liệu và ghi ra file trước khi sử dụng các option khác, nếu không sẽ thông báo lỗi cho người dùng, buộc người dùng phải nhập liệu nhân sự trước.

3. Nhập vào danh sách sinh viên:

Nếu người dùng chọn option 1, chương trình thực hiện những yêu cầu sau:

  + Yêu cầu người dùng nhập tổng số nhân sự

  + Nhập thông tin của mỗi nhân sự và ghi ra file

  + Validate thông tin nhập vào theo yêu cầu:

    - Age >= 18 và <= 60 ( tính theo năm sinh)

    - Salary phải => 1000

Mô tả tính năng khi input nhân sự:

Input employee  [1]:

Name: Toan

Country: VN

Year of birth: 1992

Salary: 1200

4. Sắp xếp nhân sự theo lương giảm dần:

Khi người dùng chọn option 2, tiến hành sắp xếp, sau đó hiển thị và ghi ra file danh sách nhân sự theo lương giảm dần:

ID

Name

Country

Year of birth

Salary

2

Nhan su 2

VN

1992

1400

1

Nhan su 1

HN

1990

1200

3

Nhan su 3

QN

1987

1150

5. Hiển thị số lượng nhân sự theo quê quán:

Khi người dùng chọn option 3: tính toán số lượng nhân sự theo quê quán và hiển thị giống ví dụ sau:

Ket qua phan tich:

+ 2 nhan su que  ‘HN’.

+ 1 nhan su que  ‘Vn’.

6. Tìm kiếm sinh viên theo quê quán và lương:

Khi người dùng chọn option 4: Yêu cầu người dùng nhập quê quán và lương.

Hiển thị tất cả những người dùng với quê quán trùng khớp và lương cao hơn lương người dùng nhập vào.

» Tiếp: Bài tập phần Thừa kế & Đa hình
« Trước: Bài tập phần hàm
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!