第2のソフトウェアエンジニアリング作業:ツールを使用!

第2のソフトウェアエンジニアリング作業:ツールを使用!

ギット ギット
Gitのユーザー名 dracssr
学生ID 61427
ブログのアドレス ドラゴン
ジョブリンク 第二の個人的な仕事:使い慣れたツールを使用して

コンテンツ

   実際には、仕事は多くの困難、ジョブの投入をダウンロードして保存するためのGithub上の主対の使用、などが発生しました。この操作でも多くのことを学びました。

  過去に対使用したことがないので、このダウンロードにもいくつかの困難に遭遇し、特定のインストールのチュートリアルをクリックすることができますここにギャングスターは、非常に詳細に書かれました。
  問題は、そのような唯一のダースGが、私は電子版にインストールしたいのCドライブは、コードの後に実行した結果は、ファイルの場所を見つけることができないと言ってきたので、私は失われますまず、だけにしてアンインストールすることはできません、私のように、遭遇します再ダウンロードした後、変更されていない列、または電子ディスクのインストールツールのアドレス位置を見つけ、その後、唯一のインターネットサーフィン。
1
直接の背後に実行対誤差は内部の対で実行していない、そのような空のファイルで新しいプロジェクトをクリックするなど、いくつかの変更を行った後、見つかったコードに取得し、pch.hヘッダファイルを見つけることができない、と後でコンソールでpch.h表示される場合がありますヘッダファイル。
1
実行した後、または間違って行くだろう、と//にsrand((unsigned int型)の時間で、その後I電卓:: MakeFormula()関数 (NULL)); 文がコメントアウトされ、乱数がメイン関数内に記述されて生成するであろう、と彼らは適切に実行することができます前に、forループを追加します。
11
フルコード:
ヘッダ:Calculator.h

#pragma once
#pragma once
#include "stdlib.h"
#include <stack>
#include <vector>
#include <iostream>
#include "stdlib.h"
#include <ctime>
#include <string>  
using namespace std;

class Calculator {
private:
    string op[4] = { "+", "-", "*", "/" };
public:
    Calculator();
    string MakeFormula();
    string Solve(string formula);
};

ソースファイルConsoleApplication2.cpp

// ConsoleApplication1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include "pch.h"
#include <iostream>
#include <stdlib.h>
#include <stack>
#include <vector>
#include <iostream>
#include "stdlib.h"
#include <ctime>
#include <string>
#include "Calculator.h"

#define random(a,b) (rand()%(b-a+1)+a)

using namespace std;

Calculator::Calculator() {}

string Calculator::MakeFormula() {
    string formula = "";
    //srand((unsigned int)time(NULL));
    int count = random(1, 3);
    int start = 0;
    int number1 = random(1, 100);
    formula += to_string(number1);
    while (start <= count) {
        int operation = random(0, 3);
        int number2 = random(1, 100);
        formula += op[operation] + to_string(number2);
        start++;
    }
    return formula;
};

string Calculator::Solve(string formula) {
    vector<string>* tempStack = new vector<string>();
    stack<char>* operatorStack = new stack<char>();
    int len = formula.length();
    int k = 0;
    for (int j = -1; j < len - 1; j++) {
        char formulaChar = formula[j + 1];
        if (j == len - 2 || formulaChar == '+' || formulaChar == '-' ||
            formulaChar == '*' || formulaChar == '/') {
            if (j == len - 2) {
                tempStack->push_back(formula.substr(k));
            }
            else {
                if (k < j) {
                    tempStack->push_back(formula.substr(k, j + 1));
                }
                if (operatorStack->empty()) {
                    operatorStack->push(formulaChar);
                }
                else {
                    char stackChar = operatorStack->top();
                    if ((stackChar == '+' || stackChar == '-')
                        && (formulaChar == '*' || formulaChar == '/')) {
                        operatorStack->push(formulaChar);
                    }
                    else {
                        tempStack->push_back(to_string(operatorStack->top()));
                        operatorStack->pop();
                        operatorStack->push(formulaChar);
                    }
                }
            }
            k = j + 2;
        }
    }
    while (!operatorStack->empty()) {
        tempStack->push_back(string(1, operatorStack->top()));
        operatorStack->pop();
    }
    stack<string>* calcStack = new stack<string>();
    for (int i = 0; i < tempStack->size(); i++) {
        string peekChar = tempStack->at(i);
        if (peekChar != "+" && peekChar != "-"
            && peekChar != "/" && peekChar != "*") {
            calcStack->push(peekChar);
        }
        else {
            int a1 = 0;
            int b1 = 0;
            if (!calcStack->empty()) {
                b1 = stoi(calcStack->top());
                calcStack->pop();
            }
            if (!calcStack->empty()) {
                a1 = stoi(calcStack->top());
                calcStack->pop();
            }
            if (peekChar == "+") {
                calcStack->push(to_string(a1 + b1));
            }
            else if (peekChar == "-") {
                calcStack->push(to_string(a1 - b1));
            }
            else if (peekChar == "*") {
                calcStack->push(to_string(a1 * b1));
            }
            else if (peekChar == "/") {
                calcStack->push(to_string(a1 / b1));
            }
        }
    }
    return formula + "=" + calcStack->top();
}






int main()
{
    srand((unsigned int)time(NULL));
    cout<<"请输入您要生成的题目数:"<<endl;
    int num;
    cin >> num;
    for (int i = 1; i <= num; i++) {
        Calculator* calc = new Calculator();
        string question = calc->MakeFormula();
        cout << question << " = " << endl;
        //string ret = calc->Solve(question);
        //cout << ret << endl;
    }
    getchar();
}



// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门提示: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件

私は非常に特定のコード変更を持っていない、私は以下の結果を実行し、実行を変更することはできないだろう
1
、私はあきらめます、私はいくつかのエラーコードを書いて、結果が話題を書いて。
githubの提出後、トラブルを破って、でもコメントすることを行くためにジョブを送信するために、間違った時間を提出し、見つけることができませんでした。その後、ジョブを送信する場所を見つけるために前進するためにバックステップ。

感想

  新しいツール、いくつかの困難が存在することを学ぶ、BaiduのBaiduのを維持し、他の人がブログを提出見て、ゆっくり学び、ゆっくり書くためにルームメイトをお願いし、最終的に実行し始め、一般的には、困難に遭遇します多くの意志が、しかし、長い時間のための時間と労力によって、または解決しました。最後に新しい学校が、私はかなり満足でした。

おすすめ

転載: www.cnblogs.com/Drac/p/11564320.html