2014-11-08 76 views
0

我正在使用BlueJ作爲參考。在Java中運行程序時,輸出不能完全顯示

該程序編譯並運行良好。

問題是輸出不輸出整個事情。

下面是電流輸出:

H Sanders,HarlandDavid   277651 8.72 false 
S Baron,James 368535 310236.0 
S Moran,Blake 123456 260000.0 
H Bob,Billy 654321 15.0 false 
H Smith,Will 345612 10.5 true 30 
6) Remove a worker who is NOT in the list 
The Employee is not Found 

7) Remove a worker who is the first in the list 
H MacDonald,Ronald 386218 7.8 true 40 
H Walton,Samuel 268517 8.21 false 
H Thomas,David 131313 9.45 true 38 
H Sanders,HarlandDavid   277651 8.72 false 
S Baron,James 368535 310236.0 
S Moran,Blake 123456 260000.0 
H Bob,Billy 654321 15.0 false 
H Smith,Will 345612 10.5 true 30 

8) Find a worker who is the middle of the list 
Found at 4 

9) Find a worker who is NOT in the list 
Found at -1 

10) Find the weekly salary of a worker who is salaried 
5000.0 

11) Find the weekly salary of an hourly worker who has no overtime allowed [50 hours] 
750.0 

12) Find the weekly salary of an hourly worker who has overtime allowed [50 hours] 
630.0 

13) Find the weekly salary of an hourly worker who has overtime allowed [20 hours] 
210.0 

14) Print the sorted list 
H MacDonald,Ronald 386218 7.8 true 40 
H Walton,Samuel 268517 8.21 false 
H Thomas,David 131313 9.45 true 38 
H Sanders,HarlandDavid   277651 8.72 false 
S Baron,James 368535 310236.0 
S Moran,Blake 123456 260000.0 
H Bob,Billy 654321 15.0 false 
H Smith,Will 345612 10.5 true 30 

15) End the process 

由於我的主類WorkerApp顯示,輸出有大約三分之一更給它。相反,輸出在5)的中間開始,並顯示其餘部分,而不輸出5)之前的內容。

import java.io.*; 
import java.util.*; 
public class WorkerApp{ 
/** 
* Reads the infile, runs tests, and prints the output. 
*/ 
public static void main (String args[]){ 
    Company company = new Company(); 
    try{ 
     Scanner reader = new Scanner (new File("EmployeeData.txt")); 
     while(reader.hasNext()){ 
      String line = reader.nextLine(); 
      String Employee[] = line.split("\\s+"); 
      String sorh = Employee[0]; 
      String name = Employee[1]; 
      String id = Employee[2]; 
      double salary = Double.parseDouble(Employee[3]); 
      Employee e; 
      if (Employee[0].equals("S")){ 
       e = new SalariedWorker(sorh, name, id, salary);} 
      else { 
       boolean overtime = Boolean.parseBoolean(Employee[4]); 
       if(overtime){ 
        int maxHours = Integer.parseInt(Employee[5]); 
        e = new HourlyWorker(sorh, name, id, salary, maxHours); 
       } 
       else{ 
        e = new HourlyWorker(sorh, name, id, salary); 
       } 
      } 
      company.add(e); 
     } 
    }catch (Exception err){ 
     //System.out.println(err); 
     err.printStackTrace(); 
    } 

    //Test Number 1 
    System.out.println("1) Add a salaried worker"); 
    SalariedWorker SWorker1 = new SalariedWorker("S", "Moran,Blake", "123456", 260000); 
    company.add(SWorker1); 
    company.print(); 

    //Test Number 2 
    System.out.println("2) Add an hourly worker who has no overtime allowed"); 
    HourlyWorker HWorker1 = new HourlyWorker("H", "Bob,Billy", "654321", 15); 
    company.add(HWorker1); 
    company.print(); 

    //Test Number 3 
    System.out.println("3) Add an hourly worker who has overtime allowed"); 
    HourlyWorker HWorker2 = new HourlyWorker("H", "Smith,Will", "345612", 10.5, 30); 
    company.add(HWorker2); 
    company.print(); 

    //Test Number 4 
    System.out.println("4) Add a worker that is already in the database"); 
    try{ 
     company.add(SWorker1); 
    }catch(Exception err){ 
     System.out.println(err); 
     System.out.println(); 
    } 

    //Test Number 5 
    System.out.println("5) Print the sorted list"); 
    company.print(); 

    //Test Number 6 
    System.out.println("6) Remove a worker who is NOT in the list"); 
    company.remove("Brooks,Phil"); 
    System.out.println(); 

    //Test Number 7 
    System.out.println("7) Remove a worker who is the first in the list "); 
    company.remove("Washington,George"); 
    company.print(); 
    System.out.println(); 

    //Test Number 8 
    System.out.println("8) Find a worker who is the middle of the list"); 
    int index = company.find("Baron,James"); 
    System.out.println("Found at "+ index); 
    System.out.println(); 

    //Test Number 9 
    System.out.println("9) Find a worker who is NOT in the list"); 
    index = company.find("Harrison,Ford"); 
    System.out.println("Found at "+ index); 
    System.out.println(); 

    //Test Number 10 
    System.out.println("10) Find the weekly salary of a worker who is salaried"); 
    System.out.println(SWorker1.FindSalary()); 
    System.out.println(); 

    //Test Number 11 
    System.out.println("11) Find the weekly salary of an hourly worker who has no overtime allowed [50 hours]"); 
    System.out.println(HWorker1.FindSalary(50)); 
    System.out.println(); 

    //Test Number 12 
    System.out.println("12) Find the weekly salary of an hourly worker who has overtime allowed [50 hours]"); 
    System.out.println(HWorker2.FindSalary(50)); 
    System.out.println(); 

    //Test Number 13 
    System.out.println("13) Find the weekly salary of an hourly worker who has overtime allowed [20 hours]"); 
    System.out.println(HWorker2.FindSalary(20)); 
    System.out.println(); 

    //Test Number 14 
    System.out.println("14) Print the sorted list"); 
    company.print(); 

    //Test Number 15 
    System.out.println("\n15) End the process"); 
} 
} 

