自己都佩服自己
程序写不下去了,还是在这儿自我陶醉一把吧。为了解决上下行线有不同站的问题,我发明了在线路中加个标志的办法,只要用两位就行,11或10或01等分别代表只在上行经过、上下行都经过、只在下行经过。这样,并不增加数据的长度就能把上下行两条线的信息揉合在一条线路中。环行线是一种全部只在上行经过的线路。这样也完美地处理了环线。
然后,为了让BusQuery拥有多城市功能,我写了一个程序头,先选择城市。加完了后,我一想,夜间线路可以作为另一个城市的数据处理,也就是单独为夜间线路做一个版本的数据。但仔细一想,不太好,有些白天线路也运行得很晚,夜间坐车也是可以坐这些线路的。最后想到的办法是为每路车定义属性,然后查询时可以设定列入搜索的车的属性。每两车的属性是总的属性中的几种。总的属性定义15种,每路车用两字节表示属性,相应的位为1则具有对应属性,不为1则不具有。在搜索过程中,判断一路车符不符合属性设定,只要作一次位运算就可以了。
有了属性功能,就可以查夜间车了。如果车的运营时间分配在属性集中,则可以查询某时间点可以乘坐的车。还有其它诸如,空调和非空,四折或九折等。各种可能的查询需要都可以实现。这个创意是独创的,在任何公交查询软件上都没有的。你随便打开一个电脑上的公交查询软件,你试着查一下夜间从某地到某地可以乘什么车,都是没有办法查到的。
其实本软件有许多次创新。在前几年,别的公交查询软件直接把文字置于数据中时,这个软件已经把站名和车编号。并且把数据在电脑上经过预处理。当其它公交查询软件查一次换乘方案都累得要死时,我的这个可以快速查到换乘三次以上的乘车方案。城市的任意两个公交站之间的换乘方案都能查到了。而且本软件所具有的独创功能:站名搜索,也是大大超前意识产品。现在的8684站名搜索大概也是受了我的启发。