zoukankan      html  css  js  c++  java
  • 第3次作业-四则运算

    要求0:

    作业地址:【https://edu.cnblogs.com/campus/nenu/2016CS/homework/2266

    要求1:

    git仓库地址:https://git.coding.net/Soloversion/f4.git

    要求2:

    1.结对同学博客地址:https://www.cnblogs.com/fuys605/p/9925128.html

    结对同学名字:付一爽 2016011898

    2.解题思路:由于编程能力较弱,所以在了解和借鉴了一些别人的关于四则运算的编写思路之后,解决了输入以及运算问题,进而解决输出问题。

    每个功能的重点/难点:功能一:运算数为整数且不含小括号的四则运算,运算优先级问题。 

                                           功能二:在功能一的基础上支持了小括号,带括号的运算优先级问题。

    编程收获:编程的思想得到了拓广,编程能力获得了一定的提高

    展示重要代码片断:

    功能一:

    void suffix(char str[10])
    {
        stack<char>s1;
        stack<Number>s2;
        int i=0,j=0;
        for(i=0;str[i]!='';i++)
        {
            if(str[i]>='0'&&str[i]<='9')
            {
                Number num;
                num.a=0;
                num.b=0;
                while(str[i]<='9'&&str[i]>='0')
                num.a=(str[i++]-'0')+num.a*10;
                s2.push(num);   
                i--;
            }
            else
            {
                if(str[i]==')')
                {
                    while(s1.top()!='(')
                    {
                        Number num;
                        num.b=1;
                        num.a=s1.top();
                        s2.push(num);
                        s1.pop();
                    }
                    s1.pop();
                }
                else if(s1.empty()||s1.top()=='('||str[i]=='(')
                {
                    s1.push(str[i]);
                }
                else
                {
                    if((str[i]=='*'||str[i]=='/')&&(s1.top()=='+'||s1.top()=='-'))
                    s1.push(str[i]);
                    else
                    {
                        Number num;
                        num.b=1;
                        num.a=s1.top();
                        s2.push(num);
                        s1.pop();
                        i--;
                    }
                }           
            }
        }
        while(!s1.empty())
        {
            Number num;
            num.b=1;
            num.a=s1.top();
            s2.push(num);
            s1.pop();
        }
        while(!s2.empty())
        {
            s3.push(s2.top());
            s2.pop();
        }
    }
    View Code

    功能二: 

    while(y)
            {
                if(str[len-2]=='(')  //左括号 
                {
                    str[len-2]=str[len-1];
                    len--;
                }
                else if(str[len-3]=='(')
                {
                    str[len-3]=str[len-2];
                    str[len-2]=str[len-1];
                    len--;
                }
                else
                str[len++]=')';    //右括号 
                y--;
            }
    View Code

    3.结对编程的体会:结对编程更有助于学习彼此的经验,同时也使得学习效率更高,完成任务的时间可以相对的来说减少一点。在结对编程的过程中遇到困难以及不懂的地方能够齐心协力共同克服,相比于一个人来说这样可以迅速的解决问题,而且每个人对于出现的问题的思路看法不一致,也可以使得有思维更广。同时能够增强团队意识,不再是一个人的单打独斗而是两个人一个团队共同努力。

    4.收获较大的事件:

    (1)出了问题及bug的时候修改

    (2)怎样判断运算优先级

    (3)输出有限和无限小数的判断

    5.结对照片:

     

  • 相关阅读:
    聊天类功能测试用例
    即时通讯软件针对通讯以及协议方面有哪些测试点?
    面试前期准备工作
    黑盒功能业务测试过程
    Web网站实现facebook登录
    Nginx配置SSL实现HTTPS访问
    jQuery判断当前页面是APP内打开还是浏览器打开
    jQuery实现点击图片简单放大效果
    Linux排查PHP-FPM进程过量常用命令
    PHP防止SQL注入攻击和XSS攻击
  • 原文地址:https://www.cnblogs.com/yuetj/p/9929444.html
Copyright © 2011-2022 走看看