Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich schreibe gerade ein Programm, das die Protonenanzahl der chemischen Elemente zurückliefern soll.
Ich bin kein besonders erfahrener Programmierer, aber bin dabei es hoffentlich zu werden.
Ich habe mal jetzt ein coding geschrieben...aber ich komme nicht weiter...Ich möchte das wenn man in das Dialogfeld z.B. "H" eingibt, das Programm die Protonen anzahl von H ausgibt...
Ich würde mich um hilfe sehr freuen...
interface IF_Atom{
public void protonen ();
}
class Sauerstoff implements IF_Atom {
int protonen =3;
Sauerstoff(int protonen)
{this.protonen=protonen;}
public void protonen (){
System.out.println("Anzahl der Protonen beträgt: ");
}
}
class Wasserstoff implements IF_Atom {
int protonen =3;
Wasserstoff(int protonen)
{this.protonen=protonen;}
public void protonen (){
System.out.println("Anzahl der Protonen beträgt: ");
}
}
class Fluor implements IF_Atom {
int protonen =3;
Fluor(int protonen)
{this.protonen=protonen;}
public void protonen (){
System.out.println("Anzahl der Protonen beträgt: ");
}
}
public class TestAtom {
public static void main (String []args){
String Sauerstoff = "H";
String Wasserstoff = "O";
String Fluor = "F";
int protonen;
String s= javax.swing.JOptionPane.showInputDialog("Bitte geben sie ein küzel ein:");
protonen= Integer.parseInt(s);
Dann tu das doch, wenn du auf konkrete Probleme stösst kannst du hier gerne nachfragen, aber hier
schreibt doch niemand ein Programm für dich, nur weil du das grad willst.
PS: Bitte nutze beim Verfassen von Posts den "Code"-Button oben im Menü für Code.
Flexible Lösung: Eine Atom-Klasse, die über statische Methoden die Atom-Objekte vorhält. Die Objekte werden vorher z.B. über eine Datei (z.B. XML) initialisiert.
Einfache Lösung: Enums
Code:
enum Atom {
H("Wasserstoff", 1),
He("Helium", 2),
Li("Lithium", 3);
private int protons;
private String description;
private Atom(String description, int protons) {
this.description = description;
this.protons = protons;
}
public int getProtonCount() {
return protons;
}
@Override
public void toString() {
return description;
}
}
Das Schöne dabei ist, dass ie Enum-Klasse über values() alle Atome zurückgibt, oder über valueOf("H") auch über den Namen. Natürlich kannst du neben Namen und Protonenzahl noch mehr Parameter nach dem gleichen Schema hinzufügen. Ich habe oben toString() mit der vollen Bezeichnung überschrieben, aber an den "Buchstaben" kommst du immer noch mit getName() ran.
[edit]
Ach ja, an deine Protonenzahl kommst du so: Atom.valueOf(deinEingabeString).getProtonCount();
Aber nicht vergessen, dass es eine Exception gibt, wenn der Nutzer Schwachfug eingibt. Einfach mit try-catch abfangen und eine "Gibt's nicht!" Meldung anzeigen oder so.
import java.util.HashMap;
interface IF_Atom{
public int getProtonen ();
}
class Sauerstoff implements IF_Atom {
public int getProtonen (){
return 3;
}
}
class Wasserstoff implements IF_Atom {
public int getProtonen (){
return 4;
}
}
class Fluor implements IF_Atom {
public int getProtonen (){
return 5;
}
}
public class TestAtom {
public static void main (String []args){
String Sauerstoff = "H";
String Wasserstoff = "O";
String Fluor = "F";
HashMap<String, IF_Atom> atome = new HashMap<String, IF_Atom>();
atome.put(Sauerstoff, new Sauerstoff());
atome.put(Wasserstoff, new Wasserstoff());
atome.put(Fluor, new Fluor());
int protonen;
String s= javax.swing.JOptionPane.showInputDialog("Bitte geben sie ein küzel ein:");
IF_Atom atom = atome.get(s);
if(s!=null){
System.out.println(s+" hat "+atom.getProtonen()+" Protone...");
}else{
System.out.println(s+" gibts ned!");
}
}
}
hier ist die Anwendung eines interfaces zwar nicht sinnvoll, aber euer lehrer wird sich dabei schon was gedacht haben...
Danke für die möglichen Lösungen,
habe jetzt doch noch eine hinbekommen, kriege es aber noch nicht zum laufen...
Code:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author Princess
*/
interface IF_Atom{
public void protonen ();
}
class Sauerstoff implements IF_Atom {
int protonen ;
public Sauerstoff(int protonen)
{this.protonen=protonen;}
public void protonen (){
System.out.println("Anzahl der Protonen beträgt: ");
}
}
class Wasserstoff implements IF_Atom {
int protonen ;
public Wasserstoff(int protonen)
{this.protonen=protonen;}
public void protonen (){
System.out.println("Anzahl der Protonen beträgt: ");
}
}
class Fluor implements IF_Atom {
int protonen ;
public Fluor(int protonen)
{this.protonen=protonen;}
public void protonen (){
System.out.println("Anzahl der Protonen beträgt: ");
}
}
public class TestAtom {
public static void main (String []args){
String s= javax.swing.JOptionPane.showInputDialog("Bitte geben sie ein küzel ein:");
if (s.equals("O"));{
IF_Atom o = new Wasserstoff(5)o.protonen();
}
else if(s.equals("H")){
IF_Atom H = new Sauerstoff(7)H.protonen();
}
else if (s.equals(F)){
IF_Atom F=new Fluor(1)F.protonen();
}
else {
System.out.println("FEHLER!!!");
}
}
}