GIT地址 | https://github.com/ |
---|---|
GIT用戶名 | Sisyphus121 |
學號後五位 | 61313 |
博客地址 | 個人博客 |
做業連接 | http://www.javashuo.com/article/p-weggbcgg-bz.html |
我使用的是VS2019版本,以前在作C++課程的做業時已經使用了VS,環境配置沒有截圖。html
安裝了Git和GitHub。
ios
阿超家裏的孩子上小學一年級了,這個暑假老師給家長們佈置了一個做業:家長天天要給孩子出一些合理的,但要有些難度的四則運算題目,而且家長要對孩子的做業打分記錄。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; }
克隆部分很順利,按照教程一會兒就克隆過來了,而後開始寫代碼,可是上傳一直出問題,如今也不清楚上傳沒有,問題如圖:
github
此次做業其實寫代碼並不麻煩,調試幾遍也出來了本身想要的結果,可是關於vs和GitHub的使用方法仍是很暈,尤爲是GitHub,那一堆英文過於不友好,教程中也出現了問題,debug中有一個obj文件根本就沒有,和教程上有出入,同時在用git命令時也不是很順利,總之此次做業我只完成了代碼的部分,關於GitHub和vs的使用還有再繼續研究研究。app