2016-10-20 6 views
-3

Ich versuche ein Programm zu erstellen, in dem ein Benutzer vier Ziffern eingibt und eine sechsstellige Nummer erhält. Die ersten vier Ziffern haben der Benutzer eingegeben, während die fünfte Ziffer ((Ziffer1 + Ziffer2 + Ziffer4)% 10) und die sechste Ziffer die dritte Ziffer ist. Hier ist was ich bisher habe. Klassen für Benutzereingaben wurden bereitgestellt. Jede Hilfe wird geschätzt.Fehler beim Erstellen eines Programms mit mehreren Klassen in Java

import java.lang.Math; 

/** 
* Purpose: This class/program generates a 6 digit card number based on 4 digits inputed by the user 
*/ 
public class CardGenerator 
{ 
    public void main(String[] args) 
    {  
     UserInteraction input = new UserInteraction(); 
     calculateDigit5 digit5Calc = new calculateDigit5(); 
     getDigit digit = new getDigit(); 
     getRemainder remainder = new getRemainder(); 

     int number = input.getIntValueFromUser("Enter the four digit card number"), 
      digit1 = getDigit(number, 3), 
      number = getRemainder(number, 3), 
      digit2 = getDigit(number, 2), 
      number = getRemainder(number, 2), 
      digit3 = getDigit(number, 1), 
      number = getRemainder(number, 1), 
      digit4 = getDigit(number, 0), 
      digit5 = calculateDigit5, 
      digit6 = digit3; 

     System.out.println("The 6 digit card number is " + digit1 + digit2 + digit3 + digit4 + digit5 
     + digit6); 
    } 

    public class getDigit 
    { 
    int digitWeight = Math.pow(number, (1/1000)), 
       rem = getRemainder(number, digitPosition), 
       digit = (originalNumber - rem)/digitWeight; 


    } 

    public class getRamainder 
    { 

    } 

    public class calculateDigit5 
    { 
    int digit5 = (digit1 + digit2 + digit4) % 10; 
    } 
} 

Dies wurde mir zur Verfügung gestellt

import java.util.*; 
//DO NOT PUT OTHER METHODS IN THIS CLASS or make any changes to it 
public class UserInteraction 
{ 
    public String getStringValueFromUser(String message) 
    { 
     String value = ""; 
     Scanner input = new Scanner(System.in); 
     System.out.print(message + " : "); 
     value = input.nextLine(); 
     return value; 
    } 
//DO NOT PUT OTHER METHODS IN THIS CLASS or make any changes to it 
    public double getDoubleValueFromUser(String message) 
    { 
     double value = 0; 
     Scanner input = new Scanner(System.in); 
     System.out.print(message + " : "); 
     value = input.nextDouble(); 
     return value; 
    } 
//DO NOT PUT OTHER METHODS IN THIS CLASS or make any changes to it 
    public int getIntValueFromUser(String message) 
    { 
     int value = 0; 
     Scanner input = new Scanner(System.in); 
     System.out.print(message + " : "); 
     value = input.nextInt(); 
     return value; 
    } 

    //DO NOT PUT OTHER METHODS IN THIS CLASS or make any changes to it 
} 

Antwort

0
public class AllDigits { 

private int[] digits; 

public AllDigits() 
{ 
    digits = new int[6]; 
} 

public int getDigit(int index) 
{ 
    return digits[index]; 
} 

public void setDigit(int index, int value) 
{ 
    if(index >= 0 && index <=3) 
    { 
     digits[index] = value; 
     //if we are setting the 3rd number set the 6th as well 
     if(index == 2) 
      digits[5] = value; 
    } 
    //this is for the fifth digit 
    else if(index == 4) 
    { 
     digits[index] = (digits[0] + digits[1] + digits[3]) % 10; 
    } 
} 

public void printDigit() 
{ 
    for(int i = 0; i < digits.length; i++) 
    { 
     System.out.print(digits[i]); 
     if(i != digits.length - 1) 
      System.out.print(" "); 
    } 
    System.out.println(); 
} 
} 

Dies sollte mehr als genug sein, um loszulegen. Es gibt unendlich viele Möglichkeiten, dies zu tun, aber das ist meine Implementierung.

Verwandte Themen