我的一个小程序的功能完善问题

原创 2017年01月03日 05:09:58
下面的程序是一个公交车的查询系统,但是我只是完成了直达车的查询,在实现转车的功能上出现了很大的问题,谁可以帮下我

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
import java.io.*;
import java.util.*;
import java.lang.*; 


public class RMS_BusQuery extends MIDlet
{
  private Display display ;

  private TextField startPoint ; //用于输入起始站
  private TextField endPoint ; //用于输入终点站

  //声明窗体
  private Form inputform ;
  private Form resultform;
  private Form detailform;

  //声明按钮
  private Command cmdOk ;
  private Command cmdHelp ;
  private Command cmdExit;
  private Command cmdBack ;
  private Command cmdDetail ;


  String[] useBus1;
  String[] useBus2;
  String lineDetail1;
  String lineDetail2;

  private Alert alert;
  private Ticker ticker ;

  //声明两个向量
  private Vector busFilter1 = new Vector();
  private Vector busFilter2 = new Vector();


  //声明ChoiceGroup
  ChoiceGroup b1;
  ChoiceGroup b2;

  int busNumber1 ; //直达车的数量
  int busNumber2 ; //转乘车的数量


  //定义记录存储的\"字段\"
  String busNo; //车次
  String busType;//车的类型:大巴、中巴、小巴
  String startStation;//起点站
  String endStation;//终点站
  String busLine;//线路

  static final String rsName = "BUS"; //记录存储的名字
  RecordStore rs = null ;


  //构造函数
  public RMS_BusQuery()
  {
    display = Display.getDisplay(this);
    ticker = new Ticker("深圳乘车通 provided by pauline,email:paulineloverose@163.com");
    startPoint = new TextField("上车站","火车站",10,0);
    endPoint = new TextField("下车站","市政府",10,0);

    //定义按钮
    cmdOk = new Command("确定",Command.SCREEN,1);
    cmdHelp = new Command("帮助",Command.SCREEN,2);
    cmdExit = new Command("退出",Command.SCREEN,3);
    cmdBack = new Command("返回",Command.BACK,1);
    cmdDetail = new Command("查看",Command.SCREEN,2);

    //定义输入窗体inputform
    inputform = new Form("请输入:");
    inputform.append(startPoint);
    inputform.append(endPoint);
    inputform.setTicker(ticker);
    inputform.addCommand(cmdOk);
    inputform.addCommand(cmdHelp);
    inputform.addCommand(cmdExit);
    inputform.setCommandListener(new Listener1());

    //定义结果窗体resultform
    resultform = new Form("可乘坐下面的公车到目的地");
    resultform.addCommand(cmdBack);
    resultform.addCommand(cmdDetail);
    resultform.addCommand(cmdExit);
    resultform.setCommandListener(new Listener2());


    //定义详细窗体detailform
    detailform = new Form("此路车经过下列站");
    detailform.addCommand(cmdBack);
    detailform.addCommand(cmdExit);
    detailform.setCommandListener(new Listener3());


    //定义Alert
    Image img = null;
    try{
      img = Image.createImage("/catchbus.png");
    }catch(IOException e) {
      System.out.println("Error when set image");
    }

    alert = new Alert("Welcome",null,img,AlertType.INFO);
    alert.setTimeout(2000);

    //删除旧的记录存储
    try{
      RecordStore.deleteRecordStore(rsName);
    }catch(Exception e){
    }

    //生产一个新的记录存储BUS
    try{
      rs = RecordStore.openRecordStore(rsName,true);
      if(rs.getNumRecords() == 0)
      _addAllRecords(); //添加所有的记录
    }catch(Exception e)
    {
    }
  }



  public void startApp() {
    display.setCurrent(alert,inputform);

  }


  public void pauseApp() {}
  public void destroyApp(boolean unconditional) {}


