Advertisement
Cisiur

Untitled

Oct 21st, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.50 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Runtime.Serialization.Formatters.Binary;
  4.  
  5. namespace Proj_obj_samochod
  6. {
  7.  
  8.     class Program
  9.     {
  10.         static int dystans;
  11.         public const string sciezka = @"C:\temp\data.xml";
  12.         public static void Menu()
  13.         {
  14.             Console.Clear();
  15.             Console.WriteLine("|-------------  MENU  -------------|");
  16.             Console.WriteLine("| 1. Informacje o pojezdzie        |");
  17.             Console.WriteLine("| 2. Tankowanie pojazdu            |");
  18.             Console.WriteLine("| 3. Jazda                         |");
  19.             Console.WriteLine("| 4. Stworz nowy samochod          |");
  20.             Console.WriteLine("| 0. Wyjsce                        |");
  21.             Console.WriteLine("|----------------------------------|");
  22.             int menu = WprowadzInt("Wybierz opcje: ", 0, 4);
  23.             switch (menu)
  24.             {
  25.                 case 1:
  26.                     {
  27.                         Console.Clear();
  28.                         Samochod auto = OdczytajSamochod();
  29.                         Console.WriteLine(auto.InformacjeOSamochodzie());
  30.                         Console.ReadKey();
  31.                         Menu();
  32.                         break;
  33.                     }
  34.                 case 2:
  35.                     {
  36.                         Console.Clear();
  37.                         Samochod auto = OdczytajSamochod();
  38.                         auto.Zatankuj();
  39.                         ZapiszStanPojazdu(auto);
  40.                         Menu();
  41.                         break;
  42.                     }
  43.                 case 3:
  44.                     {
  45.                         Console.Clear();
  46.                         Samochod auto = OdczytajSamochod();
  47.                         dystans = WprowadzInt("Podaj dystans do przejechania: ", 0);
  48.                         auto.Jedz(dystans);
  49.                         ZapiszStanPojazdu(auto);
  50.                         Console.ReadKey();
  51.                         Menu();
  52.                         break;
  53.                     }
  54.                 case 4:
  55.                     {
  56.                         Console.Clear();
  57.                         File.Delete(sciezka);
  58.                         ZrobSamochod();
  59.                         Menu();
  60.                         break;
  61.                     }
  62.                 default:
  63.                     {
  64.                         break;
  65.                     }
  66.             }
  67.  
  68.         }
  69.         public static int WprowadzInt(string Tekst, int Min = int.MinValue, int Max = int.MaxValue)
  70.         {
  71.             int liczba = 0;
  72.             while (true)
  73.             {
  74.                 Console.Write(Tekst);
  75.  
  76.                 if (int.TryParse(Console.ReadLine(), out liczba) &&
  77.                     liczba >= Min && liczba <= Max)
  78.                 {
  79.                     break;
  80.                 }
  81.                 else
  82.                 {
  83.                     Console.WriteLine("Podano bledna wartosc!");
  84.                 }
  85.             }
  86.             return liczba;
  87.         }
  88.         public static double WprowadzDouble(string Tekst, double Min = double.MinValue, double Max = double.MaxValue)
  89.         {
  90.             double liczba = 0;
  91.             while (true)
  92.             {
  93.                 Console.Write(Tekst);
  94.  
  95.                 if (double.TryParse(Console.ReadLine(), out liczba) &&
  96.                     liczba >= Min && liczba <= Max)
  97.                 {
  98.                     break;
  99.                 }
  100.                 else
  101.                 {
  102.                     Console.WriteLine("Podano bledna wartosc!");
  103.                 }
  104.             }
  105.             return liczba;
  106.         }
  107.  
  108.         public static void ZrobSamochod()
  109.         {
  110.             string marka, model;
  111.             int paliwo, zbiornik;
  112.             double pojemnosc;
  113.  
  114.             Console.Write("Podaj marke samochodu: ");
  115.             marka = Console.ReadLine();
  116.             Console.Write("Podaj model samochodu: ");
  117.             model = Console.ReadLine();
  118.             pojemnosc = WprowadzDouble("Jaka jest pojemnosc silnika?: ");
  119.             zbiornik = WprowadzInt("Jak duzy jest zbiornik?: ", 0);
  120.             paliwo = WprowadzInt("Ile litrow paliwa jest w zbiorniku?: ", 0, zbiornik);
  121.             Samochod s = new Samochod(marka, model, pojemnosc, paliwo, zbiornik);
  122.  
  123.             ZapiszStanPojazdu(s);
  124.         }
  125.  
  126.         public static Samochod OdczytajSamochod()
  127.         {
  128.             Samochod s = new Samochod();
  129.             try
  130.             {
  131.                 Stream stream = File.Open(sciezka, FileMode.Open);
  132.                 BinaryFormatter formatter = new BinaryFormatter();
  133.                 formatter = new BinaryFormatter();
  134.                 s = (Samochod)formatter.Deserialize(stream);
  135.                 stream.Close();
  136.             }
  137.             catch (FileNotFoundException)
  138.             {
  139.                 Console.WriteLine("Nie ma auta. Musisz je stworzyc!");
  140.                 ZrobSamochod();
  141.                 Menu();
  142.             }
  143.  
  144.             return s;
  145.         }
  146.  
  147.         public static void CzyJestAuto()
  148.         {
  149.             if (!Directory.Exists(sciezka))
  150.             {
  151.                 ZrobSamochod();
  152.             }
  153.  
  154.         }
  155.  
  156.         public static void ZapiszStanPojazdu(Samochod auto)
  157.         {
  158.             Stream stream = File.Open(sciezka, FileMode.Create);
  159.             BinaryFormatter formatter = new BinaryFormatter();
  160.             formatter.Serialize(stream, auto);
  161.             stream.Close();
  162.         }
  163.  
  164.         static void Main(string[] args)
  165.         {
  166.             Menu();
  167.         }
  168.     }
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement