实验二

学号 2019-2321-杨凯涵 《数据结构与面向对象程序设计》实验二报告

课程:《程序设计与数据结构》
班级: 1823
姓名: 杨凯涵
学号:20182321
实验教师:王志强哥哥
实验日期:2019年9月16日
必修/选修: 必修

1.实验内容

此处填写实验的具体内容;
(1) 编写简单的计算器,完成加减乘除模运算。
(2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出。
(3) 编写测试代码,测试验证。

2. 实验过程及结果

本次实验可以说是一波三折,前期我们单纯的以为只是打一个计算机如图为制作出的计算机效果图

但是在面对测试程序的时候,我们就犯了难,不知道该如何入手,在助教的帮助下,我们明白了我们要测试的是一个方法,而这个方法则放在我们java的主函数里。
于是我们打了这个方法和它的主函数

接着我们进行了运行:如下图

我们输入的两个数,在输入要进行的运算符号,程序就会进行测试,并告诉我们主程序对不对。
而实验要求的第三个TDD,因为没有要求在linux上运行,所以只是部署了代码上去而已。

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

  • 问题1:找不到能够输入单个字符的对象。

  • 问题1解决方案:
    我们由书上可知,可以使用next(),读取一个字符串,接着从第一个字符开始,把第一个字符给截下来,赋值在char型变量 c上,从而实现输入单个字符的目的。

  • 问题2:不懂得如何将数据传输进入方法里

  • 问题2解决方案:在助教和老师给的博客的指导下,我们了解到,这个方法类似于c语言里主函数传数据进子函数里一样。
    注意!这里的每个数据必须要用逗号隔开,在一开始的时候本人并不清楚,所以傻乎乎的测试了几次程序都没办法把数据传输进去。

  • 问题3:主程序缺少返回值。

  • 问题3解决方法:这是一个windows下codeblock留下来的毛病,因为在code下打c的时候,我们一般都不需要输入return 0,从而没有养成一个习惯,是的在测试程序的时候我的方法函数没有返回值,主程序(测试程序)运行出错。同时,我们平常打的void main函数也要改成一个方法函数的样子

  • 问题4:一开始根本不明白测试函数是个什么东西

  • 问题4解决方法:此问题是一开始遇到的最大的问题,也是我们班一开始的共同问题,我们并不清楚什么是测试程序,所以输入完计算机程序后,我们以为测试的是计算程序本身(即一开始能运行的计算机程序)

但是事实不是这样的,我们还需要对上面的程序稍加更改,使它成为一个方法,能让我们调用,而我们再重新打一个主函数的程序,来判断这个方法计算的是不是正确的数值。

  • 问题5:关于tdd的疑惑
  • 问题5解决方法:由于我们的电脑中没有装idea,所以无法再windoiws的环境下使用idea,只能在linux情况下敲打tdd的代码,但是linux中缺少安装包,使得我们的代码无法运行,只好部署上去就完事。在助教的讲解下,我们大概理解了tdd类似于举例来测试我们的程序是否正确。

assertequals 大概是比对两个值是否相等的意思,而后面是我们的方法,把例子输入进方法里,然后来比对看看和正确结果是否相等,一次来测试程序。

其他(感悟、思考等)

  • 本次实验前期如此的艰难的一半原因是因为我们没有预习好,理解错了老师给我们的信息,搞错了测试程序的意思,应该引以为戒。
  • java的方法调用与其实与c语言类似,输入数据的时候需要用逗号隔开。
  • 编写java程序应该灵活运用java中的函数。

参考资料

原文地址:https://www.cnblogs.com/yangkaihan/p/11537794.html