如果有幫助,這是文本文件,其內容如下:

S  Washington,George  000001  125000 
H MacDonald,Ronald  386218  7.80 true 40 
H  Walton,Samuel   268517 8.21 false 
H Thomas,David   131313 9.45 true 38 
H Sanders,HarlandDavid 277651 8.72 false 
S Baron,James   368535 310236 

這是主要類別之一,Company

import java.io.*; 
import java.util.*; 
public class Company{ 
private Employee[] employeeArray; 
private final int InitialCapacity = 7; 
private int employCount; 

/** 
* Creates the employee array and sets employCount to 0. 
*/ 
public Company(){ 
    employeeArray = new Employee[InitialCapacity]; 
    employCount = 0; 
} 

/** 
* Finds an employee in the list. 
*/ 
public int find(String name){ 
    for (int i = 0; i < employCount; i++){ 
     if (employeeArray[i].getName().equals(name)){ 
      return i; 
     } 
    } 

    return -1; 
} 

/** 
* Adds an employee to the list. 
*/ 
public int add(Employee employ){ 
    int index; 
    for (index = 0; index < employCount; index++){ 
     int result = employeeArray[index].getName().compareTo(employ.getName()); 
     if(result == 0){ 
      throw new RuntimeException ("The Employee Is Not New"); 
     } 
    } 

    if (employeeArray.length == employCount){ 
     expand(); 
    } 

    employeeArray[index] = employ; 
    employCount++; 
    return index; 
} 

/** 
* Removes an employee to the list. 
*/ 
public void remove(String name){ 
    int index = find(name); 
    if (index == -1){ 
     System.out.println("The Employee is not Found"); 
     return; 
    } 

    for (int i = index; i < employCount - 1; i++){ 
     employeeArray[i] = employeeArray[i + 1]; 
    } 

    employCount--; 
} 

/** 
* Prints the list. 
*/ 
public void print(){ 
    if(employCount == 0){ 
     System.out.println("The List is Empty"); 
     return; 
    } 

    for(int i = 0; i < employCount; i++){ 
     System.out.println(employeeArray[i]); 
    } 
} 

/** 
* Expands the list. 
*/ 
private void expand(){ 
    Employee[] newArray = new Employee[employeeArray.length + InitialCapacity]; 
    for (int i = 0; i < employeeArray.length; i++){ 
     newArray[i] = employeeArray[i]; 
    } 

    employeeArray = newArray; 
} 
} 

預先感謝您!

回答

2

好像你必須在BlueJ的as shown here.

延長輸出線號「在BlueJ的終端窗口轉到Options並打開Unlimited Buffering,這將解決你的問題。你也可以在打開清除屏幕方法調用使每個程序都在清晰的屏幕上運行。「 - Extreme Coders

+0

不知道,謝謝! – BBladem83 2014-11-08 17:49:24