按照四则运算程序的要求,并不是很难做,具体流程大概就是1.读文件2.显示文件中的四则运算算式3.测试者输入答案4.程序后台计算正确结果5.判断是否一致,并统计答题者正确率。
附加功能:随机生成算式。这部分我的思想就是先生成不带括号的基本算式,这部分做起来还是简单的,因为操作数和操作数之间必须有运算符,所以操作数和运算符的位置都是有规律的。括号方面,我发现前括号出现的位置需要满足:不超过总长的一般且出现的位置必须是字符算式的偶数位置。对于后括号,在前括号确定的情况下,可能出现的位置有(number-number1-3)/2+1个,其中number为算式总长度,number1为前括号出现的位置。对于前括号和后括号在确定位置后都需要将算式往后挪。
对于四则运算,我需要总结的还是自己长期不编程导致的知识疏漏:
1.辗转相除算法:
int g(int x,int y)//求最大公约数
{
int r;
while(y>0)
{
r=x%y;
x=y;
y=r;
}
return x;
}
2.C++上正统的int转string
string s;
std::stringstream ss;//int类型转化string类型
ss<<num1;
ss>>s;
需要头文件:
#include <sstream>
3.char和string的一些操作
(1)
string tar;
char trans[20];
tar.copy(trans, number);//复制string中的内容到字符串
(2)
number=strlen(trans);//获取字符串长度
4.文件读取(mac)
string file = "/Users/purixingtei/Documents/workspace/a/bin/a/a/co";
ifstream input(file);
while (!input.eof()){}