Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
using System; using System.Collections.Generic; using System.Threading; namespace OOP_11 { internal class Program { static void Main(string[] args) { AquariumSimulator simulator = new AquariumSimulator(5); simulator.Run(); } } class Fish { public Fish(string name, int maxAge) { Name = name; MaxAge = maxAge; Age = 0; } public string Name { get; } public int Age { get; private set; } public int MaxAge { get; } public bool IsAlive => Age < MaxAge; public void LiveOneCycle() { Age++; } public override string ToString() { return $"{Name} (Возраст: {Age}/{MaxAge}) {(IsAlive ? "" : "✖ Погибла")}"; } } class Aquarium { private List
_fishes; private int _capacity; public Aquarium(int capacity) { _capacity = capacity; _fishes = new List
(); } public void AddFish(Fish fish) { if (_fishes.Count >= _capacity) { Console.WriteLine("Аквариум переполнен! Нельзя добавить больше рыб."); return; } _fishes.Add(fish); Console.WriteLine($"Добавлена рыба: {fish.Name}"); } public void RemoveDeadFish() { for (int i = 0; i < _fishes.Count; i++) { if (_fishes[i].IsAlive == false) { Console.WriteLine($"Рыба {_fishes[i].Name} умерла и удалена из аквариума."); _fishes.RemoveAt(i); i--; } } } public void LiveCycle() { foreach (var fish in _fishes) { fish.LiveOneCycle(); } RemoveDeadFish(); } public void ShowStatus() { Console.WriteLine("\nТекущее состояние аквариума:"); if (_fishes.Count == 0) { Console.WriteLine("Аквариум пуст."); } else { foreach (var fish in _fishes) Console.WriteLine(fish); } } } class AquariumSimulator { private const int AddFishCommand = 1; private const int NextCycleCommand = 2; private const int ExitCommand = 0; private Aquarium _aquarium; private bool _isRunning; private Random _random; public AquariumSimulator(int capacity) { _aquarium = new Aquarium(capacity); _isRunning = true; _random = new Random(); } public void Run() { while (_isRunning) { Console.Clear(); _aquarium.ShowStatus(); Console.WriteLine(); Console.WriteLine($"{AddFishCommand} - Добавить рыбу"); Console.WriteLine($"{NextCycleCommand} - Прожить один цикл"); Console.WriteLine($"{ExitCommand} - Выход"); Console.Write("Выбор: "); string input = Console.ReadLine(); Console.WriteLine(); if (int.TryParse(input, out int choice) == false) { Console.WriteLine("Введите число от 1 до 6.\n"); continue; } switch (choice) { case AddFishCommand: AddFish(); break; case NextCycleCommand: NextCycle(); break; case ExitCommand: Exit(); break; default: Console.WriteLine("Неверный выбор. Повторите попытку."); break; } Thread.Sleep(1000); } } private void AddFish() { int startAge = 1; int endAge = 10; Console.Write("Введите имя рыбы: "); string name = Console.ReadLine(); int maxAge = _random.Next(startAge, endAge); _aquarium.AddFish(new Fish(name, maxAge)); } private void NextCycle() { _aquarium.LiveCycle(); } private void Exit() { _isRunning = false; } } }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)