副業:使い慣れたツール
GITアドレス | https://github.com/ |
---|---|
GITユーザー名 | Sisyphus121 |
5後の学生のID | 61313 |
ブログのアドレス | 私のブログ |
ジョブリンク | https://www.cnblogs.com/harry240/p/11515697.html |
1.環境設定
私は、C ++コースワークはなしスクリーンVS、環境設定を使用していない実行する前に、VS2019のバージョンを使用しています。
GitリポジトリとGitHubののインストール。
2.問題とコード
一年生の子供のスーパーファミリー、そしてこの夏に両親への教師は仕事を配し:子供のジョブ得点記録に親は毎日、いくつかの合理的に子供たちを与えるが、4つの操作はいくつかの困難を施し、そして両親。
小学校をしない理由は話題が毎日必要とされているので、私は、思った通りのスーパープログラマは、自動的にコマンドライン「ソフトウェア」、それに伴う問題を解決するために、タイトルを4つのオペレーションを生成することができます。彼は、このソフトウェアの需要の形成に、どのような教師を翻訳します:
程序接收一个命令行参数 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.クローニングとアップロード
示すように、非常によく、一部のクローニング、一回以上のクローン化されたチュートリアルに従う、コードを書き始めるが、問題がアップロードされている、それは明らかアップロードは問題ではないではありません。
4.感想
実際には、コードを書くために、この割り当てはなく、GitHubの対使用する方法について、いくつかの回は、あなたが望む結果を出てきたデバッグ、トラブルではありません、まだ、非常にめまい特にGitHubには、英語の束あまりにも不親切なことを、チュートリアルも登場しています問題は、デバッグ、OBJファイルがあるだけではない、とチュートリアルの不一致で、gitのコマンドと同時に非常によくありませんが、要するに、この割り当ては、私だけのコードの一部を完了し、そこ対GitHubの上で使うのですか研究では、研究を続けます。