我已经创建了ticketAgent和ticketType类,我在尝试添加字符串时遇到了困难。我尝试过使用包装器类,但不确定这是否是正确的方法。我已经分别粘贴了我的代码和提示符。谢谢您的帮助。我是第一次发布海报,所以我希望我遵循发布指南。
提示:
编写一个名为TicketBooth的程序,该程序在3个不同的故障单代理处实例化。 TicketBooth程序应该提示用户输入他们希望购买故障单的故障单代理,然后显示可用的故障单类型和价格列表。 TicketBooth程序应允许用户选择要购买的票证。选择故障单类型后,TicketBooth程序应显示:
•该代理商的总销售额 •票务代理销售的票数总数 •所有票务代理商销售的门票总数
TicketBooth程序应该继续提示用户从其中一个故障单代理购买故障单,直到用户键入退出为止。
package Exercises;
import java.util.Scanner;
public class TicketBooth {
private static Scanner input;
public static void main(String[] args) {
input = new Scanner(System.in);
String ticketAgent = "sam", "nicole" , "alex";
String ticketType = "one";
int t = Integer.parseInt(ticketAgent);
int s = Integer.parseInt(ticketType);
int sum;
System.out.println("Please select your ticket agent: ");
ticketAgent = input.next();
System.out.println("Please select your ticket type or press -1 to quit: ");
ticketType = input.next();
sum = t +s;
System.out.println("The total tickets that were sold were: " + sum);
}
}
package exercises;
public class TicketAgent {
private static int numOfTicksPerAgent;
private String agentName;
private int numSold = 0;
private double totalSales = 0.0;
public TicketAgent(String agent) {
agentName = agent;
numSold = 0;
totalSales = 0.0;
numOfTicksPerAgent += 1;
}
public void sellTicket(TicketType tt) {
numSold++;
totalSales = totalSales + tt.getticketPrice();
numOfTicksPerAgent++;
}
public double gettotalSales() {
return totalSales;
}
public double getnumSold() {
return numSold;
}
public double getnumOfTicksPerAgent() {
return numOfTicksPerAgent;
}
}
package exercises;
public enum TicketType
{
CHILD (6.50),
ADULT (9.50),
SENIOR (6.50);
private double tikPrice;
TicketType(double price)
{
tikPrice = price;
}
public double getticketPrice()
{
return tikPrice;
}
}
答案 0 :(得分:1)
问题是,这似乎是你的功课 没有人想为你做作业。
编辑:我看到你刚刚添加了你的课程。 您所要做的就是添加do while循环 并以正确的方式实例化您的代理。 确切地说,你的问题在哪里?所以我们可以更好地帮助你。
我的第一种方法是,简单来说, 编写TicketAgent 类和TicketType 类。
以某种方式编写TicketAgent,可以将其命名为 代理和类型到构造函数。
TicketAgent agentSam = new TicketAgent("Sam", new ExpensiveTicket());
添加setter和getter 方法。
TicketType需要一个 float 价格,可能是一个 String 描述 或类似的东西。
完成此操作后,请返回主课程。 打开执行while循环并将循环参数设置为布尔值 用户中止的值,在开头是假的 如果用户键入quit命令,则更改。
在循环之前,使用故障单实例化代理。
显示名称和价格。显示门票。一起数。要求中止。
希望这会有所帮助。 对不起我的英语,这不是我的母语。
additional:
private boolean userWantsToQuit = false;
private List<TicketAgent> avaibleAgents = new ArrayList<TicketAgent>();
private List<TicketAgent> usedAgents= new ArrayList<TicketAgent>();
private List<TickeType> boughtTickets= new ArrayList<TicketType>();
main(...){
agents.add(new TicketAgent("Sam"));
agents.add(new TicketAgent("wise"));
agents.add(new TicketAgent("gamgee"));
do{
usedAgents.add(askUserForAgent()); //extra static method
boughtTickets.add(askUserForType(agent)); //extra static method
userWantsToQuit = askUserToQuit();//extra static method
}while(!userWantsToQuit);
displayAgentSummary(usedAgents);
displayTicketSummary(boughtTickets);
}
[...]
public static displayAgentSummary(List<TicketAgent> agents)
{
for(TicketAgent agent : agents)
{
System.out.println("Served by: " + agent.getName());
}
}
public static displayTicketSummary(List<TicketType> tickets)
{
float totalPrice = 0;
for(TicketType ticket : tickets)
{
totalPrice =+ ticket.getPrice();
System.out.println("You bought a " + ticket.getName() + " for " + ticket.getPrice()";
}
System.out.println("You bought tickets in total for " + totalPrice + " dollar".
}