欢迎来到 L H S 的博客

早餐,人生的一半,今天也要元气满满哦。| 凤兮凤兮归故乡,遨游四海求其凰。凤凰鸣矣,于彼高岗;梧桐生矣,于彼朝阳。| 死亡本是轮回的归宿,因所爱而无畏。| 有一美人兮见之不忘,一日不见兮,思之如狂。邂逅你,是生生世世的宿命。。。。。|

软工第二次作业:熟悉使用工具

GIT地址 https://github.com/xiaonannanbuchengxian
GIT用户名 xiaonannanbuchengxian
学号后五位 61225
博客地址 https://www.cnblogs.com/xiaonannanbuchengxian/
作业链接 https://www.cnblogs.com/harry240/p/11515697.html

请以博客记录的方式,体现环境配置过程(包括遇到了哪些问题,你是如何解决的)
环境配置过程中并没什么太大问题,因为是在**之前就已经在使用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的使用进一步了解熟悉了,还有单元测试和回归测试也是,更加了解了,我想说,自学的东西还有许多,它们等待着我去学习,值得我去学习,而我也必须花费更多的时间去学习。

posted @ 2019-09-23 20:48  小囡囡不成仙  阅读(194)  评论(2编辑  收藏  举报