#第二次结对做业 四则运算生成器ios
##1.题目要求git
完整代码算法
##2.代码部分 我在本次结对做业中担任的是驾驶员的角色,负责全部代码工做。编程
以下是涉及到的头文件与定义变量。函数
#include<stdio.h> #include<time.h> #include<stdlib.h> #include<iostream> #include <fstream> #include <iomanip> #include<ctime> using namespace std; int num;//题目数量 int suanfa;//算法 int max;//最大数 int kuo;//是否有括号 int xiao;//是否有小数 int wen;//输出到文件 float shu1, shu2, shu3; char fuhao1, fuhao2;
如下是变量输入部分,以完成根据用户须要进行四则运算的生成的目标。测试
int main() { srand((unsigned int)time(0)); cout<<"请输入生成题目数量:\n"; cin >> num; while (1) { if (num > 100 || num < 0) { cout<<"输入错误\n"; cin >> num; } else break; } cout << "请输入生成题目类型:\n"; cout << "1.加减 2.乘除 3.加减乘除\n"; cin >> suanfa; while (1) { if ((suanfa != 1)&&(suanfa != 2)&&(suanfa != 3)) { cout << "输入错误\n"; cin >> suanfa; } else break; } cout << "请输入生成最大数:\n"; cin >> max; while (1) { if (max<0||max>10000) { cout << "输入错误\n"; cin >> max; } else break; } cout << "请输入是否有括号:\n"; cout << "1.没有 2.有\n"; cin >> kuo; while (1) { if (kuo!=1 && kuo!=2) { cout << "输入错误\n"; cin >> kuo; } else break; } cout << "请输入是否有小数:\n"; cout << "1.没有 2.有\n"; cin >> xiao; while (1) { if (xiao != 1 && xiao != 2) { cout << "输入错误\n"; cin >> xiao; } else break; }
使用rand函数进行随机数生成,分别进行小数的生成和整数的生成,以及使用随机数生成产生所需的操做符。 经过if判断保证所产生的随机数与操做符在用户所需的范围内。spa
float decimal() { float a; while(1) { a = rand() % 10000 + 1; a = a * (0.01); if (a <= max) break; } return a; } int integer() { int b; b = rand() % max + 1; return b; } char suanfu() { int c; char ch; while(1) { c = rand() % 4 ; switch (c) { case 1:ch = '+'; break; case 2:ch = '-'; break; case 3:ch = '*'; break; case 4:ch = '/'; break; } if ((suanfa == 1) && ((c == 1) || (c == 2))) break; if ((suanfa == 2) && ((c == 3) || (c == 4))) break; if (suanfa == 3 && ((c == 1) || (c == 2)||(c == 3) || (c == 4))) break; } return ch; }
根据用户要求的出题数量进行循环调用函数随机生成不一样的题目并输出.net
int i; for (i = 1; i <= num; i++) { if (xiao == 1) { shu1 = integer(); shu2 = integer(); shu3 = integer(); } else { shu1 = decimal(); shu2 = decimal(); shu3 = decimal(); } fuhao1 = suanfu(); fuhao2 = suanfu(); if (kuo == 1) { wukuo(); } else { int k; k = rand() % 2; if (k == 1) kuo1(); else kuo2(); } }
进行一下测试 输入需求 输出四则运算
还挺成功的code
##3.心得体会与总结 本次做业是第一次真正两人在一块儿进行结对编程,个人结对搭档吴琼同窗尽职尽责地完成了领航员的职责,在我进行编程时在我身边督促我,检查错误,理清思路,并帮助我查找必要的资料,在此予以至意。二人结对后感受效率有了显著的提升,思路更加开阔,解决问题的速度也有了明显的提高。在编程是与人合做是一种很新奇的体验,期待合做所能让我看见的更多可能性。 本次做业所要求的的随机生成四则运算题最终采用了包含三个随机数的分别进行加减、乘除、加减乘除三种模式的各分为有无括号与有无小数的版本。整体来讲用户所需的要求已经基本实现,不过因为技术缘由并未完成输出到文本的方面,只能直接输出到屏幕,这是从此仍须要钻研和提高的部分。 本次结对做业让我意识到了合做的重要性,面对相对复杂的算法可以有人自始至终跟进你的思路,及时找出编程中的漏洞并提出具备建设性的建议是一件很是有意义的事,这提升了编程的效率与准确性,使在编程上花的时间远小于个人预计时间,可见结对编程的重要性,也让我更加期待以后的团队项目。blog