好好学习,天天向上

一、这是一个根据规定的开头

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

因为之前的博客好像并没有达到这次作业的要求,所以我又完全的根据了作业的要求有VS2017重新写了一次博客。

二、以下是这次博客的主要部分

    其实整个框架和之前没什么差别,所以主要写一下自己不太会的地方。

1 正式作业前的的准备

    首先需要一个GitHub的账号,因为之前就已经注册了,所以这一步没什么问题。但是因为GitHub上面全是英语,所以看起来比较麻烦,回过头来想想就算是全中文的网站,我还是不见得全部能看懂。
接下来,因为要将四则运算的整个文件下载到本地所以按照要求我又下载了GitHub Desktop这个的下载很顺利(今天是我有史以来下软件最顺利的一天,之前我下一个,下了三天还是没成功。不是突然网断就是下好了无法安装。这次可能是中秋节给了我一点好运气)但是还是因为是全英文所以运用起来比较费力。
最后我又下载了VS2017,依然顺利。

2 将仓库拷贝到本地

    这一部分出现的问题就是我不知道怎么将Calculator的Branch从java改成C++。因为作业给出的实现方案用的是Git但是我自己下载的是GItHub Desktop。于是我先用了一段时间想方设法的实现文中讲的Git命令行。后来突然才知道我们的软件都不一样,这件事告诉了我:干什么事情之前都要看好前提。
接下来明明应该很顺利的,可是我一直没改成功,本地文件一直没有显示有.cpp文件。
我就想,要不我直接在我的GitHub上面直接把它的分支改成C++在克隆到本地。这样倒是能够在我的GitHub Desktop上存在我改后的仓库,可是它不能克隆到本地。每当我要将它克隆到本地就会提示我Creat Pull Requst……
后面我退而求其次下了一个zip文件,试图来完成这次作业……
可是非常有趣的事情发生了,我知道了 c++ = cplusplus……原来弄了这么久的改分支,就是因为我没认识到cplusplus就是C++的意思。
在VS2017中创建一个新的项目,把拷贝到本地的源文件和头文件按照要求复制过去这一部分确实没什么问题。就是发现运行的结果和题目要求不一样。

3 修改代码思路

    关于代码的修改,我还是只改了两个部分。
第一部分:需要一个随机产生题目的部分。
具体解决:随机产生了一个数(2~4之间),然后用它做了一个简单的循环,就完成了这一部分。

增加代码:

int main()
{
int n;
Calculator* calc = new Calculator();
srand((int)time(0));
n = (rand() % 4) + 2;
for (int i = 0; i < n; i++)
{ string question = calc->MakeFormula();
string ret = calc->Solve(question);
if (ret=="FALSE")
{
cout << question<<endl;
cout << "You can't answer this question,so we do the next one!" << endl;
cout << '\n';
}
else
{
cout << question;
cout << ret << endl;
}
getchar(); } }
    第二部分:我需要判断产生的运算式子结果不能出现小数和负数。
具体解决:因为运算产生出来的算式求解的部分是利用堆栈的方式,并且站内存储的还是字符串那一类型。所以,我先要将栈顶的元素转换为数字,再来判断它是否为整数或者是否为负数。

增加代码:

 string str = calcStack->top();

	int num = stoi(str);//zifuchanzhuanhuaweiyigezhwngshu
double num1 = stof(str); if ((num < 0) || (num1 != num))
{
return "FALSE";
} //return formula + "=" + calcStack.pop();
return formula + "=" + calcStack->top();

4 单元测试

    这一部分应该是花费我时间最多的一部分,因为我一步步完全按照流程来的。单元测试中的代码也没有报错,可是一全部测试就报错我没有定义“Calculatot”这个标识符。甚至连字符串都报错……

代码:

#include "stdafx.h"
#include "CppUnitTest.h"
#include "..\ConsoleApplication1\Calculator.h" using namespace Microsoft::VisualStudio::CppUnitTestFramework; namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public: TEST_METHOD(TestMethod1)
{
Calculator* calc = new Calculator();
string ret = calc->Solve("11+22");
Assert::AreEqual(ret, (string)"11+22=33");
} };
}
    因为代码下面并没有下滑线,所以至少我的代码其实没有问题。但是又既然报错,然后又应该不会是我的电脑有问题。并且连字符串类型都报错了,那么我写的#include "Calculator.h"头文件一定没用上,那么这样报错只有可能我的环境没有配置好。即——            外部依赖项    的路径我没弄好,于是我重复写一个路径(包括用在百度上的方法修改)写了一个多小时。可是还是报错,后来我就觉得是不是我的应该关一下我的VS2017,果然再次打开它就不报错我的标识符没定义了,报错打不开这个文件……可是我觉得应该不会有问题了,我就继续打开VS2017在关闭VS2017,这样重复了几次。竟然成功运行了……
甚至我的**外部依赖项**的路径就是我最初弄得那个路径……

5 调试

    这一步因为C语言的老师和C++的老师都讲过,尽管换了一个编辑器,但是都是大同小异没什么大问题。

6提交代码

    因为我用的是GitHub Desktop 所及将代码同步到自己的账户是很容易的,直接hang on 就可以了!

三、这次作业的感受

    因为我自己是一个比较喜欢把自己的事情水掉的人,所以刚开始看到这个真的就随便写了一写,但是后来作业延期了,我发现自己应该重写一遍。重写就发现就算自己已经写了一遍但是对环境还是不熟悉。感觉第一次写的不是我写的,其实还真的没什么用!重写就让我再次知道这些步骤,还挺有意义的!所以这次作业对我的帮助真的很大!!!

认识并初步应用GitHub——C++的更多相关文章

  1. Git 使用篇一:初步使用GitHub,下载安装git,并上传项目

    首先在MAC上怎么操作. 在gitHub创立一个账户,在创立一个项目,这就不用我说了对吧. 创建完之后是这样的: 接下来,我们打开https://brew.sh 这是下载homebrew的网站,hom ...

  2. 认识并初步应用GitHub

    好好学习,天天向上 一.这是一个简单的开头 GIT的地址 https://github.com/Notexcellent GIT的用户名 Notexcxllent 学号后五位 82405 博客地址 h ...

  3. (2016春) 作业1:博客和Github简单练习

    0. 博客和Github简单练习 总分:10分 1. 目的 博客使用:注册.发布博客.博客管理练习 Github使用:注册.文件同步等练习 2. 要求 (总体作业要求参考[链接]) 发布一篇博客: 介 ...

  4. Github注册流程和使用体验

    大家好,我叫施蓓蓓,学号1413042063,在网络工程143班,我的兴趣爱好有很多,特别是在专业方面,比如软件工程.操作系统.网络通信技术.计算机组成原理等,我对游戏十分感兴趣,以后就业会朝这方面发 ...

  5. GitHub客户端发布托管代码

    初试GitHub及客户端使用 突然想分享代码,于是记起来曾几何时有人提到过GitHub这个东西,于是便各种百度,注册申请了一个账号,下载了windows客户端,全英文网站就连新手教程也是全英的,现在想 ...

  6. 博客和Github简单练习

    我的第一篇博客 1.首先是自我介绍 姓名:孙弘毅 班级:网工142 学号:1413042050 兴趣:游戏,看书 至于我写了多少代码我也不清楚,反正不多 2.Github  注册流程 (1)百度Git ...

  7. Github注册及心得

    注册Github流程: 1.搜索www.github.com 2.有两个按钮sign up(注册).sign in(登入)

  8. 【Graphql实践】使用 Apollo(iOS) 访问 Github 的 Graphql API

    最近在协助调研 Apollo 生成的代码是否有可能跨 Query 共享模型的问题,虽然初步结论是不能,并不是预期的结果,但是在调研过程中积累的一些经验,有必要记录下.如果你也对 Graphql 感兴趣 ...

  9. 软工1816 · Alpha冲刺(1/10)

    团队信息 队名:爸爸饿了 组长博客:here 作业博客:here 组员情况 组员1(组长):王彬 过去两天完成了哪些任务 前后端代码规范统一 针对之前的alpha冲刺安排进一步细化任务卡片 明确apl ...

随机推荐

  1. Docker save and load镜像保存

    持久化docker的镜像或容器的方法 Docker的镜像和容器可以有两种方式来导出 docker save #ID or #Name docker export #ID or #Name docker ...

  2. 深入理解C语言-函数指针

    函数指针在C++中有着重要的应用,函数的函数名其本质就是代表一个地址,这个地址叫做函数入口,得到这个地址就可以对这个函数进行各种操作. 函数类型基础 函数三要素: 名称.参数.返回值 C语言中的函数有 ...

  3. Sql 语句收集——行转列

    SQL行转列汇总 PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in ...

  4. 学习笔记:CentOS7学习之十四:linux文件系统

    目录 1. 机械硬盘结构 1.1 机械硬盘结构 1.2 簇和block 2.文件系统结构 2.1 文件名 2.2 inode的内容 2.3 inode的大小 2.4 目录文件 2.5 block块大小 ...

  5. Web循环监控Java调用 / Java调用.net wcf接口

    背景介紹 (Background Introduction) 目前有一些报表客户抱怨打不开 报表执行过程过长,5.8.10秒甚至更多 不能及时发现和掌握服务器web站点情况 用戶需求(User Req ...

  6. 解决Python查询Mysql中文乱码问题

    前段时间,自己瞎动手用Django写了一个更新zip包和sql到远程服务器的工具.但Python从Mysql中读取出来的中文字符会乱码,如下图: 解决办法:Python连接Mysql时指定charse ...

  7. Linux系列(2):入门之线上求助

    前言:Linux命令那么多,你是否为记不住Linux的命令而烦恼呢? 这一章节就是来解决这个问题的. 1.Linux系统的线上求助 1.指令补全 在上一章节提到过使用[Tab]快捷键可以根据用户输入的 ...

  8. markdown中使用缩进

    在markdown中直接敲空格是不生效的. 使用html标签来实现 一个空格大小的表示:  两个空格的大小表示:  不换行空格:  别忘记分号 参考了大神的文章: markdown空格缩进以及HTML ...

  9. INPUT和CONSTRUCT指令——范例报表查询,作用让用户输入数据,自动生成SQL的WHERE条件,带开窗查询

    INPUT指令 说明:1. 当程序执行到INPUT指令时,会将控制权交给用户,让用户输入数据.2. 用户输入完字段的数据,会将数据回传给程序中的变量接收.3. 只要执行到INPUT的指令,程序会将每个 ...

  10. sql之游标

    --select * from   master..sysprocessesuse testdeclare my_cursor cursor scroll dynamic --scroll表示可以向前 ...