Compare commits
61 Commits
e02dbb1894
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 5023c8614a | |||
| 1f949e0034 | |||
| 3b71cfc812 | |||
| 1e14c24e6a | |||
| 2a220f0c59 | |||
| db153e2883 | |||
| b7c7f0b870 | |||
| e488d8a241 | |||
| a4789cd594 | |||
| e054b82c6d | |||
| 732d29fefe | |||
| 2030e6e5be | |||
| f2113866fb | |||
| 7ce321ed58 | |||
| 7251b4a4fe | |||
| 57667d9787 | |||
| 7e879fed38 | |||
| a3e42d2d9d | |||
| 12357e9a91 | |||
| 68932c43f4 | |||
| 836fa81365 | |||
| fecdf379af | |||
| 137233e22f | |||
| 1ad5c174be | |||
| 7ac9e38d45 | |||
| e070913513 | |||
| 15c2e13fda | |||
| 6ef295a777 | |||
| c2aa6704c0 | |||
| d71cf32c35 | |||
| 255b72506c | |||
| b4f3fc83d2 | |||
| d7fa97afe8 | |||
| cd0a5b6b85 | |||
| a74a2281b2 | |||
| b72a8ef71f | |||
| c2ef05847b | |||
| 49c470939a | |||
| 4325fc8e1c | |||
| 0755b58307 | |||
| bc45b53b93 | |||
| 0576fbdcb5 | |||
| a0164f7861 | |||
| 39450ddfaa | |||
| 82c2908d49 | |||
| 4bd30c51c6 | |||
| 63a625e947 | |||
| f0257b1d82 | |||
| 3b2aefd614 | |||
| 08b7b3c26d | |||
| 5fcbb75617 | |||
| 50872fd681 | |||
| 9e1a2e5d52 | |||
| 3ea0be648a | |||
| f6a171d128 | |||
| 84aaab8cbe | |||
| 81a6b4dca1 | |||
| eb2ad89dbb | |||
| 9116a70e82 | |||
| 4d5a683eff | |||
| bf41852193 |
84
11fi5/AWP/2021-07-22 Prüfungsaufgaben.sql
Normal file
84
11fi5/AWP/2021-07-22 Prüfungsaufgaben.sql
Normal file
@ -0,0 +1,84 @@
|
||||
#A
|
||||
#1
|
||||
|
||||
SELECT * FROM Artikel
|
||||
WHERE LOWER(Art_Bezeichnung) LIKE "%schmerzmittel%";
|
||||
|
||||
#2
|
||||
|
||||
SELECT Kunde.*, SUM(RgPos_Menge*RgPos_Preis) FROM Kunde
|
||||
JOIN Rechnung ON Kunde.Kd_Id = Rechnung.Rg_KdId
|
||||
JOIN RechnungPosition ON Rechnung.Rg_Id = RechnungPosition.RgPos_RgID
|
||||
GROUP BY Kunde.Kd_Id
|
||||
ORDER BY SUM(RgPos_Menge*RgPos_Preis) DESC;
|
||||
|
||||
#3
|
||||
|
||||
SELECT Art_Id, Art_Nummer, Art_Bezeichnung, Art_Preis,
|
||||
SUM(RechnungPosition.RgPos_Menge) AS MengeGesamt,
|
||||
COUNT(RechnungPosition.RgPos_Id) AS AnzahlRechPos FROM Artikel
|
||||
JOIN RechnungPosition ON Artikel.Art_Id = RechnungPosition.RgPos_ArtId
|
||||
GROUP BY Art_Id;
|
||||
|
||||
#4
|
||||
|
||||
SELECT LEFT(Kunde.Kd_PLZ, 1) AS Gebiet, SUM(RgPos_Menge*RgPos_Preis) AS Umsatz FROM Kunde
|
||||
LEFT JOIN Rechnung ON Kunde.Kd_Id = Rechnung.Rg_KdId
|
||||
LEFT JOIN RechnungPosition ON Rechnung.Rg_Id = RechnungPosition.RgPos_RgID
|
||||
GROUP BY LEFT(Kunde.Kd_PLZ, 1)
|
||||
ORDER BY SUM(RgPos_Menge*RgPos_Preis) DESC;
|
||||
|
||||
#B
|
||||
#1
|
||||
CREATE TABLE Lieferant (
|
||||
Lieferer_Nr INT AUTO_INCREMENT,
|
||||
Firma VARCHAR(30),
|
||||
Strasse VARCHAR(30),
|
||||
PLZ VARCHAR(10),
|
||||
Ort VARCHAR(30),
|
||||
BLZ VARCHAR(30),
|
||||
Konto_Nr VARCHAR(30),
|
||||
PRIMARY KEY(Lieferer_Nr),
|
||||
FOREIGN KEY(BLZ) REFERENCES Bank(BLZ)
|
||||
);
|
||||
|
||||
#2
|
||||
ALTER TABLE Lieferant
|
||||
ADD Telefonnummer VARCHAR(30);
|
||||
|
||||
#3
|
||||
ALTER TABLE Artikel
|
||||
MODIFY Artikelnummer INT PRIMARY KEY;
|
||||
|
||||
#4
|
||||
DELETE FROM Lieferant
|
||||
WHERE Lieferant.Lieferer_Nr = 2;
|
||||
|
||||
#5
|
||||
SELECT Artikel.*, Lieferant.* FROM Artikel
|
||||
LEFT JOIN Artikel_Lieferbeziehung ON Artikel.Artikel_Nr = Artikel_Lieferbeziehung.Artikel_Nr
|
||||
LEFT JOIN Lieferant.Lieferer_Nr = Artikel_Lieferbeziehung.Lieferer_Nr;
|
||||
|
||||
#6
|
||||
DROP TABLE Artikel;
|
||||
#Eine Tabelle die an anderen Stellen referenziert wird
|
||||
#kann nicht gelöscht werden ohne die Datenintegrität zu zerstören
|
||||
|
||||
#7
|
||||
INSERT INTO Artikel(Artikel_Nr, Artikel, Bestand, Meldebestand) VALUES
|
||||
(111, "PC", 10, 4);
|
||||
|
||||
#8
|
||||
UPDATE Artikel SET Artikel="PC Klasse" WHERE Artikel_Nr=111;
|
||||
|
||||
#9
|
||||
SELECT Lieferant.*, Artikel.* FROM Lieferant
|
||||
LEFT JOIN Artikel_Lieferbeziehung ON Lieferant.Lieferer_Nr = Artikel_Lieferbeziehung.Lieferer_Nr;
|
||||
LEFT JOIN Artikel ON Artikel.Artikel_Nr = Artikel_Lieferbeziehung.Artikel_Nr;
|
||||
|
||||
#10
|
||||
SELECT Artikel.Artikel FROM Artikel
|
||||
JOIN Artikel_Lieferbeziehung ON Artikel.Artikel_Nr = Artikel_Lieferbeziehung.Artikel_Nr
|
||||
WHERE Artikel_Lieferbeziehung.Einkaufspreis = (
|
||||
SELECT MAX(Artikel_Lieferbeziehung.Einkaufspreis) FROM Artikel_Lieferbeziehung
|
||||
);
|
||||
46
11fi5/AWP/2021-07-23 Rechnungen.md
Normal file
46
11fi5/AWP/2021-07-23 Rechnungen.md
Normal file
@ -0,0 +1,46 @@
|
||||
# Rechnungserstellung
|
||||
|
||||
## Tabellen
|
||||
|
||||
|Kunden||
|
||||
|-|-|
|
||||
|KundenNr|INT PRIMARY KEY|
|
||||
|Name|VARCHAR(24)|
|
||||
|Straße|VARCHAR(24)|
|
||||
|Hausnummer|INT|
|
||||
|PLZ|VARCHAR(10)|
|
||||
|Ort|VARCHAR(24)|
|
||||
|
||||
|Rechnungen||
|
||||
|-|-|
|
||||
|Nummer|INT PRIMARY KEY|
|
||||
|Datum|DATE|
|
||||
|KundenNr|INT FOREIGN KEY -> Kunden(KundenNr)|
|
||||
|
||||
|Position||
|
||||
|-|-|
|
||||
|ID|INT PRIMARY KEY|
|
||||
|Rechnung|INT FOREIGN KEY -> Rechnungen(Nummer)|
|
||||
|AuftragsNummer|INT|
|
||||
|Kurier-ID|VARCHAR(10)|
|
||||
|Art|INT|
|
||||
|Datum|DATE|
|
||||
|Lieferzeit|TIME|
|
||||
|
||||
|Preiselement||
|
||||
|-|-|
|
||||
|ID|INT PRIMARY KEY|
|
||||
|PositionID|INT FOREIGN KEY -> Position(ID)|
|
||||
|Art|INT FOREIGN KEY -> Preisart(ID)|
|
||||
|Menge|FLOAT|
|
||||
|
||||
|Preisart||
|
||||
|-|-|
|
||||
|ID|INT PRIMARY KEY|
|
||||
|Beschreibung|VARCHAR(36)|
|
||||
|EinheitID|INT FOREIGN KEY -> Einheiten(ID)|
|
||||
|
||||
|Einheiten||
|
||||
|-|-|
|
||||
|ID|INT PRIMARY KEY|
|
||||
|Einheit|VARCHAR(8)|
|
||||
38
11fi5/AWP/2021-07-29 User.sql
Normal file
38
11fi5/AWP/2021-07-29 User.sql
Normal file
@ -0,0 +1,38 @@
|
||||
#1
|
||||
CREATE USER Zilles;
|
||||
CREATE USER Steinam;
|
||||
CREATE USER Zobel;
|
||||
CREATE USER Lange;
|
||||
|
||||
#2
|
||||
SELECT * FROM mysql.user;
|
||||
|
||||
#3
|
||||
GRANT UPDATE('Position') ON nordwind.Personal TO Steinam;
|
||||
|
||||
#4
|
||||
GRANT SELECT ON nordwind.* TO Lange;
|
||||
|
||||
#5
|
||||
GRANT ALL PRIVILEGES ON *.* TO Zilles;
|
||||
|
||||
#6
|
||||
GRANT INSERT, UPDATE ON nordwind.Kunden TO Zobel;
|
||||
|
||||
#7
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
#8
|
||||
SELECT * FROM mysql.user
|
||||
WHERE User = 'Lange';
|
||||
#alternativ
|
||||
SHOW GRANTS FOR Lange;
|
||||
|
||||
#9
|
||||
REVOKE SELECT ON nordwind.* FROM Lange;
|
||||
|
||||
#10
|
||||
REVOKE ALL PRIVILEGES ON *.* FROM Zilles;
|
||||
|
||||
#11
|
||||
DROP USER Zobel;
|
||||
6
11fi5/AWP/Kosidas/Kosidas JOIN.sql
Normal file
6
11fi5/AWP/Kosidas/Kosidas JOIN.sql
Normal file
@ -0,0 +1,6 @@
|
||||
USE kosidasdb;
|
||||
|
||||
SELECT Artikel.ArtikelID, Artikel.Bezeichnung, Farbe.Bezeichnung as Farbe, IF(ISNULL(Posten.Anzahl) = 0, SUM(Posten.Anzahl), 0) AS Bestellungen FROM Artikel
|
||||
JOIN Farbe ON Farbe.Farbcodes = Artikel.Farbe
|
||||
LEFT JOIN Posten ON Artikel.ArtikelID = Posten.ArtikelID
|
||||
GROUP BY Artikel.ArtikelID;
|
||||
74
11fi5/AWP/Nordwind/Nordwind JOINS.sql
Normal file
74
11fi5/AWP/Nordwind/Nordwind JOINS.sql
Normal file
@ -0,0 +1,74 @@
|
||||
#2021-05-20 Übungen Nordwind
|
||||
USE nordwind;
|
||||
|
||||
#a. Wie lange dauert der Versand im Schnitt bei unseren Versandfirmen?
|
||||
SELECT v.Firma, AVG(DATEDIFF(Lieferdatum, Versanddatum)) FROM versandfirmen v
|
||||
JOIN bestellungen b ON b.`VersandÜber` = v.FirmenNr
|
||||
GROUP BY b.`VersandÜber`;
|
||||
|
||||
#b. Erstellen Sie eine Liste, wie hoch die Frachtkosten unserer Versandfirmen 1996 insgesamt waren.
|
||||
SELECT v.Firma, SUM(Frachtkosten) FROM versandfirmen v
|
||||
JOIN bestellungen b ON b.`VersandÜber` = v.FirmenNr
|
||||
WHERE YEAR(b.Bestelldatum) = 1996
|
||||
GROUP BY b.`VersandÜber`;
|
||||
|
||||
#c. Erstellen Sie eine Liste der Kunden(Kundenname), deren Waren noch nicht versendet wurden.
|
||||
SELECT DISTINCT k.Firma, k.Kontaktperson FROM kunden k
|
||||
JOIN bestellungen b ON b.KundenCode = k.KundenCode
|
||||
WHERE b.Versanddatum IS NULL;
|
||||
|
||||
#d. Ermitteln Sie, wie oft unsere Kunden 1998 im Mittel bestellt haben.
|
||||
#gesamt
|
||||
SELECT AVG(Bestellzahl) FROM (
|
||||
SELECT k.Firma, COUNT(b.BestellNr) as Bestellzahl FROM kunden k
|
||||
JOIN bestellungen b ON b.KundenCode = k.KundenCode
|
||||
WHERE YEAR(b.Bestelldatum) = 1998
|
||||
GROUP BY b.KundenCode
|
||||
) bestellcount;
|
||||
|
||||
#pro Kunde
|
||||
SELECT k.Firma, COUNT(b.BestellNr) as Bestellzahl FROM kunden k
|
||||
JOIN bestellungen b ON b.KundenCode = k.KundenCode
|
||||
WHERE YEAR(b.Bestelldatum) = 1998
|
||||
GROUP BY b.KundenCode;
|
||||
|
||||
#e. Stellen Sie fest, wie hoch der Bestellwert des Kunden LILA Supermercado 1996 jeweils bei Bestellungen über 1000,00€ war.
|
||||
#Geben Sie Bestellnummer, Bestellwert und Bestelldatum an.
|
||||
SELECT b.BestellNr, SUM(d.Einzelpreis * d.Anzahl * (1-d.Rabatt)) as Bestellwert, b.Bestelldatum FROM kunden k
|
||||
JOIN bestellungen b ON b.KundenCode = k.KundenCode
|
||||
JOIN bestelldetails d ON d.BestellNr = b.BestellNr
|
||||
WHERE k.Firma = "LILA-Supermercado"
|
||||
AND YEAR(Bestelldatum) = 1996
|
||||
GROUP BY b.BestellNr
|
||||
HAVING SUM(d.Einzelpreis * d.Anzahl * (1-d.Rabatt)) > 1000;
|
||||
|
||||
#f. Stellen Sie fest, wie viele Sendungen in die USA gingen.
|
||||
SELECT COUNT(*) FROM bestellungen
|
||||
WHERE Bestimmungsland = "USA";
|
||||
|
||||
#g. Ermitteln Sie, wie viele verschiedene Länder wir beliefern.
|
||||
SELECT COUNT(DISTINCT Bestimmungsland) FROM bestellungen;
|
||||
|
||||
#h. Berechnen Sie, wie viel Umsatz wir mit skandinavischen Lieferanten insgesamt machen.
|
||||
SELECT SUM(d.Einzelpreis * d.Anzahl * (1-d.Rabatt)) as Umsatz FROM bestellungen b
|
||||
JOIN bestelldetails d ON b.BestellNr = d.BestellNr
|
||||
JOIN artikel a ON d.ArtikelNr = a.ArtikelNr
|
||||
JOIN lieferanten l ON a.LieferantenNr = l.LieferantenNr
|
||||
WHERE l.Land IN ("Dänemark", "Norwegen", "Finnland", "Schweden");
|
||||
|
||||
#i
|
||||
SELECT kunden.Firma, Kontaktperson, MAX(DATEDIFF(Lieferdatum, Bestelldatum)), versandfirmen.Firma FROM kunden
|
||||
JOIN bestellungen ON kunden.KundenCode = bestellungen.KundenCode
|
||||
JOIN versandfirmen ON versandfirmen.FirmenNr = bestellungen.`VersandÜber`
|
||||
WHERE DATEDIFF(Lieferdatum, Bestelldatum) > 10
|
||||
AND YEAR(Bestelldatum) = 1996
|
||||
AND versandfirmen.Firma = "Speedy Express"
|
||||
GROUP BY kunden.KundenCode;
|
||||
|
||||
#j
|
||||
SELECT kunden.Firma, Kontaktperson, DATEDIFF(Lieferdatum, Bestelldatum) FROM kunden
|
||||
JOIN bestellungen ON kunden.KundenCode = bestellungen.KundenCode
|
||||
WHERE DATEDIFF(Lieferdatum, Bestelldatum) = (
|
||||
SELECT MAX(DATEDIFF(Lieferdatum, Bestelldatum)) FROM kunden
|
||||
JOIN bestellungen ON kunden.KundenCode = bestellungen.KundenCode
|
||||
);
|
||||
1
11fi5/AWP/Rechnungen_ER.drawio
Normal file
1
11fi5/AWP/Rechnungen_ER.drawio
Normal file
@ -0,0 +1 @@
|
||||
<mxfile host="Electron" modified="2021-07-26T12:06:46.045Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="VoBmt9-26_Rpmf-mw9aE" version="14.6.13" type="device"><diagram id="R2lEEEUBdFMjLlhIrx00" name="Page-1">7VxbT+M4FP41kXYfBjW3tvPY64IoDAK0c3kzjZt4SeLKcYaWX7/HiU1a3NIykxBGWKogPjlO4vOdiz/HreWOktU/DC2jCxrg2HI6wcpyx5bj9Lt9+CsE61Lgd9xSEDISlCK7EtyQRyyFHSnNSYCzLUVOaczJcls4p2mK53xLhhijD9tqCxpv33WJQqwJbuYo1qVfScAjOSy/U8lPMQkjdWe7I88kSClLQRahgD5sifCKT2nK5SNeYZagFKcczlwgdo+Z5U8izsVIB5Yzhc9CaJ+ElIYxRkuSncxpAuJ5BirTBUpILMy8caGhvBDczp1Y7ohRysujZDXCsYBKwVA+03TP2Sc7MHHdIzr46L43esTka8+P2CT9fkfJj0+2BP8ninNp4PM8DXAqTcTXyu7ZA0liGITlDsWgb+SZDrTnEYmDGVrTXDxIxtH8XrWGEWXkEfRRDKdsEMBpxqVbOd0tjRvRU16T4Qx0rtTo7GeiC7TaUpyhjKunoXGMlhm5K55PdEwQC0k6pJwDOKWSHDVmHK/22tN+QgmCCdMEc7YGFdnhyWnWz9oPlVvanpRFmy7Zd2Q4SD8Ln65dwQcHEsHXoOlpaF6dQ/sSJRj+nV3earDC+HmBCqP3eERjykCe0hJnEsfPRCgmYQrNGC9EN2FAArE5kGJOl+JiSzQnaTgrdMZeJbmWRhAiCn0XcRF/EQmExwGWlCOO7p4ca0mJDEZ/CB+w5ahz4ls+PPgI2nbVho9QZ3xEUxgLIgWGGLziAQvP2PJZ+yj0X4gX3SeUD3SPcwGlV78H+JoHSPD/HVyPTgfXfzne3x/WCRrD3Xfaxr2r4X4DFrBGrvV5auBvGP5ev234exr8pyjP0jxJxFzjQ2f+xlC3O17bsPf1ej/7sRHtdsdEe/24u0dO9JrD/bOG+xfGTZZvGHe/7dmdYhgbuF/jeZTmaWgY22HG5nm/ythUpq8fUVtDtGRspnLXxtlKlN8vZ3MczQfGiOcJiMaD28mHhb8xxFtna46+6jYVUV8uvV2auK/i3mnMC1onbY5O2q5oRjihppYfrOXd7i/WcqfTbwrPHWxMRPXZ2MRzLXW8987ruM7KiqyupujGC2rJ6i97Qeu13dU52iBfgEHC7MMX9sZQb72WuzqPO88ZwexTkf3NelyD4Le/DuvqDG5QrMeZYG8C79bXX12dvxnG3ijkrS+9enqCnxG8wAwURaTfnl0Y3OvHXW2VaS/Ud2ypYZhkOMZJsaHLEPXXEXWvd+yiu0rz9WOqb5IxRL1Gol7GzPsl6q6+WaYg6mr1zfhBPVT9gB+0T9X1BdjCD8zc/W0coH3Wrq/YXuA0FPvlprMvg4+Lf2OQt8/VPZ27TUgKt+ZmC8Xh2dzzTe9Hz+Z6Tb118fbseTdFvJ7JnPfOd7x7+mRexvPGumvfLLvWjnzr0zdvx/tWQc0RM7T8YCL3jknk/TfdC+fp709NJq8zk/dfncl3OUBj8ay+wrmB/xBn8whi+q58fW62N/9WPn8Z/135/G3x15fYCzouy7lJA/WQ8gNusIuUv60beBrCOAixGjkYKKIhTVE8qaRgdrF1MpBGr3RmVMBZ1NH/MOdrWbpRzqko3jxRhR2vCP+2cfxdXAqAKVtjVa+Lxlo1Uhjvt83GRi/RrLoVrapfMBDfhIfm5DpB6bqUTYkw1EaBF8N+ubyDlWjO5viIqgoTlxC/yNz3vIphOEac/Nx+kvpR7/5xqNvvGHW1F/Ew6t1WUe/9cajXHusFpVA6skYVsoY8wz7SM8rtjK15xmfjGTWirn4Z4jDqe0j/26Cu3hUb1Oup/cei7u9ZLPhd1KFZ/cBNcW7jR4ncyf8=</diagram></mxfile>
|
||||
BIN
11fi5/AWP/Rechnungen_ER.png
Normal file
BIN
11fi5/AWP/Rechnungen_ER.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 96 KiB |
48
11fi5/AWP/Verein/Verein JOINS 2021-06-18.sql
Normal file
48
11fi5/AWP/Verein/Verein JOINS 2021-06-18.sql
Normal file
@ -0,0 +1,48 @@
|
||||
USE verein;
|
||||
|
||||
--a
|
||||
SELECT spieler.name FROM spieler
|
||||
JOIN strafen ON spieler.spielernr = strafen.spielernr
|
||||
WHERE spieler.ort = "Düsseldorf";
|
||||
|
||||
--b
|
||||
SELECT teams.liga, spieler.name FROM spieler
|
||||
JOIN wettkaempfe ON wettkaempfe.spielernr = spieler.spielernr
|
||||
JOIN teams ON wettkaempfe.teamnr = teams.teamnr;
|
||||
|
||||
--c
|
||||
SELECT spieler.name, teams.teamnr, teams.liga FROM spieler
|
||||
LEFT JOIN teams ON spieler.spielernr = teams.captain;
|
||||
|
||||
--d
|
||||
SELECT sum(wettkaempfe.gewonnen + wettkaempfe.verloren) FROM teams
|
||||
JOIN wettkaempfe ON wettkaempfe.teamnr = team.teamnr;
|
||||
|
||||
--e
|
||||
SELECT max(strafen.betrag) FROM spieler
|
||||
JOIN teams ON spieler.spielernr = teams.captain
|
||||
JOIN strafen ON spieler.spielernr = strafen.spielernr
|
||||
WHERE year(strafen.datum) = year(now())
|
||||
AND date(strafen.datum) >= 6;
|
||||
|
||||
--f
|
||||
SELECT teams.liga, sum(strafen.betrag) FROM teams
|
||||
JOIN wettkaempfe ON teams.teamnr = wettkaempfe.teamnr
|
||||
JOIN spieler ON wettkaempfe.spielernr = spieler.spielernr
|
||||
JOIN strafen ON spieler.spielernr = strafen.spielernr
|
||||
GROUP BY teams.liga;
|
||||
|
||||
--g
|
||||
SELECT spieler.name FROM spieler
|
||||
JOIN strafen ON spieler.spielernr = strafen.spielernr
|
||||
WHERE strafen.betrag >= 50 --g.2
|
||||
GROUP BY spieler.spielernr
|
||||
HAVING count(strafen.zahlungsnr) >= 2;
|
||||
|
||||
--h
|
||||
SELECT spieler.name FROM spieler
|
||||
LEFT JOIN strafen ON strafen.spielernr = spieler.spielernr
|
||||
JOIN wettkaempfe ON spieler.spielernr = wettkaempfe.spielernr
|
||||
WHERE wettkaempfe.gewonnen > wettkaempfe.verloren
|
||||
GROUP BY spieler.spielernr
|
||||
HAVING COUNT(strafen.zahlungsnr) = 0;
|
||||
186
11fi5/AWP/Verein/Verein_2021-02-04.sql
Normal file
186
11fi5/AWP/Verein/Verein_2021-02-04.sql
Normal file
@ -0,0 +1,186 @@
|
||||
-- phpMyAdmin SQL Dump
|
||||
-- version 2.6.0-pl1
|
||||
-- http://www.phpmyadmin.net
|
||||
--
|
||||
-- Host: localhost
|
||||
-- Erstellungszeit: 28. November 2004 um 16:48
|
||||
-- Server Version: 4.0.21
|
||||
-- PHP-Version: 5.0.2
|
||||
--
|
||||
-- Datenbank: `verein`
|
||||
--
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Tabellenstruktur für Tabelle `spieler`
|
||||
--
|
||||
Drop database if exists verein;
|
||||
CREATE DATABASE if not exists verein;
|
||||
use verein;
|
||||
|
||||
DROP TABLE IF EXISTS `spieler`;
|
||||
CREATE TABLE IF NOT EXISTS `spieler` (
|
||||
`SPIELERNR` int(11) NOT NULL default '0',
|
||||
`NAME` varchar(40) NOT NULL default '',
|
||||
`VORNAME` varchar(40) default NULL,
|
||||
`TITEL` varchar(8) default NULL,
|
||||
`GEBOREN` datetime default NULL,
|
||||
`GESCHLECHT` char(1) default NULL,
|
||||
`BEITRITT` datetime default NULL,
|
||||
`STRASSE` varchar(40) default NULL,
|
||||
`HAUSNR` varchar(5) default NULL,
|
||||
`PLZ` varchar(6) default NULL,
|
||||
`ORT` varchar(40) default NULL,
|
||||
`TELEFON` varchar(50) default NULL,
|
||||
PRIMARY KEY (`SPIELERNR`)
|
||||
) Engine=InnoDB;
|
||||
|
||||
--
|
||||
-- Daten für Tabelle `spieler`
|
||||
--
|
||||
|
||||
INSERT INTO `spieler` (`SPIELERNR`, `NAME`, `VORNAME`, `TITEL`, `GEBOREN`, `GESCHLECHT`, `BEITRITT`, `STRASSE`, `HAUSNR`, `PLZ`, `ORT`, `TELEFON`) VALUES (2, 'Elfers', 'Rainer', NULL, '1981-12-09 00:00:00', 'M', '1969-05-01 00:00:00', 'Stadtring', '43', '40348', 'Düsseldorf', '0211-237893'),
|
||||
(6, 'Peters', 'Robert', NULL, '1981-05-04 00:00:00', 'M', '1992-05-03 00:00:00', 'Hafenallee', '80', '40234', 'Düsseldorf', '0211-476537'),
|
||||
(7, 'Wiegand', 'Günther', NULL, '1971-08-26 00:00:00', 'M', '1975-12-05 00:00:00', 'Erasmusweg', '39', '40648', 'Düsseldorf', '0211-347689'),
|
||||
(8, 'Neuhaus', 'Berta', NULL, '1979-09-05 00:00:00', 'W', '1996-06-01 00:00:00', 'Sporenallee', '4', '40304', 'Ratingen', '02102-45845'),
|
||||
(27, 'Kohl', 'Dagmar', NULL, '1962-11-14 00:00:00', 'W', '1980-08-01 00:00:00', 'Luisenpfad', '84', '40051', 'Meerbusch', '02105-23485'),
|
||||
(28, 'Kohl', 'Claudia', NULL, '1958-05-01 00:00:00', 'W', '1979-03-01 00:00:00', 'Domplatz', '10', '40402', 'Neuss', '02101-65959'),
|
||||
(39, 'Bischof', 'Dennis', NULL, '1959-01-09 00:00:00', 'M', '1975-11-01 00:00:00', 'Erikaplatz', '78', '40876', 'Düsseldorf', '0211-393435'),
|
||||
(44, 'Bäcker', 'Egon', 'Dr.', '1980-04-03 00:00:00', 'M', '1989-04-01 00:00:00', 'Lichtenstraße', '23', '40323', 'Ratingen', '02102-36875'),
|
||||
(57, 'Böhmen', 'Manfred', 'von', '1984-12-19 00:00:00', 'M', '1993-09-01 00:00:00', 'Erasmusweg', '16', '40989', 'Düsseldorf', '0211-473458'),
|
||||
(83, 'Hofmann', 'Philipp', NULL, '1973-04-03 00:00:00', 'M', '1990-02-01 00:00:00', 'Marienufer', '16', '40127', 'Düsseldorf', '0211-353548'),
|
||||
(95, 'Müller', 'Paul', NULL, '1976-07-09 00:00:00', 'M', '1995-02-01 00:00:00', 'Hauptweg', '33', '40101', 'Hilden', '02103-86756'),
|
||||
(100, 'Peters', 'Franz', NULL, '1973-05-03 00:00:00', 'M', '1992-05-01 00:00:00', 'Hafenallee', '80', '40756', 'Düsseldorf', '0211-494593'),
|
||||
(104, 'Maurer', 'Doris', NULL, '1980-09-03 00:00:00', 'W', '1988-11-01 00:00:00', 'Stutenallee', '65', '40053', 'Meerbusch', '02105-98757'),
|
||||
(112, 'Bauer', 'Irene', 'von', '1980-12-19 00:00:00', 'W', '1996-06-01 00:00:00', 'Fuchsweg', '8', '41501', 'Krefeld', '02151-54874');
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Tabellenstruktur für Tabelle `strafen`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `strafen`;
|
||||
CREATE TABLE IF NOT EXISTS `strafen` (
|
||||
`ZAHLUNGSNR` int(11) PRIMARY KEY,
|
||||
`SPIELERNR` int(11) NOT NULL default '0',
|
||||
`DATUM` datetime default NULL,
|
||||
`BETRAG` decimal(18,4) default NULL,
|
||||
KEY `B556A64745B54B4A35DEC16B9C` (`SPIELERNR`),
|
||||
KEY `IX_STRAFENKEY0` (`SPIELERNR`)
|
||||
) engine=InnoDB;
|
||||
|
||||
--
|
||||
-- RELATIONEN DER TABELLE `strafen`:
|
||||
-- `SPIELERNR`
|
||||
-- `spieler` -> `SPIELERNR`
|
||||
--
|
||||
|
||||
--
|
||||
-- Daten für Tabelle `strafen`
|
||||
--
|
||||
|
||||
INSERT INTO `strafen` (`ZAHLUNGSNR`, `SPIELERNR`, `DATUM`, `BETRAG`) VALUES (1, 27, '1996-09-10 00:00:00', 100.0000),
|
||||
(2, 27, '1996-11-12 00:00:00', 75.0000),
|
||||
(3, 6, '1996-12-08 00:00:00', 100.0000),
|
||||
(4, 104, '1996-12-08 00:00:00', 50.0000),
|
||||
(5, 44, '1996-12-08 00:00:00', 25.0000),
|
||||
(6, 8, '1996-12-08 00:00:00', 25.0000),
|
||||
(7, 44, '1996-12-30 00:00:00', 30.0000),
|
||||
(8, 44, '1997-05-05 00:00:00', 75.0000);
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Tabellenstruktur für Tabelle `teams`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `teams`;
|
||||
CREATE TABLE IF NOT EXISTS `teams` (
|
||||
`TEAMNR` int(11) NOT NULL default '0',
|
||||
`Captain` int(11) default NULL,
|
||||
`LIGA` varchar(40) default NULL,
|
||||
PRIMARY KEY (`TEAMNR`),
|
||||
KEY `TEAMSSPIELERNR3` (`Captain`),
|
||||
KEY `IX_TEAMSKEY1` (`Captain`)
|
||||
) engine=InnoDB;
|
||||
|
||||
--
|
||||
-- RELATIONEN DER TABELLE `teams`:
|
||||
-- `SPIELERNR`
|
||||
-- `spieler` -> `SPIELERNR`
|
||||
--
|
||||
|
||||
--
|
||||
-- Daten für Tabelle `teams`
|
||||
--
|
||||
|
||||
INSERT INTO `teams` (`TEAMNR`, `Captain`, `LIGA`) VALUES (1, 6, 'Bundesliga'),
|
||||
(2, 27, 'Regionalliga');
|
||||
|
||||
-- --------------------------------------------------------
|
||||
|
||||
--
|
||||
-- Tabellenstruktur für Tabelle `wettkaempfe`
|
||||
--
|
||||
|
||||
DROP TABLE IF EXISTS `wettkaempfe`;
|
||||
CREATE TABLE IF NOT EXISTS `wettkaempfe` (
|
||||
`TEAMNR` int(11) NOT NULL default '0',
|
||||
`SPIELERNR` int(11) NOT NULL default '0',
|
||||
`GEWONNEN` int(11) default NULL,
|
||||
`VERLOREN` int(11) default NULL,
|
||||
PRIMARY KEY (`TEAMNR`,`SPIELERNR`),
|
||||
KEY `D6DCE74B17B24B677E2F51185C` (`SPIELERNR`),
|
||||
KEY `TEAMSWETTKMPFE5` (`TEAMNR`),
|
||||
KEY `IX_WETTKMPFEKEY0` (`SPIELERNR`),
|
||||
KEY `IX_WETTKMPFEKEY2` (`TEAMNR`)
|
||||
) engine=InnoDB;
|
||||
|
||||
--
|
||||
-- RELATIONEN DER TABELLE `wettkaempfe`:
|
||||
-- `SPIELERNR`
|
||||
-- `spieler` -> `SPIELERNR`
|
||||
-- `TEAMNR`
|
||||
-- `teams` -> `TEAMNR`
|
||||
--
|
||||
|
||||
--
|
||||
-- Daten für Tabelle `wettkaempfe`
|
||||
--
|
||||
|
||||
INSERT INTO `wettkaempfe` (`TEAMNR`, `SPIELERNR`, `GEWONNEN`, `VERLOREN`) VALUES (1, 2, 4, 8),
|
||||
(1, 6, 9, 1),
|
||||
(1, 8, 0, 1),
|
||||
(1, 44, 7, 5),
|
||||
(1, 57, 5, 0),
|
||||
(1, 83, 3, 3),
|
||||
(2, 8, 4, 4),
|
||||
(2, 27, 11, 2),
|
||||
(2, 104, 8, 4),
|
||||
(2, 112, 4, 8);
|
||||
|
||||
--
|
||||
-- Constraints der exportierten Tabellen
|
||||
--
|
||||
|
||||
--
|
||||
-- Constraints der Tabelle `strafen`
|
||||
--
|
||||
ALTER TABLE `strafen`
|
||||
ADD CONSTRAINT `strafen_ibfk_1` FOREIGN KEY (`SPIELERNR`) REFERENCES `spieler` (`SPIELERNR`);
|
||||
|
||||
--
|
||||
-- Constraints der Tabelle `teams`
|
||||
--
|
||||
ALTER TABLE `teams`
|
||||
ADD CONSTRAINT `teams_ibfk_1` FOREIGN KEY (`Captain`) REFERENCES `spieler` (`SPIELERNR`);
|
||||
|
||||
--
|
||||
-- Constraints der Tabelle `wettkaempfe`
|
||||
--
|
||||
ALTER TABLE `wettkaempfe`
|
||||
ADD CONSTRAINT `wettkaempfe_ibfk_1` FOREIGN KEY (`SPIELERNR`) REFERENCES `spieler` (`SPIELERNR`),
|
||||
ADD CONSTRAINT `wettkaempfe_ibfk_2` FOREIGN KEY (`TEAMNR`) REFERENCES `teams` (`TEAMNR`);
|
||||
|
||||
56
11fi5/AWP/luna2000/luna_joins.sql
Normal file
56
11fi5/AWP/luna2000/luna_joins.sql
Normal file
@ -0,0 +1,56 @@
|
||||
USE luna2_innodb;
|
||||
|
||||
-- tblmitarbeiter
|
||||
-- M_Nr
|
||||
-- A_Nr -> tblabteilung
|
||||
-- M_Name
|
||||
-- M_Vorname
|
||||
|
||||
-- tbltaetigkeit
|
||||
-- T_Nr
|
||||
-- M_Nr -> tblmitarbeiter
|
||||
-- P_Nr -> tblprojekt
|
||||
-- T_Taetigkeit
|
||||
-- T_Einstellungsdatum
|
||||
|
||||
-- tblabteilung
|
||||
-- A_Nr
|
||||
-- A_Name
|
||||
-- A_Stadt
|
||||
|
||||
-- tblprojekt
|
||||
-- P_Nr
|
||||
-- P_Name
|
||||
-- P_Mittel
|
||||
|
||||
#a
|
||||
SELECT tblmitarbeiter.M_Vorname, tblmitarbeiter.M_Name, tblmitarbeiter.M_Nr, tblabteilung.A_Name, tblabteilung.A_Stadt FROM tblmitarbeiter
|
||||
JOIN tblabteilung ON tblmitarbeiter.A_Nr = tblabteilung.A_Nr;
|
||||
|
||||
#b
|
||||
SELECT tblmitarbeiter.*, tblprojekt.P_Name FROM tblmitarbeiter
|
||||
JOIN tbltaetigkeit ON tblmitarbeiter.M_Nr = tbltaetigkeit.M_Nr
|
||||
JOIN tblprojekt ON tbltaetigkeit.P_Nr = tblprojekt.P_Nr;
|
||||
|
||||
#c
|
||||
SELECT DISTINCT tblmitarbeiter.A_Nr FROM tblmitarbeiter
|
||||
JOIN tbltaetigkeit ON tbltaetigkeit.M_Nr = tblmitarbeiter.M_Nr
|
||||
WHERE tbltaetigkeit.T_Einstellungsdatum = "1989-10-15";
|
||||
|
||||
#d
|
||||
SELECT tblmitarbeiter.M_Vorname, tblmitarbeiter.M_Name, tblabteilung.A_Stadt FROM tblmitarbeiter
|
||||
JOIN tblabteilung ON tblabteilung.A_Nr = tblmitarbeiter.A_Nr
|
||||
JOIN tbltaetigkeit ON tbltaetigkeit.M_Nr = tblmitarbeiter.M_Nr
|
||||
WHERE tbltaetigkeit.T_Taetigkeit = "Projektleiter";
|
||||
|
||||
#e
|
||||
SELECT DISTINCT tblprojekt.P_Name FROM tblprojekt
|
||||
JOIN tbltaetigkeit ON tbltaetigkeit.P_Nr = tblprojekt.P_Nr
|
||||
JOIN tblmitarbeiter ON tbltaetigkeit.M_Nr = tblmitarbeiter.M_Nr
|
||||
JOIN tblabteilung ON tblmitarbeiter.A_Nr = tblabteilung.A_Nr
|
||||
WHERE tblabteilung.A_Name = "Diagnose";
|
||||
|
||||
#f
|
||||
SELECT tblabteilung.* FROM tblabteilung
|
||||
JOIN tblabteilung AS tblabteilung_other ON tblabteilung.A_Stadt = tblabteilung_other.A_Stadt
|
||||
AND tblabteilung.A_Nr != tblabteilung_other.A_Nr;
|
||||
@ -21,3 +21,10 @@
|
||||
* IPv4
|
||||
* ID=172.20.0.0/20
|
||||
* Nur Sichere Updates
|
||||
|
||||
## Client
|
||||
|
||||
* IP: 172.20.0.54
|
||||
* Hostname: Creativ05-PC06
|
||||
* Localer User: admin
|
||||
* Locales Passwort: Win2016
|
||||
60
12fi5/AEuP/Abteilung/UML MA Abt 1116.uxf
Normal file
60
12fi5/AEuP/Abteilung/UML MA Abt 1116.uxf
Normal file
@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<diagram program="umlet" version="14.3.0">
|
||||
<zoom_level>10</zoom_level>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>270</x>
|
||||
<y>220</y>
|
||||
<w>190</w>
|
||||
<h>190</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Abteilung
|
||||
--
|
||||
Name: string
|
||||
Mitarbeiter: Mitarbeiter[]</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>620</x>
|
||||
<y>220</y>
|
||||
<w>160</w>
|
||||
<h>180</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Mitarbeiter
|
||||
--
|
||||
Name: string
|
||||
Abteilung: Abteilung</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>450</x>
|
||||
<y>280</y>
|
||||
<w>190</w>
|
||||
<h>50</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=->
|
||||
m1=1
|
||||
m2=*
|
||||
< arbeitet in</panel_attributes>
|
||||
<additional_attributes>10.0;20.0;170.0;20.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>450</x>
|
||||
<y>330</y>
|
||||
<w>190</w>
|
||||
<h>50</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=->
|
||||
m1=1
|
||||
m2=1
|
||||
< leitet</panel_attributes>
|
||||
<additional_attributes>10.0;20.0;170.0;20.0</additional_attributes>
|
||||
</element>
|
||||
</diagram>
|
||||
74
12fi5/AEuP/Abteilung/abteilung.ps1
Normal file
74
12fi5/AEuP/Abteilung/abteilung.ps1
Normal file
@ -0,0 +1,74 @@
|
||||
class abteilung {
|
||||
[string]$Name
|
||||
[mitarbeiter[]]$Mitarbeiter = @()
|
||||
[mitarbeiter]$Abteilungsleiter
|
||||
|
||||
abteilung([mitarbeiter]$AL) {
|
||||
$this.Abteilungsleiter = $AL
|
||||
$this.Mitarbeiter += $AL
|
||||
}
|
||||
|
||||
[int]einstellen([mitarbeiter]$MA) {
|
||||
if ($MA -In $this.Mitarbeiter) {
|
||||
return 1
|
||||
}
|
||||
$this.Mitarbeiter += $MA
|
||||
return 0
|
||||
}
|
||||
|
||||
[int]entlassen([mitarbeiter]$MA) {
|
||||
if ($MA -Eq $this.Abteilungsleiter) {
|
||||
return 2
|
||||
}
|
||||
if ($MA -In $this.Mitarbeiter) {
|
||||
$this.Mitarbeiter = $this.Mitarbeiter | Where-Object { $_ -ne $MA }
|
||||
return 0
|
||||
} else {
|
||||
return 1
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[int]transfer([mitarbeiter]$MA, [abteilung]$AB) {
|
||||
$ent = $this.entlassen($MA)
|
||||
if ($ent -eq 0) {
|
||||
$ein = $AB.einstellen($MA)
|
||||
if ($ein -eq 0) {
|
||||
return 0
|
||||
} else {
|
||||
$this.einstellen($MA)
|
||||
return 4 + $ein
|
||||
}
|
||||
} else {
|
||||
return 4 + $ent
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class mitarbeiter {
|
||||
[string]$Name
|
||||
|
||||
mitarbeiter($name) {
|
||||
$this.Name = $name
|
||||
}
|
||||
}
|
||||
|
||||
#Tests
|
||||
$MaA = [mitarbeiter]::new("Anna")
|
||||
$MaB = [mitarbeiter]::new("Bertha")
|
||||
$MaC = [mitarbeiter]::new("Christhof")
|
||||
|
||||
$AbA = [abteilung]::new($MaA)
|
||||
$AbB = [abteilung]::new($MaB)
|
||||
|
||||
$AbB.einstellen($MaC)
|
||||
|
||||
|
||||
$AbA
|
||||
$AbB
|
||||
|
||||
$AbB.transfer($MaC, $AbA)
|
||||
|
||||
$AbA
|
||||
$AbB
|
||||
27
12fi5/AEuP/Abteilung/abteilung_var1.ps1
Normal file
27
12fi5/AEuP/Abteilung/abteilung_var1.ps1
Normal file
@ -0,0 +1,27 @@
|
||||
class mitarbeiter {
|
||||
[string]vorname
|
||||
[string]nachname
|
||||
|
||||
mitarbeiter([string] $vorname, [string] $nachname) {
|
||||
$this.vorname = $vorname
|
||||
$this.nachname = $nachname
|
||||
}
|
||||
}
|
||||
|
||||
class abteilung {
|
||||
[string]bezeichnung
|
||||
$maliste = [System.Collections.ArrayList]::New()
|
||||
[mitarbeiter]abteilungsleiter
|
||||
|
||||
abteilung([string] $bezeichnung) {
|
||||
$this.bezeichnung = $bezeichnung
|
||||
}
|
||||
|
||||
nachnamen() {
|
||||
foreach ($ma in $maliste) {
|
||||
Write-Host $ma.vorname
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#$abteilung.abteilungsleiter.vorname
|
||||
204
12fi5/AEuP/Bank/bank.ps1
Normal file
204
12fi5/AEuP/Bank/bank.ps1
Normal file
@ -0,0 +1,204 @@
|
||||
class kunde {
|
||||
[string]$name
|
||||
|
||||
kunde([string]$name) {
|
||||
$this.name = $name
|
||||
}
|
||||
|
||||
kunde([string]$vorname, [string]$nachname) {
|
||||
$this.name = $vorname + " " + $nachname
|
||||
}
|
||||
}
|
||||
|
||||
class konto {
|
||||
[kunde]$kunde
|
||||
[double]$guthaben
|
||||
[datetime]$erstelldatum
|
||||
|
||||
static überweisen([konto]$von, [konto]$nach, [double]$menge) {
|
||||
$stand_von = $von.guthaben
|
||||
$stand_nach = $nach.guthaben
|
||||
try {
|
||||
$von.auszahlen($menge)
|
||||
$nach.einzahlen($menge)
|
||||
}
|
||||
catch {
|
||||
$von.guthaben = $stand_von
|
||||
$nach.guthaben = $stand_nach
|
||||
throw $_
|
||||
}
|
||||
}
|
||||
|
||||
überweisen([konto]$nach, [double]$menge) {
|
||||
[konto]::überweisen($this, $nach, $menge)
|
||||
}
|
||||
|
||||
konto([kunde]$kunde) {
|
||||
$this.guthaben = 0
|
||||
$this.erstelldatum = Get-Date
|
||||
$this.kunde = $kunde
|
||||
}
|
||||
|
||||
[double]einzahlen([double]$menge) {
|
||||
if ($menge -lt 0) {
|
||||
throw "Einzahlungsmenge muss positiv sein!"
|
||||
}
|
||||
$this.guthaben += $menge
|
||||
return $this.guthaben
|
||||
}
|
||||
|
||||
[double]auszahlen([double]$menge) {
|
||||
if ($menge -lt 0) {
|
||||
throw "Auszahlungsmenge muss positiv sein!"
|
||||
}
|
||||
if (($this.guthaben - $menge) -gt (-1000)) {
|
||||
$this.guthaben -= $menge
|
||||
} else {
|
||||
throw "Konto überzogen!"
|
||||
}
|
||||
return $this.guthaben
|
||||
}
|
||||
}
|
||||
|
||||
class bank {
|
||||
[string]$name
|
||||
[System.Collections.Generic.List[konto]]$konten = @()
|
||||
[System.Collections.Generic.List[kunde]]$kunden = @()
|
||||
|
||||
bank([string]$name) {
|
||||
$this.name = $name
|
||||
}
|
||||
|
||||
auszahlen([konto]$konto, [double]$menge) {
|
||||
$konto.auszahlen($menge)
|
||||
}
|
||||
|
||||
einzahlen([konto]$konto, [double]$menge) {
|
||||
$konto.einzahlen($menge)
|
||||
}
|
||||
|
||||
überweisen([konto]$von, [konto]$nach, [double]$menge) {
|
||||
$von.überweisen($nach, $menge)
|
||||
}
|
||||
|
||||
[kunde]neukunde([string]$vorname, [string]$nachname) {
|
||||
$kunde = [kunde]::new($vorname, $nachname)
|
||||
$this.kunden.add($kunde)
|
||||
return $kunde
|
||||
}
|
||||
|
||||
[konto]konto_erstellen([kunde]$kunde) {
|
||||
$konto = [konto]::new($kunde)
|
||||
$this.konten.add($konto)
|
||||
return $konto
|
||||
}
|
||||
|
||||
[void]übersicht() {
|
||||
Write-Host "Übersicht"
|
||||
foreach ($kunde in $this.kunden) {
|
||||
Write-Host $kunde.name
|
||||
foreach ($konto in $this.konten) {
|
||||
if ($konto.kunde -eq $kunde) {
|
||||
Write-Host " " $konto.guthaben
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class cui {
|
||||
[int]$state = 0
|
||||
[bank]$bank
|
||||
|
||||
cui() {
|
||||
$this.bank = [bank]::new("defaultbank")
|
||||
}
|
||||
|
||||
[konto]select_konto([string]$use) {
|
||||
if ($this.bank.konten.count -eq 0) {
|
||||
Write-Host "Es sind keine Konten vorhanden!"
|
||||
return $null
|
||||
}
|
||||
Write-Host "Wähle ein Konto" $use
|
||||
for ($i = 0; $i -lt $this.bank.konten.count; $i += 1) {
|
||||
Write-Host "Konto" $i "("$this.bank.konten[$i].guthaben") von" $this.bank.konten[$i].kunde.name
|
||||
}
|
||||
return $this.bank.konten[$(Read-Host "Auswahl")]
|
||||
}
|
||||
|
||||
[kunde]select_kunde([string]$use) {
|
||||
if ($this.bank.kunden.count -eq 0) {
|
||||
Write-Host "Es sind keine Kunden vorhanden!"
|
||||
return $null
|
||||
}
|
||||
Write-Host "Wähle einen Kunden" $use
|
||||
for ($i = 0; $i -lt $this.bank.kunden.count; $i += 1) {
|
||||
Write-Host "Kunde" $i ":" $this.bank.kunden[$i].name
|
||||
}
|
||||
return $this.bank.kunden[$(Read-Host "Auswahl")]
|
||||
}
|
||||
|
||||
[int]run() {
|
||||
$bname = Read-Host "Wähle einen Banknamen"
|
||||
$this.bank = [bank]::new($bname)
|
||||
while ($true) {
|
||||
Write-Host "Wähle eine Aktion aus:"
|
||||
Write-Host "1: Kunde anlegen"
|
||||
Write-Host "2: Konto anlegen"
|
||||
Write-Host "3: Einzahlen"
|
||||
Write-Host "4: Auszahlen"
|
||||
Write-Host "5: Überweisen"
|
||||
Write-Host "6: Übersicht"
|
||||
Write-Host "0: Beenden"
|
||||
$cmd = Read-Host "Aktion"
|
||||
switch ($cmd) {
|
||||
0 {
|
||||
return 0
|
||||
}
|
||||
1 {
|
||||
$this.bank.neukunde(
|
||||
$(Read-Host "Vorname"),
|
||||
$(Read-Host "Nachname")
|
||||
)
|
||||
}
|
||||
2 {
|
||||
$k = $this.select_kunde("als Kontobesitzer")
|
||||
if ($null -ne $k) {
|
||||
$this.bank.konto_erstellen($k)
|
||||
}
|
||||
}
|
||||
3 {
|
||||
$k = $this.select_konto("für das Einzahlen")
|
||||
if ($null -ne $k) {
|
||||
$amount = Read-Host "Menge"
|
||||
$this.bank.einzahlen($k, $amount)
|
||||
}
|
||||
}
|
||||
4 {
|
||||
$k = $this.select_konto("für das Auszahlen")
|
||||
if ($null -ne $k) {
|
||||
$amount = Read-Host "Menge"
|
||||
$this.bank.auszahlen($k, $amount)
|
||||
}
|
||||
}
|
||||
5 {
|
||||
$von = $this.select_konto("als Quelle")
|
||||
if ($null -ne $von) {
|
||||
$nach = $this.select_konto("als Ziel")
|
||||
$amount = Read-Host "Menge"
|
||||
$this.bank.überweisen($von, $nach, $amount)
|
||||
}
|
||||
}
|
||||
6 {
|
||||
$this.bank.übersicht()
|
||||
Read-Host "Press any key"
|
||||
}
|
||||
}
|
||||
}
|
||||
return -1
|
||||
}
|
||||
}
|
||||
|
||||
$cui = [cui]::new()
|
||||
$cui.run()
|
||||
8
12fi5/AEuP/Bank/bank.py
Normal file
8
12fi5/AEuP/Bank/bank.py
Normal file
@ -0,0 +1,8 @@
|
||||
from tkinter import *
|
||||
from tkinter import ttk
|
||||
root = Tk()
|
||||
frm = ttk.Frame(root, padding=10)
|
||||
frm.grid()
|
||||
ttk.Label(frm, text="Hello World!").grid(column=0, row=0)
|
||||
ttk.Button(frm, text="Quit", command=root.destroy).grid(column=1, row=0)
|
||||
root.mainloop()
|
||||
95
12fi5/AEuP/Bank/bank.uxf
Normal file
95
12fi5/AEuP/Bank/bank.uxf
Normal file
@ -0,0 +1,95 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<diagram program="umlet" version="14.3.0">
|
||||
<zoom_level>10</zoom_level>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>260</x>
|
||||
<y>270</y>
|
||||
<w>120</w>
|
||||
<h>50</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Kunde
|
||||
--
|
||||
+Name: String</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>460</x>
|
||||
<y>90</y>
|
||||
<w>160</w>
|
||||
<h>120</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Konto
|
||||
--
|
||||
-Guthaben: Float
|
||||
-Kunde: Kunde
|
||||
--
|
||||
+Einzahlen
|
||||
+Auszahlen
|
||||
+Überweisen</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>660</x>
|
||||
<y>330</y>
|
||||
<w>160</w>
|
||||
<h>130</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Bank
|
||||
--
|
||||
-Konten: Konto[]
|
||||
-Kunden: Kunde[]
|
||||
--
|
||||
+Einzahlen
|
||||
+Auszahlen
|
||||
+Überweisen</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>310</x>
|
||||
<y>130</y>
|
||||
<w>170</w>
|
||||
<h>160</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=->
|
||||
m1=0..n
|
||||
m2=1
|
||||
< gehört</panel_attributes>
|
||||
<additional_attributes>150.0;20.0;10.0;20.0;10.0;140.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>310</x>
|
||||
<y>310</y>
|
||||
<w>370</w>
|
||||
<h>110</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<->>>>>
|
||||
m1=0..n
|
||||
m2=1
|
||||
< verwaltet</panel_attributes>
|
||||
<additional_attributes>10.0;10.0;10.0;80.0;350.0;80.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>610</x>
|
||||
<y>120</y>
|
||||
<w>170</w>
|
||||
<h>230</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<->>>>>
|
||||
m1=0..n
|
||||
m2=1
|
||||
< verwaltet</panel_attributes>
|
||||
<additional_attributes>10.0;20.0;140.0;20.0;140.0;210.0</additional_attributes>
|
||||
</element>
|
||||
</diagram>
|
||||
20
12fi5/AEuP/Bank/db.ps1
Normal file
20
12fi5/AEuP/Bank/db.ps1
Normal file
@ -0,0 +1,20 @@
|
||||
cls
|
||||
[void][system.reflection.Assembly]::LoadFrom("/home/krumel/SQLConn/net6.0/MySql.Data.dll")
|
||||
$connstring = "Server=172.17.0.2;Uid=root;Pwd='abc';Database=bankv"
|
||||
|
||||
$con = New-Object Mysql.Data.MysqlClient.MysqlConnection
|
||||
$con.ConnectionString = $connstring
|
||||
$con.Open()
|
||||
|
||||
$command = New-Object MySql.Data.MySqlClient.MySqlCommand
|
||||
$command.CommandText = "SELECT id_kunde,vorname FROM kunden"
|
||||
$command.Connection = $con
|
||||
|
||||
$reader = $command.ExecuteReader()
|
||||
|
||||
while($reader.read()){
|
||||
[string]$reader.Item("id_kunde") + " " + [string]$reader.Item("vorname")
|
||||
}
|
||||
""
|
||||
"Anzahl der Spalten: " + $reader.FieldCount
|
||||
$reader.Close()
|
||||
172
12fi5/AEuP/Bank/example_bankv1.2.ps1
Normal file
172
12fi5/AEuP/Bank/example_bankv1.2.ps1
Normal file
@ -0,0 +1,172 @@
|
||||
cls
|
||||
class konto {
|
||||
|
||||
[int]$nummer
|
||||
[double]$stand
|
||||
[kunde]$inhaber
|
||||
static [string]$BIC = "BYLADEM1SWU"
|
||||
[bool]$aktiv = $true
|
||||
[double]$dispo = -1000
|
||||
|
||||
konto([int]$nummer){
|
||||
if ($this.getType() -eq [konto]){
|
||||
throw "Konto ist abstrakt"
|
||||
}
|
||||
$this.nummer = $nummer
|
||||
}
|
||||
|
||||
konto([bool]$aktiv){
|
||||
if ($this.getType() -eq [konto]){
|
||||
throw "Konto ist abstrakt"
|
||||
}
|
||||
$this.aktiv
|
||||
}
|
||||
|
||||
konto([int]$nummer,[double]$stand,[kunde]$inhaber){
|
||||
if ($this.getType() -eq [konto]){
|
||||
throw "Konto ist abstrakt"
|
||||
}
|
||||
$this.nummer = $nummer
|
||||
$this.stand = $stand
|
||||
$this.inhaber = $inhaber
|
||||
}
|
||||
|
||||
konto([int]$nummer,[double]$stand,[string]$BIC){
|
||||
if ($this.getType() -eq [konto]){
|
||||
throw "Konto ist abstrakt"
|
||||
}
|
||||
$this.nummer = $nummer
|
||||
$this.stand = $stand
|
||||
$this.BIC = $BIC
|
||||
}
|
||||
|
||||
[double]zeigeKontostand(){
|
||||
return $this.stand
|
||||
}
|
||||
|
||||
[void]einzahlen([double]$betrag){
|
||||
$this.stand = $this.stand + $betrag
|
||||
#write-host "Ihr neuer Kontostand beträgt" $this.stand "EUR"
|
||||
}
|
||||
|
||||
[void]auszahlen([double]$betrag){
|
||||
if($betrag -gt 0 ){
|
||||
if(($this.stand - $betrag) -ge -1000){
|
||||
$this.stand = $this.stand - $betrag
|
||||
#write-host "Ihr neuer Kontostand beträgt" $this.stand "EUR"
|
||||
}
|
||||
else{
|
||||
write-warning "Kreditlimit erreicht"
|
||||
}
|
||||
}
|
||||
else{
|
||||
write-warning "Ungültige Eingabe"
|
||||
}
|
||||
}
|
||||
|
||||
[void]überweisen([konto]$zielkonto,[double]$betrag){
|
||||
$this.auszahlen($betrag)
|
||||
$zielkonto.einzahlen($betrag)
|
||||
}
|
||||
|
||||
[void]static statische_Methode(){
|
||||
write-host "Ich bin eine statische Methode"
|
||||
}
|
||||
}
|
||||
|
||||
class girokonto : konto {
|
||||
girokonto([int]$nummer) : base($nummer) {}
|
||||
girokonto([bool]$aktiv) : base($aktiv) {}
|
||||
girokonto([int]$nummer,[double]$stand,[kunde]$inhaber) : base($nummer, $stand, $inhaber) {}
|
||||
girokonto([int]$nummer,[double]$stand,[string]$BIC) : base($nummer, $stand, $BIC) {}
|
||||
}
|
||||
|
||||
class sparkonto : konto {
|
||||
sparkonto([int]$nummer) : base($nummer) {}
|
||||
sparkonto([bool]$aktiv) : base($aktiv) {}
|
||||
sparkonto([int]$nummer,[double]$stand,[kunde]$inhaber) : base($nummer, $stand, $inhaber) {}
|
||||
sparkonto([int]$nummer,[double]$stand,[string]$BIC) : base($nummer, $stand, $BIC) {}
|
||||
}
|
||||
|
||||
class terminkonto : konto {
|
||||
terminkonto([int]$nummer) : base($nummer) {}
|
||||
terminkonto([bool]$aktiv) : base($aktiv) {}
|
||||
terminkonto([int]$nummer,[double]$stand,[kunde]$inhaber) : base($nummer, $stand, $inhaber) {}
|
||||
terminkonto([int]$nummer,[double]$stand,[string]$BIC) : base($nummer, $stand, $BIC) {}
|
||||
}
|
||||
|
||||
class kreditkonto : konto {
|
||||
kreditkonto([int]$nummer) : base($nummer) {}
|
||||
kreditkonto([bool]$aktiv) : base($aktiv) {}
|
||||
kreditkonto([int]$nummer,[double]$stand,[kunde]$inhaber) : base($nummer, $stand, $inhaber) {}
|
||||
kreditkonto([int]$nummer,[double]$stand,[string]$BIC) : base($nummer, $stand, $BIC) {}
|
||||
}
|
||||
|
||||
class kunde{
|
||||
|
||||
[string]$vorname
|
||||
[string]$nachname
|
||||
[konto[]]$kontenliste = @()
|
||||
|
||||
kunde([string]$vorname,[string]$nachname){
|
||||
if ($this.getType() -eq [kunde]){
|
||||
throw "Kunde ist abstrakt"
|
||||
}
|
||||
$this.vorname = $vorname
|
||||
$this.nachname = $nachname
|
||||
$this.erstelleKonto((read-Host "Anzahl Konten"))
|
||||
}
|
||||
|
||||
erstelleKonto([int]$anzahl){
|
||||
for($i = 0;$i -lt $anzahl;$i++){
|
||||
$this.kontenliste += [girokonto]::new((read-host "Kontonummer"),0,$this)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class privatkunde : kunde {
|
||||
privatkunde([string]$vorname,[string]$nachname) : base($vorname, $nachname) {}
|
||||
}
|
||||
|
||||
class bankverwaltung{
|
||||
|
||||
$kundenliste = [System.Collections.ArrayList]::New()
|
||||
$kontoliste = [System.Collections.ArrayList]::New()
|
||||
|
||||
bankverwaltung(){
|
||||
for($i=0;$i -lt 3;$i++){
|
||||
$temp = [privatkunde]::new((read-host "Kundenvorname"),(read-host "Kundennachname"))
|
||||
$this.kundenliste.add($temp)
|
||||
}
|
||||
$this.ladeKontenInKontoliste()
|
||||
}
|
||||
|
||||
ladeKontenInKontoliste(){
|
||||
foreach($kunde in $this.kundenliste){
|
||||
foreach($konto in $kunde.kontenliste){
|
||||
$this.kontoliste.add($konto)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
überweisen([konto]$quellkonto,[konto]$zielkonto,[double]$betrag){
|
||||
$quellkonto.überweisen($zielkonto, $betrag)
|
||||
}
|
||||
|
||||
einzahlen([konto]$einzahlkonto,[double]$betrag){
|
||||
$einzahlkonto.einzahlen($betrag)
|
||||
}
|
||||
|
||||
auszahlen([konto]$auszahlkonto,[double]$betrag){
|
||||
$auszahlkonto.auszahlen($betrag)
|
||||
}
|
||||
}
|
||||
|
||||
### Main ###
|
||||
|
||||
$bankverwaltung = [bankverwaltung]::new()
|
||||
$bankverwaltung.kontoliste
|
||||
""
|
||||
$bankverwaltung.kontoliste[3].inhaber
|
||||
79
12fi5/AEuP/Konto/konto.ps1
Normal file
79
12fi5/AEuP/Konto/konto.ps1
Normal file
@ -0,0 +1,79 @@
|
||||
class konto {
|
||||
[string]$kontonr
|
||||
[string]$ktyp
|
||||
[string]$kunde
|
||||
[double]$guthaben
|
||||
[datetime]$erstelldatum
|
||||
|
||||
static ueberweisen([konto]$von, [konto]$nach, [double]$menge) {
|
||||
$stand_von = $von.guthaben
|
||||
$stand_nach = $nach.guthaben
|
||||
try {
|
||||
$von.auszahlen($menge)
|
||||
$nach.einzahlen($menge)
|
||||
}
|
||||
catch {
|
||||
$von.guthaben = $stand_von
|
||||
$nach.guthaben = $stand_nach
|
||||
throw $_
|
||||
}
|
||||
}
|
||||
|
||||
ueberweisen([konto]$nach, [double]$menge) {
|
||||
[konto]::ueberweisen($this, $nach, $menge)
|
||||
}
|
||||
|
||||
konto() {
|
||||
$this.guthaben = 0
|
||||
$this.erstelldatum = Get-Date
|
||||
}
|
||||
|
||||
konto([string]$knr) {
|
||||
$this.guthaben = 0
|
||||
$this.erstelldatum = Get-Date
|
||||
$this.kontonr = $knr
|
||||
}
|
||||
|
||||
konto([string]$knr, [string]$ktyp) {
|
||||
$this.guthaben = 0
|
||||
$this.erstelldatum = Get-Date
|
||||
$this.kontonr = $knr
|
||||
$this.ktyp = $ktyp
|
||||
}
|
||||
|
||||
[double]einzahlen([double]$menge) {
|
||||
if ($menge -lt 0) {
|
||||
throw "Einzahlungsmenge muss positiv sein!"
|
||||
}
|
||||
$this.guthaben += $menge
|
||||
return $this.guthaben
|
||||
}
|
||||
|
||||
[double]auszahlen([double]$menge) {
|
||||
if ($menge -lt 0) {
|
||||
throw "Auszahlungsmenge muss positiv sein!"
|
||||
}
|
||||
if (($this.guthaben - $menge) -gt (-1000)) {
|
||||
$this.guthaben -= $menge
|
||||
} else {
|
||||
throw "Konto überzogen!"
|
||||
}
|
||||
return $this.guthaben
|
||||
}
|
||||
|
||||
[void]set_knr([int]$nr){
|
||||
[string]$this.kontonr = $nr
|
||||
}
|
||||
|
||||
[string]get_knr(){
|
||||
return $this.kontonr
|
||||
}
|
||||
|
||||
[void]set_ktyp($typ){
|
||||
$this.ktyp = $typ
|
||||
}
|
||||
|
||||
[string]get_ktyp(){
|
||||
return $this.ktyp
|
||||
}
|
||||
}
|
||||
24
12fi5/AEuP/UML 1019.uxf
Normal file
24
12fi5/AEuP/UML 1019.uxf
Normal file
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<diagram program="umlet" version="14.3.0">
|
||||
<zoom_level>10</zoom_level>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>390</x>
|
||||
<y>170</y>
|
||||
<w>270</w>
|
||||
<h>220</h>
|
||||
</coordinates>
|
||||
<panel_attributes>device
|
||||
--
|
||||
- brand: string
|
||||
- model: string
|
||||
- vendorsku: string
|
||||
--
|
||||
+ device()
|
||||
+ setBrand(brand: String): void
|
||||
+ getBrand(): string
|
||||
</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
</diagram>
|
||||
18
12fi5/AEuP/multiplizieren.ps1
Normal file
18
12fi5/AEuP/multiplizieren.ps1
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
|
||||
function Multiplizieren($Multiplikand, $Multiplikator) {
|
||||
|
||||
$Produkt = 0
|
||||
$i = 0
|
||||
|
||||
while ($i -lt [Math]::Abs($Multiplikand)) {
|
||||
if ($Multiplikand -ge 0) {
|
||||
$Produkt += $Multiplikator
|
||||
} else {
|
||||
$Produkt -= $Multiplikator
|
||||
}
|
||||
$i += 1
|
||||
}
|
||||
|
||||
return $Produkt
|
||||
}
|
||||
11
12fi5/AEuP/product.py
Normal file
11
12fi5/AEuP/product.py
Normal file
@ -0,0 +1,11 @@
|
||||
def multiply(mpa, mpc):
|
||||
product = 0
|
||||
i = 0
|
||||
while i < abs(mpa):
|
||||
if mpa >= 0:
|
||||
product += mpc
|
||||
else:
|
||||
product -= mpc
|
||||
i += 1
|
||||
return product
|
||||
|
||||
139
12fi5/AEuP/s45 #2 UML.uxf
Normal file
139
12fi5/AEuP/s45 #2 UML.uxf
Normal file
@ -0,0 +1,139 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<diagram program="umlet" version="14.3.0">
|
||||
<zoom_level>10</zoom_level>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>640</x>
|
||||
<y>90</y>
|
||||
<w>100</w>
|
||||
<h>90</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Server
|
||||
--
|
||||
#IP
|
||||
--
|
||||
+getIP()</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>480</x>
|
||||
<y>240</y>
|
||||
<w>140</w>
|
||||
<h>110</h>
|
||||
</coordinates>
|
||||
<panel_attributes>PrintServer
|
||||
--
|
||||
-Printers[]: Printer</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>640</x>
|
||||
<y>240</y>
|
||||
<w>100</w>
|
||||
<h>30</h>
|
||||
</coordinates>
|
||||
<panel_attributes>AppServer</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>760</x>
|
||||
<y>240</y>
|
||||
<w>100</w>
|
||||
<h>30</h>
|
||||
</coordinates>
|
||||
<panel_attributes>DBServer</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>680</x>
|
||||
<y>170</y>
|
||||
<w>30</w>
|
||||
<h>90</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<<-</panel_attributes>
|
||||
<additional_attributes>10.0;10.0;10.0;70.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>530</x>
|
||||
<y>150</y>
|
||||
<w>130</w>
|
||||
<h>110</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<<-</panel_attributes>
|
||||
<additional_attributes>110.0;10.0;10.0;10.0;10.0;90.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>730</x>
|
||||
<y>150</y>
|
||||
<w>110</w>
|
||||
<h>110</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<<-</panel_attributes>
|
||||
<additional_attributes>10.0;10.0;90.0;10.0;90.0;90.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>260</x>
|
||||
<y>250</y>
|
||||
<w>140</w>
|
||||
<h>100</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Printer
|
||||
--
|
||||
-Room: Room
|
||||
-Name: Str
|
||||
--
|
||||
+printDocument()</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>130</x>
|
||||
<y>390</y>
|
||||
<w>100</w>
|
||||
<h>100</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Room
|
||||
--
|
||||
-Size: float
|
||||
-RoomNr: str</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>390</x>
|
||||
<y>260</y>
|
||||
<w>110</w>
|
||||
<h>30</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;10.0;90.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>160</x>
|
||||
<y>280</y>
|
||||
<w>120</w>
|
||||
<h>130</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;110.0;10.0;10.0;100.0;10.0</additional_attributes>
|
||||
</element>
|
||||
</diagram>
|
||||
87
12fi5/AEuP/s58 UML Class.uxf
Normal file
87
12fi5/AEuP/s58 UML Class.uxf
Normal file
@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<diagram program="umlet" version="14.3.0">
|
||||
<zoom_level>10</zoom_level>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>250</x>
|
||||
<y>260</y>
|
||||
<w>200</w>
|
||||
<h>90</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Model
|
||||
--
|
||||
-daten: double
|
||||
--
|
||||
+model(messwert): Model
|
||||
+getMesswert(): double</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>620</x>
|
||||
<y>140</y>
|
||||
<w>190</w>
|
||||
<h>120</h>
|
||||
</coordinates>
|
||||
<panel_attributes>View
|
||||
--
|
||||
-model: model
|
||||
-controller: controller
|
||||
--
|
||||
+view(model): View
|
||||
+init()
|
||||
+anzeigen()</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>UMLClass</id>
|
||||
<coordinates>
|
||||
<x>580</x>
|
||||
<y>360</y>
|
||||
<w>270</w>
|
||||
<h>90</h>
|
||||
</coordinates>
|
||||
<panel_attributes>Controller
|
||||
--
|
||||
-model: model
|
||||
-view: view
|
||||
--
|
||||
controller(model, view): Controller</panel_attributes>
|
||||
<additional_attributes/>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>330</x>
|
||||
<y>160</y>
|
||||
<w>310</w>
|
||||
<h>120</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;100.0;10.0;10.0;290.0;10.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>710</x>
|
||||
<y>250</y>
|
||||
<w>30</w>
|
||||
<h>130</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<<<<<-</panel_attributes>
|
||||
<additional_attributes>10.0;10.0;10.0;110.0</additional_attributes>
|
||||
</element>
|
||||
<element>
|
||||
<id>Relation</id>
|
||||
<coordinates>
|
||||
<x>330</x>
|
||||
<y>340</y>
|
||||
<w>270</w>
|
||||
<h>70</h>
|
||||
</coordinates>
|
||||
<panel_attributes>lt=<-</panel_attributes>
|
||||
<additional_attributes>10.0;10.0;10.0;50.0;250.0;50.0</additional_attributes>
|
||||
</element>
|
||||
</diagram>
|
||||
30
12fi5/AEuP/user.ps1
Normal file
30
12fi5/AEuP/user.ps1
Normal file
@ -0,0 +1,30 @@
|
||||
class user {
|
||||
[string]$vorname
|
||||
[string]$nachname
|
||||
[string]$email
|
||||
[string]$password
|
||||
|
||||
[void]setName([string]$vorname, [string]$nachname) {
|
||||
$this.vorname = $vorname
|
||||
$this.nachname = $nachname
|
||||
$this.email = $vorname + "." + $nachname + "@irgendwas.de"
|
||||
}
|
||||
|
||||
[void]readName() {
|
||||
$vn = Read-Host "Vorname"
|
||||
$nn = Read-Host "Nachname"
|
||||
$this.setName($vn, $nn)
|
||||
}
|
||||
|
||||
[void]printInfo() {
|
||||
Write-Host $this.vorname
|
||||
Write-Host $this.nachname
|
||||
Write-Host $this.email
|
||||
Write-Host $this.password
|
||||
}
|
||||
}
|
||||
|
||||
$user = [user]::new()
|
||||
|
||||
$user.readName()
|
||||
$user.printInfo()
|
||||
5
12fi5/EN/Summary-11-25.txt
Normal file
5
12fi5/EN/Summary-11-25.txt
Normal file
@ -0,0 +1,5 @@
|
||||
Shortly after publishing a security-themed upgrade for iOS, Apple had to release an emergency patch to fix a zero-day-exploit which was actively exploited. The exploit in question allows an unprivileged user to execute code at kernel level.
|
||||
A security researcher reverse-engineered the patch and published a proof-of-concept code, which highlights the severity of the issue.
|
||||
The urgent patch less than a month after the release of iOS 15 also fixes at least 22 documented vulnerabilities, including remote DOS and local code execution.
|
||||
Apple offers a built in two-factor authenticator to provide extra login security.
|
||||
They also offer a feature called Mail Privacy Protection that prevents marketers from gathering mail activity.
|
||||
Reference in New Issue
Block a user