Menu
Coddy logo textTech

Rückblick – Einzigartige Gästeliste

Teil des Abschnitts Logik & Ablauf der Dart-Journey von Coddy — Lektion 25 von 65.

challenge icon

Aufgabe

Einfach

Erstellen Sie ein Programm, das ein Event-Planungssystem verwaltet, indem es Gästelisten aus zwei verschiedenen Einladungsquellen analysiert. Ihr Programm sollte:

  1. Eine String-Eingabe einlesen, die den Eventnamen darstellt
  2. Mehrere String-Eingaben einlesen, die Gäste aus der ersten Einladungsliste darstellen (die Eingabe endet, wenn Sie "list1_done" erhalten)
  3. Mehrere String-Eingaben einlesen, die Gäste aus der zweiten Einladungsliste darstellen (die Eingabe endet, wenn Sie "list2_done" erhalten)
  4. Beide Gästelisten in Sets umwandeln, um Duplikate innerhalb jeder Liste automatisch zu behandeln
  5. Die Methode union() verwenden, um alle einzigartigen Gäste zu finden, die zum Event eingeladen wurden
  6. Die Methode intersection() verwenden, um Gäste zu finden, die auf beiden Einladungslisten stehen
  7. Die Methode difference() verwenden, um Gäste zu finden, die nur auf der ersten Einladungsliste stehen
  8. Die Gästelisten-Analyse im exakt unten gezeigten Format ausgeben

Wenn der Eventname beispielsweise "Birthday Party" ist, die erste Liste "Alice", "Bob", "Charlie", "Diana" enthält und die zweite Liste "Bob", "Diana", "Eve", "Frank" enthält, sollte Ihr Programm Folgendes ausgeben:

Event: Birthday Party
First invitation list: {Alice, Bob, Charlie, Diana}
Second invitation list: {Bob, Diana, Eve, Frank}
All unique guests: {Alice, Bob, Charlie, Diana, Eve, Frank}
Guests on both lists: {Bob, Diana}
Guests only on first list: {Alice, Charlie}
Total unique guests: 6
Duplicate invitations: 2
First list only: 2
Status: Guest list analysis completed

Wenn der Eventname "Wedding Reception" ist, die erste Liste "John", "Mary", "Sarah" enthält und die zweite Liste "Tom", "Lisa", "Mike" enthält, sollte Ihr Programm Folgendes ausgeben:

Event: Wedding Reception
First invitation list: {John, Mary, Sarah}
Second invitation list: {Tom, Lisa, Mike}
All unique guests: {John, Mary, Sarah, Tom, Lisa, Mike}
Guests on both lists: {}
Guests only on first list: {John, Mary, Sarah}
Total unique guests: 6
Duplicate invitations: 0
First list only: 3
Status: Guest list analysis completed

Wenn der Eventname "Company Meeting" ist, die erste Liste "Alex", "Jordan", "Taylor", "Morgan", "Alex" enthält und die zweite Liste "Jordan", "Taylor", "Casey", "Jordan" enthält, sollte Ihr Programm Folgendes ausgeben:

Event: Company Meeting
First invitation list: {Alex, Jordan, Taylor, Morgan}
Second invitation list: {Jordan, Taylor, Casey}
All unique guests: {Alex, Jordan, Taylor, Morgan, Casey}
Guests on both lists: {Jordan, Taylor}
Guests only on first list: {Alex, Morgan}
Total unique guests: 5
Duplicate invitations: 2
First list only: 2
Status: Guest list analysis completed

Ihr Programm muss alle drei Set-Operationen demonstrieren: union() zum Kombinieren aller Gäste, intersection() zum Finden von Gästen, die auf beiden Listen erscheinen, und difference() zum Finden von Gästen, die exklusiv auf der ersten Liste stehen. Wandeln Sie die Eingabelisten zuerst in Sets um, um Duplikate innerhalb einzelner Listen zu behandeln, und führen Sie dann die Set-Operationen durch, um die Gästeverteilung zu analysieren.

Probier es selbst

import 'dart:io';

void main() {
  // Veranstaltungsnamen lesen
  String? eventName = stdin.readLineSync();
  
  // Erste Einladungsliste lesen
  List<String> firstList = [];
  String? input;
  while ((input = stdin.readLineSync()) != "list1_done") {
    if (input != null) {
      firstList.add(input);
    }
  }
  
  // Zweite Einladungsliste lesen
  List<String> secondList = [];
  while ((input = stdin.readLineSync()) != "list2_done") {
    if (input != null) {
      secondList.add(input);
    }
  }
  
  // Listen in Sets umwandeln
  Set<String> firstSet = firstList.toSet();
  Set<String> secondSet = secondList.toSet();
  
  // TODO: Schreiben Sie Ihren Code unten
  // Verwenden Sie die Methoden union(), intersection() und difference(), um die Gästelisten zu analysieren
  // Berechnen Sie alle eindeutigen Gäste, Gäste auf beiden Listen und Gäste, die nur auf der ersten Liste stehen
  
  // Die Ergebnisse im erforderlichen Format ausgeben
  print("Event: $eventName");
  print("First invitation list: $firstSet");
  print("Second invitation list: $secondSet");
  // Weitere Ausgabeanweisungen hier hinzufügen
}

Alle Lektionen in Logik & Ablauf