1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
djyliett [7]
3 years ago
11

Write a program that prompts the user for the name of two files each containing a single line that represents a decimal integerc

all them m and n, keep in mind that theseintegerscould be very largein absolute value, so they might not be stored neither as along nor intvariables. You should:a)Handle erroneous input graciously.b)Include a class named BigIntegerwhere you define an integer as a linked list, along with integer operations such as addition and subtraction [multiplication and division will grant you extra points] c)Test your program for each operation and store the result of each operation as a single decimal number in a separate file containing only one line\
Computers and Technology
1 answer:
storchak [24]3 years ago
4 0

Answer:

The output is seen bellow

Explanation:

public class BigInteger {

  public class Node{

      private char data;

      private Node next;

      public Node(char d){

          this.setData(d);

          this.setNext(null);

      }

      public char getData() {

          return data;

      }

      public void setData(char data) {

          this.data = data;

      }

      public Node getNext() {

          return next;

      }

      public void setNext(Node next) {

          this.next = next;

      }      

  }

 

  private Node root;

 

  public BigInteger(String s){

      this.root=null;

     

      for(int i=s.length()-1;i>=0;i--){

          Node node=new Node(s.charAt(i));

          node.setNext(root);

          root=node;

      }

  }

 

  public String toString(){

      String str="";

      Node cur=this.root;

      int i=0;

     

      while(cur!=null){

          if(i==0 && cur.getData()=='0'){

             

          }

          else{

              i=1;

              str+=cur.getData();

          }

         

          cur=cur.getNext();

      }

     

      return str;

  }

 

  public String reverse(String s){

      String ret="";      

      for(int i=s.length()-1;i>=0;i--){

          ret+=s.charAt(i);

      }      

      return ret;

  }

 

  public BigInteger add(BigInteger s){

      String f=this.reverse(this.toString());

      String l=this.reverse(s.toString());

      int max=(f.length()>l.length())?f.length():l.length();

     

      String ret="";

     

      int carry=0;

     

      for(int i=0;i<max;i++){

          int sum=carry;

          if(i<f.length()){

              sum+=(f.charAt(i)-'0');

          }

          if(i<l.length()){

              sum+=(l.charAt(i)-'0');

          }

          ret+=(char)(sum%10+'0');

          carry=(sum/10);

      }

      if(carry!=0){

          ret+='1';

      }

     

      BigInteger bi=new BigInteger(this.reverse(ret));

      return bi;

  }

  public boolean bigNum(String s1,String s2){

             

      if(s1.length()>s2.length()){

          return true;

      }

      else{

          if(s1.length()<s2.length()){

              return false;

          }

          else{

              for(int i=0;i<s1.length();i++){

                  if(s1.charAt(i)!=s2.charAt(i)){

                      if(s1.charAt(i)>s2.charAt(i)){

                          return true;

                      }

                      else{

                          return false;

                      }

                  }

              }                  

          }

      }

      return false;

  }

 

  public BigInteger subtraction(BigInteger s){

      String f=this.toString();

      String l=s.toString();

     

      boolean b=this.bigNum(f, l);

   

      if(b==false){

          String tmp=f;

          f=l;

          l=tmp;

      }

     

      f=this.reverse(f);

      l=this.reverse(l);

     

      int max=(f.length()>l.length())?f.length():l.length();

     

      String ret="";

     

      int borrow=0;

     

      for(int i=0;i<max;i++){

          int sum=borrow;

          if(i<f.length()){

              sum+=(f.charAt(i)-'0');

          }

          if(i<l.length()){

              sum-=(l.charAt(i)-'0');

          }

          if(sum<0){borrow=-1;sum=10+sum;}

          else{borrow=0;}

         

          ret+=(char)(sum%10+'0');

      }

     

      if(b==false){

          ret+="-";

      }

     

      BigInteger bi=new BigInteger(this.reverse(ret));

      return bi;

  }

 

  public BigInteger multiplication(BigInteger s){

      String f=this.toString();

      String l=s.toString();

 

      int len=l.length();

     

      BigInteger bi=new BigInteger("");

      for(int i=len-1;i>=0;i--){

          //System.out.println(l.charAt(i));

          BigInteger r=new BigInteger(f);

          for(int j=(l.charAt(i)-'0');j>1;j--){

              r=r.add(new BigInteger(f));

              //System.out.print(r+" " );

          }

          //System.out.println();

          bi=bi.add(r);

          f=f+"0";

      }

      return bi;

  }

 

  public BigInteger division(BigInteger s){

      BigInteger t=this;

      BigInteger bi=new BigInteger("");

      int i=0;

      t=t.subtraction(s);

      String str=t.toString();

     

      while(str.charAt(0)!='-' && i<40){

          //System.out.println(str+" "+(i+1));

          bi=bi.add(new BigInteger("1"));

          t=t.subtraction(s);

          str=t.toString();  

         

          i++;

      }

      return bi;    

  }  

}  

-------------------

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.PrintWriter;

import java.util.Scanner;

public class Driver {

  public static void main(String [] args){

      Scanner sc=new Scanner(System.in);

     

      String str1="";

      String str2="";

     

      System.out.print("Enter file name 1 :");

      String file1=sc.next();

      //String file1="datafile1.txt";

      BufferedReader reader1;

      try {

          reader1 = new BufferedReader(new FileReader(file1));

          while((str1=reader1.readLine())!=null){

              break;

          }

          reader1.close();

      } catch (FileNotFoundException e) {

          // TODO Auto-generated catch block

          e.printStackTrace();

      } catch (IOException e) {

          // TODO Auto-generated catch block

          e.printStackTrace();

      }

 

      System.out.print("Enter file name 2 :");

      String file2=sc.next();

      //String file2="datafile2.txt";

      BufferedReader reader2;

      try {

          reader2 = new BufferedReader(new FileReader(file2));

          while((str2=reader2.readLine())!=null){

              break;

          }

          reader2.close();

      } catch (FileNotFoundException e) {

          // TODO Auto-generated catch block

          e.printStackTrace();

      } catch (IOException e) {

          // TODO Auto-generated catch block

          e.printStackTrace();

      }

You might be interested in
Where can I learn how you hack?​
morpeh [17]

Answer:

www.udemy.com

5 0
3 years ago
Read 2 more answers
Which of the following for-loop headers results in equivalent numbers of iterations: A. for (int q = 1; q &lt;= 100; q++) B. for
vladimir2022 [97]

Answer:

b

Explanation:

C and D have equivalent iterations

C:       D:

99    990

90      900

81      810

72      720

63      630

54      540

45      450

36      360

27      270

18      180

9       90

8 0
3 years ago
Which of the following option is not available in Insert&gt;&gt;Picture?
zysi [14]

Answer:

Word art

Explanation:

its copy and paste

7 0
3 years ago
Read 2 more answers
Suppose that you are asked to modify the Stack class to add a new operation max() that returns the current maximum of the stack
Advocard [28]

Answer:

Following are the code to the given points:

Explanation:

For point 8.1:

public String max()//defining a method max

{

   String maxVal=null;//defining a string variable that holds a value

   for(int x=0;x<n;x++)

   {

       if(maxVal==null || a[i].compareTo(maxVal)>0)//defining if blok to comare the value

       {

           maxVal=a[i];//holding value in maxVal variable

       }

   }

   return maxVal;//return maxVal variable value

}

For point 8.2:

public void push(String item)//defining a method push that accepts item value in a parameter

{

       a[n]=item;//defining an array to hold item value

       if(n==0 || item.compareTo(maxVals[n-1])>0)//use if to comare item value

       {

               maxVals[n]=item;//holding item value in maxVals variable

       }

       else

       {

               maxVals[n]=maxVals[n-1];//decreasing the maxVals value

       }

       n++;//incrementing n value

}

public String pop()//defining a method pop

{

       return a[--n];//use return value

}

public String max()//defining a method max

{

       return maxVals[n-1];//return max value

}

  • In the first point, the max method is declared that compares the string and returns its max value.
  • In the second point, the push, pop, and max method are declared that works with their respective names like insert, remove and find max and after that, they return its value.
7 0
3 years ago
What is the difference between above ground mining and underground mining?
neonofarm [45]
If this is in reference to diamond mining then above ground would be panning while below ground would be the actual mining into the soil. 
6 0
3 years ago
Other questions:
  • Workspace How do the following technologies help you in your quest to become a digital citizen: kiosks, enterprise computing, na
    6·1 answer
  • A computer that no longer works after having minor repair works done to it may have been damaged by
    8·2 answers
  • If a pedestrian begins to cross my path when i have the right of way
    5·1 answer
  • Cyberlaw consists of: a. only state statutes. b. only federal statutes. c. traditional legal principles that have changed becaus
    6·1 answer
  • Assume that the following variables have been defined in a program: int x = 10; int y = 20; int z = 30; Write a cout statement t
    11·1 answer
  • Discussion Six: Code of Ethics IT workers have many different relationships, including those with employers, clients, suppliers,
    7·1 answer
  • A wireless engineere has an access point using 5.725-ghz channel in the united states. In which band is the AP operating?
    9·1 answer
  • "The _____ of the Open Systems Interconnection (OSI) model generates the receiver’s address and ensures the integrity of message
    6·2 answers
  • What do you mean by flow of program​
    6·1 answer
  • The choice of database does not have any impact on the relevancy of search results?
    13·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!