JAVA程序 活动报名应用

活动报名应用 设计一个活动报名应用,在程序中设置活动可报名人数,用户通过界面填写 个人信息及活动信息,如姓名、身份证号、联系电话、报名活动等,程序自动生 成报名序号。将填报的信息存入 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());
}
```
如果在写入文件过程中发生异常,则捕获该异常并弹出错误提示消息框。

  • 27
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子废墟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值