szobak letrehozasa es listazasa. tanulok hozzaadasa szobahoz. szoba tisztantartasanak, valamint telitettsegenek nyilvantartasa

This commit is contained in:
mullerbalint committed 2026-10-06 20:29:53 +02:00
1 parent 2ba8e6147b
commit 0ab754b3a3
2 files changed
+258 -2

No files matched your search

+76 -2
View File
@@ -1,10 +1,84 @@
namespace KoliMester3000 using System;
namespace KoliMester3000
{ {
internal class Program internal class Program
{ {
static void Main(string[] args) static void Main(string[] args)
{ {
Console.WriteLine("c# c# indul a varazs"); while (true)
{
Console.WriteLine("KoliMester 3000");
Console.WriteLine("1 - Szoba létrehozása");
Console.WriteLine("2 - Szobák lekérése");
Console.WriteLine("3 - Lakó hozzáadása szobához");
Console.WriteLine("66 - Konzol kiürítése");
Console.WriteLine("67 - Kilépés");
Console.Write("Írj be egy számot a folytatáshoz: ");
bool valid = int.TryParse(Console.ReadLine(), out int menuNumber);
if (valid)
{
switch (menuNumber)
{
case 1:
Console.Clear();
Console.Write("Szoba neve: ");
string roomName = Console.ReadLine();
Console.Write("Férőhely: ");
int space;
while (!int.TryParse(Console.ReadLine(), out space) || space <= 0)
{
Console.Write("Kérlek érvényes pozitív számot adj meg a férőhelyhez: ");
}
components.roomManagger.createRoom(roomName, space);
Console.WriteLine("Nyomj meg egy gombot a folytatáshoz...");
Console.ReadKey();
Console.Clear();
break;
case 2:
Console.Clear();
components.roomManagger.showRooms();
Console.WriteLine("Nyomj meg egy gombot a visszatéréshez a főmenübe...");
Console.ReadKey();
Console.Clear();
break;
case 3:
Console.Clear();
Console.Write("Melyik szobába szeretnél lakót tenni? (Szoba neve): ");
string targetRoom = Console.ReadLine();
Console.Write("Lakó neve: ");
string residentName = Console.ReadLine();
components.roomManagger.addResidentToRoom(targetRoom, residentName);
Console.WriteLine("Nyomj meg egy gombot a folytatáshoz...");
Console.ReadKey();
Console.Clear();
break;
case 66:
Console.Clear();
break;
case 67:
Environment.Exit(0);
break;
default:
Console.WriteLine("Nincs ilyen menüpont!\n");
break;
}
}
else
{
Console.WriteLine("Érvénytelen bemenet, számot adj meg!\n");
}
}
} }
} }
} }
+182
View File
@@ -0,0 +1,182 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;
namespace KoliMester3000.components
{
public class Room
{
public string roomNameC { get; set; }
public int roomSpaceC { get; set; }
public bool roomFullC { get; set; }
public bool cleanNeddedC { get; set; }
public List<string> residents { get; set; } = new List<string>();
}
internal class roomManagger
{
private static readonly string directoryPath = @"C:\kolimester";
private static readonly string filePath = Path.Combine(directoryPath, "rooms.json");
private static List<Room> loadRooms()
{
if (!File.Exists(filePath))
{
return new List<Room>();
}
try
{
string json = File.ReadAllText(filePath);
if (string.IsNullOrWhiteSpace(json))
{
return new List<Room>();
}
return JsonSerializer.Deserialize<List<Room>>(json) ?? new List<Room>();
}
catch
{
return new List<Room>();
}
}
private static void saveRooms(List<Room> rooms)
{
if (!Directory.Exists(directoryPath))
{
Directory.CreateDirectory(directoryPath);
}
var options = new JsonSerializerOptions { WriteIndented = true };
string json = JsonSerializer.Serialize(rooms, options);
File.WriteAllText(filePath, json);
}
public static void createRoom(string roomName, int space)
{
Console.WriteLine("letrehozas");
Console.WriteLine($"nev: {roomName}");
Console.WriteLine($"hely: {space}");
var newRoom = new Room
{
roomNameC = roomName,
roomSpaceC = space,
roomFullC = false,
cleanNeddedC = false,
residents = new List<string>()
};
List<Room> roomsList = loadRooms();
roomsList.Add(newRoom);
saveRooms(roomsList);
Console.WriteLine("Szoba sikeresen hozzáadva és mentve!\n");
}
public static void showRooms()
{
Console.WriteLine("- MENTETT SZOBÁK LISTÁJA -");
List<Room> roomsList = loadRooms();
if (roomsList.Count == 0)
{
Console.WriteLine("Még nincsenek mentett szobák.\n");
return;
}
int index = 1;
foreach (var room in roomsList)
{
string lakok;
if (room.residents != null && room.residents.Count > 0)
{
lakok = string.Join(", ", room.residents);
}
else
{
lakok = "Nincs lakó";
}
int lakokSzama = 0;
if (room.residents != null)
{
lakokSzama = room.residents.Count;
}
string teleVanSzoveg;
if (room.roomFullC)
{
teleVanSzoveg = "Igen";
}
else
{
teleVanSzoveg = "Nem";
}
string takaritasSzoveg;
if (room.cleanNeddedC)
{
takaritasSzoveg = "Igen";
}
else
{
takaritasSzoveg = "Nem";
}
Console.WriteLine($"{index}. Szoba neve: {room.roomNameC}");
Console.WriteLine($"Férőhely: {room.roomSpaceC} (Jelenlegi lakók száma: {lakokSzama})");
Console.WriteLine($"Lakók: {lakok}");
Console.WriteLine($"Tele van?: {teleVanSzoveg}");
Console.WriteLine($"Takarítás szükséges?: {takaritasSzoveg}");
Console.WriteLine(new string('-', 30));
index++;
}
Console.WriteLine();
}
public static void addResidentToRoom(string targetRoomName, string studentName)
{
List<Room> roomsList = loadRooms();
Room foundRoom = null;
foreach (var r in roomsList)
{
if (r.roomNameC.Equals(targetRoomName, StringComparison.OrdinalIgnoreCase))
{
foundRoom = r;
break;
}
}
if (foundRoom == null)
{
Console.WriteLine($"Nincs '{targetRoomName}' nevű szoba a rendszerben.\n");
return;
}
if (foundRoom.residents == null)
{
foundRoom.residents = new List<string>();
}
if (foundRoom.residents.Count >= foundRoom.roomSpaceC)
{
Console.WriteLine($"A(z) {foundRoom.roomNameC} szoba már megtelt! Nem adható hozzá új lakó.\n");
return;
}
foundRoom.residents.Add(studentName);
if (foundRoom.residents.Count >= foundRoom.roomSpaceC)
{
foundRoom.roomFullC = true;
}
saveRooms(roomsList);
Console.WriteLine($"'{studentName}' sikeresen hozzáadva a(z) {foundRoom.roomNameC} szobához!\n");
}
}
}