- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个程序来模拟大学中的一个系统,学生们排队在自助餐厅订午餐,每个学生在下订单时都会得到一个票号,然后他就坐下。当订单准备好时,与订单相对应的票号会显示在屏幕上,学生可以前往柜台领取午餐。柜台人员可以执行三个操作,即recordOrder
、requestCollection
和displayPendingOrder
。 recordOrder
操作允许输入订单详细信息,订单由工单 ID、tID
和表示订单中项目的字符串数组列表表示。当第一个订单从厨房到达时(即订单已准备好),requestCollection
操作将从队列中删除第一个订单。 displayPendingOrder
操作显示所有尚未交付的订单。订单按照收到的顺序交付,即先进先出。
这是我到目前为止所做的:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
import java.util.Scanner;
public class Order_Main {
private static class Order{
private static int tID=0;
private String itemName;
public Order(String itemName){
tID++;
this.tID=tID;
this.itemName=itemName;
}
public int gettID() {
return tID;
}
public void settID(int tID) {
this.tID = tID;
}
public String getItemName() {
return itemName;
}
public void setItemName(String itemName) {
this.itemName = itemName;
}
}
public static void main(String[] args) {
ArrayList<Order> listOfItems= new ArrayList<Order>();
recordOrder(listOfItems);
}
private static void recordOrder(ArrayList<Order> listOfItems){
int n, num_Orders;
String item = null;
Scanner sc= new Scanner(System.in);
System.out.println("Enter the number of orders.");
num_Orders= sc.nextInt();
for(int j=0; j<num_Orders;j++){
System.out.println("Enter the number of items for token number "+(j+1));
n=sc.nextInt();
sc.nextLine();
System.out.println("Enter the items: ");
for(int i=0; i<n;i++){
item=sc.nextLine();
}
listOfItems.add(new Order(item));
}
for(Order list: listOfItems){
System.out.println("Token num: "+list.gettID()+ " Item name: "+list.getItemName());
}
}
}
我目前只实现了 recordOrder
函数,但以下是我面临的一些问题:
Order
类中,我自动递增了 token 编号,以便第一个订单的 token 编号为 1,第二个订单的 token 编号为 2,依此类推。问题在于, token 数逐渐增加到订单数,并且订单数以 token 数的形式打印出来。假设我输入订单数 num_Orders
,为 3,我得到的输出为 代币数量:3 商品名称:芝士蛋糕
代币数量:3 商品名称:薯条
代币数量:3 商品名称:汉堡
正如我在上面的输出中所示,仅打印出我为特定订单输入的一项和最后一项。
我不知道如何将 token 和字符串数组列表添加到队列中,以便我可以执行其他操作。
我是数据结构的新手,仍在学习中,因此将非常感谢任何帮助、意见和建议。
最佳答案
您正在尝试使用静态变量 tID 作为成员变量。您需要另一个非静态成员变量来跟踪分配的订单的递增 id。
private static int tID=0;
private int orderId;
private String itemName;
public Order(String itemName){
tID++;
this.orderId = tID; //use this.orderId in the rest of Order's functions
this.itemName = itemName;
}
关于Java:在构造函数中自动递增 id 并将项目添加到 arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34798944/
C语言sscanf()函数:从字符串中读取指定格式的数据 头文件: ?
最近,我有一个关于工作预评估的问题,即使查询了每个功能的工作原理,我也不知道如何解决。这是一个伪代码。 下面是一个名为foo()的函数,该函数将被传递一个值并返回一个值。如果将以下值传递给foo函数,
CStr 函数 返回表达式,该表达式已被转换为 String 子类型的 Variant。 CStr(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CSng 函数 返回表达式,该表达式已被转换为 Single 子类型的 Variant。 CSng(expression) expression 参数是任意有效的表达式。 说明 通常,可
CreateObject 函数 创建并返回对 Automation 对象的引用。 CreateObject(servername.typename [, location]) 参数 serv
Cos 函数 返回某个角的余弦值。 Cos(number) number 参数可以是任何将某个角表示为弧度的有效数值表达式。 说明 Cos 函数取某个角并返回直角三角形两边的比值。此比值是
CLng 函数 返回表达式,此表达式已被转换为 Long 子类型的 Variant。 CLng(expression) expression 参数是任意有效的表达式。 说明 通常,您可以使
CInt 函数 返回表达式,此表达式已被转换为 Integer 子类型的 Variant。 CInt(expression) expression 参数是任意有效的表达式。 说明 通常,可
Chr 函数 返回与指定的 ANSI 字符代码相对应的字符。 Chr(charcode) charcode 参数是可以标识字符的数字。 说明 从 0 到 31 的数字表示标准的不可打印的
CDbl 函数 返回表达式,此表达式已被转换为 Double 子类型的 Variant。 CDbl(expression) expression 参数是任意有效的表达式。 说明 通常,您可
CDate 函数 返回表达式,此表达式已被转换为 Date 子类型的 Variant。 CDate(date) date 参数是任意有效的日期表达式。 说明 IsDate 函数用于判断 d
CCur 函数 返回表达式,此表达式已被转换为 Currency 子类型的 Variant。 CCur(expression) expression 参数是任意有效的表达式。 说明 通常,
CByte 函数 返回表达式,此表达式已被转换为 Byte 子类型的 Variant。 CByte(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CBool 函数 返回表达式,此表达式已转换为 Boolean 子类型的 Variant。 CBool(expression) expression 是任意有效的表达式。 说明 如果 ex
Atn 函数 返回数值的反正切值。 Atn(number) number 参数可以是任意有效的数值表达式。 说明 Atn 函数计算直角三角形两个边的比值 (number) 并返回对应角的弧
Asc 函数 返回与字符串的第一个字母对应的 ANSI 字符代码。 Asc(string) string 参数是任意有效的字符串表达式。如果 string 参数未包含字符,则将发生运行时错误。
Array 函数 返回包含数组的 Variant。 Array(arglist) arglist 参数是赋给包含在 Variant 中的数组元素的值的列表(用逗号分隔)。如果没有指定此参数,则
Abs 函数 返回数字的绝对值。 Abs(number) number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。
FormatPercent 函数 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 FormatPercent(expression[,NumDigitsAfterD
FormatNumber 函数 返回表达式,此表达式已被格式化为数值。 FormatNumber( expression [,NumDigitsAfterDecimal [,Inc
我是一名优秀的程序员,十分优秀!