Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a program which: 1. Asks the user to enter a positive integer greater than

ID: 3804386 • Letter: W

Question

Write a program which:
1. Asks the user to enter a positive integer greater than 0 2. Validates that the entry is a positive integer 3. Outputs the digits in reverse order with a space separating the digits 4. Outputs the even digits not in reverse order with a space separating the digits (consider zero to be even) 5. Outputs the odd digits not in reverse order with a space separating the digits 6. Allows user is to repeat/continue the program as many times as he/she wants 7. Keeps a record in a txt file named outDataFile.txt with the history of all numbers entered and the associated results, in the following format: Please write the assignment in the programming language Java: please follow the folowing directions:In addition:
8. The program must have the following four void methods: a. validate //validate user input b. reverse // output reverse digits to screen and txt file c. even //output even digits to screen and txt file d. odd //output odd digits to screen and txt file , including follow these steps:
1. No infinite loops, examples include: a. for(;;) b. while(1) c. while(true) d. do{//code}while(1); 2. No break statements to exit loops

Explanation / Answer

UPDATED : There are no INFINITE loops in the program. All the loops in the program are finite. Do not get confused.
----------------------------------------------------------------------------------------------------------------------
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Program {

   public static String fileName = "outDataFile.txt";
  
   public static void main(String args[]) {
       new Program();
   }  
  
   public Program() {
       Scanner scanner = new Scanner(System.in);
       start(scanner);
       scanner.close();
   }
  
   public void start(Scanner scanner) {
      
       System.out.print("Enter a positive integer : ");
       int inputNumber = Integer.valueOf(scanner.next());
          
       if (!validate(inputNumber)) {
           System.out.println("input number is not a positive integer");
           start(scanner);
           return;
       }
       writeToFile("Input Number : "+ inputNumber);
          
       reverse(inputNumber);
       evenRev(inputNumber);
       oddRev(inputNumber);
          
       System.out.print(" Do you want to continue ? (Y/N) : ");
       String choice = scanner.next();
          
       if (!choice.equalsIgnoreCase("Y")) {
           return;
       }
       start(scanner);
   }
  
  
   public boolean validate(int inputNum) {
       if (inputNum > 0) {
           return true;
       }
       return false;
   }

   public void reverse(int inputNum) {
       int temp = inputNum;
       String outputString = new String();
       while (temp != 0) {
           int digit = temp % 10;
           temp = temp/10;
           outputString = outputString + " " + digit;
       }
       outputString = "Reversed Number = " + outputString;
       System.out.println(outputString);
       writeToFile(outputString);
   }
  
   public void evenRev(int inputNum) {
       int temp = inputNum;
       String outputString = new String();
      
       int pos = -1;
       while (temp != 0) {
           pos++;
           temp /=10;
       }

       int revNum = getReverse(inputNum);
      
       temp = inputNum;
       while (temp != 0) {
           int digit = temp % 10;
           temp = temp/10;
           int revNumDigit = revNum%10;
           revNum = revNum/10;
          
           if (pos%2 == 0) {
               outputString = outputString + " " + digit;              
           }
           else {
               outputString = outputString + " " + revNumDigit;
           }
           pos--;
       }
       outputString = "Even-Digit Reversed Number = " + outputString;
       System.out.println(outputString);
       writeToFile(outputString);
   }
  
   public void oddRev(int inputNum) {
       int temp = inputNum;
       String outputString = new String();
      
       int pos = -1;
       while (temp != 0) {
           pos++;
           temp /=10;
       }

       int revNum = getReverse(inputNum);
      
       temp = inputNum;
       while (temp != 0) {
           int digit = temp % 10;
           temp = temp/10;
           int revNumDigit = revNum%10;
           revNum = revNum/10;
          
           if (pos%2 != 0) {
               outputString = outputString + " " + digit;              
           }
           else {
               outputString = outputString + " " + revNumDigit;
           }
           pos--;
       }
       outputString = "Odd-Digit Reversed Number = " + outputString;
       System.out.println(outputString);
       writeToFile(outputString);
   }
  
   private void writeToFile(String out) {
       try {
           BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(new File(fileName)));
           bufferedWriter.append(out + " ");
           bufferedWriter.close();
       } catch (IOException e) {
           e.printStackTrace();
       }
   }
  
   private int getReverse(int temp) {
       int revNum = 0;
       while (temp!=0) {
           int digit = temp % 10;
           revNum = (revNum * 10 + digit);
           temp /= 10;
       }
       return revNum;
   }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote