请以博客记录的方式,体现环境配置过程(包括遇到了哪些问题,你是如何解决的) |
环境配置过程中并没什么太大问题,因为是在**之前就已经在使用VS**了,所以现在回想起来似乎下载顺利,安装顺利。最开始是不知道如何用C++项目编码,但由于老师讲了如何使用C++项目进行编码,就知道了,因此这次也很熟悉了。
体现你代码设计的思路(注意:请保证代码能够运行通过) |
首先想如何先设计四则运算的代码,然后想产生随机数、随机运算符如何设计出来,之后就没那么麻烦了。
呐,代码+注释在下面()
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
int N,num1, num2, num3, count = 0, result, resultTrue, flag;
char op1, op2;
cout << "请输入你想生成的题目数目:" << endl;
cin >> N;//题数
cout << "这里有" << N << "道题,开始计算吧!";
srand(time(NULL));//生成随机数
do {
num1 = rand() % 100 + 1;
num2 = rand() % 100 + 1;
num3 = rand() % 100 + 1;
if (num1 % num2 != 0 || num2 % num3 != 0 || (num1 / num2) % num3 != 0)
{
num1 = rand() % 100 + 1;
num2 = rand() % 100 + 1;
num3 = rand() % 100 + 1;//保证运算中不会出现小数
}
else
{
count++;//生成一个算式并计算后count加1
switch (num1 % 4)//随机生成第一个运算符
{
case 0:
op1 = '+';
break;
case 1:
op1 = '-';
break;
case 2:
op1 = '*';
break;
case 3:
op1 = '/';
break;
default:
break;
}
switch (num2 % 4)//同上,随机生成第二个运算符
{
case 0:
op2 = '+';
flag = 0;
break;
case 1:
op2 = '-';
flag = 0;
break;
case 2:
op2 = '*';
if ((op1 == '*') || (op1 == '/')) flag = 0;
else flag = 1;
break;
case 3:
op2 = '/';
if ((op1 == '*') || (op1 == '/')) flag = 0;
else flag = 1;
break;
default:
break;
}
cout << num1 << " " << op1 << " " << num2 << " " << op2 << " " << num3 << " " << "=";//生成算术式
if (flag == 0)//运算先后顺序的确定,flag0为先计算num1,num2,flag1为先计算num2,num3
{
resultTrue = 0;
switch (op1)
{
case '+':
resultTrue = num1 + num2;
break;
case '-':
resultTrue = num1 - num2;
break;
case '*':
resultTrue = num1*num2;
break;
case '/':
resultTrue = num1 / num2;
break;
default:
break;
}
switch (op2)
{
case '+':
resultTrue += num3;
break;
case '-':
resultTrue -= num3;
break;
case '*':
resultTrue *= num3;
break;
case '/':
resultTrue /= num3;
break;
default:
break;
}
}
else
{
resultTrue = 0;
switch (op2)
{
case '+':
resultTrue = num2 + num3;
break;
case '-':
resultTrue = num2 - num3;
break;
case '*':
resultTrue = num2*num3;
break;
case '/':
resultTrue = num2 / num3;
break;
default:
break;
}
switch (op1)
{
case '+':
resultTrue += num1;
break;
case '-':
resultTrue -= num1;
break;
case '*':
resultTrue *= num1;
break;
case '/':
resultTrue /= num1;
break;
default:
break;
}
}
cin >> result;
if (result == resultTrue)
cout << "Right!你真的太棒了!" << endl;
else
cout << "faulse!继续加油哦,进行下一题的计算吧!";
}
}
while (count <= N-1);//题数生成终止条件
return 0;
}
我太难了
记录你使用github克隆项目以及提交代码的整个过程(包括遇到的问题,你是如何解决的) |
克隆项目真的花费了我不少时间,尤其是开始我居然那个什么阿超的仓库地址都弄错了,直到后来问同学,才晓得。之后就是说说克隆,看见文章里提到——注意,默认克隆的分支是 java,请使用 git checkout cplusplus 命令切换到 C++ 项目,这儿花费了我不少时间,一直在想,网上查弄清楚咋转换,结果再问了同学之后才知道没有转换用其他方法也行,哎,我太难了~
![](https://img2018.cnblogs.com/blog/1784287/201909/1784287-20190921210932971-175612572.png)
把Cherish的阿超四则运算生成器克隆到自己的仓库中。
![](https://img2018.cnblogs.com/blog/1784287/201909/1784287-20190921211004721-732172196.png)
将阿超四则运算生成器项目克隆到本地文件中。
![](https://img2018.cnblogs.com/blog/1784287/201909/1784287-20190921211023879-436487746.png)
Git commit -m命令将文件快照到commit项目中。git status查看当前文件是否完全快照到项目中。
![](https://img2018.cnblogs.com/blog/1784287/201909/1784287-20190921211038101-1377890242.png)
git push直接讲项目推送至Github原项目中。
![](https://img2018.cnblogs.com/blog/1784287/201909/1784287-20190921211052322-1212650777.png)
这儿可以看见线上仓库中已经有了上传的文件了。
注:登陆操作时忘记截图了......难受。
记录你对项目进行单元测试和回归测试的过程(包括你遇到的问题,解决的方法是什么) |
单元测试倒是测试出来了。似乎前面几步也比较顺利,但是到*引入Calculator工程的接口定义头文件*时,就不会做了......(未完待续...见下)
![](https://img2018.cnblogs.com/blog/1784287/201909/1784287-20190921212009344-422986317.png)
![](https://img2018.cnblogs.com/blog/1784287/201909/1784287-20190921212246044-1143162792.png)
![](https://img2018.cnblogs.com/blog/1784287/201909/1784287-20190921212531055-170169181.png)
就是在这儿应该有*引入Calculator工程的接口定义头文件*的截图的,但是我好像跳过了,但是结果也测试出来了,好像也对。
![](https://img2018.cnblogs.com/blog/1784287/201909/1784287-20190921214150518-1730221008.png)
感想:,我...太难了我,我太难了,我太难了啊!这次作业真的能让人学习到许多,不懂多问,对Github以及Git的使用进一步了解熟悉了,还有单元测试和回归测试也是,更加了解了,我想说,自学的东西还有许多,它们等待着我去学习,值得我去学习,而我也必须花费更多的时间去学习。