一、 设计思路:
程序包含两部分,一部分是算式的生成,一部分是栈的使用用来判断和计算结果;
算式生成,用的是调用子函数,因为每一个年级的出题要求不同所以对出题的范围加了条件限制;程序的结构框架大致为:
程序开始将字符串数组宏定义,出题的数量和选择打印的方式都进行宏定义;
For( )
{
For( )
{
a> 产生左括号;(用switch…..case语句来判断;)
b> 产生数字:(其中,可以有分数小数和整数的产生)
其中不同年级选择的范围不同;
c>产生右括号;(右括号的产生是用左括号的数量来限制的)
d>产生运算符;运算符在输出最后一位数字之后就不会执行运算符产生的程序;)
}
}
栈程序中:
将算式生成的string类型的数组,转化为char类型的,读入到栈中,然后利用字符串优先级的判断,计算函数,我们的程序中不能出现负数所以在输出结果时加了结果判断;
1 //组成员:禹慧慧 吕兰兰 2 //四则运算,在前面的基础上实现判断正误 2016.3.19 3 //我们的结果是如果选择dos界面,可以在界面上实现输入结果、判断正误与给出答案;如果选择txt,则打印出一份题目和一份答案 4 //没有控制余数,都算成了小数 5 #include<iostream> 6 #include<ctime> 7 #include<cmath> 8 #include<sstream> 9 #include<string> 10 #include<fstream> 11 #include<iomanip> 12 #define MAX 1000 13 using namespace std; 14 15 int N; 16 int way; 17 string str[1000]; 18 ofstream outfile("questions.txt"); 19 ofstream outfile_1("answers.txt"); 20 21 22 class Input 23 { 24 public: 25 Input() 26 { 27 for( int i = 0;i < MAX;i++ ) 28 Str_input[i] = '