• 进一步完善结对编程(四则运算)


    项目名字:结对编程(四则运算)
    结对伙伴:刘芳芳、于淼
    主要用java实现编码
    内容:给小学生出题的四则运算

    本次主要完善可以对带括号的复杂四则运算进行处理计算。



    四则运算PSP
    类别 开始时间 结束时间 间隔时间 累计净时间
    查找资料 12:33 13:14 0 41分
    编码 12:50 13:45 0 55分
    发布随笔 13:10 14:25 20分 55分
     

     

     

     

     

    下面我是借鉴别人的代码了解到关于四则运算中,运算符优先级,以及括号的处理。

     1 public Vector<String> getExpression(String str)
     2 {
     3     Vector<String> v_temp = new Vector<String>();
     4     char[] temp = new char[str.length()];
     5     str.getChars(0,str.length(),temp,0);
     6     String fi = "";
     7     int x=0,i=0;
     8     String regex_fig = "[\.\d]"; //匹配数字和小数点
     9     String regex_operator = "[\ \-\*/\(\)]"; //匹配运算符( ,-,*,/)和括号("(",")")
    10     Pattern p_fig = Pattern.compile(regex_fig);
    11     Pattern p_operator = Pattern.compile(regex_operator);
    12     Matcher m = null; 
    13     boolean b;
    14     while (i<str.length())
    15     {
    16         Character c = new Character(temp[i]);
    17         String s = c.toString();
    18         //System.out.println("char c = " s);
    19         m = p_operator.matcher(s);
    20         b = m.matches();
    21         if (b)
    22         {
    23             //System.out.println("matches operator");
    24             v_temp.add(fi);
    25             fi="";
    26             v_temp.add(s);
    27         }
    28             m = p_fig.matcher(s);
    29             b = m.matches();
    30             if (b)
    31             {
    32                 //System.out.println("matches fig");
    33                 fi=fi s;
    34             }
    35                 i ;
    36     }
    37     v_temp.add(fi);
    38     return v_temp;
    39     }

    下面是关于括号匹配检测:

     1 public boolean checkBracket(String str)
     2 {
     3     Stack<Character> s_check = new Stack<Character>();
     4     boolean b_flag = true;
     5     for (int i=0;i<str.length();i )
     6     {
     7         char ch = str.charAt(i);
     8         switch(ch)
     9     {
    10     case '(':
    11     s_check.push(ch);
    12     break;
    13     case ')':
    14     if (!s_check.isEmpty())
    15     {
    16         char chx = s_check.pop();
    17         if (ch==')' && chx!='(')
    18         {
    19             b_flag = false;
    20         }
    21     } 
    22     else 
    23     {
    24         b_flag = false;
    25     }
    26     break;
    27     default:
    28     break;
    29 }

    本次主要了解到对于带括号的复杂运算怎么进行优先级判断,以及运算符和操作数的处理。

    代码累加:

  • 相关阅读:
    简单canvas五子棋
    javascript高级程序第三版学习笔记【执行环境、作用域】
    Error对象
    表单元素input、按钮、文字完美垂直居中对齐方法
    Firebug控制台详解
    JavaScript,JScript,ECMAScript及对应浏览器的版本
    valueOf和toString
    javascript高级程序第三版学习笔记【基本类型和引用类型】
    图的实现(邻接链表C#)
    基本排序算法(C)
  • 原文地址:https://www.cnblogs.com/lffang/p/6069481.html
Copyright © 2020-2023  润新知