docs: explain registration variables and fix eligibility

This commit is contained in:
arther committed 2026-10-22 17:34:34 +08:00
1 parent abbe8afdc8
commit 82a831960c
1 file changed
+35 -14
@@ -3,39 +3,60 @@ package com.imwangzhuang.events.practice;
public class RegistrationCalculator {
public static void main(String[] args) {
String eventName = "Java 入门分享会";
int totalSeats = 30;
int registeredSeats = 18;
int requestedSeats = 13;
int pricePerPerson = 50;
boolean registrationOpen = true;
String eventName = "Java 入门分享会"; // 活动名称
int totalSeats = 30; // 活动最多允许多少人报名
int registeredSeats = 18; // 已经有多少人报名
int requestedSeats = 13; // 这一次想报名多少人
int pricePerPerson = 50; // 每人费用,单位:元
boolean registrationOpen = true; // 报名是否开放:true 是开放,false 是关闭
// 剩余名额 = 总名额 - 已报名人数;30 - 18 = 12。
int remainingSeats = calculateRemainingSeats(totalSeats, registeredSeats);
int totalPrice = calculateTotalPrice(requestedSeats, pricePerPerson);
boolean enoughSeats = requestedSeats <= remainingSeats;
// allowed 表示“这一次是否可以报名”,只有所有条件都满足才是 true。
boolean allowed = canRegister(totalSeats, registeredSeats, requestedSeats, registrationOpen);
System.out.println("活动:" + eventName);
System.out.println("剩余名额:" + remainingSeats);
System.out.println("能否报名:" + allowed);
System.out.println(canRegister(totalSeats, registeredSeats, requestedSeats, registrationOpen));
if (allowed) {
// 本次费用 = 本次报名人数 × 每人费用;只有可以报名时才计算。
int totalPrice = calculateTotalPrice(requestedSeats, pricePerPerson);
System.out.println("本次费用:" + totalPrice + " 元");
}
}
// 根据活动总名额和已报名人数,计算还剩多少名额。
static int calculateRemainingSeats(int totalSeats, int registeredSeats) {
return totalSeats - registeredSeats;
}
// 根据本次报名人数和每人费用,计算本次总费用。
static int calculateTotalPrice(int requestedSeats, int pricePerPerson) {
return requestedSeats * pricePerPerson;
}
// 参数依次是:总名额、已报名人数、本次报名人数、报名是否开放。
// 返回 true 表示可以报名,返回 false 表示不可以报名。
static boolean canRegister(int totalSeats, int registeredSeats,
int requestedSeats, boolean registrationOpen) {
// 在这里写你的判断,最后返回 true 或 false
if (!registrationOpen || requestedSeats <= 0 || requestedSeats <= calculateRemainingSeats(totalSeats, registeredSeats)) {
// ! 的意思是“不是”:如果报名没有开放,就不能报名。
if (!registrationOpen) {
return false;
} else {
return true;
}
}
// || 的意思是“或者”:以下任意一种名额数据无效,就不能报名。
if (totalSeats < 0 || registeredSeats < 0 || registeredSeats > totalSeats) {
return false;
}
// 一次报名至少要有 1 人。
if (requestedSeats <= 0) {
return false;
}
// 本次报名人数不超过剩余名额,才可以报名。
int remainingSeats = calculateRemainingSeats(totalSeats, registeredSeats);
return requestedSeats <= remainingSeats;
}
}