| GIT地址 | https://github.com/ad1543844218/ad1543844218 |
| GIT用户名 | ad1543844218 |
| 学号后5位 | 61117 |
| 博客地址 | https://www.cnblogs.com/asd1543844218/ |
| 作业链接 | https://www.cnblogs.com/harry240/p/11515697.html |
1.环境的配置
本来下了vs2019但是不知道vs2019怎么跟着教程走,于是又下了vs2017.
a)vs2017的安装

b) 创建打开文件

c)GitHub的安装
下载安装时 忘了截图....... 安装好的截图如下


2.代码编写
编码题目:
阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个作业:家长每天要给孩子出一些合理的,但要有些难度的四则运算题目,并且家长要对孩子的作业打分记录。
作为程序员的阿超心想,既然每天都需要出题,那何不做一个可以自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就形成了这个软件的需求:
程序接收一个命令行参数 n,然后随机产生 n 道加减乘除(分别使用符号+-*/来表示)练习题,每个数字在 0 和 100 之间,运算符在 2 个 到 3 个之间。
由于阿超的孩子才上一年级,并不知道分数。所以软件所出的练习题在运算过程中不得出现非整数,比如不能出现 3÷5+2=2.6 这样的算式。
练习题生成好后,将生成的 n 道练习题及其对应的正确答案输出到一个文件 subject.txt 中。
编程语言:C++
思路:随机产生题目很明显应该用srand()函数实现,数字范围用rand()随机。生成题目用一个外循环实现,生成数字和运算符用多个内循环实现。
减法时判断减数与被减数大小,被减数小则两个数交换位置,这样来实现不出现负数。除法先判断被除数是否为0,若为0,自增1;不出现小数的话,全部参数用整型,再用强转判断,如果当a/b!=(double)a/b或者a/b==0时,a自增1,大概就是这样。
核心代码:
头文件
#include<iostream>
#include<fstream>
#include<time.h>
文件操作
ofstream subject;
subject.open("subject.txt");
减法的数字交换
if (a > b)
{
d = a;
a = b;
b = d;
}
写入文件 第一行是显示在屏幕 第二行是写入subject.txt文件
cout << a << "+" << b << "=" << endl; subject << a << "+" << b << "=" << a + b << endl;
生成题目
switch (c)
{
case 0:cout << a << "+" << b << "=" << endl;
subject << a << "+" << b << "=" << a + b << endl;
break;
case 1:if (a < b)
{
d = a;
a = b;
b = d;
}
cout << a << "-" << b << "=" << endl;
subject << a << "-" << b << "=" << a - b << endl;
break;
case 2:
cout << a << "*" << b << "=" << endl;
subject << a << "*" << b << "=" << a * b << endl;
break;
case 3:
while (b == 0)
{
b = rand() % 100;
}
while (a / b != (double)a / b||a/b==0)
{
a++;
}
cout << a << "/" << b << "=" << endl;
subject << a << "/" << b << "=" << a / b << endl;
break;
case 4:
a = rand() % 100;
b = rand() % 100;
m = rand() % 100;
n = rand() % 100;
c = rand() % 4;
while (b == 0)
{
b = rand() % 100;
}
while (n == 0)
{
n = rand() % 100;
}
if (a > b)
{
d = a;
a = b;
b = d;
}
if (m > n)
{
d = m;
m = n;
n = d;
}
switch (c)
{
case 0:
while (a/b != (double)a / b||a/b==0)
{
a++;
}
cout << a << "/" << b << "+" << m << "*" << n << "=" << endl;
subject << a << "/" << b << "+" << m << "*" << n << "=" << a / b + m * n << endl;
break;
case 1:
p = (float)a / (float)b;
q = (float)m / (float)n;
if (p < q)
{
d = a;
a = m;
m = d;
d = b;
b = n;
n = d;
}
while (m / n != (double)m/n||m/n==0)
{
m++;
}
cout << a << "*" << b << "-" << m << "/" << n <<"="<< endl;
subject << a << "*" << b << "-" << m << "/" << n <<"="<<a*b-m/n<< endl;
break;
case 2:
while (a / b != (double)a / b||a/b==0)
{
a++;
}
cout << a << "/" << b << "*" << m << "-" << n << "=" << endl;
subject << a << "/" << b << "*" << m << "-" << n << "=" << a / b * m - n << endl;
break;
case 3:
a = rand() % 100+1;
b = rand() % 100+1;
m = rand() % 100+1;
n = rand() % 100+1;
c = rand() % 4;
while (m == 0)
{
m = rand() % 100;
}
while (a / b != (double)a / b||a/b==0)
{
a++;
}
cout << a << "/" << b << "+" << m << "*" << n << "=" << endl;
subject << a << "/" << b << "+" << m << "*" << n << "=" << a / b + m * n << endl;
break;
}
运行结果:

3.GitHub的使用
a)先从github仓库克隆项目

b)将项目用github创建在本地

然后有了这个说明创建成功

4.上传代码
因为下载的是GitHub 只会网上上传代码

然后将文件拖进去

文件上传成功

5.代码测试
设置断点开始调试


挨个测试后没有发现问题
6.总结
这次作业对我来说很有难度,刚开始看了作业要求一脸懵逼,看懂作业要求与教程都花费了一段时间,GitHub和vs之前都没用过,短时间用起来比较生疏,c++还没学完,代码写起来有点慢,这次代码应该写的不是很满意,很多想法都没实现,运算符的随机性没有写好,还有很多不足的地方。GitHub是全英文的,英语不好的话,怎么操作都不知道,学好计算机也要把英语好好学学。通过这次作业,让我收获颇丰,提前学习到了很多新的东西,像GIT和GitHub。在今后,一定多敲代码,增加代码量。
补充学习 GIT的使用
1.在github上复制可克隆的项目地址

2.随便在我的电脑上找一个文件夹,点击鼠标右键,选择GIT bash here,就出现了这个窗口

3.输入“git clone +复制的网址”按回车,文件夹里就出现了克隆的项目

浙公网安备 33010602011771号