Leicht geänderte Spezifikation für eine CS1-ProgrammDer Manager eines Fast-Food-Steckdose benötigt ein Programm zur Umsatz zu helfen. Der Ausgang dient nur Burger mit Pommes, ein Burger-Essen kostet 5,95 $. Kunden können damit eine beliebige Anzahl von Burger Mahlzeiten. Das Programm soll dazu beitragen kalkulieren die Preise von Bestellungen, und wird auch auf Datensätze der gesamten Bestellungen zu halten und den größten Einzelauftrag. Das Programm ist ein einfaches Menü wählen Sie Stil-Schleife mit der Optionen verwenden:
(1) Ort, um (2) Print Summen bisher (3) Beenden Die Reihenfolge Option sollte zu einer Eingabeaufforderung für die Anzahl der erforderlichen Mahlzeiten. Anstelle der unwirksamen Eingabedaten (Wert <= 0) sind, die verworfen werden, das Programm ist wieder der Anwender mit den Optionen eingeben. Gültig Input-Daten sollten in den Updates des Gesamtumsatzes führen und gegebenenfalls Aktualisierung des Datensatzes der größten Ordnung. Das Programm sollte auch mit einer laufenden Nummer zu reagieren und die Kosten für die Bestellung. Die Summen Option sollen die Einzelheiten des Gesamtumsatzes und größten Auftrag zu drucken. Die Option beenden Sie das Programm beendet. Eine ungültige Option Auswahl wird berichtet, dann wird das Programm wiederholt die Eingabeaufforderung für Eingang. (Das Original-Spezifikation einen Ausdruck mit der genauen Formate für Ein-und Ausgänge erforderlich enthalten.) Offensichtlich erfordert das Perl-Programm eine while-Schleife mit einer if ... elsif ... else konstruieren. #! / share / bin / perl-w $ cost = 5,95 $ orderNum = 0; $ maxorder = 0; $ totalsales = 0; while (1) (print "Willkommen bei CS1 Burgers 1. Machen Sie eine Bestellung 2. Print beträgt 3. Beenden Sie Ihre Wahl: '; $ order = print "Gesamtbetrag: \ $ $ totalsales \ n"; print "Maximale Anzahl der Gerichte in einem". "einzigen Auftrag: $ maxorder Gerichte \ n";) elsif ($ order == 3) bestellt (last;) else ( print "Das ist eine schlechte Wahl war. ... Try again";)) print "Bye! \ n"; (Können Sie sich erinnern an die Zeiten, wenn so etwas eine harte Aufgabe, die Sie dauerte eine Woche, was?) Funktionen in den Code beachten sind: A 'forever' while-Schleife, durch die letzte Anweisung in der Auswahl Option 3 eingestellt. Die Verwendung von amulti-line string Definition auf die Erklärung der Prompt-String zu vereinfachen. Die Verwendung von Diese Aufgabe war eigentlich von einem übergeordneten Thema, aber es erfordert auch nur die grundlegenden Strukturen der Programmierung. Das Programm ist auf Daten über die Dateien und Verzeichnisse zu lesen, erhalten aus der Unix-Befehl ls-l. Eingang ist von STDIN (entweder Pfeife aus ls-l gelesen werden oder eine Umleitung aus einer Datei über ls-l) gewonnen wird. Beispiel Eingabedaten sind: -rx - x - x 1 root bin 20796 6. Januar 2000 acctcom-rx - x - x 37 root bin 5256 6. Januar 2000 adb lrwxrwxrwx 1 root root 29 30. November 2000 cachefspack -> .. / lib / fs / cachefs / cachefspack drwxr-xr-x 2 root bin 512 Jun 10 15:08 sparcv7 Das Programm wird in Linien für einfache Dateien und Verzeichnisse Prozess; speziellen Verzeichnis-Einträge, wie Links, werden ignoriert. Das Programm ist mit einem Ausgang Zeile für jeden verarbeiteten Inputs Linie zu zeichnen. Dieser Ausgang Linie wird auf die Dateiberechtigungen in Form der Oktalcode für Unix-Rechte verwendet umschreiben, es ist anzugeben, ob die Zeile in eine Datei oder ein Verzeichnis bezieht, und ist, um den Eintrag zu drucken. Wenn alle Eingaben Zeilen verarbeitet wurden, ist das Programm zählt die Anzahl der Dateien und Verzeichnisse zu drucken und dann beenden. Die Ausgabe für die oben genannten Daten sollten angezeigt: 511 Datei-Datei acctom 511 adb 755 Verzeichnis sparcv7 Die erste Version der Lösung für diese Aufgabe wieder auf eine while-Schleife, in dem alle die Verarbeitung durchgeführt hat. Die Schleife liest eine Zeile von STDIN und endet, wenn eine leere Zeile eingegangen ist (End-of-file-Bedingung). Die Behandlung hängt von den spezifischen Zeichen, die Eingabe werden; Perl Standard substr Funktion wird verwendet, um Zeichen aus der Eingabezeile auszuwählen. #! / share / bin / perl-w $ files = 0; $ directories = 0; while ($ str = print "$ (code) \ t $ (type) \ t $ (name) \ n";) print "$ Dateien, Dateien, Verzeichnisse, Verzeichnisse und $ \ n"; while ($ str = for ($ i = 1; $ i <10; $ i + +) ($ code *= 2; if ( "-" ne substr ($ str, $ i, 1)) ($ code + +;)) $ pos = rindex ( $ str, ""); $ name = substr ($ str, $ pos +1); printf "% o% s", $ code, "\ t $ (type) \ t $ (name) \ n";) In der printf Anweisung, s das erste Argument '% o% "ist der Format-String; dieser Ausgabe gibt einen numerischen Wert in oktal, durch einen String. Die weiteren Argumente sind den Code, und einen String mit dem Typ (Datei oder das Verzeichnis) und den Entity-Namen. Natürlich gibt es einen anderen Weg, es zu tun. Da eine Format-String ist ein doppelt zitiert Perl-String, kann es Werte zu interpolieren. Die folgende Variante wäre so gut: printf "% o \ t $ (type) \ t $ (name) \ n", $ code; Ein Artikel eingereicht von Ronald Smith Disclaimer:Unsere Website ist nicht verantwortlich für den Inhalt dieses Artikels. Webarticles ist eine kostenlose Informationsquelle. Wichtig: Dieser Artikel "Leicht geänderte Spezifikation für eine CS1-Programm" wurde durch ein automatisches Software übersetzt. Wir fühlen uns leid für alle Rechtschreibfehler, die möglicherweise aufgetreten sind. Vielen Dank für Ihr Verständnis.
|
|||||
| Online: 215 users browsing the articles directory |
|
|