首页 > 基础资料 博客日记

算数答题小程序

2026-04-22 17:30:02基础资料围观1

极客资料网推荐算数答题小程序这篇文章给大家,欢迎收藏极客资料网享受知识的乐趣

2452531与2452527共同完成的小程序。
一、程序设计思路
本次我们小组合作完成的是一款可视化算术答题小程序,整体设计以简洁实用、交互友好为核心,采用 Java 语言结合 Swing 图形界面实现,不再使用传统的控制台黑框,而是通过窗口化界面提升使用体验。
在功能设计上,我们首先确定了程序的核心需求:随机生成算术题目、提供选项供选择、自动判断答案对错并实时计分。程序整体分为界面搭建、题目生成、交互判断三大模块。界面模块负责创建窗口、题目显示区域、选项按钮及状态提示栏,保证布局清晰、操作简单;题目生成模块通过随机数生成 1 至 50 以内的数字,组成加法算术题,并随机将正确答案分配到四个选项中,同时搭配干扰答案,保证题目的合理性;交互判断模块监听按钮点击事件,获取用户选择的答案,与正确答案对比后给出对错提示,累计得分并自动切换至下一题,完成所有题目后展示最终得分并结束程序。
在合作分工上,我们根据各自擅长的部分进行划分,一人负责图形界面的布局与组件设计,一人负责逻辑代码编写,包括随机题目生成、答案判断与计分逻辑,最后共同调试代码、优化交互细节,确保程序运行稳定、操作流畅。
二 程序代码

点击查看代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

// 中文版答题小程序
public class 答题小程序 extends JFrame implements ActionListener {
    // 题目数据
    int 数字1, 数字2, 正确答案;
    int 当前题号 = 0;
    int 得分 = 0;
    final int 题目总数 = 10;

    // 界面组件(全中文变量名)
    JLabel 题目标签;
    JButton 选项A, 选项B, 选项C, 选项D;
    JLabel 信息标签;

    Random 随机数 = new Random();

    public 答题小程序() {
        // 窗口设置(全中文标题)
        setTitle("中文算术答题小程序");
        setSize(500, 350);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null); // 窗口居中
        setLayout(null);

        // 题目显示区
        题目标签 = new JLabel("", JLabel.CENTER);
        题目标签.setFont(new Font("微软雅黑", Font.PLAIN, 28));
        题目标签.setBounds(50, 50, 400, 50);
        add(题目标签);

        // 四个选项按钮(全中文)
        选项A = new JButton("选项A");
        选项B = new JButton("选项B");
        选项C = new JButton("选项C");
        选项D = new JButton("选项D");

        选项A.setBounds(80, 130, 150, 50);
        选项B.setBounds(260, 130, 150, 50);
        选项C.setBounds(80, 200, 150, 50);
        选项D.setBounds(260, 200, 150, 50);

        选项A.setFont(new Font("微软雅黑", Font.PLAIN, 20));
        选项B.setFont(new Font("微软雅黑", Font.PLAIN, 20));
        选项C.setFont(new Font("微软雅黑", Font.PLAIN, 20));
        选项D.setFont(new Font("微软雅黑", Font.PLAIN, 20));

        add(选项A);
        add(选项B);
        add(选项C);
        add(选项D);

        // 信息提示区
        信息标签 = new JLabel("", JLabel.CENTER);
        信息标签.setBounds(50, 260, 400, 30);
        信息标签.setFont(new Font("微软雅黑", Font.PLAIN, 16));
        add(信息标签);

        // 绑定按钮点击事件
        选项A.addActionListener(this);
        选项B.addActionListener(this);
        选项C.addActionListener(this);
        选项D.addActionListener(this);

        // 开始出题
        下一题();
    }

    // 生成下一道题
    void 下一题() {
        // 如果题目做完了,显示总分
        if (当前题号 >= 题目总数) {
            JOptionPane.showMessageDialog(this,
                    "🎉 答题结束!\n你一共答对了 " + 得分 + " 题\n总分:" + 得分 + " / " + 题目总数);
            System.exit(0);
            return;
        }

        // 生成1-50之间的随机数,组成加法题
        数字1 = 随机数.nextInt(50) + 1;
        数字2 = 随机数.nextInt(50) + 1;
        正确答案 = 数字1 + 数字2;

        // 更新题目和提示信息(全中文)
        题目标签.setText(数字1 + " + " + 数字2 + " = ?");
        信息标签.setText("第 " + (当前题号 + 1) + " 题 | 当前得分:" + 得分);

        // 给四个按钮设置随机选项,其中一个是正确答案
        JButton[] 选项组 = {选项A, 选项B, 选项C, 选项D};
        for (JButton 按钮 : 选项组) {
            // 先给所有按钮填一个随机错误答案
            按钮.setText(String.valueOf(随机数.nextInt(100) + 1));
            按钮.setEnabled(true);
        }
        // 随机选一个按钮放正确答案
        选项组[随机数.nextInt(4)].setText(String.valueOf(正确答案));
    }

    // 按钮点击事件处理
    @Override
    public void actionPerformed(ActionEvent e) {
        JButton 被点击的按钮 = (JButton) e.getSource();
        String 用户答案文本 = 被点击的按钮.getText();
        int 用户答案 = Integer.parseInt(用户答案文本);

        // 判断对错,弹出中文提示框
        if (用户答案 == 正确答案) {
            得分++;
            JOptionPane.showMessageDialog(this, "✅ 回答正确!太棒了!");
        } else {
            JOptionPane.showMessageDialog(this, "❌ 答错啦,正确答案是:" + 正确答案);
        }

        // 题号+1,进入下一题
        当前题号++;
        下一题();
    }

    // 主方法,程序入口
    public static void main(String[] args) {
        // 启动窗口
        new 答题小程序().setVisible(true);
    }
}
三 预算结果

image

微信图片_20260422170404_6161_2

微信图片_20260422170404_6162_2

微信图片_20260422170453_6165_2

四 实验体会
通过这次与同学合作完成编程作业的过程,我们收获良多,也对编程有了更深刻的理解。
首先,编程并非单纯的代码堆砌,而是先理清思路、再逐步实现的过程。在编写程序前,我们先梳理清楚需求与模块划分,避免了编写过程中逻辑混乱、反复修改的问题,这让我们明白清晰的设计思路是高效编程的基础。其次,团队合作极大地提高了完成效率,遇到界面显示异常、逻辑判断错误等问题时,两人一起分析排查,比独自摸索更快速地找到问题根源,也在交流中互相学习,弥补了各自的知识漏洞。
同时,我们也体会到,实用的程序不仅要实现功能,更要注重用户体验。从控制台程序升级为图形界面程序,虽然增加了代码量,但让程序更直观、易用,这让我们意识到编程不仅要追求逻辑正确,还要考虑使用者的感受。此外,调试代码的过程也锻炼了我们的耐心与细心,很多错误并非代码语法问题,而是细节上的疏漏,只有认真排查才能解决。
这次作业让我们不仅巩固了 Java 编程与图形界面开发的知识,更学会了团队协作与问题解决,也激发了我们对编程的兴趣,今后我们会继续练习,尝试编写更完善、更丰富的小程序。


文章来源:https://www.cnblogs.com/yydmw66/p/19910343
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云