首页 > 代码库 > 第一周项目个人总结
第一周项目个人总结
第一周的作业是完成小学生计算器,这个项目如果仅仅是一个数字的四则运算的话是一个很简单的问题。但是加入了随机生成表达式和分数计算的要求之后,难度就大大增加了。
最初的想法:
首先面对这个问题,第一反应就是逆波兰表达式的求解变形,重载加减乘除的符号算法。随机生成表达式则是递归由里到外生成,括号随机添加
遇到的困难:
(1) 由于加入了分数运算,存取数据的栈就要改成另外的可以表示分数的形式,我选择了采用字符串的形式,就涉及了大量的字符串的操作,字符串地址的传递。并且
(2) 上述方法生成的表达式的括号总是嵌套的,不能出现括号并列的情况。
获得的经验:
C++的栈操作存储的字符串总是以地址的形式保存,而不是内容。导致代码在某阶段总是存在栈保存的内容发生改变的问题,原因是栈指针指向的内存空间被后续的操作改变了值,因此后来采取了申请多个新的内存空间存储不同的字符串,保证了栈的内容不改变。
由于分数中间计算的结果可能很大,导致在运行过程中总是容易容易出现数组溢出的情况,这种错误非常难以发现。
模块化的代码调试,逐步缩小问题出现位置的范围。
第一周项目个人总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。