#include<bits/stdc++.h> using namespace std; enum Token_value { NAME, NUMBER, END, PLUS = '+', MINUS = '-', MUL = '', DIV = '/', PRINT = ';', ASSIGN = '=', LP = '(', RP = ')' }; Token_value get_token(); double error(const string& s); double expr(bool get); double term(bool get); double prim(bool get); Token_value curr_tok = PRINT; double number_value; string string_value; map<string, double> table; int no_of_errors; int main() { table["pi"] = 3.1415926535897932385; table["e"] = 2.7182818284590452354; while (cin) { get_token(); if (curr_tok == END) break;// if (curr_tok == PRINT) continue;// cout << expr(false) << "\n"; } return no_of_errors; } Token_value get_token() { char ch = 0; // cin >> ch; do{ if(!cin.get(ch)) return curr_tok = END; }while (ch!='\n' && isspace(ch)); switch(ch){ case ':': case '\n': return curr_tok = PRINT; }代码的不足与收获
时间: 2024-04-28 16:19:24 浏览: 37
万能头文件#include&amp;lt;bits/stdc++.h&amp;gt; using namespace std;
不足:
1. 缺少注释,不易阅读和理解代码的作用。
2. 缺少错误处理机制,如输入错误的字符或语法错误,程序会崩溃或输出错误结果。
3. 缺少函数说明,不知道每个函数的具体作用和参数含义。
4. 缺少代码的可读性和可维护性,例如缺少格式化和代码风格的统一等。
收获:
1. 学习了枚举类型的使用,可以使代码更加简洁和易读。
2. 学习了使用 map 容器存储变量和值的映射关系,方便变量的查找和更新。
3. 学习了递归调用函数的方法,可以使代码更加模块化和易于维护。
4. 学习了对字符的处理,如 isspace 函数可以去除空格和制表符等空白字符。
阅读全文