summaryrefslogtreecommitdiffstats
path: root/Aufgabe3/lagerVerwerwaltung.pl
diff options
context:
space:
mode:
authorMartin Talarczyk <martin@talarczyk.de>2015-11-13 12:17:15 +0100
committerMartin Talarczyk <martin@talarczyk.de>2015-11-13 12:17:15 +0100
commitf08f2d0e3798ff90b7e68c46751e15b7b991a2a0 (patch)
tree46d12d0da15882ec53d2a016e3252b05638d6b98 /Aufgabe3/lagerVerwerwaltung.pl
downloadSkriptsprachen-f08f2d0e3798ff90b7e68c46751e15b7b991a2a0.tar.gz
Skriptsprachen-f08f2d0e3798ff90b7e68c46751e15b7b991a2a0.zip
Commitel Aufgabe 1 bis 4
Diffstat (limited to 'Aufgabe3/lagerVerwerwaltung.pl')
-rw-r--r--Aufgabe3/lagerVerwerwaltung.pl93
1 files changed, 93 insertions, 0 deletions
diff --git a/Aufgabe3/lagerVerwerwaltung.pl b/Aufgabe3/lagerVerwerwaltung.pl
new file mode 100644
index 0000000..54dd74a
--- /dev/null
+++ b/Aufgabe3/lagerVerwerwaltung.pl
@@ -0,0 +1,93 @@
+#!/usr/bin/env perl
+#===============================================================================
+#
+# FILE: lagerVerwerwaltung.pl
+#
+# USAGE: ./lagerVerwerwaltung.pl
+#
+# DESCRIPTION:
+#
+# OPTIONS: ---
+# REQUIREMENTS: ---
+# BUGS: ---
+# NOTES: ---
+# AUTHOR: Martin Talarczyk (MT), talarczyk.martin@fh-swf.de
+# ORGANIZATION: FH Südwestfalen, Iserlohn
+# Matrikel-Nr.: 10036162
+# VERSION: 1.0
+# CREATED: 27.10.2015 17:47:22
+# REVISION: ---
+#===============================================================================
+
+use strict;
+use warnings;
+use utf8;
+
+binmode (STDIN, ":encoding(UTF-8)");
+binmode (STDOUT, ":encoding(UTF-8)");
+binmode (STDERR, ":encoding(UTF-8)");
+use open ":encoding(UTF-8)";
+
+
+#-------------------------------------------------------------------------------
+# Variabelen Deklarasion
+#-------------------------------------------------------------------------------
+
+my %artikelHash;
+my $artikelNummer;
+my $artikelAnzahl;
+my $redeline;
+my $platz = 0;
+my @keys;
+
+#-------------------------------------------------------------------------------
+# Datei artikel-artikelanzahl.txt einlesen und in Hash schreiben.
+#-------------------------------------------------------------------------------
+my $opfp_file_name = 'artikel-artikelanzahl.txt'; # input file name
+
+open my $opfp, '<', $opfp_file_name
+ or die "$0 : failed to open input file '$opfp_file_name' : $!\n";
+
+while(my $line = <$opfp>)
+{
+ ($artikelNummer,$artikelAnzahl) = split /\s+/,$line;
+
+ $artikelHash{$artikelNummer} += $artikelAnzahl;
+
+ $redeline++;
+}
+
+close $opfp
+ or warn "$0 : failed to close input file '$opfp_file_name' : $!\n";
+
+
+
+#-------------------------------------------------------------------------------
+# Ausgaben des Hashes sortirt nach Artikelnummer.
+#-------------------------------------------------------------------------------
+
+printf "%s %s \n\n", "Nummer" ,"Anzahl";
+
+foreach my $key ( sort keys %artikelHash )
+{
+ printf "%6d %6d \n", $key , $artikelHash{$key};
+}
+
+#-------------------------------------------------------------------------------
+# 30 Artikel mit höster Zugrifszahl.
+#-------------------------------------------------------------------------------
+@keys = sort {$artikelHash{$b} <=> $artikelHash{$a}} (keys %artikelHash);
+
+printf"\nArtikel mit den höchsten Zugriffszahlen\n";
+
+printf"%s : %s%10s\n", "Platz", "Artikel", "Bestand";
+
+for(my $i = 0; $i < 30 && $i < scalar @keys ; $i++) {
+
+ printf "%5s : %7s%10s\n", $platz, $keys[$i], $artikelHash{$keys[$i]};
+
+ $platz++;
+}
+
+
+printf "%s Artikel im Bestand.\n%s Artikel in der Liste.\n", scalar keys %artikelHash, $redeline;