mazentral/1(33) Sprache: Deutsch


Ma_Zentral 1

----------------------------------------------------------------------[ Meta ]--

name		mazentral/1
section		33
description	Ma_Zentral 1
tags		mazentral website
encoding	utf8
compliance	public
lang		de
attachments	screenshot.png
creation	2014/08/04 23:19:33
version		1.0.0.1
copyright	Copyright (c) 2014 Ma_Sys.ma.
		For further info send an e-mail to Ma_Sys.ma@web.de.

--------------------------------------------------------------[ 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.

{\img{screenshot.png}{Ma\_Zentral 1 unter Linux. Regedit ist nicht verfügbar.}}

---------------------------------------------------------[ Originalquelltext ]--

{\code{java}}

	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 ]--

{\code{java}}

	/* 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