oo第二次总结
第五次作业度量和类图
第六次:
第7次:
心得体会和分析:
bug分析:
第五次作业和第六次都存在一个严重问题,即更新时间与实际操作的问题。比如控制时间的时候,往往用sleep函数来,很多时候为了保证题目精度,往往使用的是假时间,但时间的改变和sleep函数使用的先后顺序就可能存在问题,在sleep期间访问的时间点,是容易出错的。所以使用假时间的话,一定要注意其他的误差。
第七次作业因为假时间被报了许多点,实际上控制200ms的情况应该是在程序开始记录时间,程序结束时记录时间,然后sleep200-程序所花时间,这样来控制程序的运行时间。其他的问题则出现在部分输入输出的情况上,输入的格式基本可以通过正则来判断,但是输入长度,输入个数也是需要程序限制的,没有在这点上花费精力,所以存在部分问题。
这几次作业主要强调的是多线程的协同问题,对于共享对象的加锁控制等,但往往多线程的程序不那么好控制,不像单线程的一步到底,能够准确的预知每一步,所以多线程往往需要作者在程序中加上足够的控制,对于多个线程访问同一对象可能引起的误差要加以限制,对于多个应该同步进行的程序没有同步进行的限制,对于有明确先后顺序运行的线程的限制,这些都是需要我们去考虑的,所以多线程会更加困难。
我自己的测试情况是用自己的测试样例去测试别人,基本不会用太多困难或者特别极限的样例去扣分,我一般就用对自己的要求一样去测试,但在测试中也常常会发现别人错误的同时反思自己的错误,在别人正确的情况下,也会考虑自己的程序情况如何。和善的与测试者和被测试者交流也是学习的内容,双方所站的立场不一样,所以往往看问题的角度和方向有所相反,这种时候更应该理性分析,不是一味为得分而扣分,我在判断对方错误时候往往会去思考他程序逻辑上导致错误的问题,去帮他提出与他交流,同一个错误导致的多种错误情况也会跟对方交流理解而进行撤销等,与别人交流也是这门课的特色之一吧。