实验2报告 胡泊

20182316胡泊 2019-2020-1 《数据结构与面向对象程序设计》实验2报告

课程:《程序设计与数据结构》
班级: 1823
姓名: 胡泊
学号:20182316
实验教师:王志强
实验日期:2019年[9月16日]
必修/选修: 必修

1.实验内容

  • (1) 编写简单的计算器,完成加减乘除模运算。
  • (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。
  • (3) 编写测试代码,测试验证。(https://www.cnblogs.com/rocedu/p/4472842.html)

2. 实验过程及结果

编写简单的计算器程序,掌握数据的定义和表达式求解的基础知识, 掌握循环和判定语句的使用
, 掌握单元测试,上传到码云,掌握后由学长学姐验收。

编写简单的计算器程序

单元测试

上传码云

3. 实验过程中遇到的问题和解决过程

  • 问题1:在编写计算器时,很简单的加法会出现 .00000000001或者.9999999999
  • 问题1解决方案: 将double定义的变量改为用float定义,小数问题就没有了
    • 但是,后来我又得知这其实是java中Double类型的运算精度丢失的问题,我没有从正面解决这个问题,原谅我实在是看不懂,先贴个原网站,等之后学习保留位数时,再好好钻研。
  • 问题2:吃回车问题(可能是吧,反正C语言是的)
  • 问题2解决方案:当要输入字符或字符串时,如果前面不是字符或字符串类型的输入,那么就会出现吃回车问题,此时就多打一个op=scan.nextLine();将缓冲器清理掉。
  • 问题3:return只能返回一种类型的数据。
  • 问题3解决方法:我使用的是double来返回数据,而在程序中为了其实用性,增加了纠错,比如“can not divide 0","unrecognizeable demand"等等,针对这个问题,有两种解决方法:
    • 将返回的double型浮点数转化为字符串
    • 将报错语句换成-1,-2等数字,作为返回值返回。
  • 问题4:编译时找不到文件
  • 问题4解决方案:文件名与创建的类名不同,所以虽然有这个文件却无法编译,更改类名与文件名一致。

感悟

  • 当编译出现错误时,我可能通过一种或一些奇怪的方法误打误撞编译成功,甚至运行成功了,但是这些小小的问题背后可能有很多深层的知识,如果不想办法解决,就只能一知半解,所以要有探索精神。
  • 在自学的过程中,按照博客一步步操作,到最终完成,虽然过程艰难,但让我有了很强的成就感,在帮助别人以及向别人请教的时候,都收获很大。
  • 感谢学长学姐的指导,一直待到了最后,给了我们很大的帮助,十分感谢。 (⊙ω⊙)

参考资料

原文地址:https://www.cnblogs.com/hp12138/p/11530757.html