C# :: Aufgabe #212

4 Lösungen Lösungen öffentlich

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.

Lösungen:

vote_ok
von Tobi (110 Punkte) - 02.06.2018 um 23:37 Uhr
Quellcode ausblenden C#-Code
//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');
        }
    }
}
vote_ok
von Tobi (110 Punkte) - 02.06.2018 um 23:37 Uhr
Quellcode ausblenden C#-Code
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');
        }
    }
}
1x
vote_ok
von daniel59 (4260 Punkte) - 05.06.2018 um 11:43 Uhr
Quellcode ausblenden C#-Code
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();
            }
        }
    }
}
1x
vote_ok
von DBqFetti (2480 Punkte) - 10.06.2018 um 09:36 Uhr
Quellcode ausblenden C#-Code
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);
    }
  }
}