功能要求:该程序实现十道100以内四则运算数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。

界面要求:图形界面实现,基于ArrayList、Vector等高级类。

GUI 界面打算用netbeans实现,再完善相应的代码。

整体源码如下:

package test;import java.util.ArrayList;
import java.util.Random;/**** @author 20633*/
public class test05 extends javax.swing.JFrame {ArrayList<String> namelist = new ArrayList<String> ();ArrayList<String> idlist = new ArrayList<String> ();ArrayList<String> x1list = new ArrayList<String> ();ArrayList<String> x2list = new ArrayList<String> ();ArrayList<String> oplist = new ArrayList<String> ();ArrayList<String> daanlist = new ArrayList<String> ();//    获取随机运算符public static String Op() {String op = "";Random random = new Random();int i = random.nextInt(4);switch (i) {case 0:op = "+";break;case 1:op = "-";break;case 2:op = "×";break;case 3:op = "÷";break;}return op;}//    获取随机数private int Sui() {Random random = new Random();/*0----十以内1-----百以内2-----千以内*/int i = jComboBox1.getSelectedIndex();int x = 0;switch (i) {case 0:x = random.nextInt(11);break;case 1:x = random.nextInt(101);break;case 2:x = random.nextInt(1001);break;default:x = random.nextInt(11);break;}return x;}//    得到正确答案public  String Daan(int x1, int x2, String op) {double daan = 0;if (op.equals("+")) {daan = (double) x1 + x2;} else if (op.equals("-")) {daan = (double) x1 - x2;} else if (op.equals("×")) {daan = (double) x1 * x2;} else {daan = (double) x1 / (double) x2;}return String.format("%.2f", daan);}public test05() {initComponents();}/*** This method is called from within the constructor to initialize the form.* WARNING: Do NOT modify this code. The content of this method is always* regenerated by the Form Editor.*/@SuppressWarnings("unchecked")// <editor-fold defaultstate="collapsed" desc="Generated Code">private void initComponents() {jLabel1 = new javax.swing.JLabel();jLabel2 = new javax.swing.JLabel();namefiled = new javax.swing.JTextField();jLabel3 = new javax.swing.JLabel();idfiled = new javax.swing.JTextField();jLabel4 = new javax.swing.JLabel();jComboBox1 = new javax.swing.JComboBox<>();jLabel5 = new javax.swing.JLabel();dafiled = new javax.swing.JTextField();jButton1 = new javax.swing.JButton();jScrollPane1 = new javax.swing.JScrollPane();area = new javax.swing.JTextArea();shizifiled = new javax.swing.JTextField();jButton2 = new javax.swing.JButton();setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);setBackground(new java.awt.Color(204, 255, 255));jLabel1.setFont(new java.awt.Font("宋体", 1, 36)); // NOI18NjLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);jLabel1.setText("四则运算(测试版)");jLabel1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);jLabel2.setFont(new java.awt.Font("宋体", 0, 28)); // NOI18NjLabel2.setText(" 姓名:");namefiled.setFont(new java.awt.Font("宋体", 0, 28)); // NOI18Nnamefiled.setToolTipText("");namefiled.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {namefiledActionPerformed(evt);}});jLabel3.setFont(new java.awt.Font("宋体", 0, 28)); // NOI18NjLabel3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);jLabel3.setText(" 学号:");idfiled.setFont(new java.awt.Font("宋体", 0, 28)); // NOI18Nidfiled.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {idfiledActionPerformed(evt);}});jLabel4.setFont(new java.awt.Font("宋体", 0, 28)); // NOI18NjLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);jLabel4.setText("难度:");jComboBox1.setFont(new java.awt.Font("宋体", 0, 28)); // NOI18NjComboBox1.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "十以内", "百以内", "千以内", " " }));jComboBox1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jComboBox1ActionPerformed(evt);}});jLabel5.setFont(new java.awt.Font("宋体", 1, 36)); // NOI18NjLabel5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);jLabel5.setText("=");dafiled.setFont(new java.awt.Font("宋体", 0, 36)); // NOI18NjButton1.setFont(new java.awt.Font("宋体", 1, 28)); // NOI18NjButton1.setText("提交答案");jButton1.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jButton1ActionPerformed(evt);}});area.setColumns(20);area.setFont(new java.awt.Font("Monospaced", 0, 36)); // NOI18Narea.setLineWrap(true);area.setRows(5);jScrollPane1.setViewportView(area);shizifiled.setFont(new java.awt.Font("宋体", 0, 36)); // NOI18Nshizifiled.setHorizontalAlignment(javax.swing.JTextField.CENTER);shizifiled.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {shizifiledActionPerformed(evt);}});jButton2.setFont(new java.awt.Font("宋体", 1, 36)); // NOI18NjButton2.setText("开始");jButton2.addActionListener(new java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent evt) {jButton2ActionPerformed(evt);}});javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());getContentPane().setLayout(layout);layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addGroup(layout.createSequentialGroup().addContainerGap().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false).addComponent(jScrollPane1).addGroup(layout.createSequentialGroup().addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING).addComponent(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE)).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addComponent(namefiled, javax.swing.GroupLayout.PREFERRED_SIZE, 195, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(62, 62, 62).addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addComponent(idfiled, javax.swing.GroupLayout.PREFERRED_SIZE, 269, javax.swing.GroupLayout.PREFERRED_SIZE)).addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup().addComponent(shizifiled, javax.swing.GroupLayout.PREFERRED_SIZE, 235, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(9, 9, 9).addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addComponent(dafiled, javax.swing.GroupLayout.PREFERRED_SIZE, 226, javax.swing.GroupLayout.PREFERRED_SIZE))).addGap(80, 80, 80).addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(jButton1).addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, 170, javax.swing.GroupLayout.PREFERRED_SIZE)))).addContainerGap(62, Short.MAX_VALUE)));layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false).addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(namefiled, javax.swing.GroupLayout.DEFAULT_SIZE, 62, Short.MAX_VALUE).addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(idfiled).addComponent(jLabel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE).addComponent(jComboBox1)).addGap(60, 60, 60).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false).addComponent(jLabel5).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE).addComponent(dafiled, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)).addComponent(shizifiled).addComponent(jButton2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)).addGap(51, 51, 51).addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 394, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(0, 62, Short.MAX_VALUE)));pack();}// </editor-fold>private void namefiledActionPerformed(java.awt.event.ActionEvent evt) {// TODO add your handling code here:}private void idfiledActionPerformed(java.awt.event.ActionEvent evt) {// TODO add your handling code here:}private void shizifiledActionPerformed(java.awt.event.ActionEvent evt) {// TODO add your handling code here:}private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {// TODO add your handling code here:for(int  i=0;i<10;i++){x1list.add(String.valueOf(Sui()));x2list.add(String.valueOf(Sui()));oplist.add(Op());}for(int i=0;i<10;i++){daanlist.add(Daan(Integer.parseInt(x1list.get(i)),Integer.parseInt(x2list.get(i)),oplist.get(i)));}}private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {// TODO add your handling code here:if(namefiled.getText().equals("")||idfiled.getText().equals("")){shizifiled.setText("请完善信息!");}else{namelist.add(namefiled.getText());idlist.add(idfiled.getText());shizifiled.setText(x1list.get(0)+oplist.get(0)+x2list.get(0));}}int i=1;int j =0;int score = 0;private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {if(i<=9){shizifiled.setText(x1list.get(i)+oplist.get(i)+x2list.get(i));}i+=1;if(Math.abs(Double.parseDouble(dafiled.getText())-Double.parseDouble(daanlist.get(j)))<=0.01){score += 10;}area.append(x1list.get(j)+oplist.get(j)+x2list.get(j)+"="+dafiled.getText()+"  "+"正确答案为:"+daanlist.get(j)+"\n");dafiled.setText("");j+=1;if(j==10){area.append("总分为100分,您的得分为:"+score);}}public static void main(String args[]) {java.awt.EventQueue.invokeLater(new Runnable() {public void run() {new test05().setVisible(true);}});}// Variables declaration - do not modifyprivate javax.swing.JTextArea area;private javax.swing.JTextField dafiled;private javax.swing.JTextField idfiled;private javax.swing.JButton jButton1;private javax.swing.JButton jButton2;private javax.swing.JComboBox<String> jComboBox1;private javax.swing.JLabel jLabel1;private javax.swing.JLabel jLabel2;private javax.swing.JLabel jLabel3;private javax.swing.JLabel jLabel4;private javax.swing.JLabel jLabel5;private javax.swing.JScrollPane jScrollPane1;private javax.swing.JTextField namefiled;private javax.swing.JTextField shizifiled;// End of variables declaration
}

代码较多,界面部分的代码系自动生成,不必过于关注。这里主要定义了三个方法,分别是 获取随机运算符(+,-,*,÷),生成随机数(根据所做的选择来生成相应范围的随机数),获取正确答案。

//获取随机运算符

public static String Op() {String op = "";Random random = new Random();int i = random.nextInt(4);switch (i) {case 0:op = "+";break;case 1:op = "-";break;case 2:op = "×";break;case 3:op = "÷";break;}return op;
}

//生成随机数

public  int Sui() {Random random = new Random();/*0----十以内1-----百以内2-----千以内*/int i = jComboBox1.getSelectedIndex();int x = 0;switch (i) {case 0:x = random.nextInt(11);break;case 1:x = random.nextInt(101);break;case 2:x = random.nextInt(1001);break;default:x = random.nextInt(11);break;}return x;}

//获得正确答案 ---此处保留两位小数

public  String Daan(int x1, int x2, String op) {double daan = 0;if (op.equals("+")) {daan = (double) x1 + x2;} else if (op.equals("-")) {daan = (double) x1 - x2;} else if (op.equals("×")) {daan = (double) x1 * x2;} else {daan = (double) x1 / (double) x2;}return String.format("%.2f", daan);
}

运行界面如下:

填写姓名和学号后,选择难度点击开始就可以出现式子,提交答案后,会对式子进行一个展示

做够十道题后会对分数进行统计,计算出最后得分:

以上代码只是实现了最基础的功能,再复杂一点可以连接数据库,存储每个学生的学号,姓名,所选择的难度及最后的得分。

java四则运算简单界面版相关推荐

  1. java四则运算代码_Java实现简单四则运算

    GitHub 项目地址 PSP PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 10 · Estima ...

  2. c语言制作贪吃小白入门,小白入门——easyx界面版“贪吃蛇”的C语言实现(详细)...

    小白入门--easyx界面版"贪吃蛇"的C语言实现(详细) 作者:顽石 前言:C语言初学者都是在控制台上开发一些小游戏什么,由于没有界面(比如图片.音乐,不能做出拥有自己风格的程序 ...

  3. Java制作简单小画板

    Java制作简单画板,包括两个类,一个主要画板类Drawpad,一个画板监听器DrawListener类. 1.Drawpad类,包括画板,画板功能设计,保存图片等 package Java课程设计; ...

  4. java实现简单的银行存款取款系统

    项目场景: java实现简单的银行存款取款系统 本次代码适合初学者小白,连数据库都没有运用.一次性程序哈哈. 备学内容: 你得先了解java中以下基本内容. 1. 数组 2. 方法 3. 类 4. S ...

  5. 用Java实现简单的计算器

    用Java实现简单的计算器 ​ 本计算器实现了最简单的四则运算,界面简洁,小伙伴可以根据自己的需要再此基础上进行修改,可拓展性强 效果图: 代码: public class Counter exten ...

  6. 超级备份工具robocopyGUI界面版

    Microsoft Windows 中内置的传统的"复制和粘贴"功能有一些局限性.它在执行简单的任务(将一个文档从一个目录移动到另一个目录等)时处理得还好,但缺乏 IT 专业人员在 ...

  7. java简单通讯录的实现02person类_用java实现简单的小游戏(你一定玩过)

    用java实现简单的小游戏(你一定玩过) 对于java初学者来说,通过一些学习小游戏来对swing学习以及对java基础的学习是一个好的方法,同时也给学习带来了很多的乐趣,接下来就给大家分享一个jav ...

  8. java实现简单窗体小游戏----球球大作战

    java实现简单窗体小游戏----球球大作战 需求分析 1.分析小球的属性: ​ 坐标.大小.颜色.方向.速度 2.抽象类:Ball ​ 设计类:BallMain-创建窗体 ​ BallJPanel- ...

  9. Java JNI简单实现

    Java JNI简单实现 JNI(Java Native Interface)允许了Java和C&C++进行交互?这不折腾人嘛! 一.JNI简述 http://baike.baidu.com/ ...

最新文章

  1. .Net Discovery 系列之九--string从入门到精通(勘误版下)
  2. C#开发微信门户及应用(9)-微信门户菜单管理及提交到微信服务器
  3. WinForm控件之【NumericUpDown】
  4. 开关电源异址替换实战割接
  5. Gentoo 安装日记 16(编译内核)
  6. EasyUI表单验证,自定义插件验证,自定义js插件验证,远程验证,常见手机号,中英文,qq等验证规则验证
  7. P3357 最长k可重线段集问题(网络流/串联/拆点)
  8. pmc订单表格_复工了,读一则“如何提升订单准交率和生产效率”的真实故事
  9. tp5微信公众号获取用户openid_tp5+微信公众号获取用户基本信息
  10. php 遍历目录下的子目录文件,PHP获取目录及子目录下指定后缀的所有文件
  11. R语言分类算法之朴素贝叶斯分类(Naive Bayesian Classification)
  12. python第一题 引发的思考和学习
  13. 11.17牛客练习赛31 ABC-----未完
  14. 联想拯救者R720黑苹果EFI分享
  15. WinRAR 6.0 永久去除广告
  16. windows minidump 的那些事
  17. ps里怎么给透明背景填充颜色
  18. Espresso的详细使用
  19. 快速记忆英语单词计算机,电脑英语记单词软件哪个好循环记忆_怎么能快速记忆英语单词...
  20. 软件工程:玩“积木”的高手

热门文章

  1. 企业微信群机器人是什么?企微机器人如何自动发消息?
  2. 城市公交站点及换乘方案设计
  3. 【Windows 问题系列第 7 篇】电脑卡跟C盘容量有关系吗?
  4. MOX:开创区块链通证参与电影融资的新篇章
  5. MOBA类和“吃鸡”游戏为什么对网络延迟要求高?
  6. 神马笔记 版本1.8.0——删除笔记/文件夹·技术细节篇
  7. Linux 内核配置项详解 myimx6
  8. 关于一政网教育,考生们是如何看待的?
  9. Photoshop使用边缘功能打造后期画意
  10. 公众号开发素材管理效果演示-微信开发素材管理1