軟件工程第二次做業:熟悉使用工具

第二次做業:熟悉使用工具

GIT地址 https://github.com/
GIT用戶名 Sisyphus121
學號後五位 61313
博客地址 個人博客
做業連接 http://www.javashuo.com/article/p-weggbcgg-bz.html

1.環境配置

我使用的是VS2019版本,以前在作C++課程的做業時已經使用了VS,環境配置沒有截圖。html

安裝了Git和GitHub。

ios

2.問題及代碼

阿超家裏的孩子上小學一年級了,這個暑假老師給家長們佈置了一個做業:家長天天要給孩子出一些合理的,但要有些難度的四則運算題目,而且家長要對孩子的做業打分記錄。git

做爲程序員的阿超心想,既然天天都須要出題,那何不作一個能夠自動生成小學四則運算題目與解決題目的命令行 「軟件」呢。他把老師的話翻譯一下,就造成了這個軟件的需求:程序員

程序接收一個命令行參數 n,而後隨機產生 n 道加減乘除(分別使用符號+-*/來表示)練習題,每一個數字在 0 和 100 之間,運算符在 2 個 到 3 個之間。
因爲阿超的孩子才上一年級,並不知道分數。因此軟件所出的練習題在運算過程當中不得出現非整數,好比不能出現 3÷5+2=2.6 這樣的算式。
練習題生成好後,將生成的 n 道練習題及其對應的正確答案輸出到一個文件 subject.txt 中。

當程序接收的參數爲4時,如下爲一個輸出文件示例。

13+17-1=29
11*15-5=160
3+10+4-16=1
15÷5+3-2=4

代碼

#include <iostream>
#include <ctime>
#include <fstream>

using namespace std;

int getrandnum();//獲取1-100的隨機數字
char getrandsignal();//隨機獲取四個運算符
bool judgeint(int ,int[] ,char[] );//判斷結果是否爲整數
void filein(int , int[] , char[] );//將算式寫入到文本文檔中
void display(int , int[] , char[] );//屏幕輸出算式
int main()
{
    int n;
    int m,i,j;
    int num[5];
    char sign[5];
    fstream file("subject.txt", ios::out);//清空subject文檔
    cout << "請輸入要產生的題目數量: ";
    cin >> n;
    cout << "題目:" << endl;
    srand(time(0));//獲取隨機數

    while (n != 0) {//算式生成
        m = rand() % 4 + 2;
        for (i = 0; i < m; i++) {
            num[i] = getrandnum();
        }
        for (i = 0; i < m - 1; i++) {
            sign[i] = getrandsignal();
        }
        if(judgeint(m,num,sign))
        {
            n--;
            display(m, num, sign);
            filein(m, num, sign);
        }
    }
}

//獲取1-100的隨機數字
int getrandnum() {
    return rand() % 100 + 1;
}

//隨機獲取四個運算符
char getrandsignal() {
    char signal[4] = { '+','-','*','/' };
    int q;
    q = rand() % 4;
    return signal[q];
}

//判斷結果是否爲整數
bool judgeint(int k, int num[5], char sign[5]) {
    int c1=0;
        for (int j = 0; j < k - 1; j++) {
            if (sign[j] == '/')
                c1 = num[j] % num[j + 1];
        }
    if (c1 != 0)
        return false;
    else
        return true;
}

//將算式寫入到文本文檔中
void filein(int k, int num[5], char sign[5]){
    ofstream questions("subject.txt", ios::app);
    if (questions.is_open()) {
        for (int i = 0; i < k-1; i++) {
            questions << num[i] << sign[i];
    }
    questions << num[k - 1];
        questions << " =\n";
        questions.close();
    }
}

//屏幕輸出算式
void display(int k, int num[5], char sign[5]) {
    
    for (int i = 0; i < k-1; i++) {
        cout << num[i] << sign[i];
    }
    cout << num[k - 1];
    cout << '=' << endl;
}

運行結果

3.克隆與上傳

克隆部分很順利,按照教程一會兒就克隆過來了,而後開始寫代碼,可是上傳一直出問題,如今也不清楚上傳沒有,問題如圖:

github

4.感想

此次做業其實寫代碼並不麻煩,調試幾遍也出來了本身想要的結果,可是關於vs和GitHub的使用方法仍是很暈,尤爲是GitHub,那一堆英文過於不友好,教程中也出現了問題,debug中有一個obj文件根本就沒有,和教程上有出入,同時在用git命令時也不是很順利,總之此次做業我只完成了代碼的部分,關於GitHub和vs的使用還有再繼續研究研究。app

相關文章
相關標籤/搜索