铁路购票软件应该怎么设计

admin 2025-04-30 83人围观 ,发现297个评论

假设有一条线路,这条线路上面有5个站点,分别为A,B,C,D,E?那我们要做一个查询,购票系统的话,用什么算法?如何设计表?基础功能比较容易实现:(1)录入站点信息;(2)录入线路信息,勾选线路途经的站点以下是模拟购票的过程。

第一步:我定义一个数组,表示一条线路上的站点

String[]sites=newString[]{"A","B","C","D","E"};

第二步:我首先要初始化车票的信息,将可能的(出发地~达到地)都罗列出来,从第一个站点开始依次迭代,代码如下所示!

/***生成全部可能的(出发地~到达地)车次信息*@paramsites*/publicstaticvoidgenerateTicket(String[]sites){intlength=;for(intm=0;mlength;m++){for(intn=m+1;nlength;n++){(sites[m]+"~"+sites[n]+"");}}}

输出的结果:A~BA~CA~DA~EB~CB~DB~EC~DC~ED~E

先简单设计一张表t_ticket,有3个字段from,to,quantity分别表示出发地,达到地,剩余数量。

假设座位总数为10个,那么存入数据,初始化表如下

第三步:我要开始输入出发地,到达地,买票!这里面的难点是要把相关站点之间的数量都扣减,比如购买B到D的车票,那么A~CA~DA~EB~CB~DB~EC~DC~E之间的剩余数量都要扣减,所以先要有一个算法,把关联的站点都计算出来,思考一下,逻辑如下:

假设我要购买from到to的车票,那么受影响的站点信息如下(表示末站)1.from之前的所有元素(不包含from),到from(不包含)后面所有的元素2.from(包含)到to(不包含)之间的元素,到之间的所有元素
/***购买从from到to的车票,生成受到关联的路段信息*1.from之前的所有元素(不包含from),到from(不包含)后面所有的元素*2.from(包含)到to(不包含)之间的元素,到之间的所有元素*@paramfrom索引值*@paramto索引值*/publicstaticvoidrelevant(intfrom,intto){String[]sites=newString[]{"A","B","C","D","E"};inttotal=;//处理情况1for(intstart=0;startfrom;start++){for(int=from+1;=total;++){(sites[start]+"~"+sites[]+"");}}//处理情况2for(intstart=from;startto;start++){for(int=start+1;=total;++){(sites[start]+"~"+sites[]+"");}}}

获取到所有的关联的路段信息,再把数据库中相应的记录数量扣减!

猜你喜欢
    不容错过