Thread Bitte um Hilfe für eine Studentin bei PERL Aufgaben!! (71 answers)
Opened by Anna_mary at 2010-06-20 14:34

hlubenow
 2010-06-20 20:10
#138513 #138513
User since
2009-02-22
875 Artikel
BenutzerIn
[default_avatar]
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/perl

use warnings;
use strict;

=cut
a) Legen Sie ein Hash an mit 4 beliebigen Produktnamen als Schlüssel und den dazugehörigen, beliebigen Preisen als Wert. (z.B. Apfel kostet 0.29. Benutzen Sie bei Fließkommazahlen den Punkt und nicht das Komma!)
Geben Sie den Inhalt des Hashs auf die Standardausgabe aus, sodass der Benutzer erfährt, welche Produkte zu welchem Preis bestellbar sind.
=cut

my %h = ("Apfel"   => 0.29,
         "Birne"   => 0.34,
         "Pflaume" => 0.09,
         "Zitrone" => 0.40);
my $i;

foreach $i (keys(%h)) {
    print $i . "\t\t" . $h{$i} . "\n";
}

=cut
b) Erweitern Sie das Programm dahingehend, dass der Benutzer Bestellungen aufgeben kann. Er soll nacheinander Produktnamen eingeben können, die das Programm sich merken soll (Liste!), falls diese im Hash enthalten sind. Ist das Produkt nicht vorhanden, soll eine Meldung an den Benutzer ausgegeben werden. Verwenden Sie dazu innerhalb einer Abfrage die exists-Funktion: exists $hash{$schluessel}
Wenn der Benutzer nichts weiteres bestellen möchte, soll er ein Stoppwort (z.B. Ende) eingeben können. (Zur eigenen Kontrolle sollten Sie nun alle bestellten Produkte ausgeben.)
=cut

my @best = ();
while (1) {
    print "Bestellung: ";
    my $inp = <STDIN>;
    chomp($inp);
    if ($inp eq "Ende") {
        last;
    }
    if (exists($h{$inp})) {
        push(@best, $inp);
    } else {
        print "Fehler: Produkt nicht vorhanden.\n";
    }
}

=cut
c) Zuletzt soll der Benutzer eine ausführliche Rechnung angezeigt bekommen. Dazu müssen die Produktnamen und die jeweiligen Preise ausgegeben sowie der Gesamtpreis berechnet und ausgegeben werden.

Bsp.:
Bestellt wurde:
Produkt X1 zum Preis von: Y1 Euro
Produkt X2 zum Preis von: Y2 Euro
...
Der Gesamtpreis beträgt: Z Euro

Machen Sie Gebrauch von Zeilenumbrüchen und/oder Tabulatoren (''\t'') um die Lesbarkeit zu verbessern.
=cut

print "\nRechnung:\n";
print "Bestellt wurde:\n";

my $sum = 0;

foreach $i (@best) {
    print "Produkt \"$i\" zum Preis von:\t$h{$i} Euro.\n";
    $sum += $h{$i};
}

print "Der Gesamtpreis beträgt:\t$sum Euro.\n";

Nette Hausaufgabe!

View full thread Bitte um Hilfe für eine Studentin bei PERL Aufgaben!!