  //事件监听器listener1
  class Listener1 implements CommandListener {
    public void commandAction(Command c,Displayable d) {
      if (c == cmdExit){
          destroyApp(false);
          notifyDestroyed();
      }

      if(c == cmdOk){
          try{
            int resultformSize = resultform.size();
            if(resultformSize > 0){
            for(int i=0; i<resultformSize; i++)
              resultform.delete(i);
            }
          }catch(Exception e){
          }

          String s1 = startPoint.getString();
          String s2 = endPoint.getString();
          try{
            int lastID = rs.getNextRecordID();
            for (int i = 1; i< lastID; i++) {
              byte[] data = rs.getRecord(i);
              _decode(data);
              int j = busLine.indexOf(s1);
              int k = busLine.indexOf(s2);
              if(j != -1 && k != -1){
                  busFilter1.addElement(busNo+"路"+busType); //有直达车
              }
              else if(k != -1 ){
                  busFilter2.addElement(busNo+"路"+busType); //有转乘车
              }
            }
              busNumber1 = busFilter1.size(); //直达车的数量
              busNumber2 = busFilter2.size(); //转乘车的数量

          if(busNumber1 > 0){
            useBus1 = new String[busNumber1];
            for(int i=0; i<busNumber1; i++){
              useBus1[i] = (String)busFilter1.elementAt(i);
            }
            b1 = new ChoiceGroup("",ChoiceGroup.EXCLUSIVE,useBus1,null);
            resultform.append(b1);
          }
          //没有直达车,但有转乘车
          else if(busNumber2 > 0){
            useBus2 = new String[busNumber2];
            for(int j = 0; j < busNumber2; j++ ){
              useBus2[j] = (String)busFilter2.elementAt(j);
            }
            b2 = new ChoiceGroup("",ChoiceGroup.EXCLUSIVE,useBus2,null);
            resultform.append("对不起,没有直达车,但下面的车次经过你输入的下车站:");
            resultform.append(b2);
          }
          //如果没有直达车,也没转乘车
          else{
            resultform.append("对不起,没有直达车和转乘车经过您输入的起始站");
          }

          }catch(Exception e){
          }
          busFilter1.removeAllElements();
          busFilter2.removeAllElements();
          display.setCurrent(resultform);
      }
    }
  }




【深入了解cocos2d-x 3.x】一步一步通过ClippingNode实现一个功能完善的跑马灯公告(1)

这篇文章主要是通过一步一步实现一个功能完善的跑马灯公告来展示ClippingNode的用法并且最终深入ClippingNode的源码,了解其实现原理。 首先,先介绍一下ClippingNode,Cli...

一个简单的,基本功能完善的移动通信架构

设计一个简单的,易用的通信框架应该包含三个部分:监听器(耦合UI线程和通信线程),计时器(在通信超时的情况下,通知UI线程),通信体(维护通信)。   下面给出一个设计完好的例子:      ...

功能完善的java Socket程序

  • 2009年01月05日 12:39
  • 23KB
  • 下载

iOS开发UI篇—无限轮播(功能完善)…

[self addNSTimer]; } -(void)addNSTimer {     [NSTimer scheduledTimerWithTimeInterval:1.5 target:self...
  • ji5ji
  • ji5ji
  • 2015年11月13日 09:16
  • 252

[thinkPHP5项目实战_29]前台首页和文章搜索功能完善

1.首页功能 首页展示出所有文章,因此需要单独处理,首先在后台将首页的栏目删除,并将首页栏目下的文章移到其他栏目或者删除; 在头部导航header.html单独对首页进行处理; ...

Flex哈希表代码,功能完善~

package hash.utils { import flash.utils.Dictionary; public class Hashtable { private var ...

[thinkPHP5项目实战_28]前台文章"相关文章"的功能完善

在文章详情页面需要展示相关文章列表,该列表使用过当前文章的关键词来获取的; 当前文章的关键词可能不止一个,因此需要查询所有文章是否具有该关键词,如果有则将该文章相关信息储存到数组中; 这样遍历出来文章...

功能完善的即时通讯+视频会议源码

语言:C/C++ 编程语言设计,VC++开发平台功能:◆:点对点聊天:◆邀请多人聊天、◆在线发送文件:用户为离线状态下,可以将文件发送到对方带密码的离线文件柜里,文件柜可以接受在线与离线文件,也可以回...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我的一个小程序的功能完善问题
举报原因:
原因补充:

(最多只允许输入30个字)