帮我看看这个JAVA程序哪里错了(菜鸟级问题)

2024-12-26 09:10:55
推荐回答(1个)
回答1:

写了一段程序,但也不是很好
你的一些小问题
1。数组是从0到9。。不是从1到10
2。建议先画好流程图再写程序

import java.awt.Container;

import javax.swing.JApplet;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

/**
*
*/

/**
* @author murphy
*
*/
public class exercise3 extends JApplet
{

void log(String s)
{
System.out.println(s);
}

private int S2Int(String s)
{
int i = 0;

try
{
i = Integer.parseInt(s);
}
catch(Exception e)
{
i = -1;
}

return i;
}

public void init()
{
boolean array[] = new boolean[10];
int first = 0, economy = 5, total = 0 ,lastinquiry=0,input = 0;

JTextArea outputArea = new JTextArea();

Container container = getContentPane();
container.add(outputArea);

outputArea.setText("订票系统" + "\n");
this.log("订票系统");

while (total < 10)
{
String x ="";

if (lastinquiry == 0)
{
x = JOptionPane.showInputDialog("头等舱 输入1\n经济舱 输入2");
log("x=" + x);

}
else
{
x = Integer.toString(lastinquiry);
log("处理重新分配x=" + x);
}

input = S2Int(x);
log("input=" + Integer.toString(input));

if (input != 1 & input != 2)
{
outputArea.append("Invalid Input" + "\n");
log("Invalid Input" + "\n");
}
else
{
if (input == 1)// 头等舱
{
// 如选头等舱应在头等舱安排座位(如座位编号1-5),
if(first <5 )
{
outputArea.append("头等舱"+first+"号" + "\n");
log("头等舱"+first+"号" + "\n");
array[first]=true;
first++;
total++;
lastinquiry = 0;
}
else// 头等舱分配完了应询问顾客是否可以预订经济舱,反之亦然
{
log("头等舱分配完了应询问顾客是否可以预订经济舱,反之亦然");
int z = S2Int( JOptionPane.showInputDialog("换经济舱 输入1\n不换 输入2"));
if (z == 1)//换经济舱
{
lastinquiry = 2;//进入经济舱分配
}
else if (z == 2)//不换
{
outputArea.append("下一航班在3小时之后" + "\n");
lastinquiry = 0;//
}
else
{
outputArea.append("无效输入" + "\n");
lastinquiry = 0;
}
}
}
else// 经济舱
{
if(economy <10 )
{
outputArea.append("经济舱"+economy+"号" + "\n");
log("经济舱"+economy+"号" + "\n");
array[economy]=true;
economy++;
total++;
lastinquiry = 0;
}
else// 经济舱分配完了应询问顾客是否可以预订头等舱
{
log("经济舱分配完了应询问顾客是否可以预订头等舱");
int z = S2Int(JOptionPane.showInputDialog("换头等舱 输入1\n不换 输入2"));
if (z == 1)//换头等舱
{
lastinquiry = 1;//进入头等舱分配
}
else if (z == 2)//不换
{
outputArea.append("下一航班在3小时之后" + "\n");
lastinquiry = 0;//
}
else
{
outputArea.append("无效输入" + "\n");
lastinquiry = 0;
}
}
}
}
}

outputArea.append("完毕\n");
}

}

//output===============================
订票系统
头等舱0号
头等舱1号
头等舱2号
经济舱5号
经济舱6号
经济舱7号
头等舱3号
头等舱4号
下一航班在3小时之后
下一航班在3小时之后
经济舱8号
经济舱9号
完毕