Advertisement
Guest User

Untitled

a guest
May 20th, 2018
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.06 KB | None | 0 0
  1. /*
  2. Napisać program, który pozwoli
  3. - zapamiętać w postaci tablicy struktur dane o 10 posiadaczach kont w banku.
  4.  
  5. Struktura powinna zawierać pola
  6. - imię, nazwisko, rok urodzenia, numer konta, nazwa banku, kwota.
  7.  
  8. Program powinien zawierać funkcję do
  9. - wyświetlania struktur (struktura przekazana przez wskaźnik),
  10. - znajdowania posiadacza konta o największej i najmniejszej kwocie na koncie (struktura przekazana przez wskaźnik, funkcja zwraca wskaźnik na strukture)
  11. - funkcję sumującą kwoty wszystkich użytkowników.
  12. */
  13.  
  14. #include <stdio.h>
  15. #include <stdlib.h>
  16. #define LN 50
  17. #define ROZMIAR 10
  18.  
  19. struct rekord {
  20.     char imie[LN];
  21.     char nazwisko[LN];
  22.     int rok_urodzenia;
  23.     char numer_konta[LN];
  24.     char nazwa_banku[LN];
  25.     float srodki;
  26. };
  27.  
  28. void wyswietl(struct rekord *wsk)
  29. {
  30.     for (int n = 0; n < ROZMIAR; n++)
  31.     {
  32.         printf("Imie: %s\nNaziwsko: %s\nRok urodzenia: %d\nNumer konta: %s\nNazwa banku: %s\nSrodki: %.2f\n\n", (wsk + n)->imie, (wsk + n)->nazwisko, (wsk + n)->rok_urodzenia, (wsk + n)->numer_konta, (wsk + n)->nazwa_banku, (wsk + n)->srodki);
  33.     }
  34. }
  35.  
  36. struct rekord* najmniejsza_wartosc(struct rekord* wsk)
  37. {
  38.     struct rekord *najmniejsza;
  39.     najmniejsza = wsk;
  40.     for (int i = 1; i < ROZMIAR; i++)
  41.     {
  42.         if (najmniejsza->srodki > (wsk + i)->srodki)
  43.             najmniejsza = wsk + i;
  44.     }
  45.     return(najmniejsza);
  46.    
  47. }
  48.  
  49. struct rekord* najwieksza_wartosc(struct rekord* wsk)
  50. {
  51.     struct rekord *najwieksza;
  52.     najwieksza = wsk;
  53.     for (int i = 1; i < ROZMIAR; i++)
  54.     {
  55.         if (najwieksza->srodki < (wsk + i)->srodki)
  56.             najwieksza = wsk + i;
  57.     }
  58.     return(najwieksza);
  59. }
  60.  
  61. void sumuj_srodki(struct rekord* wsk)
  62. {
  63.     float suma = 0;
  64.  
  65.     for (int m = 0; m < ROZMIAR; m++)
  66.     {
  67.         suma += (wsk + m)->srodki;
  68.     }
  69.  
  70.     printf("Suma srodkow wszystkich uzytkownikow to: %.2f\n\n", suma);
  71. }
  72.  
  73. int main(void)
  74. {
  75.     struct rekord* wsk;
  76.     struct rekord* wsk2;
  77.     int operacja;
  78.     char wybor;
  79.     int i = 0;
  80.  
  81.     struct rekord osoba[ROZMIAR] =
  82.     {
  83.         "Piotr", "Klimczak", 1997, "123456789", "Bank Millenium", 9000,
  84.         "Ilona", "Badowska", 1998, "987654321", "Eurobank", 10000,
  85.         "Michal", "Rybak", 1997, "456789123", "Getin Bank", 7000,
  86.         "Robert", "Krolikowski", 1997, "789123456", "PKO Bank", 5000,
  87.         "Szymon", "Kokot", 1990, "741258963", "mBank", 2000,
  88.         "Rafal", "Izykowski", 1994, "159753126", "Alior Bank", 4500,
  89.         "Piotr", "Szewczyk", 1972, "128745963", "BGZ BNP Paribas", 4550,
  90.         "Jan", "Kowalski", 1985, "789145236", "ING Bank", 2654,
  91.         "Konrad", "Lukaszewski", 1940, "123589647", "Raiffeisen Polbank", 50,
  92.         "Wojciech", "Kluba", 1954, "452369781", "BZ WBK", 4246,
  93.     };
  94.  
  95.     for (;;)
  96.     {
  97.         printf("STRUKTURY\n\n");
  98.        
  99.         printf("Wybierz, co chcesz zrobic:\n1 - wyswietl wszystkie osoby\n2 - wyswietl najmniej srodkow\n3 - wyswietl najwiecej srodkow\n4 - wyswietl sume wszystkich srodkow\n\nWpisz opcje: ");
  100.  
  101.         scanf_s("%d", &operacja);
  102.         rewind(stdin);
  103.  
  104.         switch (operacja)
  105.         {
  106.  
  107.         case 1:
  108.             wyswietl(&osoba);
  109.             break;
  110.  
  111.         case 2:
  112.             wsk = najmniejsza_wartosc(osoba);
  113.             printf("Najmniejsza wartosc na koncie to: %.2f\n\n", (wsk->srodki));
  114.             break;
  115.  
  116.         case 3:
  117.             wsk2 = najwieksza_wartosc(osoba);
  118.             printf("Najwieksza wartosc na koncie to: %.2f\n\n", (wsk2->srodki));
  119.             break;
  120.  
  121.         case 4:
  122.             sumuj_srodki(osoba);
  123.             break;
  124.  
  125.         default:
  126.             rewind(stdin);
  127.             printf("Nie ma takiej opcji!\n\n");
  128.             break;
  129.  
  130.         }
  131.  
  132.         printf("Czy chcesz kontynuowac? t -> tak / inny znak -> nie: ");
  133.         scanf_s(" %c", &wybor);
  134.         printf("\n");
  135.  
  136.         if (wybor == 't')
  137.         {
  138.             continue;
  139.             rewind(stdin);
  140.         }
  141.  
  142.         else
  143.         {
  144.             break;
  145.         }
  146.  
  147.     }
  148.  
  149.     return 0;
  150. }
  151.  
  152.  
  153.    
  154. /*wyswietl(osoba);
  155.  
  156. wsk = najmniejsza_wartosc(osoba); // do wskaznika przypisujemy adres 1 osoby w tabeli
  157.  
  158. wsk2 = najwieksza_wartosc(osoba);
  159.  
  160. printf("Najmniejsza wartosc na koncie to: %.2f\n\n", (wsk->srodki));
  161. printf("Najwieksza wartosc na koncie to: %.2f\n\n", (wsk2->srodki));
  162.  
  163. sumuj_srodki(osoba);*/
  164.    
  165.  
  166. //dorobic menu, funckje zwracaja itp
  167. //dodac malloc, skasowac co wczesniej statycznie bylo i pyknie
  168.  
  169. // zwrocic to pojedynczo do pokazywania min max
  170. // dorobic menu
  171. // ZALICZENIE: sortowanie tablicy struktur, wartosci
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement