Tính tổng s 1

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Với n nhập từ bàn phím hay viết các chương trình tính tổng các dãy s = 1+2-3+4-...(-1)^n+1 * n:


Input 01:
2
Output 01:
3
Input 02:
4
Output 02:
4

Tính tổng s 2

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Với n nhập từ bàn phím hay viết các chương trình tính tổng các dãy s = 1! + 2! + 3! + ... + n! với n <= 20


Input 01:
2
Output 01:
3
Input 02:
3
Output 02:
9

Tính tổng s 3

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Với n nhập từ bàn phím Nếu n lẻ: tính tổng các số lẻ < n, nếu n chẵn: tính tổng các số chẵn < n.


Input 01:
5
Output 01:
4

Giải thích: Lấy các số lẻ nhỏ hơn 5 cộng vào: 1 + 3 = 4

Input 01:
10
Output 01:
20

Giải thích: Lấy các số chẵn nhỏ hơn 10 cộng vào: 2 + 4 + 6 + 8 = 20


Tìm max của 3 số

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Viết chương trình nhập vào 3 số nguyên từ bàn phím, chương trình sẽ in ra sô nguyên có giá trị lớn nhất.

Đầu vào: Nhập vào 3 số nguyên cách nhau 1 khoảng trắng

Đầu ra: In ra giá trị max của 3 số


Input:
100 50 200
Output:
200

Số âm hay số dương

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Viết chương trình nhập và 1 số nguyên từ bàn phím, chương trình sẽ in ra thông tin số vừa nhập là số "AM", "DUONG" hoặc là số "KHONG"


Input 01:
-1
Output 01:
AM
Input 02:
100
Output 02:
DUONG
Input 03:
0
Output 03:
KHONG

Kiểm tra sự tồn tại của tam giác

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Viết chương trình cho phép nhập vào 3 số thực tương ứng với độ dài của một tam giác và kiểm tra 3 số này có phải là 3 cạnh của một tam giác hay không (nếu nó thỏa mãn điều kiện tổng của hai cạnh bất kỳ đều lớn hơn cạnh thứ 3).

Nếu tồn tại tam giác in ra YES, ngược lại in ra NO


Input 01:
4 5 6
Output 01:
YES
Input 02:
4 5 10
Output 02:
NO

Tính tổng s 4

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Với n nhập từ bàn phím hay viết các chương trình tính tổng các dãy s = 1/2 + 2/3 + ... + (n-1)/n

Lưu ý: Kết quả làm tròn lấy 2 chữ số sau phần thập phân


Input 01:
2
Output 01:
0.50
Input 02:
3
Output 02:
1.17

Quản Lý Nhân Viên và Tính Lương Tháng (Bài 3 - 1)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Một công ty muốn xây dựng một hệ thống quản lý nhân viên đơn giản để lưu trữ thông tin và tính lương tháng của từng nhân viên. Mỗi nhân viên có các thông tin:

  • Mã nhân viên (employeeID)
  • Họ tên (name)
  • Chức vụ (position)
  • Lương cơ bản hàng tháng (salary)

Hệ thống cũng ghi nhận:

  • Số ngày làm việc thực tế trong tháng (workDays)
  • Số giờ làm thêm (overtimeHours)
  • Khoản thưởng (bonus)
  • Khoản bị trừ/phạt (penalty)

Công thức tính lương tháng: monthlySalary = (salary / 22) * workDays + overtimeHours * 20000 + bonus - penalty

Yêu cầu: Viết một chương trình Java thực hiện:

  1. Nhập thông tin một nhân viên từ bàn phím.

  2. Tính và in ra lương tháng của nhân viên theo định dạng quy định.


Đầu vào: Gồm 2 dòng:

  • Dòng 1: employeeID name position salary (Trong đó salary là số thực)
  • Dòng 2: workDays overtimeHours bonus penalty (Trong đó workDays, overtimeHours là số nguyên, bonus, penalty là số thực)

Đầu ra: In ra 4 dòng thông tin:

  • ID: <employeeID>
  • Name: <name>
  • Position: <position>
  • Monthly Salary: <monthlySalary>

Ví dụ:

Input:
NV001 An Developer 22000000
20 10 500000 100000
Output:
ID: NV001
Name: An
Position: Developer
Monthly Salary: 20600000.00

Quản lý tài khoản ngân hàng (Bài 3 - 2)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Một ngân hàng muốn xây dựng hệ thống quản lý khách hàng và tài khoản. Mỗi khách hàng có thể sở hữu nhiều tài khoản ngân hàng. Mỗi tài khoản có thể được nạp tiền, rút tiền và kiểm tra số dư.

Yêu cầu: Viết chương trình Java để:

  • Tạo một khách hàng với thông tin cơ bản.
  • Thêm một tài khoản vào khách hàng đó.
  • Thực hiện một số giao dịch: nạp tiền, rút tiền, kiểm tra số dư.
  • In ra thông tin tài khoản sau các giao dịch.

Đầu vào gồm 3 dòng:

  • Dòng 1: customerID name
  • Dòng 2: accountNumber accountType initialBalance
  • Dòng 3: depositAmount withdrawAmount

Đầu ra in ra 4 dòng thông tin:

  • Customer ID: <customerID>
  • Name: <name>
  • Account Number: <accountNumber>
  • Balance: <balanceAfterTransactions>

In balance sau khi đã nạp và rút tiền, với 2 chữ số sau dấu thập phân.

Giao dịch:

  • Nạp tiền: Cộng depositAmount vào tài khoản.
  • Rút tiền: Nếu đủ tiền, trừ withdrawAmount khỏi tài khoản; nếu không đủ, không rút và giữ nguyên số dư.

Ví dụ:

Input:
KH001 An
TK1001 SAVINGS 1000000
500000 300000
Output:
Customer ID: KH001
Name: An
Account Number: TK1001
Balance: 1200000.00

Quản lý cửa hàng sách (Bài 3 - 3)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Một cửa hàng sách cần xây dựng hệ thống để quản lý thông tin sách, tác giả và các đơn hàng từ khách hàng. Mỗi đơn hàng gồm một số lượng sách cụ thể, và hệ thống phải tính được tổng tiền đơn hàng, cập nhật tồn kho sau khi bán.

Yêu cầu viết chương trình Java để:

  • Tạo một tác giả và thêm sách cho tác giả đó.
  • Tạo một đơn hàng gồm một cuốn sách cụ thể với số lượng mua.
  • Tính tổng tiền đơn hàng, cập nhật tồn kho sách nếu đủ hàng.
  • In ra thông tin đơn hàng và tồn kho còn lại.

Đầu vào gồm 4 dòng:

  • Dòng 1: authorID authorName
  • Dòng 2: bookID title price stock
  • Dòng 3: orderID customerName
  • Dòng 4: quantityOrdered

Đầu ra in ra 4 dòng thông tin:

  • Order ID: <orderID>
  • Customer: <customerName>
  • Total Price: <calculatedPrice>
  • Remaining Stock: <stockAfterOrder>

Ví dụ:

Input:
TG01 NguyenNgocTu
S001 CanNha4Tang 85000 10
OD01 Linh
3
Output:
Order ID: OD01
Customer: Linh
Total Price: 255000.00
Remaining Stock: 7

Quản lý hệ thống đặt phòng khách sạn (Bài 3 - 4)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Một khách sạn cần xây dựng hệ thống để quản lý phòng, khách hàng và các đơn đặt phòng. Hệ thống phải kiểm tra phòng còn trống, thực hiện đặt phòng, và tính tổng chi phí dựa trên số ngày lưu trú.

Yêu cầu viết chương trình Java để:

  • Tạo một khách hàng và một phòng trong khách sạn.
  • Thực hiện đặt phòng nếu còn trống.
  • Tính tổng chi phí dựa vào giá phòng và số ngày lưu trú.
  • Cập nhật trạng thái phòng và in ra thông tin đặt phòng.

Đầu vào gồm 4 dòng:

  • Dòng 1: roomID roomType price availability (availability = true nếu phòng trống, false nếu đã có người đặt)
  • Dòng 2: customerID name phone
  • Dòng 3: bookingID checkInDate checkOutDate (ngày dưới dạng số nguyên, ví dụ: 1 5 tương ứng 1/5 - 5/5)
  • Dòng 4: là số nguyên (ngày nhận phòng) và (ngày trả phòng): checkIn checkOut (số ngày lưu trú = checkOut - checkIn)

Đầu ra:

Nếu phòng còn trống thì in:

  • Booking ID: <bookingID>
  • Customer: <name>
  • Room: <roomID>
  • Total Payment: <payment>

Nếu phòng đã đặt thì in: Room <roomID> is not available.


Ràng buộc: price ∈ [100, 10000] checkOut > checkIn Mỗi phòng chỉ được đặt bởi 1 khách tại một thời điểm


Ví dụ:

Input 01:
P101 Deluxe 500 true
C001 Mai 0912345678
B001 1 4
1 4
Output 01:
Booking ID: B001
Customer: Mai
Room: P101
Total Payment: 1500
Input 02:
P102 Standard 700 false
C002 Linh 0901234567
B002 3 6
3 6
Output 02:
Room P102 is not available.

Quản lý hệ thống học trực tuyến (Bài 3 - 5)

Nộp bài
Time limit: 1.0 / Memory limit: 256M

Point: 1

Một tổ chức giáo dục cần xây dựng một hệ thống quản lý các khóa học trực tuyến, học viên và giảng viên. Hệ thống cần có khả năng:

  • Quản lý thông tin các khóa học, bao gồm tên khóa học, mã khóa học, giảng viên phụ trách, và danh sách học viên đã đăng ký.

  • Học viên có thể đăng ký vào các khóa học.

  • Giảng viên có thể được phân công giảng dạy các khóa học.

  • Có thể ghi nhận điểm số của học viên trong từng khóa học.

Bạn cần hiện thực các lớp và chức năng theo yêu cầu bên dưới.

Yêu cầu:

Cài đặt các lớp sau:

  1. Lớp Student:

a. Thuộc tính:

String studentID

String name

List<Course> coursesEnrolled

b. Phương thức:

void registerCourse(Course course): đăng ký một khóa học.

  1. Lớp Instructor:

Thuộc tính:

String instructorID

String name

List<Course> coursesTaught

  1. Lớp Course:

a. Thuộc tính:

String courseID

String courseName

Instructor instructor

List<Student> students

Map<Student, Double> grades

b. Phương thức:

void enrollStudent(Student student): thêm học viên vào khóa học.

void assignInstructor(Instructor instructor): gán giảng viên cho khóa học.

void recordGrade(Student student, double grade): ghi điểm cho học viên.


Định dạng đầu vào:

Chương trình chính (Main class) sẽ đọc dữ liệu đầu vào từ bàn phím như sau:

Dòng đầu tiên: số lượng sinh viên n, số lượng giảng viên m, số lượng khóa học k.

Tiếp theo là n dòng, mỗi dòng chứa: studentID name

Tiếp theo là m dòng, mỗi dòng chứa: instructorID name

Tiếp theo là k dòng, mỗi dòng chứa: courseID courseName

Sau đó là các lệnh quản lý hệ thống, mỗi lệnh trên một dòng, gồm:

ENROLL studentID courseID

ASSIGN instructorID courseID

GRADE studentID courseID grade

PRINT courseID — in ra danh sách học viên, tên, điểm của họ trong khóa học

Kết thúc dữ liệu bằng dòng END


Định dạng đầu ra: Với mỗi lệnh PRINT, in ra theo mẫu:

Course: <courseID> - <courseName> Instructor: <instructorName> Students: <studentName> - <grade> ...


Ràng buộc:

Tối đa 100 học viên, 50 giảng viên, 100 khóa học.

Điểm số là số thực từ 0.0 đến 10.0.

Tên không chứa dấu cách.


Ví dụ:

Input:
2 1 1
S01 Alice
S02 Bob
I01 DrSmith
C01 Java101
ENROLL S01 C01
ENROLL S02 C01
ASSIGN I01 C01
GRADE S01 C01 8.5
GRADE S02 C01 9.0
PRINT C01
END
Output:
Course: C01 - Java101
Instructor: DrSmith
Students:
Alice - 8.5
Bob - 9.0