mazentral/1(33) Sprache: Deutsch


Ma_Zentral 1

Beschreibung

Ma_Zentral 1 war das erste, funktionsfähige Ma_Sys.ma Programm und war dementsprechend nicht besonders gut programmiert. Das Programm wurde fast vollständig auf dem Papier geschrieben, weshalb es im Gegensatz zu den Versionen 3 bis 6 auch noch in Quelltextform vorhanden ist. Der unter Originalquelltext angegebene Quelltext ist die Originalversion, wie sie auch auf dem Papier geschrieben wurde.

Das Anpassen an eigene Wünsche, war so schwer wie nur möglich gestaltet. Man musste einen langen Programmabschnitt kopieren, ihn passend abändern und wieder einfügen, um ein neues Programm hinzuzufügen. Zusätzlich hatte Ma_Zentral 1 als einzige Version nur eine Kommandozeilenoberfläche.

Anlässlich der Ma_Website 3 mawebsite3/first_try(33), wurde eine verbesserte Ma_Zentral 1 Version geschrieben. Der Abschnitt Verbesserter Quelltext zeigt diese Version – obwohl der Quelltext mit so wenigen Programmen größer als bei der Orginalversion ist, ist er leichter verständlich. Diese verbesserte Version nutzt ein zweidimensionales Array zum Zuordnen von Programmen und Befehlen. Dadurch ist nur wenig Anpassungsarbeit nötig, um neue Programme hinzuzufügen.

Ma\_Zentral 1 unter Linux. Regedit ist nicht verfügbar.
Ma_Zentral 1 unter Linux. Regedit ist nicht verfügbar.

Originalquelltext

public class MAZentral {
        public static void main(String[] args) {
                boolean eingeschaltet = true;
                while(eingeschaltet) {
                        System.out.println();
                        System.out.println("Editor          <1>");
                        System.out.println("Regedit          <2>");
                        System.out.println("Beenden          <0>");
                        System.out.print("Ihre Eingabe: ");
                        int eingabezahl = 0;
                        try {
                                java.io.BufferedReader t = new java.io.BufferedReader(
                                        new java.io.InputStreamReader(System.in));
                                eingabezahl = Integer.parseInt(t.readLine());
                        } catch(Exception ex) {
                                System.err.println("Fehler beim lesen oder  " +
                                        "konvertieren der Eingabe: " + ex.toString());
                        }
                        switch(eingabezahl) {
                                case 1: {
                                        try {
                                                Runtime.getRuntime().exec("notepad");
                                        } catch (Exception ex) { ex.printStackTrace(); }
                                        break;
                                }
                                // Das musste immer angepasst wiederholt werden...
                                case 2: {
                                        try {
                                                Runtime.getRuntime().exec("regedit");
                                        } catch (Exception ex) { ex.printStackTrace(); }
                                        break;
                                }
                                case 0: { eingeschaltet = false; }
                        }
                }
        }
}

Verbesserter Quelltext

/* Ma_Zentral 1.0 Improved, Copyright (c) Ma_Sys.ma */
public class MaZentral1 {
        private static final String[][] COMMANDS = {
                {"Editor    <1>", "notepad"},
                {"Regedit   <2>", "regedit"},
        };
        public static void main(String[] args) {
                boolean eingeschaltet = true;
                while(eingeschaltet) {
                        System.out.println();
                        for(int i = 0; i < COMMANDS.length; i++)
                                System.out.println(COMMANDS[i][0]);
                        System.out.println("Beenden          <0>");
                        System.out.print("Ihre Eingabe: ");
                        int eingabezahl = 0;
                        try {
                                java.io.BufferedReader t = new java.io.BufferedReader(
                                        new java.io.InputStreamReader(System.in));
                                eingabezahl = Integer.parseInt(t.readLine());
                        } catch(Exception ex) {
                                System.err.println("Fehler beim lesen oder " +
                                        "konvertieren der Eingabe: " + ex.toString());
                        }
                        if(eingabezahl == 0) {
                                eingeschaltet = false;
                        } else {
                                eingabezahl--;
                                if(eingabezahl >= 0 && eingabezahl <= COMMANDS.length-1) {
                                        try {
                                                Runtime.getRuntime().exec(COMMANDS[eingabezahl][1]);
                                        } catch (Exception ex) {
                                                ex.printStackTrace();
                                        }
                                } else {
                                        System.err.println("Fehlerhafte Eingabe!");
                                }
                        }
                }
        }
}


Zum Seitenanfang