Advertisement
DamoVFR

Untitled

Mar 27th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.75 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. using System.Xml.Serialization;
  8. using System.Configuration;
  9.  
  10. namespace zadanie_2
  11. {
  12.  
  13.     class Program
  14.     {
  15.         static void Main(string[] args)
  16.         {
  17.             String sciezka = "C:\\Users\\Damian\\Documents\\Visual Studio 2015\\Projects\\zadanie 2\\zadanie 2\\Plik.txt";
  18.             String sciezkaXML = "C:\\Users\\Damian\\Documents\\Visual Studio 2015\\Projects\\zadanie 2\\zadanie 2\\plikXML.xml";
  19.             String text = "";
  20.             int przesuniecie_cezar = 3;
  21.             bool flag = true;
  22.             int i = 0;
  23.             Kartoteka<Pracownik> kart1 = new Kartoteka<Pracownik>();
  24.  
  25.             for (i = 0; flag == true; i++)
  26.             {
  27.                 Console.WriteLine("Podaj imie");
  28.                 String imieTemp = Console.ReadLine();
  29.                 imieTemp = cezarCode(imieTemp, przesuniecie_cezar);
  30.  
  31.                 Console.WriteLine("Podaj nazwisko");
  32.                 String nazwiskoTemp = Console.ReadLine();
  33.                 nazwiskoTemp = cezarCode(nazwiskoTemp, przesuniecie_cezar);
  34.  
  35.                 Console.WriteLine("Podaj wynagrodzenie");
  36.                 int wynagrodzenieTemp = int.Parse(Console.ReadLine());
  37.  
  38.                 Console.WriteLine("Podaj lata pracy");
  39.                 int lata_pracyTemp = int.Parse(Console.ReadLine());
  40.  
  41.                 Console.WriteLine("Podaj stanowisko");
  42.                 String stanowiskoTemp = Console.ReadLine();
  43.  
  44.                 kart1.AddPracownik(new Pracownik { imie = imieTemp, nazwisko = nazwiskoTemp, wynagrodzenie = wynagrodzenieTemp, lata_pracy = lata_pracyTemp, stanowisko = stanowiskoTemp });
  45.  
  46.                 Console.WriteLine("Czy dodać następnego pracownika T/N");
  47.                 String temp1 = Console.ReadLine();
  48.                 if (temp1 == "N" || temp1 == "n")
  49.                 {
  50.                     flag = false;
  51.                 }
  52.             }
  53.  
  54.             show(i, kart1);
  55.  
  56.             Console.WriteLine("\n" + "---PLIK TXT---");
  57.             saveTXT(sciezka, text, i, kart1);
  58.             readTXT(sciezka);
  59.  
  60.             Console.WriteLine("\n" + "---PLIK XML---");
  61.             writeXML(sciezkaXML, kart1);  // zapis do xml
  62.             Kartoteka<Pracownik> kartotekaXML = getXML(sciezkaXML); //pobranie xml
  63.             showDecoded(i, kartotekaXML,przesuniecie_cezar); //wyswietlamy kartoteke stworzonej z pobranego xml
  64.  
  65.             Console.ReadKey();
  66.         }
  67.  
  68.         public static String cezarCode(String word, int przesuniecie_cezar)//kodowanie cezar
  69.         {
  70.             word = word.ToUpper();
  71.             char[] buffer = word.ToCharArray();
  72.             for (int i = 0; i < buffer.Length; i++)
  73.             {
  74.                 char letter = (char)(buffer[i] + przesuniecie_cezar);
  75.  
  76.                 if (letter < 65)
  77.                 {
  78.                     letter = (char)(letter + 26);
  79.                 }
  80.                 if (letter > 100)
  81.                 {
  82.                     letter = (char)(letter - 26);
  83.                 }
  84.                 buffer[i] = letter;
  85.             }
  86.             Console.WriteLine();
  87.             return new String(buffer);
  88.         }
  89.  
  90.         public static String cezarDecode(String word_coded, int przesuniecie_cezar)//dekodowanie cezar
  91.         {
  92.             word_coded = word_coded.ToUpper();
  93.             char[] buffer = word_coded.ToCharArray();
  94.  
  95.             for (int i = 0; i < buffer.Length; i++)
  96.             {
  97.                 char letter = (char)(buffer[i] - przesuniecie_cezar);
  98.  
  99.                 if (letter < 65)
  100.                 {
  101.                     letter = (char)(letter + 26);
  102.                 }
  103.                 else if (letter > 100)
  104.                 {
  105.                     letter = (char)(letter - 26);
  106.                 }
  107.                 buffer[i] = letter;
  108.             }
  109.             return new String(buffer);
  110.         }  
  111.    
  112.  
  113.         public static Kartoteka<Pracownik> getXML(string sciezkaXML)
  114.         {
  115.             StreamReader streamRd = new StreamReader(sciezkaXML);
  116.             XmlSerializer serializer = new XmlSerializer(typeof(Kartoteka<Pracownik>));
  117.             Kartoteka<Pracownik> kartotekaXML = (Kartoteka<Pracownik>)serializer.Deserialize(streamRd);
  118.             streamRd.Close();
  119.             return kartotekaXML;
  120.         }
  121.  
  122.         public static void writeXML(string sciezkaXML, Kartoteka<Pracownik> kart1)
  123.         {
  124.             StreamWriter streamWr = new StreamWriter(sciezkaXML);
  125.             XmlSerializer serializer = new XmlSerializer(typeof(Kartoteka<Pracownik>));
  126.             serializer.Serialize(streamWr, kart1);
  127.             streamWr.Flush();
  128.             streamWr.Close();
  129.         }
  130.  
  131.         public static void readTXT(string sciezka)
  132.         {
  133.             Console.WriteLine("Czy odczytac plik TXT? T/N");
  134.             String temp_answer = Console.ReadLine();
  135.             if (temp_answer == "T" || temp_answer == "t")
  136.             {
  137.                 FileInfo plik = new FileInfo(sciezka);
  138.                 StreamReader reader = null;
  139.  
  140.                 try
  141.                 {
  142.                     reader = plik.OpenText();
  143.                     String zawartosc_pliku = reader.ReadToEnd();
  144.                     Console.WriteLine("-------------zawartosc pliku-------------");
  145.                     Console.WriteLine(zawartosc_pliku);
  146.                 }
  147.                 catch (IOException ioe)
  148.                 {
  149.                     Console.WriteLine("błąd w odczycie" + ioe.StackTrace);
  150.                 }
  151.                 finally
  152.                 {
  153.                     if (reader != null)
  154.                     {
  155.                         reader.Close();
  156.                     }
  157.                 }
  158.             }
  159.         }
  160.  
  161.         public static void show(int i, Kartoteka<Pracownik> kart1)
  162.         {
  163.             Console.WriteLine("Czy chcesz wyswietlic kartoteke? T/N");
  164.             String temp_answer = Console.ReadLine();
  165.             if (temp_answer == "T" || temp_answer == "t")
  166.             {
  167.                 for (int j = 0; j < i; j++)
  168.                 {
  169.                     Console.WriteLine("imie: " + kart1.getPracownik(j).imie + " " + "nawzisko: " + kart1.getPracownik(j).nazwisko);
  170.                 }
  171.             }
  172.         }
  173.  
  174.         public static void showDecoded(int i, Kartoteka<Pracownik> kart1,int przesuniecie_cezar)
  175.         {
  176.             Console.WriteLine("Czy chcesz wyswietlic kartoteke? T/N");
  177.             String temp_answer = Console.ReadLine();
  178.             if (temp_answer == "T" || temp_answer == "t")
  179.             {
  180.                 for (int j = 0; j < i; j++)
  181.                 {
  182.                     Console.WriteLine("imie: " + cezarDecode(kart1.getPracownik(j).imie,przesuniecie_cezar) + " " + "nawzisko: " + cezarDecode(kart1.getPracownik(j).nazwisko,przesuniecie_cezar));
  183.                 }
  184.             }
  185.         }
  186.  
  187.         private static void saveTXT(string sciezka, String text, int i, Kartoteka<Pracownik> kart1)
  188.         {
  189.             FileInfo plik = new FileInfo(sciezka);
  190.             StreamWriter writer = null;
  191.  
  192.             for (int j = 0; j < i; j++)
  193.             {
  194.                 try
  195.                 {
  196.                     writer = plik.AppendText();
  197.                     writer.WriteLine(kart1.getPracownik(j).imie + " " + kart1.getPracownik(j).nazwisko);
  198.                 }
  199.                 catch (IOException ioe)
  200.                 {
  201.                     Console.WriteLine("błąd w zapisie" + ioe.StackTrace);
  202.                 }
  203.                 finally
  204.                 {
  205.                     if (writer != null)
  206.                         writer.Close();
  207.                 }
  208.             }
  209.         }
  210.     }
  211.  
  212.     public class Pracownik
  213.     {
  214.         public String imie { get; set; }
  215.         public String nazwisko { get; set; }
  216.         public int wynagrodzenie { get; set; }
  217.         public int lata_pracy { get; set; }
  218.         public String stanowisko { get; set; }
  219.     }
  220.  
  221.  
  222.     public class Kartoteka<T> where T : class
  223.     {
  224.         public List<T> lista = new List<T>();
  225.  
  226.         public void AddPracownik (T o)
  227.         {
  228.             lista.Add(o);
  229.         }
  230.         public T getPracownik(int index)
  231.         {
  232.            return lista[index];
  233.         }
  234.     }
  235.  
  236.     abstract class Builder  // wzorzec projektowy budowniczy - niedkończone
  237.     {
  238.         protected Pracownik pracownik;
  239.  
  240.         public void newPracownik()
  241.         {
  242.             pracownik = new Pracownik();
  243.         }
  244.  
  245.         public Pracownik getPracownik()
  246.         {
  247.             return pracownik;
  248.         }
  249.  
  250.         public abstract void buildName();
  251.         public abstract void buildSurname();
  252.         public abstract void buildWynagrodzenie();
  253.         public abstract void buildLata_pracy();
  254.         public abstract void buildStanowisko();
  255.     }
  256.        
  257. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement