Eine bestimmte Programmierklasse Ruby grundlegende Anwendungsfunktion

Anwendungsfunktion des Überprüfungsanzeigesystems

Als ich den Lehrplan einer bestimmten Programmierklasse überprüfte, wurde empfohlen, angewandte Funktionen zu implementieren, also habe ich es versucht. Hinweis -Es ist nur ein Implementierungsbeispiel! Es gibt viel effizientere Implementierungen und alternative Antworten. ・ Da es sich um einen relativ einfachen Lehrplan handelt, unterscheidet sich die Bedeutung der Anwendung von Ihrer Vorstellung. Es ist eine Erweiterung, die im Lehrplan keine Antwort hat.

Beispiel sofort beantworten

1. Definieren Sie die Menüanzeige als separate Funktion

Fügen Sie den zuvor verwendeten Überprüfungsanzeigeteil (den von Puts angezeigten Teil) in die neue Funktion ein. Vergessen Sie nicht, zu diesem Zeitpunkt ein formelles Argument vorzubereiten und das tatsächliche Argument in show ("Hash-Name") beim Aufrufer zu übergeben.

review.rb


def show(review)
  line = "------------------------------------"
  puts"Genre:#{review[:genle]}\n#{line}"
  puts"Titel:#{review[:title]}\n#{line}"
  puts"Impressionen:\n#{review[:text]}\n#{line}"
  puts"Wertung:#{review[:point]}\n#{line}"
end

2. Fügen Sie neue Überprüfungselemente hinzu

Alles, was Sie tun müssen, ist, der Funktion, die die Überprüfung veröffentlicht, ein neues Eingabeelement (Puts) hinzuzufügen, mit get auf Eingabe zu warten und dem Hash den Eingabewert zuzuweisen. Übrigens, da es notwendig ist, Puts für die Überprüfungsanzeige neu zu erhöhen, ist es effizienter, zuerst die "Verarbeitung, um die Anzeige zu einer separaten Funktion zu machen" von *** 1 *** durchzuführen.

review.rb


def write(hairetu)
  post = {}
  puts "Bitte geben Sie ein Genre ein:"
~~~Kürzung~~~
  puts "Bitte bewerten Sie mit maximal 100 Punkten:"
  point = gets.to_i
  while point > 100
    puts"0~Bitte geben Sie eine Zahl von 100 ein"
    point = gets.to_i
  end
  post[:point] = point
~~~Kürzung~~~

*** (Da der eingegebene Wert mit .to_i in einen numerischen Wert konvertiert wird, fügen Sie nicht ".chomp" hinzu. Achten Sie darauf, dass Sie beim Anzeigen nicht unnötig \ n hinzufügen und die Zeile nicht unterbrechen.) *** (Dieses Mal habe ich ein Bewertungselement hinzugefügt, was ärgerlich ist, also habe ich es so geschrieben, aber wenn es eine normale Zeichenkette ist, kann ich es auf die gleiche Weise wie andere Elemente schreiben.)

3. "Bewertung lesen" kann nicht ausgewählt werden, wenn keine Bewertung geschrieben wurde

Durch Schreiben von "&& box.length> 0" können Sie verhindern, dass die Lesefunktion (Funktion zum Lesen von Bewertungen) aufgerufen wird, es sei denn, der Inhalt des Arrays, das die Bewertungen (Hash) enthält, ist 0 oder mehr.

review.rb


while true
  puts "Anzahl der Bewertungen:#{box.length}"
  puts"[0]Ich schreibe eine Bewertung"
  puts"[1]Bewertungen lesen"
  puts"[2]Beenden Sie die App"
  if choice==0
~~~Kürzung~~~
  elsif choice==1 && box.length > 0
    read(box)
~~~Kürzung~~~
end

4. Wenn die Anzahl der Bewertungen, die Sie sehen möchten, größer als die Anzahl der Bewertungen ist, geben Sie sie erneut ein.

review.rb


  puts "Bitte geben Sie die Nummer der Bewertung ein, die Sie sehen möchten:"
  choice = gets.to_i
  while choice > box.length 
    puts "Bitte geben Sie die Nummer einer vorhandenen Bewertung ein:"
    choice = gets.to_i
  end

Wenn Sie auf diese Weise schreiben, können Sie eine while-Methode einrichten, die den Wert immer wieder neu eingibt, wenn die vom Benutzer eingegebene Anzahl größer ist als die Anzahl der Elemente im Array-Feld. *** Apropos *** In dieser Beschreibung werden die Bewertungen angezeigt, die kürzlich veröffentlicht wurden, wenn der Benutzer 0 oder eine Zeichenfolge eingibt. Es gibt verschiedene Lösungen, aber die einfachste ist

review.rb


  if choice == 0
    puts "Ungültiger Wert"
    return 
  else
~~~Verarbeitung nach der while-Anweisung~~~
end

Es ist eine Methode, um den Prozess mit der bedingten Anweisung von if einzuschließen. Als ich es versuchte, wurden sowohl 0 als auch die Zeichenkette fest abgestoßen. Bitte beachten Sie, dass die Lesefunktion stillschweigend endet, wenn Sie Puts nach der Rückkehr setzen. Bitte beachten Sie auch, dass wenn Sie den Esle-Teil nicht fest schreiben, er auch lautlos endet.

Beispielcode

review.rb


box = []
def write(hairetu)
  post = {}
  puts "Bitte geben Sie ein Genre ein:"
  post[:genle] = gets.chomp
  puts "Bitte geben Sie einen Titel ein:"
  post[:title] = gets.chomp
  puts "Bitte geben Sie Ihren Eindruck ein:"
  post[:text] = gets.chomp
  puts "Bitte bewerten Sie mit maximal 100 Punkten:"
  point = gets.to_i
  while point > 100
    puts"0~Bitte geben Sie eine Zahl von 100 ein"
    point = gets.to_i
  end
  post[:point] = point
  show(post)
  hairetu << post
  return hairetu
end

def read(box)

  box.each_with_index do |reviews,index|
    index += 1
    puts "#{[index]}:#{reviews[:title]}Überprüfung von"
  end
  puts "Bitte geben Sie die Nummer der Bewertung ein, die Sie sehen möchten:"
  choice = gets.to_i
  if choice == 0
    puts "Ungültiger Wert"
    return 
  else
  while choice > box.length 
    puts "Bitte geben Sie die Nummer einer vorhandenen Bewertung ein:"
    choice = gets.to_i
  end
  choice -= 1
  review = box[choice]
  show(review)
end
end

def show(review)
  line = "------------------------------------"
  puts"Genre:#{review[:genle]}\n#{line}"
  puts"Titel:#{review[:title]}\n#{line}"
  puts"Impressionen:\n#{review[:text]}\n#{line}"
  puts"Wertung:#{review[:point]}\n#{line}"
end

def exit
  exit
end

def error
  puts "Ungültiger Wert"
end

while true
  puts "Anzahl der Bewertungen:#{box.length}"
  puts"[0]Ich schreibe eine Bewertung"
  puts"[1]Bewertungen lesen"
  puts"[2]Beenden Sie die App"
  choice = gets.to_i
  if choice==0
    box = write(box)
  elsif choice==1 && box.length > 0
    read(box)
  elsif choice==2
    exit
  else
    error
  end
end

Um ehrlich zu sein, gibt es immer noch viele Möglichkeiten für Fehler. Wenn Sie also Fehler finden, kommentieren Sie diese bitte.

Recommended Posts

Eine bestimmte Programmierklasse Ruby grundlegende Anwendungsfunktion
[Java] Grundbegriffe der Programmierung
Objekt orientierte Programmierung
Grundlegender Typ-Java
Grundwissen
Beispiel für die Implementierung der reaktiven WebFlux-Programmierung (Basis)
Eine bestimmte Programmierklasse Ruby grundlegende Anwendungsfunktion
Grundlegende Erstellung von Webanwendungen Servlet / JSP (Anmeldefunktion)
Grundlegende Erstellung von Webanwendungen Servlet / JSP (Abmeldefunktion)
Ruby Grundbegriffe
[Einführung] Erstellen Sie eine Ruby on Rails-Anwendung
[Vollständige Programmierung] §5 Erstellen Sie eine Überprüfungsverwaltungs-App in Ruby