活动报名应用 设计一个活动报名应用,在程序中设置活动可报名人数,用户通过界面填写 个人信息及活动信息,如姓名、身份证号、联系电话、报名活动等,程序自动生 成报名序号。将填报的信息存入 out.txt 中,并根据报名序号判断是否报名成功, 将报名是否成功的信息通过弹窗反馈给用户。
完整代码
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;
public class zy
{
private static final int MAX_REGISTRATIONS = 100; // 活动可报名人数
private static int registrationCount = 0; // 当前已报名人数
public static void main(String[] args) {
String name = JOptionPane.showInputDialog("请输入您的姓名:");
String idCardNumber = JOptionPane.showInputDialog("请输入您的身份证号码:");
String phoneNumber = JOptionPane.showInputDialog("请输入您的联系电话:");
String eventName = JOptionPane.showInputDialog("请输入您要报名的活动:");
// 生成报名序号
String registrationNumber = generateRegistrationNumber();
try {
// 将报名信息写入文件
writeRegistrationInfo(name, idCardNumber, phoneNumber, eventName, registrationNumber);
// 判断是否报名成功
boolean success = registrationCount <= MAX_REGISTRATIONS;
String message = success ? "报名成功,您的报名序号是:" + registrationNumber :
"报名人数已满,无法报名";
JOptionPane.showMessageDialog(null, message);
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "写入文件时发生错误:" + e.getMessage());
}
}
private static String generateRegistrationNumber() {
registrationCount++;
return String.format("%06d", registrationCount);
}
private static void writeRegistrationInfo(String name, String idCardNumber,
String phoneNumber, String eventName, String registrationNumber)
throws IOException {
BufferedWriter writer = new BufferedWriter(new FileWriter("out.txt", true));
writer.write("报名序号:" + registrationNumber);
writer.newLine();
writer.write("姓名:" + name);
writer.newLine();
writer.write("身份证号码:" + idCardNumber);
writer.newLine();
writer.write("联系电话:" + phoneNumber);
writer.newLine();
writer.write("报名活动:" + eventName);
writer.newLine();
writer.newLine();
writer.close();
}
}
代码解析
1. 导入所需的类库:
```java
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;
```
这里导入了`BufferedWriter`、`FileWriter`和`IOException`,用于文件操作;同时导入了`JOptionPane`,用于弹出对话框获取用户输入。
2. 定义`zy`类:
```java
public class zy {
// 类体部分...
}
```
3. 定义常量和变量:
```java
private static final int MAX_REGISTRATIONS = 100; // 活动可报名人数
private static int registrationCount = 0; // 当前已报名人数
```
定义了一个表示活动最大报名人数的常量`MAX_REGISTRATIONS`,以及一个记录当前已报名人数的静态变量`registrationCount`。
4. `main`方法:
```java
public static void main(String[] args) {
// 方法体部分...
}
```
这是Java程序的入口点。在这个方法中,我们将执行主要的逻辑代码。
5. 获取用户输入:
```java
String name = JOptionPane.showInputDialog("请输入您的姓名:");
String idCardNumber = JOptionPane.showInputDialog("请输入您的身份证号码:");
String phoneNumber = JOptionPane.showInputDialog("请输入您的联系电话:");
String eventName = JOptionPane.showInputDialog("请输入您要报名的活动:");
```
使用`JOptionPane.showInputDialog`方法显示四个对话框,分别获取用户的姓名、身份证号码、联系电话和要报名的活动名。
6. 生成报名序号:
```java
String registrationNumber = generateRegistrationNumber();
```
调用`generateRegistrationNumber`方法(未在示例代码中给出)生成一个报名序号。
7. 将报名信息写入文件:
```java
writeRegistrationInfo(name, idCardNumber, phoneNumber, eventName, registrationNumber);
```
调用`writeRegistrationInfo`方法将用户的报名信息写入到指定的文件中。
8. 判断是否报名成功:
```java
boolean success = registrationCount <= MAX_REGISTRATIONS;
String message = success ? "报名成功,您的报名序号是:" + registrationNumber :
"报名人数已满,无法报名";
```
判断当前已报名人数是否超过最大报名人数,根据结果生成不同的提示消息。
9. 弹出提示消息:
```java
JOptionPane.showMessageDialog(null, message);
```
使用`JOptionPane.showMessageDialog`方法弹出一个包含提示消息的消息框。
10. 处理异常:
```java
catch (IOException e) {
JOptionPane.showMessageDialog(null, "写入文件时发生错误:" + e.getMessage());
}
```
如果在写入文件过程中发生异常,则捕获该异常并弹出错误提示消息框。