2016-06-23 4 views
-2

Ich mache nächstes Jahr ein Problem mit meinem Java-Lehrbuch für die Schule, und ich kann mir nicht vorstellen, wie das funktioniert. Er möchte, dass ich einen booleschen Wert verwende, um zu prüfen, ob die eingegebene Ziffer 6 Ziffern lang ist. Ich werde das Problem kopieren und einfügen, um mehr Klarheit zu schaffen.
Java. Mit einem booleschen Wert überprüfe ich, ob eine eingegebene Ziffer die richtige Länge hat.

** Travel Tickets Unternehmen verkauft Tickets für Fluggesellschaften, Führungen und andere Reise-

Dienstleistungen. Da häufig Ticket-Agenten Zahlen lange Tickets vertippen, Reise

Tickets haben Sie gebeten, eine Anwendung zu schreiben, die ungültige Ticketnummer

Einträge anzeigt. Die Klasse fordert einen Ticket-Agenten auf, ein sechsstelliges Ticket Nummer einzugeben. Ticket

Zahlen sind so ausgelegt, dass, wenn Sie die letzte Ziffer der Nummer fallen, dann die von 7

Nummer teilen, wird der Rest der Division identisch mit der letzte Ziffer gesunken.

Dieser Prozeß wird im folgenden Beispiel veranschaulicht:

1 Schritt die Ticketnummer eingeben; beispielsweise 123454.

2 Schritt die letzte Ziffer entfernen, so dass 12345.

Schritt 3 den Rest bestimmen, wenn die Ticketnummer von 7. In diesem

Schritt 4 Assign der Boolesche Wert geteilt des Vergleichs zwischen Rest und

Schritt 5 Zeigen Sie das Ergebnis-True oder False-in einem Meldungsfeld.

Fall unterteilt 12345 von 7 hinterlässt einen Rest 4.

die Ziffer von der Ticketnummer gelöscht.

Akzeptieren Sie die Ticketnummer vom Agenten und überprüfen Sie, ob es sich um eine gültige Nummer handelt.

Testen der Anwendung mit den folgenden Losnummern:

l 123454; der Vergleich sollte als richtig bewertet werden

l 147103; der Vergleich sollte als wahr ausgewertet werden

l 154123; Der Vergleich sollte als falsch ausgewertet werden.

Speichern Sie das Programm als TicketNumber.java.**


hier mein Code

ist
//variables 
int ticketNum; 
Scanner input = new Scanner(System.in); 

//prompt for input of ticket number 
System.out.println("Please enter a ticket number >> "); 
ticketNum = input.nextInt(); 

//arithmetic for figuring out ticket number 
int lastDigit = ticketNum/10; 
boolean ticketValidation = (lastDigit % 7) == ticketNum; 

//output for validation 
System.out.println("this ticket number is " + ticketValidation); 


jedes Mal wenn ich es laufen, kommt es als falsch heraus.


danke für jede Hilfe, bitte sei nicht gemein, ich bin neu hier.

+0

Versuchen Sie, die Eingabelänge zu messen? – Li357

+5

"int lastDigit = ticketNum/10;" - Das ist nicht die letzte Ziffer. Das ist ticketNum dividiert durch 10. – user2357112

+1

bekommen Eingabedauer und prüfen, ob es gleich 6 ist ... – Li357

Antwort

3

int lastDigit = ticketNum/10; gibt Ihnen nicht die letzte Ziffer, es gibt Ihnen alle außer der letzten Ziffer. Dann (lastDigit % 7) gibt Ihnen ein Zehntel der ursprünglichen ticketNum, mod 7. Das wird ein int zwischen 0 und 6, inklusive.

Es gibt keine Möglichkeit, dass ein int zwischen 0 und 6 einschließlich der ursprünglichen sechsstelligen Zahl entspricht!

Dieser Prozess wird "Stift-Überprüfung" genannt, und Sie sollten es verwenden.

Beschreiben Sie uns in Worten, was der Algorithmus sein sollte, bitte.

+0

Ich weiß nicht, wo Sie den Ausdruck" Stift-Überprüfung "gehört haben, aber der Rest dieser Antwort ist solide. – user2357112

+0

Große Antwort, aber ich bin mit user2357112 nicht sicher, was Sie mit Stift-Prüfung meinen. – basic

+0

Pen-Checking bezieht sich darauf, wenn Sie ein Stück Papier haben und Sie versuchen, einige Ziffern darauf zu zählen, wo Sie Ihren Stift als Zeiger verwenden würden, um auf jede Ziffer zu zeigen, während Sie gezählt haben. –

0

Sie tun müssen:

int remainingDigits = ticketNum/10; 
int lastDigit = ticketNum%10; 
boolean ticketValidation = (remainingDigit % 7) == lastDigit; 
+0

Bitte formatieren Sie den Code – Li357

+1

Keine Erklärung und nur eine Antwort. Dies hilft ihm nicht, das Problem zu lernen. – basic

+0

@easiestripes danke! Ich wusste, dass etwas mit meiner Logik nicht stimmte und ich konnte es nicht für das Leben von mir herausfinden! – Danieoli

Verwandte Themen