Was ich machen möchte.
Ascii Rechner
Kode für die Feld, welcher Zahl in Ascii umwandelt.
Hier die Kode für das bisscher programierte Program.
Ascii Rechner
Kode für die Feld, welcher Zahl in Ascii umwandelt.
Code:
public Calculator()
{ int wert=0;
double sum=0;
// String definieren
String inputstr =new String("FgHi");
// String auf einzelne Zeichen zugreifen
for(int pos=0;pos<=3;pos++){
char buchstabe= inputstr.charAt(pos); // aus String einzelne Zeichen herauslösen
System.out.print(buchstabe+" ->"); // zum Test ausgeben
// Groß- oder Kleinbuchstabe
if(buchstabe>=97)wert=buchstabe-97; else wert=buchstabe-65+26;
double hochzahl=Math.abs(pos-3);
double erg=(wert*Math.pow(52, hochzahl));
sum=sum+erg;
System.out.print(erg+"Summe-->");
System.out.println(sum);
}
Hier die Kode für das bisscher programierte Program.
Code:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculator extends JFrame implements ActionListener
{
private static final long serialVersionUID = 1L;
//Anzahl der auszugebenden Stellen
private int stellen = 4;
//Komponenten
JPanel panel = new JPanel();
JTextField eingabeFeld = new JTextField("");
JButton berechnenButton = new JButton("Berechnen");
JLabel ausgabeFeld = new JLabel("Ergebnis:");
JButton schliessenButton = new JButton("Schließen");
JTextField eingabeFeld2 = new JTextField("");
JButton berechnenButton2 = new JButton("Berechnen");
JLabel ausgabeFeld2 = new JLabel("Ergebnis:");
public Calculator()
{ MenuBar hauptMenue = new MenuBar();
Menu menuedatei =new Menu ("Datei");
menuedatei.add ("Beenden");
Menu menuebearbeiten = new Menu("Bearbeiten");
menuebearbeiten.add("Ergebnis Kopieren");
menuebearbeiten.add("Einfügen");
Menu menuehilfe = new Menu("?");
menuehilfe.add("Hilfethemen");
menuehilfe.add("Info");
hauptMenue.add(menuedatei);
hauptMenue.add(menuebearbeiten);
hauptMenue.setHelpMenu(menuehilfe);
setMenuBar(hauptMenue);
menuedatei.addActionListener(this);
//addWindowListener(this);
setTitle("Calculator");
//Aktionen festlegen
berechnenButton.setActionCommand("BERECHNEN");
berechnenButton.addActionListener(this);
berechnenButton2.setActionCommand("BERECHNEN");
berechnenButton2.addActionListener(this);
//schliessenButton.setActionCommand("SCHLIESSEN");
//schliessenButton.addActionListener(this);
//Komponten hinzufügen
//panel.setLayout(new GridLayout(2,4));
//setBackground (Color.ORANGE);
JPanel panel = new JPanel();
panel.setLayout (new GridLayout (2, 4, 5, 10));
panel.setBorder (BorderFactory.createEmptyBorder (8, 8, 8, 8));
//JPanel eingabeFeld = new JPanel();
eingabeFeld.setBorder (BorderFactory.createTitledBorder ("Zahl eingeben"));
eingabeFeld2.setBorder (BorderFactory.createTitledBorder ("Ascii eingeben"));
panel.add(eingabeFeld);
panel.add(berechnenButton);
panel.add(ausgabeFeld);
panel.add(eingabeFeld2);
panel.add(berechnenButton2);
panel.add(ausgabeFeld2);
//panel.add(schliessenButton);
//Größe einstellen
panel.setPreferredSize(new Dimension(450, 150));
getContentPane().add(panel);
//add(panel);
pack();
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//Mittig setzen
setLocationRelativeTo(null);
}
/**
* @param args
*/
public static void main(String[] args)
{
new Calculator();
//Calculator MyCalc = new Calculator();
}
private String umrechnen(String zahlText)
{
long zahl = 0;
//Keine Zahl eingegeben
try
{
zahl = Long.parseLong(zahlText);
}
catch(NumberFormatException e)
{
return "Keine Zahl!";
}
//Zahl zu groß für die Anzahl der stellen
if(zahl > Math.pow(52, stellen))
{
return "Zahl zu groß!";
}
char[] chars = new char[stellen];
int[] reste = new int[stellen];
// Ergebnis
// Umwandlung Zahlensystem dezimal in 52-er System
// und codierung in Buchstaben
reste[0] = (int) (zahl % 52);
zahl = zahl / 52;
reste[1] = (int) (zahl % 52);
zahl = zahl / 52;
reste[2] = (int) (zahl % 52);
zahl = zahl / 52;
reste[3] = (int) (zahl % 52);
for (int i = 0; i < reste.length; i++)
{
if (reste[i] < 26)
{
chars[chars.length - (i+1)] = (char) (reste[i] + 97);
}
else
{
chars[chars.length - (i+1)] = (char) (reste[i] + 65 - 26);
}
}
return new String(chars);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("BERECHNEN"))
{
ausgabeFeld.setText("Ergebnis: " + umrechnen(eingabeFeld.getText()) );
}
else if(e.getActionCommand().equals("SCHLIESSEN"))
{
System.exit(0);
}
}
}