C# :: Aufgabe #212
4 Lösungen

Einfacher Namensgenerator
Anfänger - C#
von Exception
- 30.05.2018 um 15:23 Uhr
Schreibe ein Programm, welches zwei Textdateien (zb Vorname.txt, Nachname.txt) Zeile für Zeile in ein Array lädt.
Gebe dann eine zufällige Kombination aus Vornamen und Nachnamen aus.
Gebe dann eine zufällige Kombination aus Vornamen und Nachnamen aus.
Lösungen:

//ich habe es leider nicht kürzer geschafft das es denn Array manchmal nicht aufgefüllt hat :( using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace NAME_GENERATOR { class Program { static void Main(string[] args) { char antwort; do { int counter = 0, counter1 = 0; string line; // Einlesen des Files zeilenweise und Anzeigen am Monitor System.IO.StreamReader file = new System.IO.StreamReader(@"C:\Users\Tobias\Downloads\vorname.txt"); System.IO.StreamReader file1 = new System.IO.StreamReader(@"C:\Users\Tobias\Downloads\nachname.txt"); while ((line = file.ReadLine()) != null) { counter++; } while ((line = file1.ReadLine()) != null) { counter1++; } file1.Close(); file.Close(); int v = 0; System.IO.StreamReader filev = new System.IO.StreamReader(@"C:\Users\Tobias\Downloads\vorname.txt"); System.IO.StreamReader filen = new System.IO.StreamReader(@"C:\Users\Tobias\Downloads\nachname.txt"); string[] vornamen = new string[counter]; string[] nachnamen = new string[counter1]; while ((line = filev.ReadLine()) != null) { vornamen[v] = line; v++; } v = 0; while ((line = filen.ReadLine()) != null) { nachnamen[v] = line; v++; } Console.WriteLine(); Random r = new Random(); Console.WriteLine(vornamen[r.Next(0,counter)]+" "+ nachnamen[r.Next(0, counter1)]); filen.Close(); filev.Close(); do { Console.WriteLine("Do you want to repeat this pogramm? "); antwort = char.Parse(Console.ReadLine()); } while (antwort != 'j' && antwort != 'n' && antwort != 'N' && antwort != 'J' ); } while (antwort =='j' || antwort == 'J'); } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace NAME_GENERATOR { class Program { static void Main(string[] args) { char antwort; do { int counter = 0, counter1 = 0; string line; // Einlesen des Files zeilenweise und Anzeigen am Monitor System.IO.StreamReader file = new System.IO.StreamReader(@"C:\Users\Tobias\Downloads\vorname.txt"); System.IO.StreamReader file1 = new System.IO.StreamReader(@"C:\Users\Tobias\Downloads\nachname.txt"); while ((line = file.ReadLine()) != null) { counter++; } while ((line = file1.ReadLine()) != null) { counter1++; } file1.Close(); file.Close(); int v = 0; System.IO.StreamReader filev = new System.IO.StreamReader(@"C:\Users\Tobias\Downloads\vorname.txt"); System.IO.StreamReader filen = new System.IO.StreamReader(@"C:\Users\Tobias\Downloads\nachname.txt"); string[] vornamen = new string[counter]; string[] nachnamen = new string[counter1]; while ((line = filev.ReadLine()) != null) { vornamen[v] = line; v++; } v = 0; while ((line = filen.ReadLine()) != null) { nachnamen[v] = line; v++; } Console.WriteLine(); Random r = new Random(); Console.WriteLine(vornamen[r.Next(0,counter)]+" "+ nachnamen[r.Next(0, counter1)]); filen.Close(); filev.Close(); do { Console.WriteLine("Do you want to repeat this pogramm? "); antwort = char.Parse(Console.ReadLine()); } while (antwort != 'j' && antwort != 'n' && antwort != 'N' && antwort != 'J' ); } while (antwort =='j' || antwort == 'J'); } } }

using System; using System.IO; using System.Linq; namespace ConsoleNamenGenerator { class Program { static string[] vornamen; static string[] nachnamen; static readonly Random rnd = new Random(); static void Main(string[] args) { string vornameDatei = @"C:\Users\tba\Desktop\vornamen.txt"; string nachnameDatei = @"C:\Users\tba\Desktop\nachnamen.txt"; ReadFiles(vornameDatei, nachnameDatei); Console.WriteLine("----- Namensgenerator -----"); do { Console.WriteLine(); string name = GenerateRandomName(); Console.WriteLine($"Generierter Name: {name}"); Console.Write("Noch ein Namen generieren? (J/N): "); } while (Console.ReadKey().Key == ConsoleKey.J); } static string GenerateRandomName() { return vornamen[rnd.Next(0, vornamen.Length)] + " " + nachnamen[rnd.Next(0, nachnamen.Length)]; } static void ReadFiles(string vornameDatei, string nachnameDatei) { using (StreamReader sr = new StreamReader(vornameDatei)) { vornamen = sr.ReadToEnd().Split('\r', '\n').Where(a => !string.IsNullOrWhiteSpace(a)).ToArray(); } using (StreamReader sr = new StreamReader(nachnameDatei)) { nachnamen = sr.ReadToEnd().Split('\r', '\n').Where(a => !string.IsNullOrWhiteSpace(a)).ToArray(); } } } }

using System; using System.IO; using System.Linq; namespace TYP212 { class Program { const string FFIRST = "vornamen.txt", FLAST = "nachnamen.txt"; static readonly Random rnd = new Random(); static string[] first, last; static void Main() { if(!File.Exists(FFIRST) || !File.Exists(FLAST)) { return; } first = File.ReadAllLines(FFIRST).Distinct().ToArray(); last = File.ReadAllLines(FLAST).Distinct().ToArray(); do { Console.WriteLine($"{first[rnd.Next(first.Length)]} {last[rnd.Next(last.Length)]}"); } while(Console.ReadKey(true).Key != ConsoleKey.Escape); } } }