Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- W Nauczycielu jest UsunOcene(Dziennik dziennik) i UsunOcene(Uczen uczen), obie metody działają, ale nie wiem, która semantycznie jest lepsza, lub czy jest to bez znaczenia. Proszę nie zwracać uwagi na returny, z tego co już zauważyłem to nie są potrzebne, bo obiektu nigdzie nie zwracam.
- public abstract class Uzytkownik
- {
- public static int NextId { get; set; }
- public int uzytkownikId { get; set; }
- public uzytkownikTypOpcje uzytkownikTyp { get; set; }
- public string Login { get; set; }
- public string Haslo { get; set; }
- public string Imie { get; set; }
- public string Nazwisko { get; set; }
- }
- public class Nauczyciel : Uzytkownik
- {
- public Nauczyciel()
- {
- uzytkownikId = 1;
- uzytkownikTyp = uzytkownikTypOpcje.Nauczyciel;
- Login = "Nauczyciel";
- Haslo = "Nauczyciel";
- Imie = "Bogdan";
- Nazwisko = "Bajek";
- PrzedmiotTyp = "Informatyka";
- }
- public string PrzedmiotTyp { get; set; }
- public Dziennik DodajOcene(Dziennik dziennik)
- {
- Console.WriteLine("Jaką ocenę chcesz dodać do dziennika?");
- int ocena = int.Parse(Console.ReadLine());
- var oceny = new List<int>
- {
- ocena
- };
- if (!dziennik.OcenyZPrzedmiotow.ContainsKey(PrzedmiotTyp))
- {
- dziennik.OcenyZPrzedmiotow.Add(PrzedmiotTyp, oceny);
- return dziennik;
- }
- else
- {
- var tmp = dziennik.OcenyZPrzedmiotow.GetValueOrDefault(PrzedmiotTyp);
- oceny = tmp.Concat(oceny).ToList();
- dziennik.OcenyZPrzedmiotow[PrzedmiotTyp] = oceny;
- return dziennik;
- }
- }
- public Dziennik UsunOcene(Dziennik dziennik)
- {
- Console.WriteLine("Którą ocenę z dziennika chcesz usunąć?");
- int ktoraOcena = int.Parse(Console.ReadLine());
- var tmp = dziennik.OcenyZPrzedmiotow.GetValueOrDefault(PrzedmiotTyp);
- tmp.RemoveAt(ktoraOcena - 1);
- dziennik.OcenyZPrzedmiotow[PrzedmiotTyp] = tmp;
- return dziennik;
- }
- public void ZobaczOcenyUczniaZPrzedmiotu(Dziennik dziennik)
- {
- var listaOcenUcznia = dziennik.ListaOcenUczniaZPrzedmiotu(PrzedmiotTyp);
- Console.WriteLine("Lista ocen ucznia z przedmiotu");
- foreach (var ocena in listaOcenUcznia)
- {
- Console.Write(ocena + ", ");
- }
- }
- public void UsunOcene(Uczen uczen)
- {
- Console.WriteLine("Którą ocenę z dziennika chcesz usunąć?");
- int ktoraOcena = int.Parse(Console.ReadLine());
- var pobraneOceny = uczen.DziennikUcznia.OcenyZPrzedmiotow.GetValueOrDefault(PrzedmiotTyp);
- pobraneOceny.RemoveAt(ktoraOcena - 1);
- uczen.DziennikUcznia.OcenyZPrzedmiotow[PrzedmiotTyp] = pobraneOceny;
- }
- }
- public class Uczen : Uzytkownik
- {
- public Uczen(string login, string haslo, string imie, string nazwisko)
- {
- uzytkownikId = NextId++;
- uzytkownikTyp = uzytkownikTypOpcje.Uczen;
- Login = login;
- Haslo = haslo;
- Imie = imie;
- Nazwisko = nazwisko;
- DziennikUcznia = new Dziennik(uzytkownikId);
- }
- public Dziennik DziennikUcznia { get; set; }
- }
- public class Dziennik
- {
- public Dziennik(int uczenId)
- {
- this.uczenId = uczenId;
- OcenyZPrzedmiotow = new Dictionary<string, List<int>>();
- }
- public int uczenId { get; set; }
- public Dictionary<string, List<int>> OcenyZPrzedmiotow { get; set; }
- public List<int> ListaOcenUczniaZPrzedmiotu(string przedmiot)
- {
- var oceny = OcenyZPrzedmiotow.GetValueOrDefault(przedmiot);
- return oceny;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement