Enhancing Class Time2
Enhancing Class Time2
8.5 to include a tick method that increments the time stored in a Time2 object by one second. Provide method incrementMinute to increment the minute and method incrementHour to increment the hour. The Time2 object should always remain in a consistent state. Write a program that tests the tick method, the increment-Minute method and the incrementHour method to ensure that they work correctly. Be sure to test the following cases: 1. 2. 3. incrementing into the next minute, incrementing into the next hour and incrementing into the next day (i.e., 11:59:59 PM to 12:00:00 AM). E:\THUWorks\java \hw4\Time2>jrunra TimeTest WrittenbyStevennick. Allrightsreserved. t1:hour,minuteandsecondspecified Original: 11:25:42 11:25:42AM t1:aftertickonce: 11:25:43AM t1:after62seconds: 11:26:45AM t1:afteroneminute: 11:27:45AM t1:after35minutes: 12:02:45PM t1:afteronehour: 1:02:45PM t1:afterhalfday: 1:02:45AM t1:Resetto23:59:59: 11:59:59PM t1:afteronesecond: 12:00:00AM Name:
E:\THUWorks\java\hw4\Time2\Time2.java
2007526 06:36
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
// StdNo.:s942864 // input: none // output: see code. // Date: 05/23/07 // Fig. 8.5: Time2.java
public class Time2 { private int hour; private int minute; private int second;
// 0 - 23 // 0 - 59 // 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
// Set Methods // set a new time value using universal time; ensure that // the data remains consistent by setting invalid values to zero
public void setTime( int h, int m, int s ) { setHour( h ); // set the hour setMinute( m ); // set the minute setSecond( s ); // set the second } // end method setTime
Page 1
E:\THUWorks\java\hw4\Time2\Time2.java
2007526 06:36
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
public void setHour( int h ) { hour = ( ( h >= 0 && h < 24 ) ? h : 0 ); } // end method setHour
// validate and set minute
public void setMinute( int m ) { minute = ( ( m >= 0 && m < 60 ) ? m : 0 ); } // end method setMinute
// validate and set second
public void setSecond( int s ) { second = ( ( s >= 0 && s < 60 ) ? s : 0 ); } // end method setSecond
// Get Methods // get hour value
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 toString
/* * Homework added here.
Page 2
E:\THUWorks\java\hw4\Time2\Time2.java
2007526 06:36
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
*/ /* * NormalizeTime * */
private void NormalizeTime(){ if (this.second>= 60){ this.minute += this.second / 60; this.second = this.second % 60; } if (this.minute >= 60){ this.hour += this.minute / 60; this.minute = this.minute % 60; } if(this.hour >= 24){
// No DAY const.
this.hour = this.hour % 24; } } public void tick(){ this.second++; this.NormalizeTime(); } public void incrementMinute(){ this.minute++; this.NormalizeTime(); } public void incrementHour(){ this.hour++; this.NormalizeTime(); } }
// end class Time2
/************************************************************************** * (C) Copyright 1992-2005 by Deitel & Associates, Inc. and * Pearson Education, Inc. All Rights Reserved. * * * * * * * * *
* DISCLAIMER: The authors and publisher of this book have used their * best efforts in preparing the book. These efforts include the * development, research, and testing of the theories and programs * to determine their effectiveness. The authors and publisher make * no warranty of any kind, expressed or implied, with regard to these * and publisher shall not be liable in any event for incidental or * consequential damages in connection with, or arising out of, the * furnishing, performance, or use of these programs. * * *
*************************************************************************/
Page 3
E:\THUWorks\java\hw4\Time2\TimeTest.java
2007526 06:34
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
// StdNo.:s942864 // input: none // output: see code. // Date: 05/23/07 /** * TimeTest class *
* Used for test Time2 class working correctly. */ /** * @author Stevennick * */
public static void main(String[] args) { System.out.println("TimeTest\nWritten by Stevennick.\nAll rights reserved."); Time2 t1 = new Time2( 11, 25, 42 );
// 12:25:42
System.out.println( "t1: hour, minute and second specified\nOriginal:" ); System.out.printf( " %s\n", t1.toUniversalString() ); System.out.printf( " %s\n", t1.toString() ); t1.tick(); System.out.println( "t1: after tick once:" ); System.out.printf( " %s\n", t1.toString() ); for(int i = 1; i <= 62; i++){ t1.tick(); } System.out.println( "t1: after 62 seconds:" ); System.out.printf( " %s\n", t1.toString() ); t1.incrementMinute(); System.out.println( "t1: after one minute:" ); System.out.printf( " %s\n", t1.toString() ); for(int i = 1; i <= 35; i++){ t1.incrementMinute(); } System.out.println( "t1: after 35 minutes:" ); System.out.printf( " %s\n", t1.toString() ); t1.incrementHour(); System.out.println( "t1: after one hour:" ); System.out.printf( " %s\n", t1.toString() ); for(int i = 1; i <= 12; i++){ t1.incrementHour();
Page 1
E:\THUWorks\java\hw4\Time2\TimeTest.java
2007526 06:34
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
} System.out.println( "t1: after half day:" ); System.out.printf( " %s\n", t1.toString() ); t1.setSecond(59); t1.setMinute(59); t1.setHour(23); System.out.println( "t1: Reset to 23:59:59:" ); System.out.printf( " %s\n", t1.toString() ); t1.tick(); System.out.println( "t1: after one second:" ); System.out.printf( " %s\n", t1.toString() ); } }
Page 2
Java 05/03~05/23 Name: NO:942864 Write an enum type TRafficLight, whose constants (RED, GREEN, YELLOW) take one parameterthe duration of the light. Write a program to test the trafficLight enum so that it displays the enum constants and their durations. E:\THUWorks\java \hw4\TRafficLight>TrafficLightTest.class TrafficLightTest WrittenbyStevennick. Allrightsreserved. TrafficLightisGREEN YELLOWlightisdisplayed,hurryup! TrafficLightnowisRED,pleasestopyourstepandwait... TrafficLightnowisGREENagain.
E:\THUWorks\java\hw4\TRafficLight\TrafficLight.java
2007526 06:35
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
// StdNo.:s942864 // input: none // output: see code. // Date: 05/23/07 /** * */ /** * @author Stevennick * */ TrafficLight
public class TrafficLight { private enum trafficLight{RED, GREEN, YELLOW}; private trafficLight status; public TrafficLight(){ this.status = trafficLight.GREEN; } public String toString(){ return String.format(this.status.toString()); } public void changeStatus(){ switch(this.status){ case GREEN: this.status = trafficLight.YELLOW; break; case YELLOW: this.status = trafficLight.RED; break; case RED: this.status = trafficLight.GREEN; break; } } }
Page 1
E:\THUWorks\java\hw4\TRafficLight\TrafficLightTest.java
2007526 06:34
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
// StdNo.:s942864 // input: none // output: see code. // Date: 05/23/07 /** * TrafficLightTest */ /** * @author Stevennick * */
public static void main(String[] args) { System.out.println("TrafficLightTest\nWritten by Stevennick.\nAll rights reserved."); TrafficLight t = new TrafficLight(); System.out.println("TrafficLight is " + t); t.changeStatus(); System.out.println(t + " light is displayed, hurry up!"); t.changeStatus(); System.out.println("TrafficLight now is " + t + " , please stop your step and wait..."); t.changeStatus(); System.out.println("TrafficLight now is " + t + " again."); } }
Page 1
Java 05/03~05/23 NO:942864 (Complex Numbers) Create a class called Complex for performing arithmetic with complex numbers. Complex numbers have the form where i is Write a program to test your class. Use floating-point variables to represent the private data of the class. Provide a constructor that enables an object of this class to be initialized when it is declared. Provide a no-argument constructor with default values in case no initializers are provided. Provide public methods that perform the following operations: a. Add two Complex numbers: The real parts are added together and the imaginary parts are added together. b. Subtract two Complex numbers: The real part of the right operand is subtracted from the real part of the left operand, and the imaginary part of the right operand is subtracted from the imaginary part of the left operand. c. Print Complex numbers in the form (a, b), where a is the real part and b is the imaginary part. E:\THUWorks\java \hw4\Complex>ComplexTest.class Input frist complex number: real number:5 Input frist complex number: imaginaty number:7 The frist complex number is: 5.0+7.0i Input second complex number: real number:3.2 Input second complex number: imaginaty number:9.66 The second complex number is: 3.2+9.66i Frist + Second is:8.2+16.66i Second - Frist is:-1.799999999999999+2.66i Name:
E:\THUWorks\java\hw4\Complex\Complex.java
2007526 06:34
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
// StdNo.:s942864 // input: none // output: see code. // Date: 05/23/07 /** * @author Stevennick * */
public class Complex { private double realPart; private double imaginatyPart; private double result;
public Complex(double realPart, double imaginatyPart){ this.realPart = realPart; this.imaginatyPart = imaginatyPart; this.result = this.realPart + this.imaginatyPart * java.lang.Math.sqrt(1); }
/* * This method is absolute. * Do not use it. */
public void Add(Complex e){ this.realPart += e.realPart; this.imaginatyPart += e.imaginatyPart; } public void Subtract(Complex e){ this.realPart -= e.realPart; this.imaginatyPart -= e.imaginatyPart; } public String toString(){ return String.format(this.realPart + "+" + this.imaginatyPart + "i" ); } public void print(){
Page 1
E:\THUWorks\java\hw4\Complex\Complex.java
2007526 06:34
55 56 57 58 59
System.out.print(this.toString()); } }
Page 2
E:\THUWorks\java\hw4\Complex\ComplexTest.java
2007526 06:33
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
// StdNo.:s942864 // input: none // output: see code. // Date: 05/23/07 /** * @author Stevennick * */
public static void main(String[] args) { Scanner input = new Scanner(System.in); double realpart = 0; double imaginatypart = 0; System.out.print("Input frist complex number: real number:"); realpart = input.nextDouble(); System.out.print("Input frist complex number: imaginaty number:"); imaginatypart = input.nextDouble(); Complex c = new Complex(realpart, imaginatypart); System.out.println("The frist complex number is: " + c);
System.out.print("Input second complex number: real number:"); realpart = input.nextDouble(); System.out.print("Input second complex number: imaginaty number:"); imaginatypart = input.nextDouble(); Complex d = new Complex(realpart, imaginatypart); System.out.println("The second complex number is: " + d); c.Add(d); System.out.println("Frist + Second is:" + c); c.Subtract(d); d.Subtract(c); System.out.println("Second - Frist is:" + d);
} }
Page 1
Java 05/03~05/23 NO:942864 (Rational Numbers) Create a class called Rational for performing arithmetic with fractions. Write a program to test your class. Use integer variables to represent the private instance variables of the classthe numerator and the denominator. Provide a constructor that enables an object of this class to be initialized when it is declared. The constructor should store the fraction in reduced form. The fraction 2/4 is equivalent to 1/2 and would be stored in the object as 1 in the numerator and 2 in the denominator. Provide a no-argument constructor with default values in case no initializers are provided. Provide public methods that perform each of the following operations: a. Add two Rational numbers: The result of the addition should be stored in reduced form. b. Subtract two Rational numbers: The result of the subtraction should be stored in reduced form. c. Multiply two Rational numbers: The result of the multiplication should be stored in reduced form. d. Divide two Rational numbers: The result of the division should be stored in reduced form. e. Print Rational numbers in the form a/b, where a is the numerator and b is the denominator. f. Print Rational numbers in floating-point format. (Consider providing formatting capabilities that enable the user of the class to specify the number of digits of precision to the right of the decimal point.) Name:
E:\THUWorks\java \hw4\Rational>RationalTest.class RationalTest WrittenbyStevennick. Allrightsreserved. Inputnumeratornumber:56 Inputdenominatornumber:497 TheNumeratoris8,andtheDenominatoris71 Add:79 Subtract:63 Multiply:568 Divide:0 Youjustget8/71 Andit'sfloatingpointformatis0.112676054
E:\THUWorks\java\hw4\Rational\Rational.java
2007526 06:34
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
public class Rational { private int numerator; private int denominator; public Rational(){ this.numerator = 0; this.denominator = 0; } public Rational(int numerator, int denominator){ this.numerator = numerator; this.denominator = denominator; this.CalcReducedNumber(); }
/* * */
public void print(){ System.out.print(this.numerator + "/" + this.denominator); } public void printfloat(){ System.out.print(this.CalcRationalNumber()); } public int AddNumber(){ return this.numerator + this.denominator; } public int SubtractNumber(){ return this.denominator - this.numerator; } public int MultiplyNumber(){ return this.numerator * this.denominator; } public int DivideNumber(){ int DividedNumber = 0; try { DividedNumber = this.numerator / this.denominator; } catch (Exception e) {
//throw new Exception("Rational.DevideNumber: Devided by zero.");
Page 1
E:\THUWorks\java\hw4\Rational\Rational.java
2007526 06:34
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
* CalcRationalNumber * */
private float CalcRationalNumber(){ float RationalNumber = 0; try { RationalNumber = (float)this.numerator / (float)this.denominator; } catch (Exception e) {
//throw new Exception("Rational.DevideNumber: Devided by zero.");
/* * CalcRationalNumber * */
private Boolean CalcReducedNumber(){ if(this.denominator > 0) { int gcdNumber = this.GCDNumber(this.numerator, this.denominator); this.numerator = this.numerator / gcdNumber; this.denominator = this.denominator / gcdNumber; return true; } return false; }
/* * */
E:\THUWorks\java\hw4\Rational\Rational.java
2007526 06:34
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
this.denominator = denominator; }
/* * GCDNumber * */
Page 3
E:\THUWorks\java\hw4\Rational\RationalTest.java
2007526 06:34
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
int Numerator = 0; int Denominator = 0; Scanner inputStream = new Scanner(System.in); System.out.println("RationalTest\nWritten by Stevennick.\nAll rights reserved."); System.out.print("Input numerator number:"); Numerator = inputStream.nextInt(); System.out.print("Input denominator number:"); Denominator = inputStream.nextInt(); inputStream.close(); Rational myRational = new Rational(Numerator,Denominator); System.out.println("The Numerator is " + myRational.getNumerator() + " , and the Denominator is " + myRational.getDenominator()); System.out.println("Add:" + myRational.AddNumber()); System.out.println("Subtract:" + myRational.SubtractNumber()); System.out.println("Multiply:" + myRational.MultiplyNumber()); System.out.println("Divide:" + myRational.DivideNumber()); System.out.print("You just get "); myRational.print(); System.out.println(); System.out.print("And it's floating-point format is "); myRational.printfloat(); System.out.println();
} }
Page 1
Java 05/03~05/23 Name: Complete following code: E:\THUWorks\java \hw4\college>collegeTest.class collegeTest Written by Stevennick. All rights reserved. teacher Data: ssn: 111 name: John sex: M course: JAVA salary: 666666 student Data: ssn: 222 name: Mary sex: F course: JAVA student no: 222222 NO:942864
E:\THUWorks\java\hw4\college\college.java
2007526 06:33
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
public class college{ private int ssn; private String name; private char sex; public college(int s, String n, char x){ ssn = s; name = n; sex = x; }
/* * (non-Javadoc) * @see java.lang.Object#toString() */
public String toString(){ return String.format("ssn: " + ssn + "\nname: " + name + "\nsex: " + sex); } }
Page 1
E:\THUWorks\java\hw4\college\teacher.java
2007526 06:33
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
public class teacher extends college{ private String course; private int salary; public teacher(int s, String n, char x, String c, int s1){ super(s,n,x); this.course = c; this.salary = s1; } public String toString(){ return String.format(super.toString()+"\ncourse: " + this.course +"\nsalary: " + this.salary); } }
Page 1
E:\THUWorks\java\hw4\college\student.java
2007526 06:33
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
public class student extends college{ private String course; private int student_no;
// ssn,name,sex,course,number
public student(int ssn, String name, char sex, String course, int student_no ){ super(ssn,name,sex); this.course = course; this.student_no = student_no; } public String toString(){ return String.format(super.toString() + "\ncourse: " + this.course + "\nstudent no: " + this.student_no); } }
Page 1
E:\THUWorks\java\hw4\college\collegeTest.java
2007526 06:33
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
public class collegeTest{ public static void main(String args[]){ System.out.println("collegeTest\nWritten by Stevennick.\nAll rights reserved.");
// ssn,name,sex,course,number
Page 1