关闭

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

48人阅读 评论(0) 收藏 举报
下面的程序是一个公交车的查询系统,但是我只是完成了直达车的查询,在实现转车的功能上出现了很大的问题,谁可以帮下我

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);
      }
    }
  }




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1680次
    • 积分:198
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档