I am only showing the spaceport and fileIO. I want the first line of my txt file to show the number of spaceship to create an array then choose what type of spaceship. I did the best i can and now i am completly stuck its not working. Can Someone please help. The Instruction are:
The relationSpaceShips between the classes in this project is as follows:
(1) SpacePort has-many SpaceShip
(2) SpaceShip has-a Captain
(3) SpaceShip has-a Engine
(4) SpaceShip has-a RegistrationDate
(5) Impulse is-a Engine
(6) Warp is-a Engine
(7) SpaceShip has-many Crewman
(6) Person has-a pid (int)
(9) Person has-a DateOfBirth
(10) Captain is-a Officer
(11) Officer is-a Person
(12) DateOfBirth is-a StarDate
(13) RegistrationDate is-a StarDate
(14) StarDate has-a day (int)
(15) StarDate has-a month (int)
(16) StarDate has-a year (int)
(17) Enterprise is-a SpaceShip
(18) WarBird is-a SpaceShip
(19) RedShirt is-a Crewman
(20) Crewman is-a Person
NOTE:every object has:
private String objName, and
public String getName() {return objName;}
Create a test program that creates an SpacePort object, and prompts for
the user to enter the path of a data file. The program then reads the data from the data
file for the SpacePort.
Then, print:
1. all SpaceShip objects belonging to the SpacePort, sorted by getName(), and
2. all Person objects belonging to the SpacePort, sorted by getName()
Test your program by creating a data file and filling it in
with the data that answers the questions. Include the
data file and run.bat in the project folder.
package space_shipPKG;
import fileIOPKG.*;
import jdUtil.*;
public class SpacePort {
private SpaceShip[] ship;
private int num_ships;
public SpacePort(){
readFromFile();
}
public void readFromFile(){
try {
String s = Utils.getSystemIn("Please enter the name of the file you would like. The file name is Assign02:");
FileIO fio=new FileIO(s);
while(fio.hasNextLine())
{
if(fio.hasNextInt()==false){
throw new Exception("Dealer.readFromFile:missing numships");
}
int num_ships = fio.getNextInt();
ship = new SpaceShip[num_ships];
for(int i=0;i<ship.length;i++){
if(fio.getNextLine()==null){
throw new Exception("Dealer.readFromFile:missing numships");
}
String cartype=fio.getNextLine();
if(cartype.equals("Enterprise")){
ship[i]= new Enterprise();
}else{
ship[i]= new WarBird();
}
ship[i].readFromFile();
}//for each car in carrArray
}//readFromFile
} catch (Exception e) {
System.out.println("\nin MainClass e=\n"+e.toString());
e.printStackTrace();
}
}
private String objName;
public String getName()
{
return objName;
}
public String toString(){
String test="??????";
return test;
}
}
package fileIOPKG;
import java.util.*;
import java.io.*;
public class FileIO {
//this class acts as a static "producer" class that,after being
//initialized with a filename,
private FileReader freader;
private Scanner scan=null;
public FileIO(){
freader=null;
scan=null;
}//default constructor
public FileIO(String filename) throws FileNotFoundException{
File infile;
FileReader reader;
infile = new File(filename);
reader = new FileReader(infile);
scan = new Scanner(reader);
}//(String) constructor
public boolean hasNextInt() throws Exception{
if(scan==null){
throw new Exception("FileIO.getNextInt:file not opened");
}else{
return scan.hasNextInt();
}
}//hasNextInt
public int getNextInt() throws Exception{
if(scan==null){
throw new Exception("FileIO.getNextInt:file not opened");
}else{
int iv=scan.nextInt();
System.out.println("FileIO.getNextInt:"+iv);
return iv;
}
}//getNextInt
public boolean hasNextLine() throws Exception{
if(scan==null){
throw new Exception("FileIO.getNextInt:file not opened");
}else{
return scan.hasNextLine();
}
}//hasNextLine
public String getNextLine() throws Exception{
if(scan==null){
throw new Exception("FileIO.getNextInt:file not opened");
}else{
String result=scan.nextLine().trim();
System.out.println("FileIO.getNextLine:"+result);
return result;
}
}//getNextLine
public boolean hasNextDouble() throws Exception{
if(scan==null){
throw new Exception("FileIO.getNextInt:file not opened");
}else{
return scan.hasNextDouble();
}
}//hasNextDouble
public double getNextDouble() throws Exception{
if(scan==null){
throw new Exception("FileIO.getNextInt:file not opened");
}else{
double dv=scan.nextDouble();
System.out.println("FileIO.getNextDouble:"+dv);
return dv;
}
}//getNextDouble
public void close(){
try {
freader.close();
} catch (IOException e) {
//ignore
}
}//close
}//class FileIO