Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
Homework 4
Enrique Carbajal Jr
Points: 80 points possible
Part 1: 10 points Test the time
Part 2: 10 points Complex Number
Part 3: 10 points Payroll System Test
Part 4: 10 points Student hierarchy 
Part 5: 20 points Payroll Modification for $100 bonus
Part 6: 20 points ShapesTest 
Part 1: Test2.java
// Lab 1: Time2.java
// Time2 class definition with methods tick, 
// incrementMinute and incrementHour.
// Enrique Carbajal 
public class Time2
{
   private int hour; // 0 - 23
   private int minute; // 0 - 59
   private int second; // 0 - 59
   // Time2 no-argument constructor: initializes each instance variable 
   // to zero; ensures that Time2 objects start in a consistent state
   public Time2()
   {
      this( 0, 0, 0 ); // invoke Time2 constructor with three arguments
   } // end Time2 no-argument constructor
   // Time2 constructor: hour supplied, minute and second defaulted to 0
   public Time2( int h ) 
   { 
      this( h, 0, 0 ); // invoke Time2 constructor with three arguments
   } // end Time2 one-argument constructor
   // Time2 constructor: hour and minute supplied, second defaulted to 0
   public Time2( int h, int m ) 
   { 
      this( h, m, 0 ); // invoke Time2 constructor with three arguments
   } // end Time2 two-argument constructor 
   
   
   // Time2 constructor: hour, minute and second supplied
   public Time2( int h, int m, int s ) 
   { 
      setTime( h, m, s ); // invoke setTime to validate time
   } // end Time2 three-argument constructor 
   
   
   // Time2 constructor: another Time2 object supplied
   public Time2( Time2 time )
   {
      // invoke Time2 constructor with three arguments
      this( time.getHour(), time.getMinute(), time.getSecond() );
   } // end Time2 constructor with Time2 argument
   
   
   // Set a new time value using universal time. Perform 
   // validity checks on data. Set invalid values to zero.
     public void setTime( int h, int m, int s)
     {
     if(   (h >0 && h < 24) && ( m > 0 && m < 60) && (s > 0 && s <60)  )
     {
      hour = h;
      minute = m;
      second = s;
     }
     else 
     {
     hour = 0;
     minute = 0;
     second = 0;
    
     }
     
     }// End setTime Method
     
     
   {
      
   /* Write code here that declares three boolean variables which are 
         initialized to the return values of setHour, setMinute and setSecond.
         These lines of code should also set the three member variables. */
   
      /* Return true if all three variables are true; otherwise, return false. */
   boolean hourBool ;
   boolean minuteBool;
   boolean secondBool;
   
   
   
   
   }
   // validate and set hour
     public void setHour( int newhour)
   {
    
     if (newhour > 0 & newhour <23)
     {
     hour =  newhour;
     }
     else 
     {
     System.out.println("Hour cannot be set");
     
     }
     
   }
   // validate and set minute
   public void setMinute( int newminute)
   {
      /* Write code here that determines whether the minute is valid.
         If so, set the minute and return true. */
   if ( newminute > 0 & newminute <60)
   {
   minute = newminute;
   }
   else
   System.out.println("The ninutes are not correct");
   }//End set minute method
   public void setSecond(int newsecond)
   {
    
   if (newsecond > 0 && newsecond <60)
   {
   second = newsecond;
   }
   else 
   System.out.println("Please enter a correct seconds");
   }
   // Get Methods
   // get hour value
   public int getHour() 
   { 
      return hour; 
   } // end method getHour
   // get minute value
   public int getMinute() 
   { 
      return minute; 
   } // end method getMinute
   // get second value
   public int getSecond() 
   { 
      return second; 
   } // end method getSecond
   // Tick the time by one second
   public void tick()
   {
      setSecond( second + 1 );
      if ( second == 0 )
         incrementMinute();
   } // end method tick
   // Increment the minute
   public void incrementMinute()
   {
      setMinute( minute + 1 );
      if ( minute == 0 )
         incrementHour();
   } // end method incrementMinute
   // Increment the hour
   public void incrementHour()
   {
      setHour( hour + 1 );
   } // end method incrementHour
   
   // convert to String in universal-time format (HH:MM:SS)
   public String toUniversalString()
   {
      return String.format( 
         "%02d:%02d:%02d", getHour(), getMinute(), getSecond() );
   } // end method toUniversalString
   // convert to String in standard-time format (H:MM:SS AM or PM)
   public String toString()
   {
      return String.format( "%d:%02d:%02d %s", 
         ( ( getHour() == 0 || getHour() == 12 ) ? 12 : getHour() % 12 ),
         getMinute(), getSecond(), ( getHour() < 12 ? "AM" : "PM" ) );
   } // end method toStandardString
} // end class Time2
I completed writing the methods for all the Time2.java class. 
I also completed writing the methods for the Time2Test.java
Part 1 Time2Test.java
// Lab 1: Time2Test.java
// Program adds validation to Fig. 8.7 example
import java.util.Scanner;
public class Time2Test
{
   public static void main( String args[] )
   {
      Scanner input = new Scanner( System.in );
      
      Time2 time = new Time2(); // the Time2 object
      int choice = getMenuChoice();
      
      while ( choice != 5 )
      {
         switch ( choice )
         {
            case 1: // set hour
               System.out.print( "Enter Hours: " );
               int hours = input.nextInt();
               time.setHour(hours);         
               break;             
               
               
            case 2: // set minute
               System.out.print( "Enter Minutes: " );
               int minutes = input.nextInt();
               time.setMinute(minutes);
               break;
               
               
            case 3: // set seconds
               System.out.print( "Enter Seconds: " );
               int seconds = input.nextInt();
               time.setSecond(seconds);
               break; 
               
               
            case 4: // add 1 second
               time.tick();               
               break;               
         } // end switch
         
         System.out.printf( "Hour: %d  Minute: %d  Second: %d\n",
            time.getHour(), time.getMinute(), time.getSecond() );
         System.out.printf( "Universal time: %s   Standard time: %s\n",
            time.toUniversalString(), time.toString() );
         choice = getMenuChoice();
      } // end while      
   } // end main
   // prints a menu and returns a value corresponding to the menu choice
   private static int getMenuChoice()
   {
      Scanner input = new Scanner( System.in );
      
      System.out.println( "1. Set Hour" );
      System.out.println( "2. Set Minute" );
      System.out.println( "3. Set Second" );
      System.out.println( "4. Add 1 second" );
      System.out.println( "5. Exit" );
      System.out.print( "Choice: " );
      
      return input.nextInt();
   } // end method getMenuChoice
} // end class Time2Test
Here is the program running with the user entering information that does not fit into 
the program and the program telling the user that the hour cannot be set. I gave 
myself ten points for being able to complete the entire program and have it run 
correctly. 
Part 2: Complex.java
// Lab 3: Complex.java
// Definition of class Complex
public class Complex
{
   private double real;
   private double imaginary;
   // Initialize both parts to 0
   public Complex()
   { 
   real = 0;
   imaginary = 0;
   } // end Complex no-argument constructor
   
   // Initialize real part to r and imaginary part to i
   public Complex( double realPart , double imaginaryPart)
   {
   
   real = realPart;
   imaginary = imaginaryPart;
   
   }// End of two argument constructor 
   // Add two Complex numbers
   public Complex add( Complex right )
   {  
  Complex temp = new Complex( this.real, this.imaginary);
  
  temp.real = this.real + right.real;
  temp.imaginary = this.imaginary + right.imaginary;
  
   return temp;
   }
   // Subtract two Complex numbers
   public Complex subtract( Complex right )
   {
   Complex temp = new Complex( this.real, this.imaginary);
   
   temp.real = temp.real - right.real;
   
   temp.imaginary = temp.imaginary - right.imaginary;
   return temp;
   }
   // Return String representation of a Complex number
   public String toString() 
   { 
      return String.format( "(%.1f, %.1f)", real, imaginary );
   
   } // end method toComplexString;
} // end class Complex
//Use this pointers so that you can get the values of the object which you are trying 
to 
//add and subtract to. This is the point of this exercise.
Here is the program running. 
I gave myself ten points out of ten for being able to write this 
entire program and having it run correctly. 
Part 3: Payroll System Test
Part A: The code for the pieceworker
// Lab Exercise 1: PieceWorker.java
// PieceWorker class extends Employee.
public class PieceWorker extends Employee 
{
  
   private double wage;
   private double pieces;
   
   
   // five-argument constructor
   public PieceWorker( String first, String last, String ssn, 
      double wagePerPiece, double piecesProduced )
   {
   super( first, last, ssn); // Sends to superclass constructor
   setWage( wagePerPiece); // Sets wage per piece
   setPieces( piecesProduced);
 
   } // end five-argument PieceWorker constructor
  
   public void setWage(double wagedWork)
   {
   wage = wagedWork;
   }// Sets the workers wage
   
   public double getWage()
   {
   return wage;
   }   // return wage
   
   // set pieces produced
   public void setPieces( double piecesMade)
   {
   pieces = piecesMade;
   }// Set the amount of pieces produced
  
   public double getPieces()
   {
   return pieces;
   }// Return pieces made
  
   // calculate earnings; override abstract method earnings in Employee
   public double earnings()
   {
   return getWage() * getPieces();
      
   } // end method earnings
   // return String representation of PieceWorker object
   public String toString()
   {
      return String.format( "%s: %s\n%s: $%,.2f\n%s: %.2f", 
             "Piecework Employee", super.toString(),"Wage is", getWage(), 
             "Number of pieces", getPieces(), earnings() );
      //Conversion character f will print at least one number to the right of the 
decimal
      //Make sure the formating is the exact way you want it
      //The spaces in the formatting will effect the way it prints out
  
   } // end method toString
} // end class PieceWorker
Part B: PayrollSystemTest.java 
Here is the code that test the pieceworker class along with all the other classes
// Lab Exercise 1: PayrollSystemTest.java
// Employee hierarchy test program.
public class PayrollSystemTest 
{
   public static void main( String args[] ) 
   {
      // create five-element Employee array
      Employee employees[] = new Employee[ 5 ]; 
      // initialize array with Employees
      employees[ 0 ] = new SalariedEmployee( 
         "John", "Smith", "111-11-1111", 800.00 );
      employees[ 1 ] = new HourlyEmployee( 
         "Karen", "Price", "222-22-2222", 16.75, 40 );
      employees[ 2 ] = new CommissionEmployee( 
         "Sue", "Jones", "333-33-3333", 10000, .06 ); 
      employees[ 3 ] = new BasePlusCommissionEmployee( 
         "Bob", "Lewis", "444-44-4444", 5000, .04, 300 );
      /* create a PieceWoker object and assign it to employees[ 4 ] */
      employees[ 4 ] = new PieceWorker( "Enrique" , "Carbajal Jr", "555-55-5555", 
99.99, 237);
      System.out.println( "Employees processed polymorphically:\n" );
      
      // generically process each element in array employees
      for ( Employee currentEmployee : employees ) 
      {
         System.out.println( currentEmployee ); // invokes toString
         System.out.printf( 
            "earned $%,.2f\n\n", currentEmployee.earnings() );
      } // end for
   } // end main
} // end class PayrollSystemTest
Here is the output of the program PayrollSystemTest
I completed all parts of this section and have a working program. I gave myself ten 
points. 
Part 4: Student Hierarchy
Student
Freshman Sophomore Junior Senior
Undergraduate Graduate
Masters  
Doctoral
The relationship that exists between these classes is an is-a relationship. For example, 
Doctoral student is a student. The doctoral student would inherit all the properties of 
Master’s student and of Undergraduate student along with all the properties of Student. 
In addition, for example, you could take a sophomore and follow up the hierarchy. A 
sophomore is an undergraduate which is a student. Inheritance makes it easy for someone 
to extend an idea further. This saves a lot of time coding and a lot of time developing new 
methods for things that are already created. The take away from this exercise is that 
programmers don’t need to reinvent the wheel every time they are programming a new 
software package. 
Part 5: Payroll System Mod. 
package Part5;
import java.util.Scanner;
// Lab Exercise 1: PayrollSystemTest.java
// Employee hierarchy test program.
public class PayrollSystemTest 
{
   public static void main( String args[] ) 
   {
   Scanner input =  new Scanner( System.in);
   System.out.println("Please enter today's date"); 
   Date today = new Date( input.nextInt(), input.nextInt(), input.nextInt()); 
   
   System.out.printf("Today's date is %s" , today);
   System.out.println();
  
  
   
      // create five-element Employee array
      Employee employees[] = new Employee[ 5 ]; 
      // initialize array with Employees
      employees[ 0 ] = new SalariedEmployee( 
         "John", "Smith", "111-11-1111", new Date (12, 4, 1944), 800.00);
      employees[ 1 ] = new HourlyEmployee( 
         "Karen", "Price", "222-22-2222", new Date ( 11, 11, 1911),   16.75, 40 );
      employees[ 2 ] = new CommissionEmployee( 
         "Sue", "Jones", "333-33-3333", new Date ( 03, 14, 1986), 10000, .06 ); 
      employees[ 3 ] = new BasePlusCommissionEmployee( 
         "Bob", "Lewis", "444-44-4444", new Date(01, 22, 1985 ), 5000, .04, 300 );
      /* create a PieceWoker object and assign it to employees[ 4 ] */
      employees[ 4 ] = new PieceWorker( "Enrique" , "Carbajal Jr", "555-55-5555", 
new Date (12, 03, 1950),  203.978, 237);
      System.out.println();
      System.out.println( "Employees processed polymorphically:\n" );
    
      // generically process each element in array employees
      for ( Employee currentEmployee : employees ) // Evaluated right to left. The 
element on the left is an element of the type of the data structure on the right.
      {
      
      System.out.println( currentEmployee ); // invokes toString
         System.out.printf( 
            "earned $%,.2f\n\n", currentEmployee.earnings() );
         
            if (currentEmployee.getBirthDate().getMonth() == today.getMonth() )
         {
          currentEmployee.earned = currentEmployee.setbonus();
                       System.out.printf("%s %s\nHappy Birthday!!! You get a $100 
bonus\n" , currentEmployee.getFirstName() , currentEmployee.getLastName());
                       System.out.println();
         } 
                      
                       
      } // end for
   } // end main
} // end class PayrollSystemTest
Modified Employee class to include 
birthdate and bonus
package Part5;
// Lab Exercise 1: Employee.java
// Employee abstract superclass.
public abstract class Employee 
{
   private String firstName;
   private String lastName;
   private String socialSecurityNumber;
   private Date birthDate;
   protected double earned; 
   // three-argument constructor
   public Employee( String first, String last, String ssn , Date bday)
   {
      firstName = first;
      lastName = last;
      socialSecurityNumber = ssn;
      birthDate = bday;
      } // end four-argument constructor
   // set first name
   public void setFirstName( String first )
   {
      firstName = first;
   } // end method setFirstName
   // return first name
   public String getFirstName()
   {
      return firstName;
   } // end method getFirstName
   // set last name
   public void setLastName( String last )
   {
      lastName = last;
   } // end method setLastName
   // return last name
   public String getLastName()
   {
      return lastName;
   } // end method getLastName
   // set social security number
   public void setSocialSecurityNumber( String ssn )
   {
      socialSecurityNumber = ssn; // should validate
   } // end method setSocialSecurityNumber
   // return social security number
   public String getSocialSecurityNumber()
   {
      return socialSecurityNumber;
   } // end method getSocialSecurityNumber
   
   public void setBirthDate( Date newbday)
   {
   birthDate = newbday;
   }
   public Date getBirthDate()
   {
   return birthDate;
   }
   // return String representation of Employee object
   public String toString()
   {
      return String.format( "%s %s\nsocial security number: %s\n%s", 
         getFirstName(), getLastName(), getSocialSecurityNumber(), getBirthDate() );
   } // end method toString
   // abstract method overridden by subclasses
   public abstract double earnings(); // no implementation here
    // end abstract class Employee
   public abstract double getearnings();
   
   public abstract double setbonus();
   // No implementation 
   }
Here is a snapshot of the modified 
program working
Part 6: Shapes Test
//Enrique Carbajal 
//ShapeTest.java
package Part6;
public class ShapeTest {
  private Shape shapeArray[];
  private TwoDimensionalShape twoDArray[];
  private ThreeDimensionalShape threeDArray[];
  // create shapes
  public ShapeTest() {
    shapeArray = new Shape[4];
    twoDArray = new TwoDimensionalShape[2];
    threeDArray = new ThreeDimensionalShape[2];
    Circle circle = new Circle( 12, 88, 18 );
    shapeArray[0] = circle;
    twoDArray[0] = circle;
    Square square = new Square( 60, 96, 95 );
    shapeArray[1] = square;
    twoDArray[1] = square;
    Sphere sphere = new Sphere( 7, 90, 76 );
    shapeArray[2] = sphere;
    threeDArray[0] = sphere;
    Cube cube = new Cube( 69, 58, 72 );
    shapeArray[3] = cube;
    threeDArray[1] = cube;
  }
  // display shape info
  public void displayShapeInfo()
  {
    // call method print on all shapes
    for ( int i = 0; i < shapeArray.length; i++ ) { //First for loop
      System.out.print( shapeArray[i].getName() + 
": " );
      shapeArray[i].print();
      }
    System.out.println();
    System.out.println("The area for the 2D shapes are:");
      
      // print area of 2D shapes
      for ( int j = 0; j < twoDArray.length; j++ ){
        System.out.println( twoDArray[ j ].getName() + 
          "'s area is " + twoDArray[ j ].area() );}
      
      System.out.println();
      System.out.println("The volume and area for the 3D shapes are:");
           
      // print area and volume of 3D shapes
      for ( int k = 0; k < threeDArray.length; k++ ) {
        System.out.println( threeDArray[ k ].getName() + 
        "'s area is " + threeDArray[ k ].area() );
        System.out.println( threeDArray[ k ].getName() + 
         "'s volume is " + threeDArray[ k ].volume() );
        
      }//For loop on threeDArray
    }//First for loop
  //End of Method Display Shape Info
  // create ShapeTest object and display info
  public static void main( String args[] )
  {
    ShapeTest driver = new ShapeTest();
    driver.displayShapeInfo();
  }
} // end class ShapeTest
//Enrique Carbajal
//Shape abstract class
package Part6;
public abstract class Shape {
  private int x; // Sets x coordinate of shape
  private int y; // Sets y coordinate of shape
 
  
  // constructor 
  public Shape( int x0, int y0 )
  {
    x = x0;
    y = y0;
  }//End of two argument constructor
  
  // set x coordinate
  public void setX( int x0 )
  {
    x = x0;
  }
  
  // set y coordinate
  public void setY( int y0 )
  {
    y = y0;
  }
  
  // get x coordinate
  public int getX()
  {
    return x;
  }
  // get y coordinate
  public int getY()
  {
    return y;
  }
  // abstract methods
  public abstract String getName();
  public abstract void print();
} // end class Shape
package Part6;
public abstract class TwoDimensionalShape extends Shape 
{
private int dimension1;
private int dimension2;
  // constructor
  public TwoDimensionalShape( int x, int y, 
                        int d1, int d2)
  {
    super( x, y );
    dimension1 = d1;
    dimension2 = d2;
  }
  // set methods
  public void setDimension1( int d )
  {
     dimension1 = d;
  }
  public void setDimension2( int d )
  {
     dimension2 = d;
  }
  // get methods
  public int getDimension1() {
     return dimension1;
  }
  public int getDimension2()
  {
     return dimension2;
  }
  // abstract methods
  public abstract double area();
} // end class TwoDimensionalShape
package Part6;
public class Square extends TwoDimensionalShape {
public Square( int x , int y, int length )
{
super( x,  y ,length , length);//Passes values to super class constructor
}//End of default constructor
public String getName()
{
return "Square";
}
public void print()
{
    System.out.println( "(" + super.getX() + ","  + 
        super.getY() +") " + "side: " + super.getDimension1() );
}
public double area()
{
return (double) ( super.getDimension1() * super.getDimension1());
}
}//End of class definition
package Part6;
public class Circle extends TwoDimensionalShape {
final double  pi = 3.14;
//Circle Constructor
public Circle( int x, int y ,  int radius  )
{
super( x, y , radius, radius);// Calls Superclass TwoDimensionalShape 
constructor
}//End of default constructor
public String getName()
{ 
return "Circle";
}//COncrete implementation of abstract class
public void print()
{
    System.out.println( "(" + super.getX() + ","  + 
        super.getY() +") " + "side: " + super.getDimension1() );
}
@Override
public double area() {
return (double)( pi * super.getDimension1() * 
super.getDimension1() );
}
}//End of Circle class definition
package Part6;
public abstract class ThreeDimensionalShape extends Shape{
private int dimension1;
private int dimension2;
private int dimension3;
  // constructor
  public ThreeDimensionalShape( int x, int y, 
                        int d1, int d2, int d3 )
  {
    super( x, y );
    dimension1 = d1;
    dimension2 = d2;
    dimension3 = d3;
  }
  // set methods
  public void setDimension1( int d )
  {
     dimension1 = d;
  }
  public void setDimension2( int d )
  {
     dimension2 = d;
  }
  public void setDimension3( int d )
  {
     dimension3 = d;
  }
  // get methods
  public int getDimension1() {
     return dimension1;
  }
  public int getDimension2()
  {
     return dimension2;
  }
  public int getDimension3()
  {
     return dimension3;
  }
  // abstract methods
  public abstract double area();
  public abstract double volume();
} // end class ThreeDimensionalShape
package Part6;
public class Cube extends ThreeDimensionalShape {
  // constructor
  public Cube( int x, int y, int side )
  {
     super( x, y, side, side, side );
  }
  // overridden methods
  public String getName()
  {
     return "Cube";
  }
  public double area()
  {
     return ( int )( 6 * super.getDimension1() * 
                              super.getDimension1() );
  }
  public double volume()
  {
     return ( int ) ( super.getDimension1() * 
       super.getDimension1() * super.getDimension1() );
  }
  public void print()
  {
     System.out.println( "(" + super.getX() + ","  + 
      super.getY() +") " + "side: " + super.getDimension1() );
  }
  // set method
  public void setSide( int side )
  {
     super.setDimension1( side );
  }
  // get method
  public int getSide()
  {
     return super.getDimension1();
  }
} // end class Cube
package Part6;
public class Sphere extends ThreeDimensionalShape {
    
final double  pi = 3.14;
    
public Sphere( int x , int y, int d1 )//Default constructor
{
super( x, y, d1, d1, d1);
}//End of default constructor
public String getName()
{
return "Sphere";
}
  public void print()
  {
     System.out.println( "(" + super.getX() + ","  + 
      super.getY() +") " + "side: " + super.getDimension1() );
  }
  
public double area()
{
return (double )( 4 * pi  * super.getDimension1() * 
super.getDimension1() );
}
public double volume()
{
return (double) ( 1.3 * pi * super.getDimension1() * 
super.getDimension1() * super.getDimension1()  );
}
  // set method
  public void setSide( int side )
  {
     super.setDimension1( side );
  }
  // get method
  public int getSide()
  {
     return super.getDimension1();
  }
}//End of class definition
Here is a screenshot of this 
program working correctly
I gave myself full points for every assignment because I was able to 
get every program to work correctly.