Advertisement
soulrpg

lekcja_C_2

Apr 10th, 2019
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.81 KB | None | 0 0
  1. // programML.cpp : Ten plik zawiera funkcję „main”. W nim rozpoczyna się i kończy wykonywanie programu.
  2. //
  3.  
  4. #include "pch.h"
  5. #include <stdio.h>
  6.  
  7. double podatek_dziadkowie_rodzice_dzieci(double wartosc)
  8. {
  9.     if (wartosc < 64000)
  10.         return 0;
  11.     else
  12.     {
  13.         return wartosc / 10;;
  14.     }
  15. }
  16.  
  17. double podatek_rodzenstwo(double wartosc)
  18. {
  19.     if (wartosc < 64000)
  20.         return 250;
  21.     else
  22.     {
  23.         return 0.15*(wartosc - 64000) + 250;
  24.     }
  25. }
  26.  
  27. double podatek_inni(double wartosc)
  28. {
  29.     return 0.17*wartosc;
  30. }
  31.  
  32. void zad3_3()
  33. {
  34.     char przypadek;
  35.     double darowizna;
  36.     double podatek;
  37.     printf("Podaj przypadek darowizny: ");
  38.     scanf_s("%c", &przypadek);
  39.     printf("Podaj wartosc darowizny: ");
  40.     scanf_s("%lf", &darowizna);
  41.     switch (przypadek)
  42.     {
  43.     case 'a':
  44.         podatek = podatek_dziadkowie_rodzice_dzieci(darowizna);
  45.         break;
  46.     case 'b':
  47.         podatek = podatek_rodzenstwo(darowizna);
  48.     case 'c':
  49.         podatek = podatek_inni(darowizna);
  50.     }
  51.     printf("Kwota podatku: %lf\n", podatek);
  52. }
  53.  
  54. void zad7_2()
  55. {
  56.     int x;
  57.     char nazwa_pliku_odczyt[30];
  58.     char nazwa_pliku_zapis[30];
  59.     FILE* plik_odczyt;
  60.     FILE* plik_zapis;
  61.     printf("Podaj nazwe pliku odczytu: ");
  62.     scanf_s("%s", &nazwa_pliku_odczyt, 29);
  63.     printf("Podaj nazwe pliku zapsu: ");
  64.     scanf_s("%s", &nazwa_pliku_zapis, 29);
  65.     fopen_s(&plik_odczyt, nazwa_pliku_odczyt, "r");
  66.     fopen_s(&plik_zapis, nazwa_pliku_zapis, "a");
  67.     fscanf_s(plik_odczyt, "%d", &x);
  68.     while (feof(plik_odczyt) == NULL)
  69.     {
  70.         if (x > 137)
  71.         {
  72.             fprintf(plik_zapis, "%d\n", x);
  73.         }
  74.        
  75.         fscanf_s(plik_odczyt, "%d", &x);
  76.     }
  77.     fclose(plik_odczyt);
  78.     fclose(plik_zapis);
  79. }
  80.  
  81. void zad7_5()
  82. {
  83.     char moneta;
  84.     char nazwa_pliku_odczyt[30];
  85.     int tablica_monet[9];
  86.     int i;
  87.     for (i = 0; i < 9; i++)
  88.     {
  89.         tablica_monet[i] = 0;
  90.     }
  91.     double laczna_kwota = 0;
  92.     FILE* plik_odczyt;
  93.     printf("Podaj nazwe pliku z monetami: ");
  94.     scanf_s("%s", &nazwa_pliku_odczyt, 29);
  95.     fopen_s(&plik_odczyt, nazwa_pliku_odczyt, "r");
  96.     moneta = fgetc(plik_odczyt);
  97.     while (feof(plik_odczyt) == NULL)
  98.     {
  99.         switch (moneta)
  100.         {
  101.         case 'c':
  102.             tablica_monet[0]++;
  103.             laczna_kwota += 1;
  104.             break;
  105.         case 't':
  106.             tablica_monet[1]++;
  107.             laczna_kwota += 2;
  108.             break;
  109.         case 'f':
  110.             tablica_monet[2]++;
  111.             laczna_kwota += 5;
  112.             break;
  113.         case 'd':
  114.             tablica_monet[3]++;
  115.             laczna_kwota += 10;
  116.             break;
  117.         case 'q':
  118.             tablica_monet[4]++;
  119.             laczna_kwota += 20;
  120.             break;
  121.         case 'h':
  122.             tablica_monet[5]++;
  123.             laczna_kwota += 50;
  124.             break;
  125.         case 'K':
  126.             tablica_monet[6]++;
  127.             laczna_kwota += 100;
  128.             break;
  129.         case 'D':
  130.             tablica_monet[7]++;
  131.             laczna_kwota += 200;
  132.             break;
  133.         case 'F':
  134.             tablica_monet[8]++;
  135.             laczna_kwota += 500;
  136.             break;
  137.         }
  138.         moneta = fgetc(plik_odczyt);
  139.     }
  140.     printf("Laczna kwota: %lf\n", laczna_kwota / 100);
  141.     printf("Monety:\n");
  142.     printf("Monet 1gr: %d\n", tablica_monet[0]);
  143.     printf("Monet 2gr: %d\n", tablica_monet[1]);
  144.     printf("Monet 5gr: %d\n", tablica_monet[2]);
  145.     printf("Monet 10gr: %d\n", tablica_monet[3]);
  146.     printf("Monet 20gr: %d\n", tablica_monet[4]);
  147.     printf("Monet 50gr: %d\n", tablica_monet[5]);
  148.     printf("Monet 1zl: %d\n", tablica_monet[6]);
  149.     printf("Monet 2zl: %d\n", tablica_monet[7]);
  150.     printf("Monet 5zl: %d\n", tablica_monet[8]);
  151.     fclose(plik_odczyt);
  152. }
  153.  
  154. struct pracownik {
  155.     char nazwisko[50];
  156.     double pensja;
  157. };
  158.  
  159. char vchar()
  160. {
  161.     char cc;
  162.     while ((cc = getchar()) <= ' ');
  163.     return cc;
  164. }
  165.  
  166. void wczytaj_pracownikow(pracownik lista_pracownikow[], int &ile)
  167. {
  168.     FILE *plik_odczyt;
  169.     char nazwa_odczyt[30];
  170.     int index = 0;
  171.     printf("Podaj nazwe pliku: ");
  172.     scanf_s("%s", &nazwa_odczyt, 29);
  173.     fopen_s(&plik_odczyt, nazwa_odczyt, "r");
  174.     fscanf_s(plik_odczyt, "%d", &index);
  175.     for(int i = 0; i < index; i++)
  176.     {
  177.         fscanf_s(plik_odczyt, "%s", lista_pracownikow[i+ile].nazwisko, 49);
  178.         fscanf_s(plik_odczyt, "%d", lista_pracownikow[i+ile].pensja);
  179.     }
  180.     ile += index;
  181.     fclose(plik_odczyt);
  182. }
  183.  
  184. void nowy_pracownik(pracownik lista_pracownikow[], int &ile)
  185. {
  186.     char nazwisko[50];
  187.     double pensja;
  188.     printf("Podaj nazwisko pracownika: ");
  189.     scanf_s("%s", &nazwisko, 49);
  190.     printf("Podaj pensje pracownika: ");
  191.     scanf_s("%lf", &pensja);
  192.     lista_pracownikow[ile].nazwisko = nazwisko;
  193.     lista_pracownikow[ile].pensja = pensja;
  194.     ile++;
  195. }
  196.  
  197. void wyswietl_pracownikow(lista_pracownikow, int &ile)
  198. {
  199.  
  200. }
  201.  
  202. void zad7_1()
  203. {
  204.     int liczba_pracownikow = 0;
  205.     char opcja;
  206.     bool wyjscie = false;
  207.     pracownik lista_pracownikow[50];
  208.     while (wyjscie == false)
  209.     {
  210.         printf("Wybierz opcje: R-wczytaj liste, N-nowy pracownik, W-wyswietl liste, Z-zapis:")
  211.         opcja = vchar();
  212.         opcja = opcja & 0x5F;
  213.         switch (opcja)
  214.         {
  215.         case 'R':
  216.             wczytaj_pracownikow(lista_pracownikow, liczba_pracownikow);
  217.             break;
  218.         case 'N':
  219.             if (liczba_pracownikow < 50)
  220.             {
  221.                 nowy_pracownik(lista_pracownikow, liczba_pracownikow);
  222.             }
  223.             else
  224.             {
  225.                 printf("Lista pracownikow pelna!\n");
  226.             }
  227.             break;
  228.         }
  229.         case 'W':
  230.             wyswietl_pracownikow(lista_pracownikow);
  231.             break;
  232.     }
  233.    
  234.  
  235.  
  236.  
  237. }
  238.  
  239. int main()
  240. {
  241.     //zad3_3();
  242.     //zad7_2();
  243.     //zad7_5();
  244.     zad7_1();
  245.     return 0;
  246. }
  247.  
  248. // Uruchomienie programu: Ctrl + F5 lub menu Debugowanie > Uruchom bez debugowania
  249. // Debugowanie programu: F5 lub menu Debugowanie > Rozpocznij debugowanie
  250.  
  251. // Porady dotyczące rozpoczynania pracy:
  252. //   1. Użyj okna Eksploratora rozwiązań, aby dodać pliki i zarządzać nimi
  253. //   2. Użyj okna programu Team Explorer, aby nawiązać połączenie z kontrolą źródła
  254. //   3. Użyj okna Dane wyjściowe, aby sprawdzić dane wyjściowe kompilacji i inne komunikaty
  255. //   4. Użyj okna Lista błędów, aby zobaczyć błędy
  256. //   5. Wybierz pozycję Projekt > Dodaj nowy element, aby utworzyć nowe pliki kodu, lub wybierz pozycję Projekt > Dodaj istniejący element, aby dodać istniejące pliku kodu do projektu
  257. //   6. Aby w przyszłości ponownie otworzyć ten projekt, przejdź do pozycji Plik > Otwórz > Projekt i wybierz plik sln
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement