Java中的打印是如何工作的

Java中的打印是如何工作的,java,Java,我第一次在大学里学Java。我正在努力打印工作。我无法打印,或者让程序打印任何东西。我认为问题出在显示方法上,但我自己却无法解决。因此,在下面所有的注释之后,我进行了更改,但是现在我发现它只打印每个方法中的标题,并且在我尝试向数组添加其他事件时,会出现以下错误 添加事件: TestEvent.java: 包JavaAssignment1; 导入java.util.Scanner; 导入程序。我的; 导入firstPrograms.MyDate; 导入firstPrograms.MyTime; 公

我第一次在大学里学Java。我正在努力打印工作。我无法打印,或者让程序打印任何东西。我认为问题出在显示方法上,但我自己却无法解决。因此,在下面所有的注释之后,我进行了更改,但是现在我发现它只打印每个方法中的标题,并且在我尝试向数组添加其他事件时,会出现以下错误

添加事件: TestEvent.java:
包JavaAssignment1;
导入java.util.Scanner;
导入程序。我的;
导入firstPrograms.MyDate;
导入firstPrograms.MyTime;
公共类测试事件
{
公共静态扫描仪密钥=新扫描仪(System.in);
公共静态void main(字符串[]args)
{
//int noOfEvents=25;
int选项=0;
事件[]allEvents=新事件[25];
做
{
选项=主菜单(选项);
开关(选件)
{
案例1:
添加事件(allEvents);
打破
案例2:
显示事件(allEvents);
打破
案例3:
//System.out.println(“\n在此输入搜索条件”);
做
{
选项=搜索菜单(选项);
开关(选件)
{
案例1:
//添加事件编号(allEvents);
System.out.println(“\n在此输入搜索条件”);
打破
案例2:
//displayEventsByEventDate(allEvents);
System.out.println(“\n在此输入搜索条件”);
打破
案例3:
//显示事件YeventCategory(allEvents);
System.out.println(“\n在此输入搜索条件”);
打破
案例4:
//显示收入(allEvents);
打破
//案例5:
//displayCategoryIncomes(allEvents);
//中断;
//案例6:
//System.out.println(“\nGoodbye”);
}
}while(选项!=4);
打破
案例4:
显示收入(allEvents);
打破
案例5:
displayCategoryIncomes(allEvents);
打破
案例6:
System.out.println(“\nGoodbye”);
}
}while(选项!=6);
}
public int createArray(事件[]allEvents)
{
allEvents[0]=新赛事(1000,“西汉姆联队诉阿森纳”,“英超”,新MyDate(2016年3月9日),新MyDate(2016年4月9日),新MyTime(12,45,00),“厄普顿公园”,3500,3498,65.00,0.025);
allEvents[1]=新赛事(1001,“桑德兰对阿森纳”,“英超”,新MyDate(2016年3月24日),新MyDate(2016年4月24日),新MyTime(14,05,00),“光明体育场”,500,500,75.00,0.05);
allEvents[2]=新赛事(1002,“阿森纳对水晶宫”,“英超”,新MyDate(2016年3月17日),新MyDate(2016年4月17日),新MyTime(2016年5月16日),“酋长球场”,10098125.00,0.025);
allEvents[3]=新赛事(1003,“阿森纳对西布罗姆维奇阿尔比翁”,“英超”,新MyDate(2016年3月21日),新MyDate(2016年4月21日),新MyTime(19,45,00),“酋长球场”,125,72,95.00,0.025);
allEvents[4]=新赛事(1004,“阿森纳对诺维奇城”,“英超”,新MyDate(2016年3月30日),新MyDate(2016年4月30日),新MyTime(17,30,00),“酋长球场”,1250,1137,110,0.025);
allEvents[5]=新赛事(1005,“曼城对阿森纳”,“英超”,新MyDate(2016年4月8日),新MyDate(2016年5月8日),新MyTime(2016年5月16日),“Etihad体育场”,5000,4796,75.00,0.05);
allEvents[6]=新赛事(1006,“阿森纳对阿斯顿维拉”,“英超”,新MyDate(2016年4月15日),新MyDate(2016年5月15日),新MyTime(19,30,00),“酋长球场”,1250872,16.00,0.025);
allEvents[7]=新赛事(1007,“MLS全明星队对阿森纳”,“友谊赛”,新MyDate(2016年1月28日),新MyDate(2016年7月28日),新MyTime(17,00,00),“Avaya体育场”,500,391,75.00,0.05);
allEvents[8]=新事件(1008,“瓜达拉哈拉芝华士诉阿森纳”,“友谊赛”,新MyDate(2016年1月31日),新MyDate(2016年7月31日),新MyTime(19,30,00),“StubHub中心”,1250872,16.00,0.025);
allEvents[9]=新赛事(1009,“西汉姆联队对曼联”,“杯赛”,新MyDate(2016年3月13日),新MyDate(2016年4月13日),新MyTime(19,00,00),“厄普顿公园”,750,615,85.00,0.075);
allEvents[10]=新赛事(1010,“埃弗顿诉TBC(西汉姆或曼联)”,“杯赛”,新的比赛日期(2016年4月14日),新的比赛日期(2016年4月23日),新的比赛时间(17,15,00),“温布利体育场”,10000,5000,150.00,0.015);
allEvents[11]=新活动(1011,“水晶宫诉沃特福德”、“杯赛”、新MyDate(2016年3月24日)、新MyDate(2016年4月24日)、新MyTime(16,00,00)、“温布利体育场”,10000,150.00,0.015);
allEvents[12]=新赛事(1012,“足总杯决赛-待定”,“足总杯”,新MyDate(2016年4月25日),新MyDate(2016年5月21日),新MyTime(15,00,00),“温布利体育场”,20000,0,150.00,0.015);
allEvents[13]=新赛事(1013,“欧洲冠军联赛决赛-待定”,“欧洲”,新MyDate(2016年5月5日),新MyDate(2016年5月28日),新MyTime(19,45,00),“Giuseppe Meazza体育场”,25000,0350.00,0.01);
allEvents[14]=新赛事(1014,“欧洲联盟欧联杯决赛-待定”,“欧洲”,新MyDate(2016年5月6日),新MyDate(2016年5月18日),新MyTime(19,45,00),“圣雅各布公园”,20000,0250.00,0.015);
返回16;
}
公共静态int主菜单(int选项)
{
int tempOption=0;
System.out.println(“事件菜单”);
System.out.println(“-------------------------------”;
System.out.println(“1-添加事件”);
系统
Exception in thread "main" java.lang.NullPointerException
at JavaAssignment1.TestEvent.addEvents(TestEvent.java:207)
at JavaAssignment1.TestEvent.main(TestEvent.java:28)
package JavaAssignment1;

import java.util.Scanner;

import firstPrograms.My;
import firstPrograms.MyDate;
import firstPrograms.MyTime;

public class TestEvent 
{
public static Scanner key = new Scanner(System.in);


public static void main(String[] args)
{
    //int noOfEvents = 25;
    int option = 0;

    Event [] allEvents = new Event [25];

    do
    {
        option = mainMenu(option);

        switch (option)
        {
            case 1:
                addEvents(allEvents);
            break;

            case 2:
                displayEvents(allEvents);
            break;

            case 3:
                //System.out.println("\nEnter Search criteria here");
                do
                {
                    option = searchMenu(option);

                    switch (option)
                    {
                        case 1:
                            //addEventsByEventNo(allEvents);
                            System.out.println("\nEnter Search criteria here");
                        break;

                        case 2:
                            //displayEventsByEventDate(allEvents);
                            System.out.println("\nEnter Search criteria here");
                        break;

                        case 3:
                            //displayEventsByEventCategory(allEvents);
                            System.out.println("\nEnter Search criteria here");
                        break;

                        case 4:
                            //displayIncomes(allEvents);
                        break;

                        //case 5:
                        //  displayCategoryIncomes(allEvents);

                        //break;

                        //case 6:
                            //System.out.println("\nGoodbye");
                    }

                }while (option != 4);
            break;

            case 4:
                displayIncomes(allEvents);
            break;

            case 5:
                displayCategoryIncomes(allEvents);

            break;

            case 6:
                System.out.println("\nGoodbye");
        }

    }while (option != 6);

}

public int createArray(Event [] allEvents)
{
    allEvents[0] = new Event (1000, "West Ham United v Arsenal", "Premiership", new MyDate (9, 03, 2016),  new MyDate (9, 04, 2016), new MyTime (12, 45, 00), "Upton Park", 3500, 3498, 65.00, 0.025);
    allEvents[1] = new Event (1001, "Sunderland v Arsenal", "Premiership", new MyDate (24, 03, 2016),  new MyDate (24, 04, 2016), new MyTime (14, 05, 00), "Stadium of Light", 500, 500, 75.00, 0.05);
    allEvents[2] = new Event (1002, "Arsenal v Crystal Palace", "Premiership", new MyDate (17, 03, 2016),  new MyDate (17, 04, 2016), new MyTime (16, 05, 00), "Emirates Stadium", 100, 98, 125.00, 0.025);
    allEvents[3] = new Event (1003,"Arsenal v West Bromwich Albion", "Premiership", new MyDate (21, 03, 2016),  new MyDate (21, 04, 2016), new MyTime (19, 45, 00), "Emirates Stadium", 125, 72, 95.00, 0.025);
    allEvents[4] = new Event (1004, "Arsenal v Norwich City", "Premiership", new MyDate (30, 03, 2016),  new MyDate (30, 04, 2016), new MyTime (17, 30, 00), "Emirates Stadium", 1250, 1137, 110, 0.025);
    allEvents[5] = new Event (1005, "Manchester City v Arsenal", "Premiership", new MyDate (8, 04, 2016),  new MyDate (8, 05, 2016), new MyTime (16, 05, 00), "Etihad Stadium", 5000, 4796, 75.00, 0.05);
    allEvents[6] = new Event (1006, "Arsenal v Aston Villa", "Premiership", new MyDate (15, 04, 2016),  new MyDate (15, 05, 2016), new MyTime (19, 30, 00), "Emirates Stadium", 1250, 872, 16.00, 0.025);
    allEvents[7] = new Event (1007, "MLS All-Stars v Arsenal", "Friendly", new MyDate (28, 01, 2016),  new MyDate (28, 07, 2016), new MyTime (17, 00, 00), "Avaya Stadium", 500, 391, 75.00, 0.05);
    allEvents[8] = new Event (1008, "Chivas de Guadalajara v Arsenal", "Friendly", new MyDate (31, 01, 2016),  new MyDate (31, 07, 2016), new MyTime (19, 30, 00), "StubHub Center", 1250, 872, 16.00, 0.025);
    allEvents[9] = new Event (1009, "West Ham United v Manchester United", "Cup", new MyDate (13, 03, 2016),  new MyDate (13, 04, 2016), new MyTime (19, 00, 00), "Upton Park", 750, 615, 85.00, 0.075);
    allEvents[10] = new Event (1010, "Everton v TBC (West Ham or Man United)", "Cup", new MyDate (14, 04, 2016),  new MyDate (23, 04, 2016), new MyTime (17, 15, 00), "Wembley Stadium", 10000, 5000, 150.00, 0.015);
    allEvents[11] = new Event (1011, "Crystal Palace v Watford", "Cup", new MyDate (24, 03, 2016),  new MyDate (24, 04, 2016), new MyTime (16, 00, 00), "Wembley Stadium", 10000, 10000, 150.00, 0.015);
    allEvents[12] = new Event (1012, "FA Cup Final - TBC", "Cup", new MyDate (25, 04, 2016),  new MyDate (21, 05, 2016), new MyTime (15, 00, 00), "Wembley Stadium", 20000, 0, 150.00, 0.015);
    allEvents[13] = new Event (1013, "UEFA Champions League Final - TBC", "Europe", new MyDate (5, 5, 2016),  new MyDate (28, 05, 2016), new MyTime (19, 45, 00), "Stadio Giuseppe Meazza", 25000, 0, 350.00, 0.01);
    allEvents[14] = new Event (1014, "UEFA Europa League Final - TBC", "Europe", new MyDate (6, 05, 2016),  new MyDate (18, 05, 2016), new MyTime (19, 45, 00), "St. Jakob-Park", 20000, 0, 250.00, 0.015);

    return 16;
}

public static int mainMenu(int option)
{
    int tempOption = 0;

    System.out.println("Event Menu");
    System.out.println("----------------------------");
    System.out.println("1 - Add Event");
    System.out.println("2 - Display All Events");
    System.out.println("3 - Search Events");
    System.out.println("4 - Display Incomes for Events");
    System.out.println("5 - Display Incomes by Category");
    System.out.println("6 - Exit");
    System.out.println("Enter Option (1 - 6): ");
    tempOption = key.nextInt();
    key.nextLine();

    return tempOption;
}

public static int searchMenu(int option)
{
    int tempOption = 0;

    System.out.println("Event Menu");
    System.out.println("----------------------------");
    System.out.println("1 - Search By Event No");
    System.out.println("2 - Search By Date");
    System.out.println("3 - Search By Category");
    //System.out.println("4 - Display Incomes for Events");
    //System.out.println("5 - Display Incomes by Category");
    System.out.println("4 - Previous Menu");
    System.out.println("Enter Option (1 - 4): ");
    tempOption = key.nextInt();
    key.nextLine();

    return tempOption;
}

public int option(int min, int max)
{
    int input;
    boolean valid;


    do
    { 
        valid = false;
        input = key.nextInt();

        if (input < min || input > max)
        {            
            System.out.printf("\n\n%s%d%s%d%s", "Invalid input! Please re-enter a value between ", min, " and ", max, ":  ");   
        }
        else
        {
            valid = true;
            //System.out.printf("\n\n%s%d%s%d%s%d", "Number entered ", input, " is between ", min, " & ", max); 
        }

    } while (!valid);

    return input;
}

private static void displayEvents(Event [] allEvents)
{
    System.out.println("\nEvents:");

    for (int i = 0; i < allEvents.length; i++)
    {
        if(allEvents[i] != null)
        System.out.printf("\n\n\t" + allEvents.toString());
    }


}

private static void addEvents (Event[] allEvents)
{
    System.out.println("\nAdd Events:");

    int day = 0, month = 0, year = 0;
    MyDate tempSaleDate;
    MyDate tempEventDate;
    int hour = 0, mins = 0, secs = 0;
    MyTime tempTime;
    boolean answer = false;
    String keyedAnswer = "";



    for (int i = 0; i < allEvents.length; i++)
    {   
        Event[] newEvent = null;

        newEvent[i] = new Event();

        allEvents[i].setEventNo((allEvents[allEvents.length - 1]).getEventNo() + 1);

        System.out.println("\n\tPlease enter event name for event: ");
        allEvents[i].setEventName(key.nextLine());
        System.out.println("\tPlease enter the event's category: ");
        allEvents[i].setCategory(key.nextLine());
        System.out.println("\tPlease enter event location: ");
        allEvents[i].setVenue(key.nextLine());
        System.out.println("\tPlease enter the event's tickets date of sale (ie 1 - 31): ");
        day = key.nextInt();
        System.out.println("\tPlease enter the event's tickets month of sale (ie 1 - 12): ");
        month = key.nextInt();
        System.out.println("\tPlease enter the event's tickets year of sale (ie 2016): ");
        year = key.nextInt();
        tempSaleDate =  new MyDate(day, month, year);
        allEvents[i].setDateOnSale(tempSaleDate);
        key.nextLine();
        System.out.println("\tPlease enter the event's date of event (ie 1 - 31): ");
        day = key.nextInt();
        System.out.println("\tPlease enter the event's month of event (ie 1 - 12): ");
        month = key.nextInt();
        System.out.println("\tPlease enter the event's year of event (ie 2016): ");
        year = key.nextInt();
        tempEventDate = new MyDate(day, month, year);
        allEvents[i].setEventDate(tempEventDate);
        key.nextLine();
        System.out.println("\tPlease enter the event's start hour (ie 1am = 1, 10am = 10, 10pm = 22, etc): ");
        hour = key.nextInt(); 
        key.nextLine();
        System.out.println("\tPlease enter the event's  start minutes (ie = 00, 15, 30, 45, etc): ");
        mins = key.nextInt();
        key.nextLine();
        tempTime = new MyTime(hour, mins, secs);
        allEvents[i].setEventTime(tempTime);
        System.out.println("\tPlease enter the event's ticket allocation: ");
        allEvents[i].setTicketsReceived(key.nextInt());
        key.nextLine();
        System.out.println("\tPlease enter the amount of tickets sold for the event: ");                    
        allEvents[i].setTicketsSold(key.nextInt());
        key.nextLine();
        System.out.println("\tPlease enter the event's ticket cost: £");
        allEvents[i].setTicketCost(key.nextDouble());
        key.nextLine();
        System.out.println("\tPlease enter the event's ticket commission rate: ");
        allEvents[i].setCommissionRate(key.nextDouble());
        key.nextLine();
        System.out.println("\n\t\tWould you like to add another event (Y / N): ");
        keyedAnswer = key.nextLine();
        //System.out.println("\n\tKeyed Answer = " + keyedAnswer);

        if (answer = keyedAnswer.equalsIgnoreCase("N"))
        {
            answer = false;
            break;
        }
        else
        {
            answer = true;
        }
    }
}

public static void displayIncomes(Event[] allEvents)
{   
    System.out.println("\n\nIncome per event");
    System.out.println("\n\n\tEvent No" + "\t\tEvent" + "\t\t\t\tActual Income" + "\t\t\t\tPotential Income");

    for (int i = 0; i < allEvents.length; i++)
    {
        if(allEvents[i] != null)
        System.out.println("\n\n\t" + allEvents[i].getEventNo() + "\t\t" + allEvents[i].getEventName() + "\t\t\t£" + allEvents[i].getActualIncome() + "\t\t\t£" + allEvents[i].getPotentialIncome());
    }   
}

public static void displayCategoryIncomes(Event[] allEvents)
{
    double tempActualIncome = 0.00, totalTemp = 0.00;
    double percentageAchieved = 0.00;
    String tempCategory;

    System.out.println("\n\nIncome Per Category:");
    System.out.println("\n\n\tCategory" + "\t\t\t\tActual Income" + "\t\t\tPecentage of Income Achieved");

    for (int i = 0; i < allEvents.length; i++)
    {
        //if(allEvents[i] != null)
        //{
            //if (allEvents[i].getCategory() == "Premiership")
            //if ("Premiership".equals(allEvents[i].getCategory()))
            if (allEvents[i] != null && "Premiership".equals(allEvents[i].getCategory()))
            {
                //double tempActualIncome = 0.00;
                //double percentageAchieved = 0.00;
                //String tempCategory;

                tempActualIncome = allEvents[i].getActualIncome();
                totalTemp += tempActualIncome;
                percentageAchieved = (tempActualIncome / allEvents[i].getPotentialIncome()) * 100;
                tempCategory = "Premiership";

                System.out.printf("%s%s%s%.2f%s%.2f", "\n\t", tempCategory, "\t\t\t\t£", totalTemp, "\t\t\t\t", percentageAchieved);
            }
            //else if (allEvents [i].getCategory() == "Friendly")
            else if ("Friendly".equals(allEvents[i].getCategory()))
            {
                //double tempActualIncome = 0.00;
                //double percentageAchieved = 0.00;
                //String tempCategory;

                tempActualIncome += allEvents[i].getActualIncome();
                percentageAchieved = (tempActualIncome / allEvents[i].getPotentialIncome()) * 100;
                tempCategory = "Friendly";

                //System.out.println("\n\n\t" + tempCategory + "\t\t\t£" + tempActualIncome);
                System.out.printf("%s%s%s%.2f%s%.2f", "\n\t", tempCategory, "\t\t\t\t£", tempActualIncome, "\t\t\t\t", percentageAchieved);
            }

            //else if (allEvents [i].getCategory() == "Cup")
            else if ("Cup".equals(allEvents[i].getCategory()))
            {
                //double tempActualIncome = 0.00;
                //double percentageAchieved = 0.00;
                //String tempCategory;

                tempActualIncome += allEvents[i].getActualIncome();
                percentageAchieved = (tempActualIncome / allEvents[i].getPotentialIncome()) * 100;
                tempCategory = "Cup";

                System.out.println("\n\n\t" + tempCategory + "\t\t\t£" + tempActualIncome);
            }

            //else if (allEvents [i].getCategory() == "Europe")
            else if ("Europe".equals(allEvents[i].getCategory()))
            {
                //double tempActualIncome = 0.00;
                //double percentageAchieved = 0.00;
                //String tempCategory;

                tempActualIncome += allEvents[i].getActualIncome();
                percentageAchieved = (tempActualIncome / allEvents[i].getPotentialIncome()) * 100;
                tempCategory = "Europe";

                System.out.println("\n\n\t" + tempCategory + "\t\t\t£" + tempActualIncome);
            }

    }
    //}
    //for (int i = 0; i < allEvents.length; i++)
    //{
        //System.out.println("\n\n\t" + allEvents[i].getCategory()+ "\t\t\t£" + allEvents[i].getActualIncome() + "\t\t\t£" + allEvents[i].getPotentialIncome());

    //}
}



}
allEvents[i].getCategory() == "Premiership"
"Premiership".equals(allEvents[i].getCategory())
public static final String PERMSHIP = "Premiership";
Event [] allEvents = new Event [noOfEvents];
public static int createArray(Event [] allEvents){
   allEvents[0] = new Event (1000, "West Ham United v Arsenal", "Premiership", new MyDate (9, 03, 2016),  new MyDate (9, 04, 2016), new MyTime (12, 45, 00), "Upton Park", 3500, 3498, 65.00, 0.025);
...
My.p(String value)
System.out.print(String valueToPrint)
System.out.println(String valueToPrint)
public static int mainMenu(int option)
{
    int tempOption = 0;

    My.p("\n\nEvent Menu");
    My.p("\n----------------------------");
    My.p("\n1 - Add Event");
    My.p("\n2 - Display All Events");
    My.p("\n3 - Search Events");
    My.p("\n4 - Display Incomes for Events");
    My.p("\n5 - Display Incomes by Category");
    My.p("\n6 - Exit");
    My.p("\nEnter Option (1 - 6): ");
    tempOption = key.nextInt();
    key.nextLine();

    return tempOption;
}
 for (int i = 0; i < allEvents.length(); i++)
    {
        //if(allEvents[i] != null)
        System.out.printf("\n\n\t" + allEvents.toString());
    }
System.out.printf("\n\n\t%s", allEvents.toString());