• Keine Ergebnisse gefunden

Aufgabe1ObjektorientierteModellierung Aufgabe2Objektorientierte(Analyse,Modellierungund)Implementierung LösungvorschlagzumÜbungsblatt12:Software-EntwicklungI(WS2007/08) TUKaiserslautern

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufgabe1ObjektorientierteModellierung Aufgabe2Objektorientierte(Analyse,Modellierungund)Implementierung LösungvorschlagzumÜbungsblatt12:Software-EntwicklungI(WS2007/08) TUKaiserslautern"

Copied!
11
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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;

(2)

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

(3)

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;

(4)

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) {

(5)

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);

(6)

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 }

(7)

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() {

(8)

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

(9)

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) {

(10)

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;

}

(11)

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();

}

}

Referenzen

ÄHNLICHE DOKUMENTE

We give a formula for the crystal structure on the integer points of the string polytopes and the ∗-crystal structure on the integer points of the string cones of type A for

• In addition to the particles postulated by the standard model of particle physics, string theory naturally incorporates gravity, and so is a candidate for a theory of everything,

NOTE AC:14, 18 stand for the open vowels (front and back respectively) specifically marked in Marathi orthography and to some extent in Hindi orthography.. NOTE AD: 42 stands for

Dynamic Programming Algorithm Edit Distance Variants..

Edit distance between two strings: the minimum number of edit operations that transforms one string into the another. Dynamic programming algorithm with O (mn) time and O (m)

Dynamic Programming Algorithm Edit Distance Variants.. Augsten (Univ. Salzburg) Similarity Search WS 2019/20 2

E ine nachhaltige Herstellung von Treibstoffen und von Grund- stoffen für die chemische Industrie erfordert Prozesse, die ohne fossile Rohstoffe wie Erdöl auskommen. Verfahren,

Angenommen der binäre Suchbaum ist stark (d.h. maximal) entartet, auf welche Anzahl (minimal, maximal,.. durchschnittlich) von Vergleichen ändert sich