Prof. Dr. A. Poetzsch-Heffter Dipl.-Inform. J. O. Blech Dipl.-Inform. M. J. Gawkowski Dipl.-Inform. N. Rauch
TU Kaiserslautern
Fachbereich Informatik AG Softwaretechnik
Lösungvorschlag zum Übungsblatt 12:
Software-Entwicklung I (WS 2007/08)
Aufgabe 1 Objektorientierte Modellierung
a)
Fluss
Land Stadt
Meer * liegt in
1 fließt durch
* fließt durch *
*
* fließt in
*
1 fließt in *
1
(2 Punkte) b)
Fluss See
fließt in
*
Gewässer1
ruhendes Gewässer fließendes Gewässer
Bach Meer
(Die mittlere Hierarchiestufe bzw. die abstrakte Klasse ruhendes Gewässer müssen nicht unbe- dingt eingeführt werden.)
Die Generalisierung hat den Vorteil, dass die Be- ziehung nur einmal eingezeichnet werden muss.
Damit wird das Diagramm übersichtlicher und ent- spricht mehr der natürlichen Denkweise.
(2 Punkte)
Aufgabe 2 Objektorientierte (Analyse, Modellierung und) Implementierung
Die Klasse Buchung
1 package Flugbuchungssystem;
2
3 public class Buchung {
4 private String fluggesellschaft;
5 private String reisebuero;
6 private String kunde;
7 private String von;
8 private String nach;
9 private String wann;
10
11 public Buchung (String fluggesellschaft, String reisebuero, String kunde,
12 String von, String nach, String wann) {
13 this.fluggesellschaft = fluggesellschaft;
14 this.reisebuero = reisebuero;
15 this.kunde = kunde;
16 this.von = von;
17 this.nach = nach;
18 this.wann = wann;
19 }
20 public String getFluggesellschaft(){return fluggesellschaft;}
21 public String getReisebuero(){return reisebuero;}
22 public String getKunde(){return kunde;}
23 public String getVon(){return von;}
24 public String getNach(){return nach;}
25 public String getWann(){return wann;}
26 }
Die Klasse Flug
1 package Flugbuchungssystem;
2 import java.util.*;
3
4 public class Flug {
5 private String fluggesellschaft;
6 private String von;
7 private String nach;
8 private String wann;
9 private int kapazitaet;
10 private Vector buchungen;
11
12 public Flug (String fluggesellschaft, String von, String nach, String wann,
13 int kapazitaet) {
14 this.fluggesellschaft = fluggesellschaft;
15 this.von = von;
16 this.nach = nach;
17 this.wann = wann;
18 this.kapazitaet = kapazitaet;
19 this.buchungen = new Vector(kapazitaet);
20 }
21 public String getFluggesellschaft(){return fluggesellschaft;}
22 public String getVon(){return von;}
23 public String getNach(){return nach;}
24 public String getWann(){return wann;}
25 public int getKapazitaet(){return kapazitaet;}
26 public boolean ausgeschoepfteKapazitaet(){
27 return buchungen.size() == buchungen.capacity();
28 }
29 public boolean existiertBuchung(String reisebuero, String kunde){
30 boolean existiert = false;
31 for(int i = 0; i < buchungen.size(); i++) {
32 if ( ((Buchung)buchungen.get(i)).getKunde() == kunde &&
33 ((Buchung)buchungen.get(i)).getReisebuero() == reisebuero)
34 existiert = true;
35 }
36 return existiert;
37 }
38 public void einfuegenBuchung(Buchung buchung){
39 buchungen.addElement(buchung);
40 }
41 public void entfernenBuchung(String reisebuero, String kunde){
42 int i = 0;
43 while (((Buchung)buchungen.get(i)).getKunde() != kunde ||
44 ((Buchung)buchungen.get(i)).getReisebuero() != reisebuero ) {i++;}
45 buchungen.removeElementAt(i);
46 }
47 public Buchung getBuchung(String kunde){
48 int i = 0;
49 Buchung result;
50 while (((Buchung)buchungen.get(i)).getKunde() != kunde) {i++;}
51 result = (Buchung)buchungen.get(i);
52 return result;
53 }
54 55
56 }
Die Klasse Flugliniencomputer
1 package Flugbuchungssystem;
2 import java.util.*;
3
4 public class Flugliniencomputer {
5 private String serverID;
6 private String fluglinienname;
7 private Vector fluge;
8
9 public Flugliniencomputer (String serverID, String fluglinienname) {
10 this.serverID = serverID;
11 this.fluglinienname = fluglinienname;
12 this.fluge = new Vector(10,1);
13 }
14 public Flugliniencomputer (String serverID, String fluglinienname, Vector fluge) {
15 this.serverID = serverID;
16 this.fluglinienname = fluglinienname;
17 this.fluge = fluge;
18 }
19
20 private void einfuegenFlug(Flug flug){
21 fluge.addElement(flug);
22 }
23 private void entfernenFlug(Flug flug){
24 int i = 0;
25 while (((Flug)fluge.get(i)).getFluggesellschaft() != flug.getFluggesellschaft() ||
26 ((Flug)fluge.get(i)).getVon() != flug.getVon() ||
27 ((Flug)fluge.get(i)).getNach() != flug.getNach()
28 ) {i++;}
29 fluge.removeElementAt(i);
30 }
31
32 public String getServerID(){return serverID;}
33 public String getFluglinienname(){return fluglinienname;}
34 public Flug getFlug(String von, String nach, String wann){
35 int i = 0;
36 while ( ((Flug)fluge.get(i)).getVon() != von ||
37 ((Flug)fluge.get(i)).getNach() != nach ||
38 ((Flug)fluge.get(i)).getWann() != wann
39 ) {i++;}
40 return (Flug)fluge.get(i);
41 }
42 public boolean existiertFlug(String von, String nach, String wann){
43 boolean existiert = false;
44 for(int i = 0; i < fluge.size(); i++) {
45 if ( ((Flug)fluge.get(i)).getVon() == von &&
46 ((Flug)fluge.get(i)).getNach() == nach &&
47 ((Flug)fluge.get(i)).getWann() == wann )
48 existiert = true;
49 }
50 return existiert;
51 }
52 public boolean existiertfreierPlatz(Flug flug){
53 return flug.ausgeschoepfteKapazitaet();
54 }
55 public boolean existiertBuchung(Flug flug, String reisebuero, String kunde){
56 return flug.existiertBuchung(reisebuero,kunde);
57 }
58 public Buchung buchen(Flug flug, String reisebuero, String kunde){
59 Buchung neuebuchung = new Buchung(flug.getFluggesellschaft(),reisebuero,kunde,flug.getVon(),flug.getNach(),flug.getWann());
60 fluge.add(neuebuchung);
61 return neuebuchung;
62 }
63 public void stornieren(Flug flug, String reisebuero, String kunde){
64 flug.entfernenBuchung(reisebuero, kunde);
65 }
66 }
Die Klasse Kunde
1 package Flugbuchungssystem;
2 import java.util.*;
3
4 public class Kunde {
5 private String name;
6 private Vector die_reisebueromitarbeiter;
7 private Buchung buchung;
8
9 public Kunde(String name, Vector die_reisebueromitarbeiter) {
10 this.name = name;
11 this.die_reisebueromitarbeiter = die_reisebueromitarbeiter;
12 this.buchung = null;
13 }
14 public String getName(){return name;}
15 public void buche(String von, String nach, String wann, String fluglinie, String reisebuero){
16 boolean reisebuero_existiert = false;
17 for(int i = 0; i < die_reisebueromitarbeiter.size(); i++) {
18 if (((Mitarbeiter)die_reisebueromitarbeiter.get(i)).getReisebuero() == reisebuero)
19 reisebuero_existiert = true;
20 }
21 if (!reisebuero_existiert) {
22 System.out.println("Reisebuero "+reisebuero+" existiert nicht.");
23 return;
24 };
25 int i = 0;
26 while(((Mitarbeiter)die_reisebueromitarbeiter.get(i)).getReisebuero() != reisebuero){i++;}
27 Mitarbeiter mymitarbeiter = (Mitarbeiter)die_reisebueromitarbeiter.get(i);
28 if(mymitarbeiter.buchungmoeglich(von,nach,wann,fluglinie)){
29 Buchung mybuchung = mymitarbeiter.buchen(von,nach,wann,fluglinie,name);
30 System.out.println("Kunde "+name+" hat erfolgreich gebucht.");
31 }
32 else{
33 System.out.println("Kunde "+name+" konnte nicht buchen.");
34 }
35 }
36 public void storniereaktuelleBuchung(){
37 if(buchung==null){
38 System.out.println("Kunde "+name+" hat zur Zeit keine Buchung");
39 return;
40 }
41 String fluggesellschaft = buchung.getFluggesellschaft();
42 String reisebuero = buchung.getReisebuero();
43 String kunde = buchung.getKunde();
44 String von = buchung.getVon();
45 String nach = buchung.getNach();
46 String wann = buchung.getWann();
47 boolean reisebuero_existiert = false;
48 for(int i = 0; i < die_reisebueromitarbeiter.size(); i++) {
49 if (((Mitarbeiter)die_reisebueromitarbeiter.get(i)).getReisebuero() == reisebuero)
50 reisebuero_existiert = true;
51 }
52 if (!reisebuero_existiert) {
53 System.out.println("Stornieren nicht moeglich: Reisebuero "+reisebuero+" existiert nicht.");
54 return;
55 };
56 int i = 0;
57 while(((Mitarbeiter)die_reisebueromitarbeiter.get(i)).getReisebuero() != reisebuero){i++;}
58 Mitarbeiter mymitarbeiter = (Mitarbeiter)die_reisebueromitarbeiter.get(i);
59 if(mymitarbeiter.stornierenmoeglich(von,nach,wann,fluggesellschaft,kunde)){
60 mymitarbeiter.stornieren(von,nach,wann,fluggesellschaft,kunde);
61 buchung = null;
62 System.out.println("Kunde "+name+" hat seine Buchung erfolgreich storniert.");
63 }
64 else{
65 System.out.println("Kunde "+name+" konnte seine Buchung nicht stornieren.");
66 }
67 }
68
69 }
Die Klasse Mitarbeiter
1 package Flugbuchungssystem;
2 import java.util.*;
3
4 public class Mitarbeiter {
5 private String name;
6 private String reisebuero;
7 private Terminal terminal;
8
9 public Mitarbeiter(String name, String reisebuero, Terminal terminal) {
10 this.name = name;
11 this.reisebuero = reisebuero;
12 this.terminal = terminal;
13 }
14 public String getName(){return name;}
15 public String getReisebuero(){return reisebuero;}
16 public boolean buchungmoeglich(String von, String nach, String wann, String fluglinie){
17 if (!terminal.existiertFlug(von, nach, wann, fluglinie))
18 return false;
19 Flug flug = terminal.getFlug(von,nach,wann,fluglinie);
20 return !(terminal.ausgebuchterFlug(flug));
21 }
22 public Buchung buchen(String von,String nach, String wann, String fluglinie,String kunde){
23 Flug flug = terminal.getFlug(von,nach,wann,fluglinie);
24 return terminal.buchen(flug,kunde);
25 }
26 public boolean stornierenmoeglich(String von, String nach, String wann, String fluglinie, String kunde){
27 if (!terminal.existiertFlug(von,nach,wann,fluglinie))
28 return false;
29 Flug flug = terminal.getFlug(von,nach,wann,fluglinie);
30 return terminal.existiertBuchung(flug,kunde);
31 }
32 public void stornieren(String von, String nach, String wann, String fluglinie, String kunde){
33 Flug flug = terminal.getFlug(von,nach,wann,fluglinie);
34 terminal.stornierenBuchung(terminal.getBuchung(flug,kunde));
35 }
36
37 }
Die Klasse Terminal
1 package Flugbuchungssystem;
2 import java.util.*;
3
4 public class Terminal {
5 private String reisebuero;
6 private String terminalID;
7 private Vector die_flugliniencomputer;
8
9 public Terminal(String reisebuero, String terminalID, Vector die_flugliniencomputer) {
10 this.die_flugliniencomputer = die_flugliniencomputer;
11 }
12 public boolean existiertFlug(String von, String nach, String wann, String fluglinie){
13 boolean existiert = false;
14 for(int i = 0; i < die_flugliniencomputer.size(); i++) {
15 if ( ((Flugliniencomputer)die_flugliniencomputer.get(i)).getFluglinienname() == fluglinie &&
16 ((Flugliniencomputer)die_flugliniencomputer.get(i)).existiertFlug(von,nach,wann) )
17 existiert = true;
18 }
19 return existiert;
20 }
21 public boolean existiertBuchung(Flug flug, String kunde){
22 return flug.existiertBuchung(reisebuero,kunde);
23 }
24 public Flug getFlug(String von, String nach, String wann, String fluglinie){
25 int i = 0;
26 while ( ((Flugliniencomputer)die_flugliniencomputer.get(i)).getFluglinienname() == fluglinie){i++;}
27 Flug result = ((Flugliniencomputer)die_flugliniencomputer.get(i)).getFlug(von,nach,wann);
28 return result;
29 }
30 public boolean ausgebuchterFlug(Flug flug){
31 return flug.ausgeschoepfteKapazitaet();
32 }
33 public Buchung buchen(Flug flug, String kunde){
34 Buchung neuebuchung = new Buchung(flug.getFluggesellschaft(),
35 reisebuero,
36 kunde,
37 flug.getVon(),
38 flug.getNach(),
39 flug.getWann());
40 flug.einfuegenBuchung(neuebuchung);
41 return neuebuchung;
42 }
43 public Buchung getBuchung(Flug flug, String kunde){
44 return flug.getBuchung(kunde);
45 }
46 public void stornierenBuchung(Buchung buchung){
47 Flug flug = getFlug(buchung.getVon(),buchung.getNach(),buchung.getNach(),buchung.getFluggesellschaft());
48 flug.entfernenBuchung(reisebuero,buchung.getKunde());
49 }
50 }
Die Klasse Szenario
1 package Flugbuchungssystem;
2 import java.util.*;
3
4 public class Scenario {
5 private Flug flug_A_B_Mo_softfallair;
6 private Flug flug_A_B_Di_softfallair;
7 private Flug flug_A_B_Mo_hartfallair;
8 private Flug flug_A_B_Di_hartfallair;
9 private Vector fluge_softfallair;
10 private Vector fluge_hartfallair;
11 private Flugliniencomputer comp_softfallair;
12 private Flugliniencomputer comp_hartfallair;
13 private Vector die_flugliniencomputer;
14
15 private Terminal terminal_lasthour;
16 private Terminal terminal_flyingdiscounter;
17
18 private Mitarbeiter mitarbeiter_lasthour;
19 private Mitarbeiter mitarbeiter_flyingdiscounter;
20 private Vector die_reisebueromitarbeiter;
21
22 private Kunde hans;
23 private Kunde maria;
24 private Kunde anton;
25 private Kunde marco;
26
27 public Scenario(){
28 flug_A_B_Mo_softfallair = new Flug("SoftFall-Air","A","B","Mo",2);
29 flug_A_B_Di_softfallair = new Flug("SoftFall-Air","A","B","Di",2);
30 fluge_softfallair = new Vector(2,1);
31 fluge_softfallair.addElement(flug_A_B_Mo_softfallair);
32 fluge_softfallair.addElement(flug_A_B_Di_softfallair);
33 comp_softfallair = new Flugliniencomputer("server.softfall.fluglinien.de","SoftFall-Air",fluge_softfallair);
34
35 flug_A_B_Mo_hartfallair = new Flug("HartFall-Air","A","B","Mo",2);
36 flug_A_B_Di_hartfallair = new Flug("HartFall-Air","A","B","Di",2);
37 fluge_hartfallair = new Vector(2,1);
38 fluge_hartfallair.addElement(flug_A_B_Mo_hartfallair);
39 fluge_hartfallair.addElement(flug_A_B_Di_hartfallair);
40 comp_hartfallair = new Flugliniencomputer("server.fluglinien.de","HartFall-Air",fluge_hartfallair);
41
42 die_flugliniencomputer = new Vector(2,1);
43 die_flugliniencomputer.addElement(comp_softfallair);
44 die_flugliniencomputer.addElement(comp_hartfallair);
45
46 terminal_lasthour = new Terminal("LastHour","Terminal1",die_flugliniencomputer);
47 terminal_flyingdiscounter = new Terminal("Flying-Discounter","Terminal1",die_flugliniencomputer);
48
49 mitarbeiter_lasthour = new Mitarbeiter("Nowak","LastHour",terminal_lasthour);
50 mitarbeiter_flyingdiscounter = new Mitarbeiter("Kowalski","Flying-Discounter",terminal_flyingdiscounter);
51 die_reisebueromitarbeiter = new Vector(2,1);
52 die_reisebueromitarbeiter.addElement(mitarbeiter_lasthour);
53 die_reisebueromitarbeiter.addElement(mitarbeiter_flyingdiscounter);
54
55 hans = new Kunde("Hansen",die_reisebueromitarbeiter);
56 maria = new Kunde("Maroni",die_reisebueromitarbeiter);
57 anton = new Kunde("Antoni",die_reisebueromitarbeiter);
58 marco = new Kunde("Marconi",die_reisebueromitarbeiter);
59 }
60 public Kunde getKunde(String kunde) throws Exception {
61 if(kunde == "Hans Hansen"){
62 return hans;
63 }
64 else if (kunde == "Maria Maroni"){
65 return maria;
66 }
67 else if (kunde == "Anton Antoni"){
68 return anton;
69 }
70 else if (kunde == "Marco Marconi"){
71 return marco;
72 }
73 else {
74 throw new Exception ("Kunde "+kunde+" existiert nicht.");
75 }
76 }
77
78 public static void main(String args[]) throws Exception{
79 Scenario scenario = new Scenario();
80 Kunde hans_hansen = scenario.getKunde("Hans Hansen");
81 Kunde maria_maroni = scenario.getKunde("Maria Maroni");
82 Kunde anton_antoni = scenario.getKunde("Anton Antoni");
83 Kunde marco_marconi = scenario.getKunde("Marco Marconi");
84
85 hans_hansen.buche("A","B","Mo","SoftFall-Air","LastHour");
86 maria_maroni.buche("A","B","Mo","SoftFall-Air","LastHour");
87 anton_antoni.buche("A","B","Di","HartFall-Air","Flying-Discounter");
88 marco_marconi.buche("A","B","Mo","SoftFall-Air","LastHour");
89 hans_hansen.storniereaktuelleBuchung();
90 }
91
92 }
Aufgabe 3 Exceptions
1 import java.io.*;
2 3
4 class Vector {
5 int x;
6 int y;
7 Vector(int a, int b){
8 x=a;
9 y=b;
10 }
11 }
12 13
14 class Frame {
15 int length;
16 int height;
17 ObjectList ol;
18 boolean first;
19 Frame(){
20 length = 0;
21 height = 0;
22 // ol= new ObjectList();
23 first=true;
24 }
25 Frame(int x, int y){
26 length = x;
27 height = y;
28 // ol= new ObjectList();
29 first=true;
30 }
31 void set_length(int i){ length=i; }
32 void set_height(int i){ height=i; }
33 int get_length(){ return length; }
34 int get_height(){ return height; }
35 Frame insert(Vector v) {
36 if( first ) {
37 ol = new ObjectList(v);
38 first=false;
39 } else {
40 ol = ol.append(v);
41 }
42 return this;
43 }
44 public String toString() {
45 int [][] a = new int [length] [height];
46 ObjectList tmp = ol;
47 if(tmp!=null){
48 while (tmp != null) {
49 a[((Vector)tmp.fst).x][((Vector)tmp.fst).y]=1;
50 tmp=tmp.rst;
51 }
52 }
53
54 String res = "";
55 for(int y=(height-1);0<=y;y--){
56 res = res + " " + y;
57 for(int x=0;x<length;x++){
58 if(a[x][y] == 1){
59 res = res + "x";
60 } else {
61 res = res + "-";
62 }
63 }
64 res = res + "\n";
65 }
66 res = res + " " + "X";
67 for(int x=0;x<length;x++){
68 res = res + x;
69 }
70 res = res + "\n";
71
72 return res;
73 }
74
75 } // class Frame
76 77 78
79 class ObjectList {
80 Object fst;
81 ObjectList rst;
82
83 ObjectList(){};
84 ObjectList(Object obj){ fst = obj; rst = null; }
85 ObjectList(Object obj, ObjectList l){ fst = obj; rst = l; }
86
87 ObjectList empty(){ return new ObjectList(); }
88
89 ObjectList setfst(Object obj){
90 fst=obj;
91 return this;
92 }
93 ObjectList append(Object obj){
94 return new ObjectList(obj,this);
95 }
96 Object hd(){ return fst; }
97 ObjectList tl(){ return rst; }
98
99 public String toString(){
100 String res = "[";
101 ObjectList tmp = this;
102 while (tmp.rst != null) {
103 res = res + tmp.fst + ",";
104 tmp = tmp.rst;
105 }
106 res = res + tmp.fst + "]";
107 return res;
108 }
109 } // class ObjectList
110
111 public class Main { // public class Main
112 static Frame f = new Frame();
113 static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
114 115
116 public static void main(String [] args) {
117
118 // ObjectList vl = new ObjectList();
119 // boolean first = true;
120
121 String line = "";
122
123 // int x_coord;
124 // int y_coord;
125 System.out.println("Vectorframe-Verwalter version 1.0:");
126 for(;;){
127 System.out.println("Bitte geben Sie die Länge des Rahmens x (0<=x<10) "+
128 "oder \"q\", um abzubrechen, ein:");
129 try{
130 line = in.readLine();
131 if(line.equals("q")){
132 System.exit(0);
133 }
134 if(line == null){
135 System.out.println("Die Angabe ist nicht korrekt");
136 continue;
137 }
138 f.set_length(Integer.parseInt(line));
139 break;
140
141 } catch (Exception e) {
142 System.out.println(line + "ist keine gültige Eingabe");
143 }
144 }
145
146 for(;;){
147 System.out.println("Bitte geben Sie die Höhe des Rahmens x (0<=x<10) "+
148 "oder \"q\", um abzubrechen, ein:");
149 try{
150 line = in.readLine();
151 if(line.equals("q")){
152 System.exit(0);
153 }
154 if(line == null){
155 System.out.println("Die Angabe ist nicht korrekt");
156 continue;
157 }
158 f.set_height(Integer.parseInt(line));
159 break;
160 } catch (Exception e) {
161 System.out.println(line + "Die Angabe ist nicht korrekt");
162 }
163 }
164
165 System.out.println(f);
166
167 for(;;){
168 f = f.insert(new Vector(read_x_coord(),read_y_coord()));
169 System.out.println(f);
170 }
171
172 } // methode main
173
174 static int read_x_coord (){
175 String line = "";
176 System.out.println("Bitte geben Sie die x-Koordinate "+
177 "oder \"q\", um abzubrechen, ein:");
178 for(;;){
179 try{
180 line = in.readLine();
181 if(line.equals("q")){
182 System.exit(0);
183 }
184 if(line == null){
185 System.out.println("Die Angabe ist nicht korrekt");
186 continue;
187 }
188
189 int res = Integer.parseInt(line);
190 if(!(0<=res && res<f.get_length())){
191 System.out.println("Die Angabe ist nicht korrekt");
192 continue;
193 } else {
194 return res;
195 }
196 } catch (Exception e) {
197 System.out.println(line + "Die Angabe ist nicht korrekt");
198 }
199 }
200 } // method read_x_coord
201
202 static int read_y_coord (){
203 String line = "";
204 System.out.println("Bitte geben Sie die y-Koordinate "+
205 "oder \"q\", um abzubrechen, ein:");
206 for(;;){
207 try{
208 line = in.readLine();
209 if(line.equals("q")){
210 System.exit(0);
211 }
212 if(line == null){
213 System.out.println("Die Angabe ist nicht korrekt");
214 continue;
215 }
216
217 int res = Integer.parseInt(line);
218 if(!(0<=res && res<f.get_height())){
219 System.out.println("Die Angabe ist nicht korrekt");
220 continue;
221 } else {
222 return res;
223 }
224 } catch (Exception e) {
225 System.out.println(line + "Die Angabe ist nicht korrekt");
226 }
227 }
228 } // method read_y_coord
229
230 } // class Main
231 232 233 234
Aufgabe 4 Störe meine Kreise nicht
class Figure { int x;
int y;
int color;
int diameter;
String name;
public Figure(String name, int x, int y, int c, int d) { this.name = name;
this.x = x;
this.y = y;
color = c;
diameter = d;
}
public void moveX (int x) { this.x += x;
}
public void moveY (int y) { this.y += y;
}
public void moveXY (int x, int y) { this.x += x;
this.y += y;
}
public void setColor (int c) { color = c;
}
public void setDiameter (int d) { diameter = d;
}
public void draw(SEGraphics seg) { seg.drawCircle(x,y,diameter,color);
seg.drawString(name,x,y,0);
} }
public class DrawEdit extends InputOutput { public static int MAXFIGURE = 20;
SEGraphics seg;
Figure[] figures;
public DrawEdit () {
seg = new SEGraphics();
figures = new Figure[MAXFIGURE];
while(true) {
println("Wollen Sie 1) eine Figure Anlegen? 2) eine Figure verschieben? 3) aufhören?");
switch (readInt()) { case 1: {
println("Welche Figure wollen Sie anlegen?");
int j = readInt();
println("X-Coordinate?");
int x = readInt();
println("Y-Coordinate?");
int y = readInt();
println("Farbe?");
int c = 255*readInt();
figures[j] = new Figure("Figure "+j,x,y,c,10);
break; } case 2: {
println("Welche Figure wollen Sie verschieben?");
int j = readInt();
println("rel. X-Coordinate?");
int x = readInt();
println("rel. Y-Coordinate?");
int y = readInt();
figures[j].moveXY(x,y);
break; }
default: return;
} draw();
}
// seg.drawCircle(20,50,10,255);
//seg.drawLine(20,50,20,80,255*255);
//seg.clear();
//seg.drawString("Hallo",20,50,255*255*255);
}
public void draw() { seg.clear();
for (int i = 0; i < MAXFIGURE;i++) { if (figures[i]!=null)
figures[i].draw(seg);
} }
public static void main (String[] args) { new DrawEdit();
}
}