帐前卒专栏

code, software architect, articles and novels.
代码,软件架构,博客和小说

今天上午不断的修补bug,终于可以跑起来了。下午又花了半个小时改了下ppt。本想着这次我们又能得一个西瓜,没想到我们的成果竟然没有胜过孙亚红小同学的泪水。。
不过同情一下吧,毕竟人家哭了。。。

下次一定要拿个西瓜。。。。

昨天发现MatrixList的bug…痛苦的MatrixList…昨天郭军把红黑树和HashTable做了序列化。我借用了下MySq
l中的Hash函数。然后进行痛苦的调试…bug,bug,不断的bug

今天又重构了多个方法。包括一个Select方法,返回的只是Row的指针,并没有重新克隆一个新的Row返回。这个方法更加通用,其他的select方法只是在此基
础上克隆了新的Row。

修改了一下Insert()和delete()的对外接口,现在发现更新并没有太多的用处。。暂时还没有测试和更改更新数据这项功能。

将PrimaryKey和ForeignKey抽取出来做了各种各样的小方法。现在CDBTable中的方法已经达到五十多个。但是实现的有用的方法大约只是四十多个
。有些只是做的接口,还没有实现。

明天将把HashTable和BinTree序列化。看着别的组使用的是fstream…我组还是使用c语言。但想想,还是不改了继续做下去吧。

明天还要插入父表和子表。。。。

今天上午上了文件检索课。下午把主键判断做了。发现多个主键真的难做。后来把多个主键合并为一个,然后再插入索引。插入数据的时候先要去检索本表的主键值是否重复,然
后再通过TableManager来传入本表的父表,然后再通过父表的检查主键是否重复来判断是否外键值一致。

福勇要做红黑树。不过我们已经把二叉排序树实现了,下面他要做的工作是将节点加入父节点和颜色。然后再改掉BinSearchTree的插入节点和删除节点的实现函数
就差不多了。

昨天完成HashTable和BinSearchTree的部分功能…

今天想到索引永久化保存。这个就意味这索引中存放的不能是地址的值。这样再还原就会出现问题。

又想是否可以存相对位置,但是这样又要改AList类中的remove方法。否则删除一行,本行以下的所有的行的相对位置都变化了。后来准备做一个亚元来代替删除行记
录。

想象HashTable对于等值比较速度非常快,但是对于大于小于等操作,HashTable基本就无用了。那就可以直接用红黑树来代替。这样做也做到了底层数据结构
和用户接口的无关性。用户不必自己选择使用哪种数据结构来建立索引。

今天碰到一个问题:vs2005调试的时候监控的变量的值总是会变的莫名其妙。后来发现是使用了release而不是debug.晕…

又碰到一个c++的问题:

void DividWhereSet(char * pStrWhereSet, char * pStrColumnName, char * oper,
char * pValue);我在函数体内改动了pStrColumnName和pValue的值。但是编译器就有问题了。后来改成:

void DividWhereSet(char * pStrWhereSet, char ** pStrColumnName, char * oper,
char ** pValue);原因是改变了指针的地址,那么还是用指针的指针来改变,否则又犯了传值的毛病…

明天又要上文件检索课。连续上三天然后考试。

前天一天都在写详细设计文档。文档感觉很重要,但是又不是非常的重要。

锦哥说胜出的队伍会得到西瓜。

于是我们组做了精致的ppt,
然后release一个版本。我上台做了进度报告,报告中吹嘘我们的解决方案。用吹嘘不太好,应该说推销了我们的解决方案。然后展示了半成品。

老师们给了很高的评价。不过说界面还要做。因为用户的可用性很差。不过我感觉我们组的界面美化度已经是全部组中的第一名了。在ppt的倒数第二页,展望了下未来,然后
ppt上写了这样一行话:“我们想要一个西瓜!”结果投票的人有15个人。我们得了12票。(做数据库的组不能相互投票)最终我们得到一个大西瓜。

回来给了组员假期。又分给其他各个组西瓜吃。呵呵…happy的一天。

下次我们还将得一个西瓜…

今天上午上完睿哥的课程
,听懂了分支定界法,启发查找和A*算法。听后,感觉就是这些算法不过如此。或许睿哥今天讲的好吧。不过我数据库的实现并没有这种算法的要求。

上午又迫于压力去听了林院长的课。讲web…后来感觉讲的无聊,最后悄悄拿出书包里的web测试书看起来了。然后又有测试课。我在门口听了两分钟发现是将兼容性测
试要注意:操作系统兼容,硬件,浏览器,数据库都要进行兼容测试。发现没有新意,就走了。

上午回来搞定了Update方法。下午和界面模块结合起来运行。今天终于可以从界面创建新表了!

昨天实现了CDBTable中的Select方法和Delete方法,另外做好了dll中的接口中的Select方法和Delete方法。方便外界访问。但是现在Se
lect出了问题。如果dll将一个Matrix矩阵传了出去,但外界将这个Matrix删除掉或者做了什么手脚,那么里面的Matrix矩阵中的数据也将改变。如果
将Matrix矩阵中的Row删除了,那就会出现意想不到的效果。所以现在的实现方法是在Select方法传出Matrix前,将重新申请一块内存区做Matrix的
副本。但是我现在希望能够重构一个select方法。用来查找对应的Row,以此来方便删除,更新操作。但是现在想想好些这样实现有点难度。主要是最基本的数据结构L
ist设计有点问题。迭代器的使用不方便。造成了删除和查找不能用一个select方法。

再想想吧。。

0%