2016-06-23-课程设计日志

来源:互联网 发布:哈希map c语言 编辑:程序博客网 时间:2024/05/22 04:31

明天早上就要展示这次的成果了。

今天最大的收获就是,以后在测试程序的时候,数据一定要多方面验证。不能只单一的数据,运行程序一看,咦!成功了耶,就沾沾自喜,觉得终于解决了。

此次感受最大。以此来对昨天,就那个排序问题说的。

昨天本来以为已经成功了,今天给负责合并的组员后,在他那里测试后,错误终于还是出来了。他说让我再改改吧。

我本来以为肯定是正确的,结果人家的数据测试出问题了,一开始还是挺崩溃的看程序,因为毕竟昨天花了好长时间解决的。

然后,再次分析我的程序和测试数据的时候,果然,果然还是我的错。

测试数据是有问题,太单一,但恰恰是这一个单一的数据正好可以在这个程序下正确的运行!导致我昨天以为自己解决问题了,其实未然。

问题就是这里:

看昨天的日志大家会发现,我的测试数据里面,重复的id名最多就是两次,没有三次以上了。

而恰好,我的程序完美的解决了这出现两次的问题!

因为迭代器里对数据remove之后,就没有了,我两个数据正好,一个保存合并数据,一个不要了。

如果有三个或者三个以上,第一次两个合并之后,就会出现一个空位置,怎么和后边的继续比较?

所以,今天还是继续对问题进行解决。

后来还是有进展的,既然这个行不通了。就用另一个方法:

需要删除的先放到一个暂时定义List的temp里面,在最后用removeAll()将temp从主List里面除去。(昨天博客里面说的)

其实,昨天卡在上面这个方法的某处咯,结果今天发现了。

List<sale> dete =new LinkedList<sale>();

就是定义这个存储暂时删除需要的元素这块!需要这样来定义之后才可以。到现在也不明白为什么这样定义。(LinkedList类是双向列表,列表中的每个节点都包含了对前一个和后一个元素的引用.)

最后修改的代码如下:

List<sale> stuList =new saleSrv().FetchAll();List<sale> dete =new LinkedList<sale>();Iterator<sale> it=stuList.iterator();int j=0,k=0;while (it.hasNext()){sale sa=it.next();String temp=sa.getGoodsID();int te=sa.getNumber();double t=sa.getOrdersum();System.out.println(temp);for (int i=j+1,len=stuList.size();i<len;i++){if ((stuList.get(i).getGoodsID()).equals(temp)){sa.setNumber(te+(stuList.get(i).getNumber()));sa.setOrdersum(t+(stuList.get(i).getOrdersum()));System.out.println("ID:"+stuList.get(i).getGoodsID());dete.add(stuList.get(i));}}j++;}stuList.removeAll(dete);SortListUtil.sort(stuList, "Number",null);

讲真,大致成功后我又翻车了。这次数据输入的很全面,结果在运行后,发现,咦!可以了耶,成功了。这时也没有仔细分析,数据的合并究竟对不对,就告诉组员说成功了,并把代码发给了他。他后来发现确实是成功了,但统计还是有问题吧。这次就真是bug问题了吧~

这两天给人的收获真的还是蛮大的。这对于以后可能走软件测试也是很好的开头,有没有?!

还是需要学习,不断学习。


0 0