• 第九周(11.11-11.17)----结对项目----实现任意数量题目、解决除数为零问题


      需求功能里是能够出任意个题目,我选择根据用户输入的数目进行while循环实现这个功能。为此我将原来主类的六种题型随意swich()一种迁移到了computer类中,创建了anwser()方法。这个方法就是前面博客所提到了出六种题目中的一种。

      在解决除数为零这个问题上,我在 int count(String a, String b, String e)中设置了一个标志位int chushu。count这个方法是用来计算后缀表达式的,并把结果返回到栈顶。这里的参数e就是操作符。如果e是除号的时候,进行接下来的判断,如果除数b是零,就直接返回chushu=0;如果b不是零就返回a/b。而我接受这个标志的时候,是在我要出题的时候:题目已经出了,但是有的除数是零,这个时候在主类中就要重新出题,直到把要求的数量出满为止。

    随机出题:

     1     public String anwser(){
     2         computer yl = new computer();
     3         int y1=yl.randomnum();
     4         int y2=yl.randomnum();
     5         int y3=yl.randomnum();
     6         int y4=yl.randomnum();
     7         String sym1=yl.symbol();
     8         String sym2=yl.symbol();
     9         String sym3=yl.symbol();
    10         String zhongshi = "";        
    11         int i = 0;
    12         i = (int)(Math.random()*6)+1;
    13         switch(i)
    14         {
    15                   
    16              case 1:    
    17                  zhongshi = "("+String.valueOf(y1)+sym1+String.valueOf(y2)+")"+sym2+String.valueOf(y3)+sym3+String.valueOf(y4);
    18                  break;     
    19              case 2:    
    20                  zhongshi = "("+String.valueOf(y1)+sym1+String.valueOf(y2)+sym2+String.valueOf(y3)+")"+sym3+String.valueOf(y4);
    21                  break;
    22              case 3:    
    23                  zhongshi = String.valueOf(y1)+sym1+"("+String.valueOf(y2)+sym2+String.valueOf(y3)+")"+sym3+String.valueOf(y4);
    24                  break;
    25              case 4:    
    26                  zhongshi = String.valueOf(y1)+sym1+"("+String.valueOf(y2)+sym2+String.valueOf(y3)+sym3+String.valueOf(y4)+")";
    27                  break;
    28              case 5:     
    29                  zhongshi = String.valueOf(y1)+sym1+String.valueOf(y2)+sym2+"("+String.valueOf(y3)+sym3+String.valueOf(y4)+")";
    30                  break;
    31              case 6:
    32                  zhongshi = String.valueOf(y1)+sym1+String.valueOf(y2)+sym2+String.valueOf(y3)+sym3+String.valueOf(y4);
    33           
    34         }

    count方法:

     1     public int count(String a, String b, String e) {  
     2         int temp1 = Integer.parseInt(a);  
     3         int temp2 = Integer.parseInt(b);  
     4         if ("+".equals(e)) {  
     5             return temp1 + temp2;  
     6         } else if ("-".equals(e)) {  
     7             return temp1 - temp2;  
     8         } else if ("*".equals(e)) {  
     9             return temp1 * temp2;  
    10         } else {  
    11             if(temp2==0){
    12                 return chushu = 0;//除数为零的标志
    13             }    
    14             else
    15                 return temp1 / temp2;
    16         }  
    17     } 

     主类实现:

     1 public static void main(String[] args) {
     2         // TODO Auto-generated method stub
     3         computer yl = new computer();
     4         Scanner sc = new Scanner(System.in);
     5         int total = sc.nextInt(); 
     6         int i = 1;//序号为1
     7         while(total!=0){
     8             String zhongshi = yl.anwser();
     9             yl.chushu=1;    //重置标志
    10             String back =  yl.toback(zhongshi);
    11             int result = yl.countback(back);    //计算后缀表达式结果
    12             if(yl.chushu!=0){//接收标志位
    13                 
    14                 System.out.print("("+i+")"+zhongshi);
    15                 i++;
    16                 System.out.print("		");
    17                 System.out.println(result);
    18                 total--;
    19                 
    20             }else{
    21                 continue;
    22             }
    23             
    24         }
    25     }

    运行结果:

  • 相关阅读:
    matplotlib绘制常见统计图
    学习进度(14)
    hive的基本用法(2)
    hive的基本用法(1)
    进度日报表10
    进度日报表09
    进度日报表08
    进度日报表07
    第六周总结
    进度日报表06
  • 原文地址:https://www.cnblogs.com/YangXiaomoo/p/6067281.html
Copyright © 2020-2023  润新知