当前位置: 首页 > 知识库问答 >
问题:

拿到乘客名单并把他们安排在座位上。数组列表

步兴为
2023-03-14

所以我已经在这四个小时了,我完全被难倒了。

创建一个简单的乘客等级,记录乘客的姓名和座位偏好。编写一个程序,反复请求乘客的姓名(哨兵循环),然后是用户的座位偏好。首选项将由行号和座位字母组成(假设21行和座位a、B、C和D)。在Passenger对象的ArrayList中搜索匹配的名称。如果已在列表中,则设置其新的座次首选项;否则,创建一个新的乘客并将其添加到列表的末尾。下面是UML http://imgur.com/skqvuxu

这是我到目前为止的代码。我无法正确执行“操作时”循环。我不确定我的下一步会是什么。

public class Passenger{

private String name;
private int row;
private int seat;


public  Passenger(){

}


public Passenger(String passengerName, int requestedRow, int requestedSeat){

    name = passengerName;
    row = requestedRow;
    seat = requestedSeat;


    Scanner sc = new Scanner(System.in);

System.out.println("enter the passenger name or 'stop' to quite: ");
name = sc.next();

    do{
     System.out.println("what row would you like to sit on? ");
     row = sc.nextInt();
     System.out.println("what sear would you like to sit on? ");
     seat = sc.nextInt();
     }while(name == "stop");
}

    public String getName(){
        return name;
    }
    public int getRow(){
        return row;
    }
    public int getSeatNumber(){
        return seat;
    }
    public char getSeatCode(){
        return seatPreference();
    }


public  char seatPreference(){
    char newSeat = 0;
    if(seat == 1){
        newSeat = 'A';
    }
    else if(seat == 2){
        newSeat = 'B';
    }
    else if(seat == 3){
        newSeat = 'C';
    }
    else if(seat == 4){
        newSeat = 'D';
    }
    return newSeat;
    }

public void setPreference(int newRow, char newSeat){

}

}

共有1个答案

王嘉木
2023-03-14

在OOP中,您不能使用==来比较字符串,因为您只能检查字符串的内存引用。我将使用String.Compare(string1,string2)。如果等于则返回0,如果不等于则返回-1或1。

我也会使用类似这样的循环

while(String.Comapre(name.ToUpper(), "Q") != 0)
{

}

此外,除非需要,我将使用List<>Dictionary<>或DictionaryList<>而不是ArrayList。

 类似资料:
  • 上下文:使用play framework(1.3)、hibernate(4.3.8)和html端的一些Groovy开发内部web应用程序。 我目前正在使用Hibernate,我被指派去寻找一些优化技术。我们有一些加载问题,因为所有的东西都是懒洋洋地取来的,当我们试图用Groovy访问它时,Hibernate会像雨点一样大量地输入请求,这会耗费大量的时间,使我们的应用程序变得非常慢。 所以我正在尝试

  • 我是新来Java的,我有一个程序,我正在为一个航空公司的乘客群体的座位工作。(我会尽量使我的问题简单易懂) 所以,我应该在航空公司为乘客安排一组座位。我得到了关于他们是如何被一个预订的班级安排就座的信息。 使用这些信息,我创建了一个名为seats的字符串数组和一个bookings数组,该数组调用类来检索其中的所有信息 第一个值表示我的航班上的可用座位数,其余的值表示要分配的组数及其名称。 您的程序

  • 问题内容: 我有Windows Vista 64。 我有一些项目需要Python 2.7.3 64位,而其他项目则需要Python 2.7.3 32位(因为某些扩展不能在64位上工作)。 如何防止Python 2.7.3 MSI安装程序(32或64 Bot)删除其他版本。 并排使用Python 2.7.2为我工作没有问题。 问题答案: 在Windows 7 64位上,这似乎对我有用。选择一个版本作

  • 我使用过Ehcache 3,我是Ehcache 3的新手,我有一个缓存管理器,如下所示: 现在,当创建对象时,cacheManager已初始化: 初始化cacheManager后,这是我的主类,所有获取和放入缓存的操作都在这里发生。我已经插入了几个数据到不同的缓存,如: 我想要一个单独的函数,它将返回所有缓存的名称和缓存中数据总数的计数,这样我就可以在UI中显示包含数据的缓存。我寻找这个问题,但没

  • 问题内容: 我在蜂巢中有一张桌子,两列分别为和。输出如下图 我想按升序对该col2进行排序,并且col1还应相应地更改其索引,例如 问题答案: 分解两个数组,进行排序,然后再次聚合数组。在子查询中使用之前对数组进行排序: 结果: 编辑:同一脚本的简化版本,您可以不用第二次posexplode,而是按位置使用直接引用

  • 我遇到了一个问题,我需要将两列实体相乘来排序,为了想象,实体是: 我不能使用命名查询,因为我的查询基于用户输入进行了大量筛选(不能将where子句放入查询,因为如果用户没有选择任何值,where子句不能只在查询中)。 为了简单点。我需要类似findAll(谓词,Pageable)的东西,但我需要强制查询按“amount*unitPrice”对其进行排序,但也要保持我的Preditate(过滤器)和