做这个软件的时候 ,我应该从用户的角度考虑问题,而不是简单实现了老师交代的功能。 于是我把功能的选择变成了年级的选择 ,

选择哪一个年级的,然后填写出题的数量,按下出题按钮,然后在下面的文本框中就会出现对应年级的难度的题目,这样简化的用户的选择。

开始的时候我将数字生成单独写在一个类里边的,但是后来做界面的时候,本想调用实例化对象,但是出现了线程的问题,尝试了解决方法但是没有奏效

于是我又将生成数字的方法直接写在一个类里边直接就是利用这一个形成了出题的界面和处理。

当然本软件是为小学生准备的 于是我去百度了小学各个年级数学题出题范围 ,于是发现自己写的方法没有调用上,是因为小学难度还没有达到那个水平 ,但是

方法我已经写出了,如果要用的话,到时候可以调用就可以了。

源代码如下:

import java.awt.Dimension;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;
import java.util.Random;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Jiemian extends JFrame{
      public JPanel Panel1;
      public JLabel graselect;//年纪选择
      public JLabel questnum;//题目数量
      public ButtonGroup buttonGroup;
      public JTextField textnum;//添加题目数量
      public JButton  chuti;
      public JButton   chongzhi;
      public  JTextArea  quest;//出题的地方
      public JRadioButton gradetwo;
      public JRadioButton gradethree;
      public JRadioButton gradefour;
      public JRadioButton gradefive;

public static void main(String[] args) {
         try{
            Jiemian jm=new Jiemian();
              jm.setVisible(true);
             }
        catch(Exception e){
          e.printStackTrace();
  }
 }
  public Jiemian(){
  super();
  setTitle("随机出题系统");
  setBounds(0,0,400,500);
  getContentPane().setLayout(null);
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//年级选择
  graselect=new JLabel();
  graselect.setBounds(0, 30, 50, 30);
  graselect.setText("年级:");
  getContentPane().add(graselect);
  //二年级
     buttonGroup=new ButtonGroup();
     gradetwo =new JRadioButton();
     buttonGroup.add(gradetwo);
     gradetwo.setText("二年级");
     gradetwo.setBounds(60, 30, 80, 30);
     gradetwo.setSelected(true);
     getContentPane().add(gradetwo);
     //三年级
     gradethree =new JRadioButton();
     buttonGroup.add(gradethree);
     gradethree.setText("三年级");
     gradethree.setBounds(140, 30, 80, 30);
     //gradetwo.setSelected(false);
     getContentPane().add(gradethree);
     //四年级
     gradefour =new JRadioButton();
     buttonGroup.add(gradefour);
     gradefour.setText("四年级");
     gradefour.setBounds(220, 30, 80, 30);
     //gradetwo.setSelected(false);
     getContentPane().add(gradefour);
     //五年级
     gradefive =new JRadioButton();
     buttonGroup.add(gradefive);
     gradefive.setText("五年级");
     gradefive.setBounds(300, 30, 80, 30);
     //gradetwo.setSelected(false);
     getContentPane().add(gradefive);

questnum=new JLabel();
     questnum.setText("题目数量:");
     questnum.setBounds(0, 80, 80, 40);
     getContentPane().add(questnum);
 
     //题目数量
     textnum=new JTextField();
     textnum.setBounds(90,90, 80, 20);
     getContentPane().add(textnum);
      //出题的按钮
     chuti= new JButton();
     chuti.setText("出题");
     chuti.setBounds(60, 150, 60, 30);
   
  
  chuti.addActionListener( new chutiListener());
     getContentPane().add(chuti);
     //重置的按钮
     chongzhi =new JButton();
     chongzhi.setText("重置");
     chongzhi.setBounds(240, 150, 60, 30);
     chongzhi.addActionListener(new chongzhiListener());
     getContentPane().add(chongzhi);
    //出题的方框
      quest=new JTextArea();
      quest.setColumns(15);
      quest.setRows(3);
      quest.setLineWrap(true);
      JScrollPane scrollPane=new JScrollPane();
      scrollPane.setViewportView(quest);
      Dimension dime=quest.getPreferredSize();
      scrollPane.setBounds(0, 200, 400, 200);
      getContentPane().add(scrollPane);
     }
 //生成数的方法
 public  int shenchengnum(int a){
     Random rand=new Random();
     int k=0;
     int j=0;
     for(int i=0;i<a;i++)
     {
      j=rand.nextInt(9)+1;
      k=k*10+j;
     }
     return k;
    }
 public char shengchenchar(boolean zhfu){
     Random rand=new Random();
     char c=' ';
     if(zhfu){
      int j=rand.nextInt()%2;
       if(j==0)
       {
        c='-';
       }
      
     }
        return c;
     }
    public void fenshunum(int a,int b,int c){   
     a=shenchengnum(c);
     b=shenchengnum(c);
    }
    public String xiaoshusc(){
     Random rand=new Random();
     DecimalFormat dcmFmt = new DecimalFormat("0.00");
     float a=rand.nextFloat()*100;
        String b=dcmFmt.format(a);
        return b;    
       
    }
    public char yunsuanchar(boolean szyf){
     Random rand=new Random();
     int j=0;
     char c=' ';
     if(szyf){
      j=rand.nextInt(2);
       if(j==0){
        c='/';
       } else if(j==1){
           c='*';
          }
       }

else{
      j=rand.nextInt()%2;
      if(j==0){
       c='+';
      }
      else {
       c='-';
      }
     }
     return c;
    }
//生成数的方法

public void actionPerformed(ActionEvent e) {
  // TODO Auto-generated method stub
  String num=textnum.getText();
  int qtnum=Integer.parseInt(num);
   if(gradetwo.isSelected()){
    for(int i=0;i<qtnum;i++){
     Random rand=new Random();
     int k=rand.nextInt()%2;
     if(k==0){

String fnum=String.valueOf(shenchengnum(4));
        String snum=String.valueOf(shenchengnum(4));
        String ch=String.valueOf(yunsuanchar(false));
              quest.append(fnum+" "+" "+ch+" "+snum+"=");
              quest.append("\n");
              }else{
              String fnum=String.valueOf(shenchengnum(2));
        String snum=String.valueOf(shenchengnum(1));
        String ch=String.valueOf(yunsuanchar(true));
              quest.append(fnum+" "+" "+ch+" "+snum+"=");
              quest.append("\n");
          }

}
    }
   else if(gradethree.isSelected()){
    for(int i=0;i<qtnum;i++){
     Random rand=new Random();
     int k=rand.nextInt()%2;
     if(k==0){
        String fnum=String.valueOf(shenchengnum(4));
        String snum=String.valueOf(shenchengnum(4));
        String ch=String.valueOf(yunsuanchar(false));
              quest.append(fnum+" "+" "+ch+" "+snum+"=");
              quest.append("\n");
              }else{
              String fnum=String.valueOf(shenchengnum(4));
        String snum=String.valueOf(shenchengnum(1));
        String ch=String.valueOf(yunsuanchar(true));
              quest.append(fnum+" "+" "+ch+" "+snum+"=");
              quest.append("\n");
          }
      }

}else if(gradefour.isSelected()){
    for(int i=0;i<qtnum;i++){
     String fnum=String.valueOf(shenchengnum(3));
        String snum=String.valueOf(shenchengnum(2));
        String ch=String.valueOf(yunsuanchar(true));
              quest.append(fnum+" "+" "+ch+" "+snum+"=");
              quest.append("\n");
    }
   }
   else if (gradefive.isSelected()){
    for(int i=0;i<qtnum;i++){
     String fnum=xiaoshusc();
        String snum=xiaoshusc();
        String ch=String.valueOf(yunsuanchar(true));
              quest.append(fnum+" "+" "+ch+" "+snum+"=");
              quest.append("\n");

}

}

}

}     public class chongzhiListener implements ActionListener{

@Override  public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

textnum.setText(null);

quest.setText(null);

}

}

}

转载于:https://www.cnblogs.com/qerror404/p/4348740.html

小学数学计算题随机出题软件相关推荐

  1. c语言五年级小学生题目及答案,小学五年级下册数学计算题库

    一.直接写得数9.782÷3.2=53.73-17.49=8.76+0.351=42.4+7.6=1.58+2.42=7.8-5.6=1.25×4=7.8×0.5=3.9+2.7=0.24÷0.3=2 ...

  2. 小学四年级数学上册计算机算题,四年级上册数学计算题大全

    小朋友,做做这份试卷,你会发现自己真的学会了很多知识!无忧考网小编整理了四年级上册数学计算题大全,希望对你有帮助! 四年级上册数学计算题训练 35×2= 140×7= 13×6= 280×3= 350 ...

  3. 《随机出题软件》《随机分队软件》源码(Windows API)

    1 引言 1.1 编写目的: 为了对院级活动<最强大脑>提供软件支持,同时为了练习使用windows API. 1.2 项目背景: 来自计算机学院学生会信息部指派的任务,规定时间完成软件的 ...

  4. 183 25用计算机算列竖式,新北师大四年级上册数学计算题

    小学四年级数学上册计算题练习 三位数除以两位数(每题5分) 336÷ 21858÷39 918÷27 888÷37 645÷32 432÷46 966÷2 3 731÷79 980÷28 828÷36 ...

  5. 用计算机器提高正确率,如何提高数学计算题的正确率

    计算题是小学数学的一个重要的题型,对于计算题如何提高计算题的正确率,减少不必要的额错误呢?下面是小编整理的如何提高数学计算题的正确率,希望大家喜欢. 第一.要对计算引起足够的重视 很多同学总以为计算题 ...

  6. 奔跑吧火柴人c语言开发_小学数学智力题:这两个火柴棍趣味题,你能做出来吗?...

    数学也可以很有趣,甚至还能检测和开发孩子的智力呢,今天小编跟大家分享两个数学智力题,大家一起加入我们,看看这两个经典的火柴趣味小学数学智力题吧! [题目1]错误的等式 上图这个由火柴拼出的等式是错误的 ...

  7. 二年级上册计算题_二年级上册数学计算题复习

    一.口算: 430+300 1000-560 360-5×8 45-15÷5 100-(25+75) 839-152+67 9×8 27+123 1000-425-137 615-353-187 81 ...

  8. 写乐100道练习题_初一数学计算题100道

    初一100道数学计算题及解答 1.25×(8+10) =1.25×8+1.25×10 =10+12.5=22.5 9123-(123+8.8) =9123-123-8.8 =9000-8.8 =899 ...

  9. 小学数学计算出题小程序(Excel版)

    一个用来自动生成小学生数学练习题的Excel程序,支持加减乘除及混合运算. 可指定最大数,最小数,因子个数,保证计算结果总是整数,不会出现除不尽小数的问题.可根据调整列数自动排版,每次自动生成A4大小 ...

  10. 用C语言编写绳索运动函数,福建省教师招聘考试小学数学真题试卷

    2014年福建省中小学新任教师公开招聘考试 小学数学试卷 (课程代码09202) 1. 本试卷满分150分,考试时间120分钟. 2. 本试卷分为两部分:第一部分为选择题,第二部分为非选择题. 3. ...

最新文章

  1. zabbix学习笔记(5)
  2. Xamarin XAML语言教程基本页面ContentPage占用面积
  3. [蓝桥杯][2013年第四届真题]买不到的数目(动态规划)
  4. php amazon-s3_推荐亚马逊电影-一种协作方法
  5. 分享一篇很不错的CMake入门文章,值得收藏细读!
  6. [导入]服务器终极安全设置与优化指南
  7. 商城购物系统软件测试,网上商城购物系统黑盒测试
  8. windows虚拟网卡驱动开发
  9. 在线答题系统_在线题库管理系统v3.1.0
  10. 计算机IP名词解释,IP地址的名词解释
  11. 检验两个随机序列的beta系数
  12. 工业和信息化部工业企业问卷调查系统
  13. Internet协议的安全性
  14. Linux Kernel Atomic解析
  15. 金三银四,给大家肝一下面试题~
  16. guzzlehttp5.3 and guzzlehttp6.7 , 同时共存。同时安装2个版本guzzlehttp
  17. 腾讯不敢发放的一个QQ号码
  18. 7月16日安卓混服服务器升级维护公告,7月29日更新维护新服开启公告
  19. P4766 [CERC2014]Outer space invaders(区间dp)
  20. JavaScript03

热门文章

  1. Android开发的前景到底怎么样?
  2. 模拟iic和硬件iic区别_技术货:IIC总线的FPGA实现
  3. python tkinter button_Python3 Tkinter-Button
  4. IIS 配置 url 重写...
  5. Divide Groups(分组)(二分图染色)
  6. EasyUI-增删改操作
  7. [置顶] 【cocos2d-x入门实战】微信飞机大战之二:别急,先处理好CCScene和CCLayer的关系...
  8. 每天工作4小时的程序员_IT新闻_博客园
  9. 供参考的 php 学习路线
  10. 一些web开发中常用的、做成cs文件的js代码 - 转帖来的