Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Po_Kol_MarekMichaluk
- {
- class Program
- {
- static void Main(string[] args)
- {
- Prom prom = new Prom(1000);
- prom.ZaladujychPojazd(new Osobowy(200, "XD"));
- prom.ZaladujychPojazd(new Osobowy(300, "XF"));
- prom.ZaladujychPojazd(new Ciezarowka(500, "XC"));
- //prom.ZaladujychPojazd(new Ciezarowka(500, "XZ"));
- }
- }
- abstract class Pojazd
- {
- public double masa;
- public string nazwa;
- protected Pojazd(double masa, string nazwa)
- {
- this.masa = masa;
- this.nazwa = nazwa;
- }
- }
- class Ciezarowka : Pojazd
- {
- public Ciezarowka(double masa, string nazwa) : base(masa, nazwa)
- {
- }
- }
- class Osobowy : Pojazd
- {
- public Osobowy(double masa, string nazwa) : base(masa, nazwa)
- {
- }
- }
- class Prom
- {
- private double ladownosc;
- private double masaPojazdow;
- private List<Pojazd> pojazdy;
- private bool zaladowany;
- public Prom(double ladownosc)
- {
- this.ladownosc = ladownosc;
- this.masaPojazdow = 0;
- this.pojazdy = new List<Pojazd>();
- this.zaladowany = false;
- }
- public double MasaZaladowanychPojazdow()
- {
- return 0;
- }
- public void ZaladujychPojazd(Pojazd p)
- {
- try
- {
- if (this.masaPojazdow + p.masa > this.ladownosc)
- throw new WyczerpnanaLadownosc();
- this.pojazdy.Add(p);
- this.masaPojazdow += p.masa;
- this.zaladowany = true;
- }
- catch (WyczerpnanaLadownosc e)
- {
- throw new Exception("Przepełnione", e);
- }
- }
- public void WyladujPojazd(Pojazd p)
- {
- this.pojazdy.Remove(p);
- this.masaPojazdow -= p.masa;
- }
- public class WyczerpnanaLadownosc : Exception
- {
- public WyczerpnanaLadownosc()
- {
- }
- public WyczerpnanaLadownosc(string message)
- : base(message)
- {
- }
- public WyczerpnanaLadownosc(string message, Exception inner)
- : base(message, inner)
- {
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement