Advertisement
DamoVFR

Untitled

Mar 28th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.08 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.  
  66.  
  67.             //------test kodowania-------//
  68.             //Console.WriteLine("podaj słowo");
  69.             //String wyraz = Console.ReadLine();
  70.             //Console.WriteLine(cezarCode(wyraz, przesuniecie_cezar));
  71.             //Console.WriteLine(cezarDecode(wyraz, przesuniecie_cezar));
  72.  
  73.             Console.ReadKey();
  74.         }
  75.  
  76.         public static String cezarCode(String word, int przesuniecie_cezar)//kodowanie cezar
  77.         {
  78.             char[] slowo_zakodowane = word.ToCharArray();
  79.             for (int i = 0; i < word.Length; i++)
  80.             {
  81.                 int liczba = word.ElementAt(i);
  82.                 int x = 0;
  83.                 if (liczba > 96)
  84.                     x = 97 + (liczba + przesuniecie_cezar - 97) % 26;
  85.                 else if (liczba == 32)
  86.                     x = 32;
  87.                 else
  88.                     x = 65 + (liczba + przesuniecie_cezar - 65) % 26;
  89.                 char znakzm = (char)x;
  90.                 slowo_zakodowane[i] = (char)x;
  91.             }
  92.             return new String(slowo_zakodowane);
  93.         }
  94.  
  95.      
  96.  
  97.         public static String cezarDecode(String word_coded, int przesuniecie_cezar)//dekodowanie cezar
  98.         {
  99.             char[] slowo_zakodowane = word_coded.ToCharArray();
  100.             for (int i = 0; i < word_coded.Length; i++)
  101.             {
  102.                 int liczba = word_coded.ElementAt(i);
  103.                 int x = 0;
  104.                 if (liczba > 96)
  105.                     x = 97 + (liczba - przesuniecie_cezar + 88) % 26;
  106.                 else if (liczba == 32)
  107.                     x = 32;
  108.                 else
  109.                     x = 65 + (liczba - przesuniecie_cezar + 56) % 26;
  110.                 char znakzm = (char)x;
  111.                 slowo_zakodowane[i] = (char)x;
  112.             }
  113.             return new String(slowo_zakodowane);
  114.         }
  115.  
  116.         public static Kartoteka<Pracownik> getXML(string sciezkaXML)
  117.         {
  118.             StreamReader streamRd = new StreamReader(sciezkaXML);
  119.             XmlSerializer serializer = new XmlSerializer(typeof(Kartoteka<Pracownik>));
  120.             Kartoteka<Pracownik> kartotekaXML = (Kartoteka<Pracownik>)serializer.Deserialize(streamRd);
  121.             streamRd.Close();
  122.             return kartotekaXML;
  123.         }
  124.  
  125.         public static void writeXML(string sciezkaXML, Kartoteka<Pracownik> kart1)
  126.         {
  127.             StreamWriter streamWr = new StreamWriter(sciezkaXML);
  128.             XmlSerializer serializer = new XmlSerializer(typeof(Kartoteka<Pracownik>));
  129.             serializer.Serialize(streamWr, kart1);
  130.             streamWr.Close();
  131.         }
  132.  
  133.         public static void readTXT(string sciezka)
  134.         {
  135.             Console.WriteLine("Czy odczytac plik TXT? T/N");
  136.             String temp_answer = Console.ReadLine();
  137.             if (temp_answer == "T" || temp_answer == "t")
  138.             {
  139.                 FileInfo plik = new FileInfo(sciezka);
  140.                 StreamReader reader = null;
  141.  
  142.                 try
  143.                 {
  144.                     reader = plik.OpenText();
  145.                     String zawartosc_pliku = reader.ReadToEnd();
  146.                     Console.WriteLine("-------------zawartosc pliku-------------");
  147.                     Console.WriteLine(zawartosc_pliku);
  148.                 }
  149.                 catch (IOException ioe)
  150.                 {
  151.                     Console.WriteLine("błąd w odczycie" + ioe.StackTrace);
  152.                 }
  153.                 finally
  154.                 {
  155.                     if (reader != null)
  156.                     {
  157.                         reader.Close();
  158.                     }
  159.                 }
  160.             }
  161.         }
  162.  
  163.         public static void show(int i, Kartoteka<Pracownik> kart1)
  164.         {
  165.             Console.WriteLine("Czy chcesz wyswietlic kartoteke? T/N");
  166.             String temp_answer = Console.ReadLine();
  167.             if (temp_answer == "T" || temp_answer == "t")
  168.             {
  169.                 for (int j = 0; j < i; j++)
  170.                 {
  171.                     Console.WriteLine("imie: " + kart1.getPracownik(j).imie + " " + "nawzisko: " + kart1.getPracownik(j).nazwisko);
  172.                 }
  173.             }
  174.         }
  175.  
  176.         public static void showDecoded(int i, Kartoteka<Pracownik> kart1,int przesuniecie_cezar)
  177.         {
  178.             Console.WriteLine("Czy chcesz wyswietlic kartoteke? T/N");
  179.             String temp_answer = Console.ReadLine();
  180.             if (temp_answer == "T" || temp_answer == "t")
  181.             {
  182.                 for (int j = 0; j < i; j++)
  183.                 {
  184.                     Console.WriteLine("imie: " + cezarDecode(kart1.getPracownik(j).imie,przesuniecie_cezar) + " " + "nawzisko: " + cezarDecode(kart1.getPracownik(j).nazwisko,przesuniecie_cezar));
  185.                 }
  186.             }
  187.         }
  188.  
  189.         private static void saveTXT(string sciezka, String text, int i, Kartoteka<Pracownik> kart1)
  190.         {
  191.             FileInfo plik = new FileInfo(sciezka);
  192.             StreamWriter writer = null;
  193.  
  194.             for (int j = 0; j < i; j++)
  195.             {
  196.                 try
  197.                 {
  198.                     writer = plik.AppendText();
  199.                     writer.WriteLine(kart1.getPracownik(j).imie + " " + kart1.getPracownik(j).nazwisko);
  200.                 }
  201.                 catch (IOException ioe)
  202.                 {
  203.                     Console.WriteLine("błąd w zapisie" + ioe.StackTrace);
  204.                 }
  205.                 finally
  206.                 {
  207.                     if (writer != null)
  208.                         writer.Close();
  209.                 }
  210.             }
  211.         }
  212.     }
  213.  
  214.     public class Pracownik
  215.     {
  216.         public String imie { get; set; }
  217.         public String nazwisko { get; set; }
  218.         public int wynagrodzenie { get; set; }
  219.         public int lata_pracy { get; set; }
  220.         public String stanowisko { get; set; }
  221.     }
  222.  
  223.  
  224.     public class Kartoteka<T> where T : class
  225.     {
  226.         public List<T> lista = new List<T>();
  227.  
  228.         public void AddPracownik (T o)
  229.         {
  230.             lista.Add(o);
  231.         }
  232.         public T getPracownik(int index)
  233.         {
  234.            return lista[index];
  235.         }
  236.     }
  237.  
  238.     abstract class Builder  // wzorzec projektowy budowniczy - niedkończone
  239.     {
  240.         protected Pracownik pracownik;
  241.  
  242.         public void newPracownik()
  243.         {
  244.             pracownik = new Pracownik();
  245.         }
  246.  
  247.         public Pracownik getPracownik()
  248.         {
  249.             return pracownik;
  250.         }
  251.  
  252.         public abstract void buildName();
  253.         public abstract void buildSurname();
  254.         public abstract void buildWynagrodzenie();
  255.         public abstract void buildLata_pracy();
  256.         public abstract void buildStanowisko();
  257.     }
  258.        
  259. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement