-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProgram.cs
More file actions
134 lines (120 loc) · 5.16 KB
/
Copy pathProgram.cs
File metadata and controls
134 lines (120 loc) · 5.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;
namespace Dateimanager1
{
class Program
{
// TEIL 1: Das Hauptprogramm
static void Main(string[] args)
{
bool programmLauft = true;
// Das Dictonary für die Menüauswahl
var menue = new Dictionary<string, Action>()
{
{"1", DateiTools.TextDateiLesen},
{"2", DateiTools.DateiKopieren},
{"3", CryptoTools.Verschluesseln},
{"4", CryptoTools.Entschluesseln},
// Hier werden die Wrapper (Hilfs-Methoden) für Polybius und PQC aufgerufen
{"5", () => PolybiusWrapper()},
{"6", () => PqcWrapper()},
{"7", () => QuestionaireWrapper()}, // Startet das neue Fragebogen-Menü
// Hier wird das Programm beendet
{"8", () => programmLauft = false}
};
// Beginn der Hauptschleife
while (programmLauft)
{
Console.Clear(); // Konsole säubern für bessere Übersicht
Console.WriteLine("Was möchten Sie tun?");
Console.WriteLine("1 - Textdatei lesen (Aufgabe 1)");
Console.WriteLine("2 - Datei kopieren (Aufgabe 2)");
Console.WriteLine("3 - Verschlüsseln (Aufgabe 3)");
Console.WriteLine("4 - Entschlüsseln (Aufgabe 3)");
Console.WriteLine("5 - Polybius Verschlüsselung (Aufgabe 4)");
Console.WriteLine("6 - Datei mit PQC verschlüsseln (Bonusaufgabe)");
Console.WriteLine("7 - Fragebogen Menü (Fragebogen (Psychologisches Institut)");
Console.WriteLine("8 - Beenden");
Console.Write("Auswahl: ");
string wahl = Console.ReadLine() ?? "";
// Durchführen der gewählten Aktion (dies ersetzt die lange if-else Kette)
if(menue.ContainsKey(wahl))
{
try
{
menue[wahl].Invoke();
}
catch (Exception ex)
{
Console.WriteLine($"Ein Fehler ist aufgetreten: {ex.Message}");
}
}
else
{
Console.WriteLine("Ungültige Eingabe. Bitte versuchen Sie es erneut.");
}
if(programmLauft)
{
Console.WriteLine("\nDrücken Sie Enter um zum Hauptmenü zurückzukehren...");
}
}
Console.WriteLine("Programm beendet. Tschüss!");
} // Ende der Hauptschleife
// Hilfsmethoden (Wrapper)
static void PolybiusWrapper()
{
Console.WriteLine("\n--- POLYBIUS VERSCHLÜSSELUNG ---");
Console.Write("Geben Sie das Schlüsselwort ein: ");
string key = Console.ReadLine() ?? "";
Polybius p = new Polybius(key); // Hier erstellen wir eine Instanz der Polybius-Klasse
Console.WriteLine("Geben Sie den Klartext ein: ");
string klartext = Console.ReadLine() ?? "";
int[] ergebnis = p.Verschluesseln(klartext);
Console.WriteLine("Ergebnis: " + string.Join(" ", ergebnis));
}
static void PqcWrapper()
{
// Hier wird das Objekt der PQC-Simulation erstellt
PQCSimulator simulator = new PQCSimulator();
Console.WriteLine("\n--- PQC HYBRID SIMULATION --- ");
PQCSimulator();
Console.WriteLine("(V)erschlüsseln oder (E)ntschlüsseln?");
string modus = (Console.ReadLine() ?? "").ToUpper();
if (modus == "V")
{
Console.Write("Welche Datei soll verschlüsselt werden? (Pfad): ");
string quelle = Console.ReadLine() ?? "";
Console.Write("Wie soll die Datei heißen? (z.B. safe.pqc): ");
string ziel = Console.ReadLine() ?? "";
simulator.DateiVerschluesselung(quelle, ziel);
}
else if (modus == "E")
{
Console.Write("Welche PQC-Datei soll entschlüsselt werden?: ");
string quelle = Console.ReadLine() ?? "";
Console.Write("Wie soll die wiederhergestellte Datei heißen?: ");
string ziel = Console.ReadLine() ?? "original_restored.txt";
simulator.DateiEntschluesseln(quelle, ziel);
}
else
{
Console.WriteLine("Ungültige Auswahl.");
}
}
// TEIL 2: Die Methoden des Programms
// Hilfsmethode für "Drücken Sie Enter.."
static void DrueckeEnter()
{
Console.WriteLine("\nDrücken Sie eine Taste, um fortzufahren...");
Console.ReadLine();
}
// Wrapper-Methode für das Fragebogen-Menü (Neu hinzugefügt)
static void QuestionaireWrapper()
{
Questionaire q = new Questionaire();
q.StartMenue();
}
}
}