Java 编辑(严厉地评判):我的display()方法赢了';t显示和I';我不知道为什么
我最近发布了一个关于display()方法只显示某些对象的问题,并且通过我之前收到的一些关于toString()方法的反馈来纠正这个问题。但是,我必须将idNum更改为int,现在我的displayMethod()将根本不显示。我试图回溯我的脚步,但不确定发生了什么 应该包含标识号、销售额和人员姓名的对象数组。但是,当我显示阵列时,没有显示任何内容。我尝试了for循环,增强了for循环,并尝试了调用get()方法的system.out.print 我不知道这是否与我的displayDatabase()方法、我使用Scanner变量(USER_INPUT)设置输入数据的方式有关,或者与我的构造函数有关 我的构造函数如下所示: ==================================================Java 编辑(严厉地评判):我的display()方法赢了';t显示和I';我不知道为什么,java,arrays,getter-setter,arrayobject,Java,Arrays,Getter Setter,Arrayobject,我最近发布了一个关于display()方法只显示某些对象的问题,并且通过我之前收到的一些关于toString()方法的反馈来纠正这个问题。但是,我必须将idNum更改为int,现在我的displayMethod()将根本不显示。我试图回溯我的脚步,但不确定发生了什么 应该包含标识号、销售额和人员姓名的对象数组。但是,当我显示阵列时,没有显示任何内容。我尝试了for循环,增强了for循环,并尝试了调用get()方法的system.out.print 我不知道这是否与我的displayDatabas
public class Salesperson
{
private String salesName;
private int salesID;
private double annualSales;
public Salesperson(String salesName, int salesIDNum, double yearlySales)
{
this.salesName = salesName;
salesID = salesIDNum;
annualSales = yearlySales;
}
public String getSalesName()
{
return salesName;
}
public void setSalesName(String salesName)
{
this.salesName = salesName;
}
public double getSalesID()
{
return salesID;
}
public void setSalesID(int salesIDNum)
{
salesID = salesIDNum;
}
public double getAnnualSales()
{
return annualSales;
}
public void setAnnualSales(double yearlySales)
{
annualSales = yearlySales;
}
@Override
public String toString()
{
return String.format("%s-%-10s%-10.2f", salesName,
salesID, annualSales);
}
}
我的应用程序代码如下所示:
导入java.util.array;
导入java.util.Scanner;
公开课销售员
{
专用静态最终扫描仪用户输入=新扫描仪(System.in);
私有静态最终整数上限大小限制=20;
私有静态最终整数下限大小限制=0;
私有静态销售人员[]销售人员数据库=新建
销售人员[20];
私有静态int numOfSalesPpl=0;
私有静态布尔循环=true;
公共静态void main(字符串[]args)
{
字符串选择;
选择=编程菜单();
字符串响应;
while(循环)
开关(选择)
{
案例“A”:
if(numOfSalesPpl==上限大小)
{
System.out.print(“数据库已达到容量”);
系统输出打印(“请删除之前的记录”);
System.out.println(“添加到数据库中”);
}
其他的
{
addRecord();
}
打破
案例“a”:
if(numOfSalesPpl==上限大小)
{
System.out.print(“数据库已达到容量”);
系统输出打印(“请删除之前的记录”);
System.out.println(“添加到数据库中”);
}
其他的
{
addRecord();
}
打破
案例“C”:
if(numOfSalesPpl==下限大小)
{
System.out.print(“数据库为空”);
系统输出打印(“请添加记录”);
}
其他的
{
changecord();
}
打破
案例“c”:
if(numOfSalesPpl==下限大小)
{
System.out.print(“数据库为空”);
系统输出打印(“请添加记录”);
}
其他的
{
changecord();
}
打破
案例“E”:
System.out.print(“您正在离开数据库”);
循环=假;
打破
案例“e”:
System.out.print(“您正在离开数据库”);
循环=假;
打破
}
}
公共静态无效更改记录()
{
字符串idNum;
字符串salesName;
双倍销售额;
字符串响应;
系统输出打印(“输入销售标识:”);
idNum=USER_INPUT.nextLine();
if(isValidID(idNum))
{
int searchResult=Arrays.binarySearch(salesstaffinandabase,idNum);
System.out.println(SalesStaffinandabase[searchResult]);
}
其他的
{
System.out.println(“无效销售ID”);
}
}
公共静态布尔值isValidID(字符串idNum)
{
布尔值isValid=false;
for(int val=0;val8);
系统输出打印(“名称:”);
salesName=USER_INPUT.nextLine();
用户_INPUT.nextLine();
系统输出打印(“销售金额:”);
salesAmount=Double.parseDouble(USER_INPUT.nextLine());
SalesStaffinandabase[numOfSalesPpl]=新建
销售人员(salesName、idNum、salesAmount);
salesStaffInDatabase[numOfSalesPpl].setSalesName(salesName);
salesStaffInDatabase[numOfSalesPpl].setSalesID(idNum);
SalesStaffinandabase[numOfSalesPpl].setAnnualSales(销售额);
System.out.print(“是否显示数据库Y/N?”:”;
response=USER_INPUT.nextLine();
while(回应)
And my code for application looks like this:
import java.util.Arrays;
import java.util.Scanner;
public class CreateSalesperson
{
private static final Scanner USER_INPUT = new Scanner(System.in);
private static final int UPPER_SIZE_LIMIT = 20;
private static final int LOWER_SIZE_LIMIT = 0;
private static Salesperson[] salesStaffInDatabase = new
Salesperson[20];
private static int numOfSalesPpl = 0;
private static boolean loop = true;
public static void main(String[] args)
{
String selection;
selection = programMenu();
String response;
while(loop)
switch(selection)
{
case "A":
if(numOfSalesPpl == UPPER_SIZE_LIMIT)
{
System.out.print("Database has reached capacity.");
System.out.print(" Please delete a record before ");
System.out.println("adding to the database.");
}
else
{
addRecord();
}
break;
case "a":
if(numOfSalesPpl == UPPER_SIZE_LIMIT)
{
System.out.print("Database has reached capacity.");
System.out.print(" Please delete a record before ");
System.out.println("adding to the database.");
}
else
{
addRecord();
}
break;
case "C":
if(numOfSalesPpl == LOWER_SIZE_LIMIT)
{
System.out.print("Database is empty. ");
System.out.print("Please add a record.");
}
else
{
changeRecord();
}
break;
case "c":
if(numOfSalesPpl == LOWER_SIZE_LIMIT)
{
System.out.print("Database is empty. ");
System.out.print("Please add a record.");
}
else
{
changeRecord();
}
break;
case "E":
System.out.print("You Are Leaving Database");
loop = false;
break;
case "e":
System.out.print("You Are Leaving Database");
loop = false;
break;
}
}
public static void changeRecord()
{
String idNum;
String salesName;
double salesAmount;
String response;
System.out.print("Enter Sales ID: ");
idNum = USER_INPUT.nextLine();
if(isValidID(idNum))
{
int searchResult = Arrays.binarySearch(salesStaffInDatabase, idNum);
System.out.println(salesStaffInDatabase[searchResult]);
}
else
{
System.out.println("Invalid Sales ID");
}
}
public static boolean isValidID(String idNum)
{
boolean isValid= false;
for(int val = 0;val < numOfSalesPpl && !isValid; ++val)
{
if(salesStaffInDatabase[val].equals(idNum))
{
isValid = true;
}
}
return isValid;
}
public static void addRecord()
{
int idNum;
String salesName;
double salesAmount;
String idNo;
String response;
do
{
System.out.print("Please enter sales ID: ");
idNum = USER_INPUT.nextInt();
idNo = Integer.toString(idNum);
if(idNo.length() != 8)
System.out.println("Sales ID must be 8 digits long: ");
}
while(idNo.length() < 8 || idNo.length() > 8);
System.out.print("Name: ");
salesName = USER_INPUT.nextLine();
USER_INPUT.nextLine();
System.out.print("Sales Amount: ");
salesAmount = Double.parseDouble(USER_INPUT.nextLine());
salesStaffInDatabase[numOfSalesPpl] = new
Salesperson(salesName,idNum,salesAmount);
salesStaffInDatabase[numOfSalesPpl].setSalesName(salesName);
salesStaffInDatabase[numOfSalesPpl].setSalesID(idNum);
salesStaffInDatabase[numOfSalesPpl].setAnnualSales(salesAmount);
System.out.print("Do you want to display database Y/N?: ");
response = USER_INPUT.nextLine();
while(response.equalsIgnoreCase("Y")||response.equalsIgnoreCase("yes"))
{
displayDatabase();
}
}
public static void displayDatabase()
{
for(int val=0;val < numOfSalesPpl; val++)
{
System.out.println(salesStaffInDatabase[val]);
}
}
public static String programMenu()
{
String selection;
do
{
System.out.println("(A)dd a Record");
System.out.println("(C)hange a Record");
System.out.println("(E)xit Database");
System.out.print("Enter selection: ");
selection = USER_INPUT.nextLine();
}
while(!selection.equalsIgnoreCase("a") &&
!selection.equalsIgnoreCase("c")
&& !selection.equalsIgnoreCase("e"));
return selection;
}
}
@Override
public String toString() {
return "Salesperson{" +
"salesFirstName='" + salesFirstName + '\'' +
", salesLastName='" + salesLastName + '\'' +
", salesID='" + salesID + '\'' +
", annualSales=" + String.format("%-10.2f", annualSales)+
'}';
}
@Override public String toString() {
return String.format("%s - %-10s%-10.2f", salesFirstName, salesID, annualSales);
}