Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Dashboard {
- //Define variables with default values
- private int speedometer = 0;
- private int odometer = 0;
- private boolean engineLight = false;
- public Dashboard() {} //Blank constructor, variables have set defaults
- public Dashboard(int milesTravelled, int speed) {
- //Check if miles travelled is in bounds
- if (0 <= milesTravelled && milesTravelled <= 99999) {
- odometer = milesTravelled;
- } else {
- engineLight = true;
- }
- //Check if speed is in bounds
- if (0 <= speed && speed <= 100) {
- speedometer = speed;
- } else {
- engineLight = true;
- }
- }
- public void accelerate() {
- speedometer++; //Do the speeding up
- if (speedometer > 100) { //Check if speed is out of bounds
- speedometer = 0;
- engineLight = true;
- }
- }
- public void drive(int numMinutes) {
- if (numMinutes <= 720) { //Time cannot be bigger than 720
- odometer += speedometer * numMinutes / 60; //Add (speed in mph) * (time in minutes) * (1/60 hours to minutes conversion) to odometer value
- if (odometer > 99999) { //Check if miles traveled is out of bounds
- odometer = 0;
- engineLight = true;
- }
- }
- }
- public String toString() {
- String output = "Speedometer: " + speedometer + " MPH\nOdometer: ";
- //Calculate number of digits in odometer variable
- int digits = 0;
- int reading = odometer;
- if (reading == 0) {
- digits++; //When odometer is 0, it has 1 digit, not 0
- } else {
- //Divide number by 10 to count digits, ex: 1234 > 123 > 12 > 1 (4 digits)
- while (reading != 0) {
- digits++;
- reading /= 10;
- }
- }
- //Output zeros inversely proportional to amount of digits to make a total of 5
- //The NumberFormat class would be very useful here
- for (int i = 0; i < 5 - digits; i++) {
- output += "0";
- }
- output += odometer + "\nCheck Engine: O";
- //Outupt "On" if engineLight is true, "Off" otherwise
- if (engineLight) {
- return output + "n";
- } else {
- return output + "ff";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement