ich befinde mich seit kurzen auch in der Programmierspalte der Computer Sektion.
Hier habe ich mal ein kleines Programm geschrieben. Bitte bedenkt, dass ich erst seit September begonnen habe richtig zu programmieren und zuvor so gut wie keine Kenntnisse vorhanden waren.
Code:
import java.sql.Date;
import java.util.Calendar;
import javax.swing.JOptionPane;
public class BigProjectClass1 {
@SuppressWarnings("deprecation")
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, "Herzlich-Willkommen auf meinem kleinen Tool.\ndieses "
+ "Programm wurde in Java geschrieben\nüber ein Feedback freue ich mich sehr\nwie du mich kontaktieren "
+ "kannst gehe auf Copyright!");
String input=JOptionPane.showInputDialog(null, "Du kannst unter verschiedenen Modi auswählen\n"
+ "\nWähle [1] für Taschenrechner"
+ "\nWähle [2] für Datum und Uhrzeit"
+ "\nWähle [3] für Copyrights.");
if(input.equals("1")) {
JOptionPane.showMessageDialog(null, "Du befindest dich nun im Taschenrechnermenü.");
String input2=JOptionPane.showInputDialog(null, "Bitte gebe nun die erste Zahl ein.");
String input3=JOptionPane.showInputDialog(null, "Bitte gebe nun die zweite Zahl ein.");
JOptionPane.showMessageDialog(null, "Deine Zahlen sind:" + input2 +" und "+ input3);
String input4=JOptionPane.showInputDialog(null, "Was möchtest du mit diesen Zahlen machen\n"
+ "\nWähle Addieren, Subtrahieren, Dividieren oder Multiplizieren.");
if (input4.equals("Addieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner + zweiteZahlRechner));
}
if (input4.equals("addieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner + zweiteZahlRechner));
}
if (input4.equals("Subtrahieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner - zweiteZahlRechner));
}
if (input4.equals("subtrahieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner - zweiteZahlRechner));
}
if (input4.equals("Dividieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner / zweiteZahlRechner));
}
if (input4.equals("dividieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner / zweiteZahlRechner));
}
if (input4.equals("Multiplizieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner * zweiteZahlRechner));
}
if (input4.equals("multiplizieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner * zweiteZahlRechner));
}
}
if (input.equals("2")){
Calendar cal = Calendar.getInstance ();
JOptionPane.showMessageDialog(null, "Datum: " + cal.get( Calendar.DAY_OF_MONTH ) +
"." + (cal.get( Calendar.MONTH ) + 1 ) +
"." + cal.get( Calendar.YEAR ) );
JOptionPane.showMessageDialog(null,"Uhrzeit: " + cal.get( Calendar.HOUR_OF_DAY ) + ":" +
cal.get( Calendar.MINUTE ) + ":" +
cal.get( Calendar.SECOND ) + ":" +
cal.get( Calendar.MILLISECOND ) );
}
if (input.equals("3")){
JOptionPane.showMessageDialog(null, "Du befindest dich im Copyright Menü.\n\nDer Code wurde von Pascal alias TheRealLenon selbst erstellt."
+ "\nDieses Programm wird für einen Download zur Verfügung gestellt.\nJegliche Veränderung und Verbreitung des Codes wird nicht geduldet.\nBesseres fällt mir nicht ein."
+ "\n Ich Hoffe ihr habt Spaß mit meinem Progrann!!");
}
}
}
Ich Hoffe euch hat mein Code gefallen.
Bitte schreibt mir Verbesserungsvorschläge oder Ideen, da mich die Sucht langsam Gepackt hat und es extrem Spaß macht, solche Kleinigkeiten zu programmieren.
if (input4.equals("Addieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner + zweiteZahlRechner));
}
if (input4.equals("addieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner + zweiteZahlRechner));
}
Besser:
Code:
// Addieren, addieren, AdDiErEn, aDdIeReN
if (input4.equalsIgnoreCase("Addieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner + zweiteZahlRechner));
}
Stell dir vor, du veränderst etwas in "Addieren", vergisst dann aber "addieren" auch anzupassen. Dann suchst du ewig nach dem Fehler, weil du einfach nicht damit rechnest.
if (input4.equals("addieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner + zweiteZahlRechner));
}
if (input4.equals("subtrahieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner - zweiteZahlRechner));
}
if (input4.equals("dividieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner / zweiteZahlRechner));
}
if (input4.equals("multiplizieren")){
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
JOptionPane.showMessageDialog(null, (ersteZahlRechner * zweiteZahlRechner));
}
Besser:
Code:
int ersteZahlRechner = Integer.parseInt(input2);
int zweiteZahlRechner = Integer.parseInt(input3);
if (input4.equals("addieren")){
JOptionPane.showMessageDialog(null, (ersteZahlRechner + zweiteZahlRechner));
}
if (input4.equals("subtrahieren")){
JOptionPane.showMessageDialog(null, (ersteZahlRechner - zweiteZahlRechner));
}
if (input4.equals("dividieren")){
JOptionPane.showMessageDialog(null, (ersteZahlRechner / zweiteZahlRechner));
}
if (input4.equals("multiplizieren")){
JOptionPane.showMessageDialog(null, (ersteZahlRechner * zweiteZahlRechner));
}
Stell dir vor, du möchtest jetzt lieber mit Kommazahlen (z.B. double) rechnen. Dann veränderst du es in "addieren", vergists es aber bei den anderen drei Rechenarten. Dann kann es sein, dass du wieder am rätseln bist warum da das Komma fehlt.
Wie soll ich das mit dem Addieren addieren verstehen?
Denn wenn ich in dem Ausgeführtem Programm addieren eingebe und das im Code weggelassen habe, öffnet sich kein neues Fenster. Sprich das Programm läuft nicht weiter..
input4 = input4.trim(); //entfernt Leerzeichen vorne und hinten input4 = input4.toLowerCase(); //macht alle Zeichen klein aus Addieren wird addieren usw.
if (input4.equals("addieren")) {
int ersteZahlRechner = Integer.parseInt(input2); int zweiteZahlRechner = Integer.parseInt(input3); JOptionPane.showMessageDialog(null, (ersteZahlRechner + zweiteZahlRechner));
}
Dadurch ist deine Eingabe nicht mehr CaseSensitiv sowas wie AddIeReN ist dann auch möglich wenn du das nicht haben willst sondern nur Addieren und addieren kannst du beides auch in eine if packen mit dem logischen "Oder" Operator
int ersteZahlRechner = Integer.parseInt(input2); int zweiteZahlRechner = Integer.parseInt(input3);
if (input4.equals("addieren") ) { JOptionPane.showMessageDialog(null, (ersteZahlRechner + zweiteZahlRechner));
} if(input4.equals("subtrahieren")) { ... } ...
Dann kannst du dir noch überlegen ob du nicht else if verwenden willst. Das Programm muss dann nicht alle ifs prüfen sondern überpringt die anderen sobald eine zutrifft. Wenn die eingabe addieren war wird nur die if von addieren geprüft die anderen werden direkt übersprungen. Wenn die eingabe subtrahieren ist, wird erst addieren geprüft, dann subtrahieren und da das wahr ist, werden alle danach übersprungen.
input2 = input2.replace(",","."); //parseDouble erkennt nur ein . damit ersetzt du das Komma in deinem String durch einen Punkt aus 1,234 wird 1.234 input3 = input3.replace(",",".");
Das letzte was mir noch spontan einfällt wäre eine Fehlerbehandlung falls man versucht soetwas wie "abd" als Zahl einzugeben. Da ich aber nicht weiß ob du dich mit Fehlerbehandlung schon auseinander gesetzt hast, lass ich das. Wenn du dazu ein Beispiel haben willst sag bescheid.
Eine kleinigkeit habe ich aber noch. Gewöhn dir am besten englische Variablen-Namen an. Das ist so der de facto Standard .
Ich hatte jetzt bei meinen beiden Verbesserungsvorschlägen deinen unveränderten Code als Grundlage genommen, deshalb fehlt die erste Verbesserung im zweiten Code. Weil ihr es scheinbar beide nicht gesehen habt, schreibe ich es hier noch einmal.
Wie ich bereits oben gesagt habe:
Code:
if (input4.equalsIgnoreCase("addieren"))
Dann ist es vollkommen egal wie das geschrieben wurde.
Addieren -> true
addieren -> true
AdDiErEn -> true
aDdIeReN -> true
Es hat den selben Effekt wie das von Mysthik (siehe nächsten Code), ist allerdings kürzer.
Code:
input4 = input4.toLowerCase();
if (input4.equals("addieren"))
Für " addieren " (Leerzeichen vorne/hinten) müssten man es noch trimmen.
Code:
input4 = input4.trim();
if (input4.equalsIgnoreCase("addieren"))
Mein erstes Programm mit AutoIt 06/13/2011 - AutoIt - 6 Replies Hey leute,
Ich bin seit jetzt 5Monaten neben bei und sehr wenig an autoit dran.
Aber es kommen immer wider sprünge die mir sagen:
Wie cool were es bots zu schreiben.
Deswegen habe ich mich mit der hilfe von BlackHybrid.
Also hier mall der Code:
Mein erstes Programm^^ 10/19/2010 - Off Topic - 16 Replies Hi Leute
wusste nicht in welche sektion das gehört also habs hierhin geschrieben
Nun seit heute habe ich mich fürs programmieren interessiert und hab mir ein einsteiger tut auf youtube angeguckt
Dort konnt ich sehen was ich alles mit einem .TXT bzw .bat datei so machen kann
Und dann hab ich einfach mal ein "Programm" erstellt was 5 Befehle ausführen kann
Ich wollte eure meinung hören und Tipps was ich verbessern kann oder was für befehle ich einbauen könnte
also dann ma los wie...
Mein erstes Programm 03/07/2010 - AutoIt - 4 Replies Also erstmal Hi an alle ich bin Miro (Miroslav)
Ich habe mir vorgenommen AutoIt zu lernen.
Und wollte mein erstes Programm schreiben hab mich schon bisschen Informiert und hättet ihr vielleicht eine Idee was für ein Programm ich als erstes schreiben könnte?
Und jetz kommt net mit ner einfachen MsgBox und diesem HelloWorld ;)
Freue mich über viele Antworten ;)
Mein erstes Programm mit VB 01/10/2010 - Off Topic - 16 Replies So wir haben nun eine Homepage: www.Steffsoft.tk
Viel Spaß^^