Advertisement
Talar97

[JPO] Lab07

Apr 18th, 2018
418
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.29 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <fstream>
  4. #include <string>
  5.  
  6. using namespace std;
  7.  
  8. //Prototypy
  9. void WyborZadania();
  10. void Zad1(string fileName, string target, string replace);
  11. void Zad2(string fileName);
  12. char * Zad3(char * tab, int rozmiar);
  13.  
  14. int main() {
  15.     WyborZadania();
  16.     return EXIT_SUCCESS;
  17. }
  18.  
  19. void Zad1(string fileName, string target, string replace){
  20.     fstream plik; fstream zapis;
  21.     string linia;
  22.     string wynik;
  23.    
  24.     zapis.open("wyniki.txt", ios::app | ios::out);
  25.     plik.open(fileName.c_str());
  26.     while(!plik.eof()){
  27.         getline(plik, linia);
  28.         size_t pos = linia.find( target );
  29.         if(pos < linia.length()){
  30.             linia.replace(pos,pos+replace.length(),replace);
  31.             //cout << pos << " | " << linia << endl;
  32.         }
  33.         zapis << linia << endl;
  34.     }
  35.    
  36.     plik.close();
  37.     zapis.close();
  38. }
  39.  
  40. void Zad2(string fileName){
  41.     fstream input;
  42.     string line;
  43.     int zlicz[123];
  44.     input.open(fileName.c_str());
  45.    
  46.     for(int i = 0; i < sizeof(zlicz)/sizeof(zlicz[0]); i++){
  47.         zlicz[i] = 0;
  48.     }
  49.    
  50.     while(!input.eof()){
  51.         getline(input, line);
  52.         for(int i = 0; i < line.length(); i++){
  53.             cout << (int)line[i] << ", ";
  54.             zlicz[(int)line[i]] += 1;
  55.         }
  56.     }      
  57.        
  58.     cout << endl;
  59.     for(int i=97;i<123;i++) if(zlicz[i]>0) cout<<(char)i<<" - "<<zlicz[i]<<endl;                  
  60.     for(int i=65;i<91;i++) if(zlicz[i]>0) cout<<(char)i<<" - "<<zlicz[i]<<endl;
  61. }
  62.  
  63. char * Zad3(char * tab, int rozmiar){
  64.     string uwaga = "UWAGA:";
  65.     string zdanie = tab;
  66.     string wynik = uwaga + zdanie;
  67.     int licznik = 0;
  68.    
  69.     if(wynik.length() > rozmiar){
  70.         tab[rozmiar-2] = '.';
  71.         tab[rozmiar-1] = '.';
  72.         tab[rozmiar] = '.';
  73.     }
  74.     else{
  75.         for(int i = 0; i < rozmiar; i++){
  76.             tab[i] = wynik[i];
  77.         }
  78.     }
  79.    
  80.     return tab;
  81. }
  82.  
  83. void Zad4(int rok){
  84.     int A, B;
  85.    
  86.     if(rok < 1582) { A = 15; B = 6; }
  87.     else if(rok >= 1583 && rok <=1699) { A = 22; B = 2;}
  88.     else if(rok >= 1700 && rok <=1799) { A = 23; B = 3;}
  89.     else if(rok >= 1800 && rok <=1899) { A = 23; B = 4;}
  90.     else if(rok >= 1900 && rok <=2099) { A = 24; B = 5;}
  91.     else if(rok >= 2100 && rok <=2199) { A = 24; B = 6;}
  92.     else if(rok >= 2200 && rok <=2299) { A = 25; B = 0;}
  93.     else if(rok >= 2300 && rok <=2399) { A = 26; B = 1;}
  94.     else if(rok >= 2400 && rok <=2499) { A = 25; B = 1;}
  95.    
  96.     int a = rok % 19;
  97.     int b = rok % 4;
  98.     int c = rok % 7;
  99.     int d = (a*19 + A) % 30;
  100.     int e = (2*b + 4*c + 6*d + B) % 7;
  101.     int wielkanoc = 22 + d + e;
  102.     string mc;
  103.    
  104.     if(wielkanoc > 31) { wielkanoc -= 31; mc = "kwiecien"; }
  105.     else { mc = "marzec"; }
  106.     if(d == 29 && e == 6) { wielkanoc -= 7; }
  107.     if(d == 28 && e == 6) { wielkanoc -=7; }
  108.    
  109.     cout << wielkanoc << " " << mc;
  110.    
  111. }
  112.  
  113. void WyborZadania(){
  114.     int zad;
  115.     cout << "Wybierz zadanie: ";
  116.     cin >> zad;
  117.     switch(zad){
  118.         case 1:
  119.         {
  120.             string filename;
  121.             string target;
  122.             string replace;
  123.             cout << "Wprowadz nazwe pliku: "; cin >> filename;
  124.             cout << "Zamieniamy: "; cin >> target;
  125.             cout << "Na ciag: "; cin >> replace;
  126.            
  127.             Zad1(filename, target, replace);
  128.             break;
  129.         }
  130.         case 2:
  131.         {
  132.             string fileName;
  133.             cout << "Wprowadz nazwe pliku: "; cin >> fileName;
  134.             Zad2(fileName);
  135.             break;
  136.         }
  137.         case 3:
  138.         {
  139.             int n = 15;
  140.             char zdanie[n];
  141.             cout << "Wprowadz zdanie: "; cin >> zdanie;
  142.             //char zdanie[ 12 ] = { 'x', 'D', 'D', '\0', '\0', '\0',
  143.             //'\0', '\0', '\0', '\0', '\0', '\0' };
  144.             //char zdanie2[ 12 ] = { 'x', 'D', 'D', 'D', 'D', 'D',
  145.             //'d', 'd', 'd', 'd', 'd', '\0' };
  146.             char * wsk;
  147.             wsk = &zdanie[0];
  148.            
  149.             cout << Zad3(wsk, 12);
  150.             break;
  151.         }
  152.         case 4:
  153.         {
  154.             int rok;
  155.             cout << "Podaj rok: "; cin >> rok;
  156.             Zad4(rok);
  157.             break;
  158.         }
  159.         default:
  160.         {
  161.           WyborZadania();
  162.           break;  
  163.         }    
  164.     }
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement