1. 程序概述:
    通过窗体随机生成50道加减法算数题并显示.用户可以做该50道算术题,做完提交系统之后,系统会给出用户的正确率.用户可以重置这50道算术题.
    界面显示:
  2. 程序设计基本思路:
    (1)首先顺序建立50个标签和文本框,再创建一个清空按钮,一个重置按钮,一个打印按钮和一个显示正确率的标签.
    (2)设计随机产生50道计算题的算法并显示于标签中.标签用于显示随机生成的50道算术题,文本框用于用户填写计算的答案.清空按钮用于清空文本框中的之前的答案,可使用户重新作答.重置按钮用于再随机产生50道算术题.打印按钮用于后台获取用户的计算答案并计算出正确率显示在右下角标签中.
在这里插入代码片
package 输出;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.FontFormatException;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;public class Count extends JFrame {public static int a,b,cint;//创建题目的两个随机整数a和b以及用0~1随机数来表示的算术运算符cpublic static String c = null;//以及算术运算符c(以字符串形式表示)public static  JPanel Countpanel;//创建计算面板public JPanel Buttonpanel;//创建按钮及结果面板public static JButton Clearbutton;//创建清空按钮public static JButton Resetbutton;//创建重置按钮public static JButton Printfbutton;//创建打印按钮public static JLabel CountLable;//创建正确率(标签),正确率在标签正呈现public static List<Integer> userlist = new ArrayList<>();//创建存储用户计算结果的集合public static List<JLabel> list = new ArrayList<>();//创建题目(标签)集合,题目在标签中呈现public static List<JTextField> list1 = new ArrayList<>();//创建用户输入计算结果的文本框集合public static List<Integer> list2 = new ArrayList<>();//创建所有题目正确答案集合public static int num ;//设置用户答对的题数public static int j=0;public static int k=0;public static int i=0;public Count(){//初始化按钮Clearbutton = new JButton("清空");Resetbutton = new JButton("重置");Printfbutton = new JButton("打印");//设置按钮大小Clearbutton.setSize(50,100);Resetbutton.setSize(50,100);Printfbutton.setSize(50,100);//初始化计数面板Countpanel = new JPanel();Countpanel.setLayout(new GridLayout(25, 4));//初始化按钮面板Buttonpanel = new JPanel();Buttonpanel.setLayout(new FlowLayout());Buttonpanel.setSize(600,50);Buttonpanel.setBorder(BorderFactory.createLineBorder(Color.GREEN));Buttonpanel.add(Clearbutton);CountLable = new JLabel("                         ");CountLable.setBorder(BorderFactory.createLineBorder(Color.BLACK));//将按钮添加至按钮及结果面板中Buttonpanel.add(Resetbutton);Buttonpanel.add(Printfbutton);Buttonpanel.add(CountLable);//为计数面板添加标签和文本框//CountLable();//设置窗体属性setLayout(new BorderLayout());setBounds(100,100,600,600);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container container = getContentPane();//将计数面板,按钮面板放置在容器中指定位置container.add(Countpanel, BorderLayout.NORTH);container.add(Buttonpanel,BorderLayout.SOUTH);}public static void main(String[] args) {new Count().setVisible(true);CountLable();}//设置CountPanel面板中的组件public static void CountLable(){for(i=0;i<50;i++){JLabel label = new JLabel();//重点:在设置布局的条件下,调用setPreferredSize(new Dimension(80, 20))可以设置标签的大小//重点:而不能调用setsize()方法label.setPreferredSize(new Dimension(80, 20));label.setFont(new Font("楷体",Font.BOLD, 20));label.setBorder(BorderFactory.createLineBorder(Color.RED));//设置标签的边界list.add(label);//list为题目(标签)集合,题目在标签中呈现JTextField textField = new JTextField(4);list1.add(textField);//list1为用户输入计算结果的文本框集合}for(i = 0;i<100;i++){//利用if-else语句来间隔输出标签和文本框if(i%2 == 0){//如果余数为0,则添加标签Countpanel.add(list.get(j));j++;}else{//如果余数为1,则添加文本框Countpanel.add(list1.get(k));k++;}}CreateRandom();//调用创建随机题目的方法CreateRandom();myAddActionLIstener();//调用按钮的动作监听方法myAddActionLIstener()} //随机创建算术题public static void CreateRandom(){//int a,b,cint;//String c = null;Random random = new Random();for(JLabel lable:list){//list为题目(标签)集合,题目在标签中呈现a = random.nextInt(101);b = random.nextInt(101);cint = random.nextInt(2);switch (cint) {case 0:c = "+";RandomRange();//创建规定算数题范围函数,即和不大于100,差不小于0lable.setText(a+c+b);list2.add(a+b);//list2为所有题目正确答案的集合break;default:c = "-";RandomRange();//创建规定算数题范围函数,即和不大于100,差不小于0lable.setText(a+c+b);list2.add(a-b);//list2为所有题目正确答案的集合break;}}}public static void RandomRange(){//创建规定算数题范围函数,即和不大于100,差不小于0Random r = new Random();switch (c) {case "+":while(a+b>100){a = r.nextInt(101);b = r.nextInt(101);if(a + b <= 100){}}break;default:while(a-b<0){a = r.nextInt(101);b = r.nextInt(101);if(a - b >= 0){break;}}break;}}//为按钮添加动作监听方法public static void myAddActionLIstener() {//为清空按钮添加动作监听Clearbutton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {for(JLabel clearlable:list){clearlable.setText("");}for(JTextField cleartextField : list1){cleartextField.setText("");} }});//为重置按钮添加动作监听Resetbutton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {CreateRandom();for(JTextField cleartextField : list1){cleartextField.setText("");}}});//为打印按钮添加监听Printfbutton.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Integer i;Double result;num = 0; //获取用户在文本框中输入的计算结果for(i = 0;i<list1.size();i++){//list为用户输入计算结果的文本框集合//Integer.parseInt()方法用于将字符串转换成数字userlist.add(Integer.parseInt(list1.get(i).getText()));}//计算用户做对的题目个数for(i = 0;i<userlist.size();i++){if(userlist.get(i) == list2.get(i)){//list2为所有题目正确答案的集合num++;                    //num为用户计算正确的个数}}//计算用户做题的正确率result = ((num*1.0)/(list.size())*100);CountLable.setText(result + "%"); }});}
}

3.测试结果:


Java小程序--随机生成50道加减法算数题相关推荐

  1. 随机生成50道100以内的加减题(在线答题)

    一.代码部分: import random def fun(i):  score = 0  list = []  tup = ()  for i in range(i,51):     num1 = ...

  2. 微信小程序随机生成文案

    在展示内容时,我们往往不想千篇一律 效果 js onShareAppMessage: function (res) {if (res.from === 'button') {console.log(r ...

  3. 个人项目1:随机生成30道整数四则运算题

    使用的语言:C# 基本思路:运用最近学习的C#窗体应用程序设计两个按钮一个显示的窗口,运用Random生成随机数,编写程序,调试运行. 窗体设计 代码 namespace 随机四则运算 {public ...

  4. 随机产生50道100以内 加减法的运算

    随机产生50道 加减法的运算 题目分析 1.1. 50道随机数 需要用到 Random 类随机产生100个 100以内的随机数 Random.nextInt(100) + 1; 1.2 随机加减法 存 ...

  5. java编写随机程序,随机生成10道一百以内的加减法

    Java随机生成10道一百以内的加减法 利用Java随机编程输出10道一百以内的加减法 在这里插入代码片 public static void main(String[] args){Scanner ...

  6. Java口算练习软件(随机生成10道100以内的数学练习题)

    Java口算练习软件 使用Java编写口算练习软件 实现以下功能点: 1.随机生成10道100以内的加减法练习题 2.设计GUI界面(包含"生成题目"."上一题" ...

  7. 【软件构造-java编写】生成50道100以内加法/减法算式的习题,并输出。(和不能超过100,差不能小于0)

    原题 (论述题) 生成50道100以内加法/减法算式的习题,并输出. (1)每个算式还需要答案: (2)加法算式的和不能超过100: (3)减法算式的差不能小于0: (4)每行整齐地多显示几个算式,不 ...

  8. 猜数字游戏python程序_Python猜数游戏,程序随机生成一个0-100的数,猜对后退出【实例源码】...

    Python猜数字游戏: 写程序,随机生成一个0~100之间的数用变量x绑定 循环让用户输入一个数用y绑定, 输出猜数字的结果 1. 如果y等于生成的数x,则提示"您猜对了", 打 ...

  9. java小程序_Java小程序

    java小程序 An applet is a special kind of Java program that runs in a Java enabled browser. This is the ...

最新文章

  1. Pytorch的backward()相关理解
  2. AAAI 2018论文解读 | 基于文档级问答任务的新注意力模型
  3. 调用 usb_control_msg 返回错误值 -32, Broken pipe, 对 hidraw write时 返回错误值 -32, Broken pipe
  4. yum 安装apache php mysql
  5. Java LinkedList公共布尔boolean offerFirst(Object o)方法(带示例)
  6. 洛谷P3803 【模板】多项式乘法(FFT)
  7. 如果你需要万圣节的图片素材来点缀你的节日活动,看这里就对了
  8. 《Web Load Testing For Dummie》读书笔记
  9. CentOS 7下载安装MySQL 5.7以及连接虚拟机CentOS 7数据库教程
  10. [渝粤教育] 西南科技大学 土力学基础工程 在线考试复习资料
  11. JS开发之Factory(工厂)模式解析
  12. Maven—Eclipse中配置Maven
  13. java电力巡检系统 项目讲解_苏河湾1号街坊项目电力监控系统的设计与应用
  14. 删除设备和驱动器下图标
  15. SaltStack源码分析之Redis Returner
  16. 中继链路trunk详解
  17. 学会Python好找工作吗?这就告诉你答案
  18. php7.2 安装phpredis扩展,以及phpredis操作redis命令列表
  19. 编程练习:头条校招题
  20. SQL server查询出只选修两门课程的学生学号和姓名

热门文章

  1. Mysql数据库报错1264
  2. BZOJ 2708 木偶
  3. Graphql是什么
  4. [首发] 多方位玩转“地平线新发布AIoT开发板——旭日X3派(Sunrise x3 Pi)” 插电!开机!轻松秒杀!
  5. 1046 mysql_MYSQL 1046 错误求助:
  6. pip被卸载了,如何再重新安装
  7. 爬取某个微博用户的所有微博内容及照片
  8. linux 环境安装 webdav 服务
  9. python black_如何使用Black自动格式化Python代码
  10. 在c语言中本征函数说明,西北工业大学 量子力学历年考题某年的吧