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;
- using System.IO;
- using System.Runtime.Serialization.Formatters.Binary;
- namespace ConsoleApplication4
- {
- [Serializable]
- class Produkt
- {
- private int id;
- private String nazwa;
- private decimal cena;
- private String opis;
- public Produkt(int id, String nazwa, decimal cena, String opis)
- {
- this.id = id;
- this.nazwa = nazwa;
- this.cena = cena;
- this.opis = opis;
- }
- public Produkt(List<Produkt> listaProduktow, String nazwa, decimal cena, String opis)
- {
- if (listaProduktow.Count==0)
- {
- this.id = listaProduktow.Count + 1;
- }
- else
- {
- this.id = listaProduktow.Last().GetId() + 1;
- }
- this.nazwa = nazwa;
- this.cena = cena;
- this.opis = opis;
- }
- public int GetId()
- {
- return id;
- }
- public void SetId(int id)
- {
- this.id = id;
- }
- public String GetNazwa()
- {
- return nazwa;
- }
- public void SetNazwa(String nazwa)
- {
- this.nazwa = nazwa;
- }
- public decimal GetCena()
- {
- return cena;
- }
- public void SetCena(decimal cena)
- {
- this.cena = cena;
- }
- public String GetOpis()
- {
- return opis;
- }
- public void SetOpis(String opis)
- {
- this.opis = opis;
- }
- }
- class Program
- {
- static Boolean appExit = false;
- static private List<Produkt> listaProduktow = new List<Produkt>();
- static void InicjalizacjaKolekcji()
- {
- listaProduktow.Add(new Produkt(listaProduktow, "Komputer", 2100.20m, "opis.........."));
- listaProduktow.Add(new Produkt(listaProduktow, "Laptop", 4200.20m, "opis.........."));
- listaProduktow.Add(new Produkt(listaProduktow, "Telewizor", 4200.20m, "opis.........."));
- listaProduktow.Add(new Produkt(listaProduktow, "Rzutnik", 1200.20m, "opis.........."));
- listaProduktow.Add(new Produkt(listaProduktow, "Projektor", 200.20m, "opis.........."));
- listaProduktow.Add(new Produkt(listaProduktow, "Drukarka", 500.20m, "opis.........."));
- listaProduktow.Add(new Produkt(listaProduktow, "Tablet", 1200.20m, "opis.........."));
- listaProduktow.Add(new Produkt(listaProduktow, "Drukarka HP", 500.20m, "opis.........."));
- listaProduktow.Add(new Produkt(listaProduktow, "Tablet MSI", 1500.20m, "opis.........."));
- listaProduktow.Add(new Produkt(listaProduktow, "Laptop Asus", 5700.20m, "opis.........."));
- }
- static void WyswietlMenu()
- {
- System.Console.WriteLine("1 Pokaż całą kolekcję");
- System.Console.WriteLine("2 Filtruj według nazwy");
- System.Console.WriteLine("3 Filtruj według ceny");
- System.Console.WriteLine("4 Sortuj według nazwy rosnąco");
- System.Console.WriteLine("5 Sortuj według nazwy malejąco");
- System.Console.WriteLine("6 Sortuj według ceny rosnąco");
- System.Console.WriteLine("7 Sortuj według ceny malejąco");
- System.Console.WriteLine("8 Dodaj produkt");
- System.Console.WriteLine("9 Edytuj produkt");
- System.Console.WriteLine("0 Usuń produkt");
- System.Console.WriteLine("Z Zapis kolekcji (serializacja)");
- System.Console.WriteLine("O Odczyt kolekcji (deserializacja)");
- System.Console.WriteLine("ESC Koniec");
- }
- static void WyswietlDane(List<Produkt> listaProduktowWynikowa)
- {
- System.Console.WriteLine("| Id: " + "| Nazwa: " + "| Cena: " + "| Opis: |");
- foreach (Produkt produkt in listaProduktowWynikowa)
- {
- String kolumna = "|x ";
- int kolumnaDlugosc = kolumna.Length;
- int i = kolumna.Length;
- String kolumnaId = kolumna.Replace("x", produkt.GetId().ToString()).Substring(0, kolumnaDlugosc);
- String kolumnaNazwa = kolumna.Replace("x", produkt.GetNazwa()).Substring(0, kolumnaDlugosc);
- String kolumnaCena = kolumna.Replace("x", produkt.GetCena().ToString()).Substring(0, kolumnaDlugosc);
- String kolumnaOpis = kolumna.Replace("x", produkt.GetOpis()).Substring(0, kolumnaDlugosc);
- System.Console.WriteLine(kolumnaId + kolumnaNazwa + kolumnaCena + kolumnaOpis + "|");
- }
- System.Console.WriteLine("Koniec listy");
- }
- static List<Produkt> SortujWgNazwy(List<Produkt> listaDoPrzetwarzania, String sortowanie)
- {
- List<Produkt> listaPosortowana = new List<Produkt>();
- if (sortowanie.Equals("asc"))
- {
- var listaPosortowanaLINQ = from produkt in listaDoPrzetwarzania orderby produkt.GetNazwa() ascending select produkt;
- foreach (Produkt produkt in listaPosortowanaLINQ)
- {
- listaPosortowana.Add(produkt);
- }
- return listaPosortowana;
- }
- else
- {
- var listaPosortowanaLINQ = from produkt in listaDoPrzetwarzania orderby produkt.GetNazwa() descending select produkt;
- foreach (Produkt produkt in listaPosortowanaLINQ)
- {
- listaPosortowana.Add(produkt);
- }
- return listaPosortowana;
- }
- }
- static List<Produkt> SortujWgCeny(List<Produkt> listaDoPrzetwarzania, String sortowanie)
- {
- List<Produkt> listaPosortowana = new List<Produkt>();
- if (sortowanie.Equals("asc"))
- {
- var listaPosortowanaLINQ = from produkt in listaDoPrzetwarzania orderby produkt.GetCena() ascending select produkt;
- foreach (Produkt produkt in listaPosortowanaLINQ)
- {
- listaPosortowana.Add(produkt);
- }
- return listaPosortowana;
- }
- else
- {
- var listaPosortowanaLINQ = from produkt in listaDoPrzetwarzania orderby produkt.GetCena() descending select produkt;
- foreach (Produkt produkt in listaPosortowanaLINQ)
- {
- listaPosortowana.Add(produkt);
- }
- return listaPosortowana;
- }
- }
- static List<Produkt> FiltrujWgNazwy(List<Produkt> listaDoPrzetwarzania)
- {
- System.Console.Write("Podaj fragment nazwy: ");
- String nazwaFiltr = System.Console.ReadLine();
- List<Produkt> listaFiltrowana = new List<Produkt>();
- var listaFiltrowanaLINQ = from produkt in listaDoPrzetwarzania where produkt.GetNazwa().Contains(nazwaFiltr) orderby produkt.GetNazwa() ascending select produkt;
- foreach (Produkt produkt in listaFiltrowanaLINQ)
- {
- listaFiltrowana.Add(produkt);
- }
- return listaFiltrowana;
- }
- static List<Produkt> FiltrujWgCeny(List<Produkt> listaDoPrzetwarzania)
- {
- System.Console.Write("Podaj cenę minimalną: ");
- String cenaFiltr = System.Console.ReadLine();
- List<Produkt> listaFiltrowana = new List<Produkt>();
- decimal cenaFiltrPoKonwersji = Decimal.Parse(cenaFiltr);
- var listaFiltrowanaLINQ = from produkt in listaDoPrzetwarzania where produkt.GetCena() >= cenaFiltrPoKonwersji orderby produkt.GetNazwa() ascending select produkt;
- foreach (Produkt produkt in listaFiltrowanaLINQ)
- {
- listaFiltrowana.Add(produkt);
- }
- return listaFiltrowana;
- }
- static void DodajProdukt()
- {
- System.Console.Write("Podaj nazwę [do 10 znaków]: ");
- String nazwa = System.Console.ReadLine();
- System.Console.Write("Podaj cenę: ");
- String cena = System.Console.ReadLine();
- decimal cenaPoKonwersji = Decimal.Parse(cena);
- System.Console.Write("Opis [do 10 znaków]: ");
- String opis = System.Console.ReadLine();
- listaProduktow.Add(new Produkt(listaProduktow, nazwa, cenaPoKonwersji, opis));
- Console.Clear();
- WyswietlMenu();
- WyswietlDane(listaProduktow);
- }
- static void EdytujProdukt()
- {
- System.Console.Write("Podaj id produktu: ");
- String id = System.Console.ReadLine();
- decimal idPoKonwersji = Decimal.Parse(id);
- Produkt produktDoEdycji = listaProduktow.Find(produkt => produkt.GetId() == idPoKonwersji);
- System.Console.Write("Nazwa: " + produktDoEdycji.GetNazwa() + " : ");
- String nazwaNowa = System.Console.ReadLine();
- System.Console.Write("Cena: " + produktDoEdycji.GetCena().ToString() + " : ");
- String cenaNowaString = System.Console.ReadLine();
- decimal cenaNowa = Decimal.Parse(cenaNowaString);
- System.Console.Write("Opis: " + produktDoEdycji.GetOpis() + " : ");
- String opisNowy = System.Console.ReadLine();
- produktDoEdycji.SetNazwa(nazwaNowa);
- produktDoEdycji.SetCena(cenaNowa);
- produktDoEdycji.SetOpis(opisNowy);
- int indexNaLiscie = listaProduktow.FindIndex(produkt => produkt.GetId() == idPoKonwersji);
- listaProduktow[indexNaLiscie] = produktDoEdycji;
- Console.Clear();
- WyswietlMenu();
- WyswietlDane(listaProduktow);
- }
- static void UsunProdukt()
- {
- System.Console.Write("Podaj id produktu: ");
- String id = System.Console.ReadLine();
- decimal idPoKonwersji = Decimal.Parse(id);
- var produktWyszukiwanyLINQ = from produkt in listaProduktow where produkt.GetId() == idPoKonwersji select produkt;
- if (produktWyszukiwanyLINQ.Count()>0)
- {
- Produkt produktDoUsuniecia = produktWyszukiwanyLINQ.Single();
- listaProduktow.Remove(produktDoUsuniecia);
- }
- Console.Clear();
- WyswietlMenu();
- WyswietlDane(listaProduktow);
- }
- static void ZapisDoPliku()
- {
- BinaryFormatter binaryFormatter = new BinaryFormatter();
- using (Stream fStream = new FileStream("listaProduktów.dat", FileMode.Create, FileAccess.Write, FileShare.None))
- {
- binaryFormatter.Serialize(fStream, listaProduktow);
- }
- }
- static void OdczytZPliku()
- {
- BinaryFormatter binaryFormatter = new BinaryFormatter();
- using (Stream fStream = new FileStream("listaProduktów.dat", FileMode.Open, FileAccess.Read, FileShare.None))
- {
- listaProduktow = (List<Produkt>)binaryFormatter.Deserialize(fStream);
- }
- }
- static void Main(string[] args)
- {
- InicjalizacjaKolekcji();
- WyswietlMenu();
- while (!appExit)
- {
- System.Console.WriteLine("Wiecha Wojciech");
- System.ConsoleKeyInfo consoleKeyInfo = System.Console.ReadKey();
- System.Console.WriteLine(consoleKeyInfo.KeyChar);
- Console.Clear();
- WyswietlMenu();
- switch(consoleKeyInfo.Key)
- {
- case ConsoleKey.D1:
- WyswietlDane(listaProduktow);
- break;
- case ConsoleKey.D2:
- WyswietlDane(FiltrujWgNazwy(listaProduktow));
- break;
- case ConsoleKey.D3:
- WyswietlDane(FiltrujWgCeny(listaProduktow));
- break;
- case ConsoleKey.D4:
- WyswietlDane(SortujWgNazwy(listaProduktow,"asc"));
- break;
- case ConsoleKey.D5:
- WyswietlDane(SortujWgNazwy(listaProduktow, "desc"));
- break;
- case ConsoleKey.D6:
- WyswietlDane(SortujWgCeny(listaProduktow, "asc"));
- break;
- case ConsoleKey.D7:
- WyswietlDane(SortujWgCeny(listaProduktow, "desc"));
- break;
- case ConsoleKey.D8:
- DodajProdukt();
- break;
- case ConsoleKey.D9:
- EdytujProdukt();
- break;
- case ConsoleKey.D0:
- UsunProdukt();
- break;
- case ConsoleKey.Z:
- ZapisDoPliku();
- break;
- case ConsoleKey.O:
- OdczytZPliku();
- break;
- case ConsoleKey.Escape:
- System.Console.WriteLine("Koniec aplikacji");
- appExit = true;
- break;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement