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

Erstelle ein Programm, das ein Veranstaltungsplanungssystem verwaltet, indem es Gästelisten aus zwei verschiedenen Einladungsquellen analysiert. Dein Programm sollte:

  1. Eine Zeichenfolgeeingabe lesen, die den Namen der Veranstaltung darstellt
  2. Mehrere Zeichenfolgeneingaben lesen, die Gäste aus der ersten Einladungsliste darstellen (die Eingabe endet, wenn du "list1_done" erhältst)
  3. Mehrere Zeichenfolgeneingaben lesen, die Gäste aus der zweiten Einladungsliste darstellen (die Eingabe endet, wenn du "list2_done" erhältst)
  4. Beide Gästelisten in Mengen umwandeln, um automatisch mit Duplikaten innerhalb jeder Liste umzugehen
  5. Die Methode union() verwenden, um alle eindeutigen zur Veranstaltung eingeladenen Gäste zu ermitteln
  6. Die Methode intersection() verwenden, um Gäste zu ermitteln, die in beiden Einladungslisten vorkommen
  7. Die Methode difference() verwenden, um Gäste zu ermitteln, die nur in der ersten Einladungsliste stehen
  8. Die Analyse der Gästelisten im unten exakt gezeigten Format ausgeben

Wenn der Veranstaltungsname beispielsweise "Birthday Party" lautet, die erste Liste "Alice", "Bob", "Charlie", "Diana" enthält und die zweite Liste "Bob", "Diana", "Eve", "Frank" enthält, sollte dein 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 Veranstaltungsname "Wedding Reception" lautet, die erste Liste "John", "Mary", "Sarah" enthält und die zweite Liste "Tom", "Lisa", "Mike" enthält, sollte dein 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 Veranstaltungsname "Company Meeting" lautet, die erste Liste "Alex", "Jordan", "Taylor", "Morgan", "Alex" enthält und die zweite Liste "Jordan", "Taylor", "Casey", "Jordan" enthält, sollte dein 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

Dein Programm muss alle drei Mengenoperationen demonstrieren: union(), um alle Gäste zusammenzuführen, intersection(), um Gäste zu ermitteln, die in beiden Listen vorkommen, und difference(), um Gäste zu ermitteln, die ausschließlich in der ersten Liste stehen. Wandle die Eingabelisten zuerst in Mengen um, um mit Duplikaten innerhalb einzelner Listen umzugehen, und führe anschließend die Mengenoperationen durch, um die Verteilung der Gäste 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

Übe selbstständig: Online-Dart-Compiler