zoukankan      html  css  js  c++  java
  • 定制小学四则运算题目

    一 题目

    1. 题目避免重复;
    2. 可定制(数量/打印方式)
    3. 可控制下列参数:

        是否有乘除法;

        是否有括号(最多可以支持十个数参与运算);

        数值范围;

        加减有无负数;

        除法有无余数;

    二 设计思路

      分情况讨论编写代码;

      先按是否有括号分为两种情况;

        有括号时用二叉树随机生成四则运算题;

        没括号时按各种不同的题目要求限制生成的随机数和运算符号。

        先随机获取两随即数,在获取0到4随即数表示四个运算符

     运行结果截屏:

    程序源代码:

      1 import java.util.Random ;
      2 import java.util.Scanner;
      3 import java.lang.reflect.Array;
      4 import java.util.LinkedList;
      5 import java.util.List;
      6 
      7 public class FourOperations1 
      8 {
      9     public static void main(String[] ages)
     10     {
     11         while(1>0)
     12         {
     13             System.out.print("
    请选择要求:"
     14                 +"
      是否有乘除法;(True/False)"
     15                 +"
      是否有括号(最多可以支持十个数参与运算)(True/False);"
     16                 +"
      数值范围(True(1~10)/False(1~100));"
     17                 +"
      加减乘除有无负数(True/False);"
     18                 +"
      除法有无余数(True/False);");
     19             Scanner sc = new Scanner(System.in);
     20             Boolean[] a=new Boolean[5];
     21             for(int i=0;i<5;i++)
     22             {
     23                  a[i]=sc.nextBoolean();
     24             }
     25             //sc.close();
     26             System.out.println("请输入要出题的个数");
     27             Scanner N = new Scanner(System.in);
     28             int index=N.nextInt();
     29             //N.close();
     30         
     31             for(int ii=0;ii<index;ii++)
     32             {    
     33                 if(a[1]==false)
     34                 {
     35                     int a1=RandomNum(100),a2=RandomNum(100);
     36                     int sign=RandomNum(4);
     37                     if(sign==3&&a[4]==false)
     38                     {
     39                         a1=(a1%15)*(a2%10);
     40                         System.out.print("
    "+a1);
     41                         PrintSign(sign);
     42                         System.out.print(a2%10+"  =");
     43                         continue;
     44                     }
     45                     if(a[0]==false)
     46                     {            
     47                         if(a[3]==false)
     48                         {
     49                             if(a[2]==false)
     50                             {
     51                                 
     52                                 System.out.print("
    "+a1);
     53                                 PrintSign(sign%2);
     54                                 System.out.print(a2+"  =");
     55                             }    
     56                             else if(a[2]==true)
     57                             {
     58                                 System.out.print("
    "+a1%10);
     59                                 PrintSign(sign%2);
     60                                 System.out.print(a2+"  =");
     61                             }
     62                         }
     63                         else if(a[3]==true)
     64                         {
     65                             int ssign=RandomNum(2);
     66                             if(ssign==0){
     67                                 a1=-a1;
     68                             }
     69                             if(a[2]==false)
     70                             {
     71                                 System.out.print("
    "+a1);
     72                                 PrintSign(sign%2);
     73                                 System.out.print(a2+"  =");
     74                             }    
     75                             else if(a[2]==true)
     76                             {
     77                                 System.out.print("
    "+a1%10);
     78                                 PrintSign(sign%2);
     79                                 System.out.print(a2%10+"  =");
     80                             }
     81                         }
     82                     }
     83                     else if(a[0]==true)
     84                     {
     85                         if(a[3]==false)
     86                         {
     87                             if(a[2]==false)
     88                             {
     89                                 System.out.print("
    "+a1);
     90                                 PrintSign(sign);
     91                                 System.out.print(a2+"  =");
     92                             }    
     93                             else if(a[2]==true)
     94                             {
     95                                 System.out.print("
    "+a1%10);
     96                                 PrintSign(sign);
     97                                 System.out.print(a2%10+"  =");
     98                             }
     99                         }
    100                         else if(a[3]==true)
    101                         {
    102                             int ssign=RandomNum(2);
    103                             if(ssign==0){
    104                                 a1=-a1;
    105                             }
    106                             if(a[2]==false)
    107                             {
    108                                 System.out.print("
    "+a1);
    109                                 PrintSign(sign);
    110                                 System.out.print(a2+"  =");
    111                             }    
    112                             else if(a[2]==true)
    113                             {
    114                                 System.out.print("
    "+a1%10);
    115                                 PrintSign(sign);
    116                                 System.out.print(a2%10+"  =");
    117                             }
    118                         }
    119                         
    120                     }
    121                 }
    122                 else if(a[1]==true)
    123                 {
    124                     int size=RandomNum(9);
    125                     int[] array=new int[size*2+4];
    126                     if(a[0]==false){
    127                         for(int i=0;i<=size;i++){
    128                             array[i]=RandomNum(2);
    129                         }
    130                     }
    131                     else if(a[0]==true){
    132                         for(int i=0;i<=size;i++){
    133                             array[i]=RandomNum(4);
    134                         }
    135                     }
    136                     if(a[2]==true){
    137                         for(int i=size+1;i<=size*2+2;i++){
    138                             array[i]=RandomNum(70)+4;
    139                         } 
    140                     }
    141                     else if(a[2]==false){
    142                         for(int i=size+1;i<=size*2+2;i++){
    143                             array[i]=RandomNum(96)+4;
    144                         } 
    145                     }
    146                     
    147                     if(a[3]==true){
    148                         for(int i=size+1;i<=size*2+2;i++){
    149                             int ssign=RandomNum(2);
    150                             if(ssign==0){
    151                             array[i]=-array[i];
    152                             }
    153                         } 
    154                     }
    155                     
    156                     LinkedList<Node> nodeList = new LinkedList<Node>();
    157                     for(int nodeIndex=0;nodeIndex<array.length;nodeIndex++){
    158                          nodeList.add(new Node(array[nodeIndex]));       
    159                     
    160                     }
    161                     creatBinTree(array,nodeList);
    162                     Node root = nodeList.get(0);
    163                     inOrderTraverse(root);
    164                     System.out.println("  =  "); 
    165                 }
    166             }
    167         }
    168     }
    169     public static int RandomNum(int i)
    170     {
    171         Random a=new Random();
    172         int a1=a.nextInt (i);
    173         return a1;
    174     }
    175     public static void PrintSign(int sign)
    176     {
    177         if(sign==0){
    178             System.out.print("  +  ");
    179         }
    180         else if(sign==1){
    181             System.out.print("  -  ");
    182         }
    183         else if(sign==2){
    184             System.out.print("  *  ");
    185         }
    186         else if(sign==3){
    187             System.out.print("  /  ");
    188         }
    189         else
    190             System.out.print(sign);
    191     }
    192     
    193     public static class Node
    194     {
    195         Node leftchild;
    196         Node rightchild;
    197         int data;
    198         
    199         Node(int newData){
    200             leftchild=null;
    201             rightchild=null;
    202             data=newData;
    203         }
    204     }
    205     
    206     public static void creatBinTree(int array[],LinkedList<Node> nodeList){
    207         
    208         
    209         for(int parentIndex=0;parentIndex<array.length/2-1;parentIndex++){
    210             nodeList.get(parentIndex).leftchild = nodeList  
    211                     .get(parentIndex * 2 + 1);
    212             nodeList.get(parentIndex).rightchild = nodeList  
    213                     .get(parentIndex * 2 + 2);
    214         }
    215     }
    216     public static void inOrderTraverse(Node node) {  
    217         if (node == null)  
    218             return;  
    219         if (node.leftchild != null) {
    220         System.out.print("(");  
    221         }
    222         inOrderTraverse(node.leftchild);  
    223         PrintSign(node.data );  
    224         inOrderTraverse(node.rightchild); 
    225         if (node.rightchild != null) {
    226             System.out.print(")");  
    227         }
    228     }  
    229     
    230 }

                                         项目计划日志:

                           姓名:李锦                                                 日期:2016.3.17

     日期任务(小时)

         听课

        编写程序

        阅读课本

        日总计

    周日

     

     

     

     

    周一

    2

    3

    1

    周二

     

    3

     

    3

    周三

     

     

    周四

     

    1

    1

    周五

     

     

     

     

    周六

     

    4

     

    4

    周总计

    2

    10

    2

    14

                                  时间记录日志

                学生:李锦                                                日期:3.14.2016

                教师:王建民                                                课程:软件工程概论

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    C

    U

    3/14

    上午第一节课

    上午第二节课

     20分钟

    听课

    课堂

    3/15

    下午2:00

    下午5:00

    0

    3小时

    编写程序

    3/16

    下午2:00

    下午8:00

    2小时

    3小时

    编写程序

    休息,吃饭,

    3/18

    0

    0

    看书

    3/19

    上午8:00

    下午3:30

    0

    200

    编写程序

                                       缺陷记录日志

            学生:李锦                                                日期:16.3.19

            教员:王建民                                                                                                                                    程序号:1

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

    3.14

    1

    20

    编码

    编译

    10min

    数组空间不够

    3.15

    2

    20

    编码

    编译

    10min

    换行显示错位    

    3.19

    3

    20

    设计

    编译

    30min

    二叉树显示带括号四则运算时有多与括号

  • 相关阅读:
    unserialize() 反序列化报错,疑似乱码解决 阿星小栈
    js判断输入字符串是否为空、空格、null的方法总结 阿星小栈
    navicat中创建存储过程、触发器和使用游标的简单实例(图文) 阿星小栈
    mysql触发器new和old区别 阿星小栈
    div垂直居中
    javascript 原型详解
    对Web标准的理解。可用性和可访问性
    css兼容问题
    $(...).live is not function
    js判断两个对象是否相等
  • 原文地址:https://www.cnblogs.com/amiee/p/5295185.html
Copyright © 2011-2022 走看看