GIT地址 | https://github.com/ |
---|---|
GIT用户名 | Sisyphus121 |
学号后五位 | 61313 |
博客地址 | 个人博客 |
做业连接 | http://www.javashuo.com/article/p-weggbcgg-bz.html |
我使用的是VS2019版本,以前在作C++课程的做业时已经使用了VS,环境配置没有截图。html
安装了Git和GitHub。
ios
阿超家里的孩子上小学一年级了,这个暑假老师给家长们布置了一个做业:家长天天要给孩子出一些合理的,但要有些难度的四则运算题目,而且家长要对孩子的做业打分记录。git
做为程序员的阿超心想,既然天天都须要出题,那何不作一个能够自动生成小学四则运算题目与解决题目的命令行 “软件”呢。他把老师的话翻译一下,就造成了这个软件的需求:程序员
程序接收一个命令行参数 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; }
克隆部分很顺利,按照教程一会儿就克隆过来了,而后开始写代码,可是上传一直出问题,如今也不清楚上传没有,问题如图:
github
此次做业其实写代码并不麻烦,调试几遍也出来了本身想要的结果,可是关于vs和GitHub的使用方法仍是很晕,尤为是GitHub,那一堆英文过于不友好,教程中也出现了问题,debug中有一个obj文件根本就没有,和教程上有出入,同时在用git命令时也不是很顺利,总之此次做业我只完成了代码的部分,关于GitHub和vs的使用还有再继续研究研究。app