我的一个小程序的功能完善问题
2017-01-03 05:09
495 查看
下面的程序是一个公交车的查询系统,但是我只是完成了直达车的查询,在实现转车的功能上出现了很大的问题,谁可以帮下我
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);
}
}
}
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);
}
}
}
相关文章推荐
- CSDN博客:对于一个程序员,写程序就是实现功能,遇到具体问题,解决这个问题,并记录问题到CSDN上,从而有所提高和互相帮助。
- 一个功能完善的专栏管理的程序[转]
- 完善一个iOS程序的界面功能:使用StackView以及其他UI元素
- 博客园Blog程序中又一个奇怪问题
- 写程序过程中的一个小问题,提醒!
- 写多进程程序碰到的一个问题
- 一个集成输入查找功能的的java简单程序
- 遇到一个问题“安装程序没有访问目录C:\Inetpub\wwwroot的权限”
- 由一个朋友遇到的问题想到的关于程序的架构
- 编VC网络程序遇到一个问题,原来是少了一个LIB。
- weblogic程序移植到jboss上的一个问题解决方法,j2ee,原创
- 一个发邮件的类,带验证功能,可以发html内容,可以添加附件,并解决附件乱码问题。
- 对"一个非常难的查询问题(部门上下级的关系)"之解答的完善
- setTimeout执行程序的一个小问题
- setTimeout执行程序的一个小问题
- 一个不太完善的ASP整站静态生成程序
- 一个具自我复制功能的程序
- 解决一个以前写的VB程序的安装问题
- 基于AjaxHelper0.41的相册范例程序演示及一个关于博客园的功能建议
- 一个发邮件的类,带验证功能,可以发html内容,可以添加附件,并解决附件乱码问题。