• 结对编程项目进展——第三周


    ---恢复内容开始---

      这一周,我和我的partner一起完成了模块的实现。四则运算生成程序一共分成三个模块:自动生成表达式模块、接收表达式判断用户输入模块和接收表达式字符串计算模块。

      模块一:接收表达式字符串计算模块 Calc()

      根据教学博客中的要求,Calc函数接收输入的字符串表达式并存储,返回值是一个字符串,例如“5+3'1/2”,输入这个表达式之后模块的返回值就是该字符串,用类Expression实现。

      测试代码:

     string teststr;
     cout<<"请输入字符串表达式:"<<endl;
     getline(cin,teststr);
     string result = Calc(teststr);
     cout<<result;

      测试结果:

      模块二:判断用户输入模块

      这个模块用来进行针对用户输入的各种异常处理,对用户的输入错误进行分类,并进行相应提示。

      测试代码:

     string teststr;
     cout<<"请输入字符串表达式:"<<endl;
     getline(cin,teststr);
     IsErr(teststr);

      测试结果:

      (1)括号不匹配的问题

        

    (2)多余运算符问题

    (3)除数为0问题

     模块三:自动生成表达式模块

     终于到了用到上次表达式代码的时间了!做出的扩展是:在生成操作数的时候,不再局限于整数范围,加上了负数。所以我们给定的数据范围是[-MaxNum, MaxNum]。

     代码如下:

      Value::Value(int MaxNum)
      {
          int pro = rand() % PRO;
          //这个随机数控制运算表达式中的分数出现的频率。
          if (pro == 0)
          {
              demon = rand() % (MaxNum-1) + 1;
          }
          else 
         {
             demon = 1;
         }
         int pro1 = rand() % PRO1;
         //这个随机数控制运算表达式中负数出现的频率
         numer = rand() % (demon * MaxNum);
         if (pro1 == 0)
         {
             numer = numer * -1;
         }
     }

    ---恢复内容结束---

  • 相关阅读:
    670. Maximum Swap
    126. Word Ladder II
    695. Max Area of Island
    689. Maximum Sum of 3 Non-Overlapping Subarrays
    667. Beautiful Arrangement II
    前端开发-css
    前端开发-html
    mysql补充
    pythonl操作数据库
    mysql索引原理
  • 原文地址:https://www.cnblogs.com/bjut13062222/p/5350334.html
Copyright © 2020-2023  润新知