我需要有人告诉我代码中的逻辑出了什么问题

叶夫根尼(Yevgeniy S.)

我是Java的初学者。我正在尝试根据以下文本编写代码:

您将编写一个应用程序来预售有限数量的电影票。简单的用户界面将包含在Main.java中,用于实现此目的的对象称为TicketSeller,它仅包含以下公共方法:

public TicketSeller(int initialTicketAllotment) -指定您要出售的门票数量。

public int requestTickets(int ticketRequest)-要求ticketRequest门票数量。返回牛逼icketSeller.TOO_MANY_TICKETS_REQUESTED如果有超过TicketSeller.MAXIMUM_TICKETS_ALLOWED请注意,这些常量之一是私有的,一个是公共的。哪一个需要向用户公开?

public int getNumberOfBuyers()-跟踪购票者的数量。您只计算满足要求的买家。错误不计算在内。

这是我到目前为止所拥有的。但是,我的代码中有一个错误,但我找不到它:

public class TicketSeller {
    private final static int MAXIMUM_TICKETS_ALLOWED = 4;
    public static final int TOO_MANY_TICKETS_REQUESTED = -1;
    private int buyers = 0;
    private int initialTicketAllotment;
    int placeHolder;

    public TicketSeller(int initialTicketAllotment) {
        this.initialTicketAllotment = initialTicketAllotment;

    }

    public int requestTickets(int ticketRequest) {

        if (placeHolder > 0) {
            int value = 0;
            value = placeHolder - ticketRequest;
            placeHolder = value;
            buyers += 1;
        }

        if (ticketRequest > MAXIMUM_TICKETS_ALLOWED
                || ticketRequest > initialTicketAllotment) {
            return TOO_MANY_TICKETS_REQUESTED;
        }

        if (ticketRequest >= 0 && ticketRequest <= MAXIMUM_TICKETS_ALLOWED
                && placeHolder == 0) {
            int value = 0;
            value = initialTicketAllotment - ticketRequest;
            placeHolder = value;
            buyers += 1;

        }

        return placeHolder;
    }

    public int getNumberOfBuyers() {
        return buyers;
    }

}

位于以下代码注释中的输出不正确:

public class Main {

    public static void main(String[] args) {
        TicketSeller ts = new TicketSeller(8);

        System.out.println(ts.requestTickets(1)); //outputs 7
        System.out.println(ts.requestTickets(2)); //outputs 5
        System.out.println(ts.requestTickets(3)); //outputs 2
        System.out.println(ts.requestTickets(1)); //outputs 1
        System.out.println(ts.requestTickets(1)); //outputs 7, instead of 0
    }
 }
乔尼·亨利

您的逻辑错误在于您的构造函数和requestTickets(int)方法:

public TicketSeller(int initialTicketAllotment) {
    this.initialTicketAllotment = initialTicketAllotment;
    // you need to initialize 'placeholder' to the initial
    // amount of tickets available
    this.placeholder = initialTicketAllotment;
}

public int requestTickets(int ticketRequest) {
    // you should check if there are no more tickets to request
    // or more than MAXIMUM_TICKETS_ALLOWED (4 tickets) have been
    // requested, before checking if placeholder > 0. Also, you
    // want to check if 'ticketRequest > placeholder' not the
    // initial amount of tickets.
    if (ticketRequest > MAXIMUM_TICKETS_ALLOWED
            || ticketRequest > placeholder) {
        return TOO_MANY_TICKETS_REQUESTED;
    }

    // remove the local 'value' variable, it just confuses your
    // code to other readers, thinking you need a temporary variable
    // for some reason
    if (placeHolder > 0) {
        placeholder -= ticketRequest;
        buyers += 1;
    }

    // if placeholder equals 0, that means there are no more tickets
    // left... not sure why you would set it back to
    // 'initialTicketAllotment - ticketRequest'. I would get rid of this
    // method.
    /*
    if (ticketRequest >= 0 && ticketRequest <= MAXIMUM_TICKETS_ALLOWED
            && placeHolder == 0) {
        int value = 0;
        value = initialTicketAllotment - ticketRequest;
        placeHolder = value;
        buyers += 1;
    }
    */

    return placeHolder;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有人可以告诉我我的Type或linq查询出了什么问题吗

来自分类Dev

需要检查用户输入是否为数字。代码未按预期工作。有人可以告诉我出了什么问题吗?

来自分类Dev

有人可以告诉我我的代码有什么问题吗?

来自分类Dev

有人可以告诉我我的代码有什么问题吗?[Python 2.7.1]

来自分类Dev

有人可以告诉我这段代码有什么问题吗

来自分类Dev

有人可以告诉我此python代码有什么问题吗?

来自分类Dev

有人能告诉我这段代码有什么问题吗?

来自分类Dev

有人能告诉我 emu8086 中的这段代码有什么问题吗?

来自分类Dev

有人可以告诉我我的package.json文件出了什么问题吗?

来自分类Dev

有人可以告诉我我的package.json文件出了什么问题吗?

来自分类Dev

谁能告诉我我的代码出了什么问题

来自分类Dev

有人可以告诉我我的代码有什么问题并尝试对其进行解释吗?

来自分类Dev

有人可以告诉我这张图片有什么问题吗?

来自分类Dev

有人能告诉我这个javascript有什么问题吗?

来自分类Dev

有人能告诉我出了什么问题,当我运行它时,浏览器说“无法访问此站点”

来自分类Dev

有人可以告诉我出了什么问题吗,当我尝试解密我加密的密文时,它告诉我我的填充不正确

来自分类Dev

Java的新手,需要有人告诉我Java作业程序中哪里缺少return语句吗?

来自分类Dev

谁能告诉我我的功能出了什么问题?

来自分类Dev

有人可以解释我的代码出了什么问题吗?

来自分类Dev

有人能告诉我这个 Python 登录屏幕哪里出了问题吗?

来自分类Dev

pygame跳跃系统出现问题。请告诉我我的代码有什么问题

来自分类Dev

请告诉我我的代码有什么问题吗?

来自分类Dev

有人可以告诉我这个sql代码中的错误吗?

来自分类Dev

谁能告诉我这个CSS代码有什么问题吗?

来自分类Dev

您能告诉我这段代码有什么问题吗?

来自分类Dev

你能告诉我这段javascript代码有什么问题吗?

来自分类Dev

分数不更新。你能告诉我代码有什么问题吗?

来自分类Dev

有人可以说我的excel嵌套IF函数出了什么问题吗?

来自分类Dev

有人能告诉我 Eclipse 调试中的错误是什么意思吗?

Related 相关文章

  1. 1

    有人可以告诉我我的Type或linq查询出了什么问题吗

  2. 2

    需要检查用户输入是否为数字。代码未按预期工作。有人可以告诉我出了什么问题吗?

  3. 3

    有人可以告诉我我的代码有什么问题吗?

  4. 4

    有人可以告诉我我的代码有什么问题吗?[Python 2.7.1]

  5. 5

    有人可以告诉我这段代码有什么问题吗

  6. 6

    有人可以告诉我此python代码有什么问题吗?

  7. 7

    有人能告诉我这段代码有什么问题吗?

  8. 8

    有人能告诉我 emu8086 中的这段代码有什么问题吗?

  9. 9

    有人可以告诉我我的package.json文件出了什么问题吗?

  10. 10

    有人可以告诉我我的package.json文件出了什么问题吗?

  11. 11

    谁能告诉我我的代码出了什么问题

  12. 12

    有人可以告诉我我的代码有什么问题并尝试对其进行解释吗?

  13. 13

    有人可以告诉我这张图片有什么问题吗?

  14. 14

    有人能告诉我这个javascript有什么问题吗?

  15. 15

    有人能告诉我出了什么问题,当我运行它时,浏览器说“无法访问此站点”

  16. 16

    有人可以告诉我出了什么问题吗,当我尝试解密我加密的密文时,它告诉我我的填充不正确

  17. 17

    Java的新手,需要有人告诉我Java作业程序中哪里缺少return语句吗?

  18. 18

    谁能告诉我我的功能出了什么问题?

  19. 19

    有人可以解释我的代码出了什么问题吗?

  20. 20

    有人能告诉我这个 Python 登录屏幕哪里出了问题吗?

  21. 21

    pygame跳跃系统出现问题。请告诉我我的代码有什么问题

  22. 22

    请告诉我我的代码有什么问题吗?

  23. 23

    有人可以告诉我这个sql代码中的错误吗?

  24. 24

    谁能告诉我这个CSS代码有什么问题吗?

  25. 25

    您能告诉我这段代码有什么问题吗?

  26. 26

    你能告诉我这段javascript代码有什么问题吗?

  27. 27

    分数不更新。你能告诉我代码有什么问题吗?

  28. 28

    有人可以说我的excel嵌套IF函数出了什么问题吗?

  29. 29

    有人能告诉我 Eclipse 调试中的错误是什么意思吗?

热门标签

归档