Advertisement
Dimoo23

Vezbi 1 kolokvium Struktura vo C - Doktor [OOP]

Mar 17th, 2018
1,039
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.99 KB | None | 0 0
  1. /* Во програмскиот јазик C да се креира структура Pacient и истата треба да содржи: (5 поени)
  2.  
  3. Име и презиме на пациентот ( низа од макс. 100 знаци)
  4. Дали е здраствено осигуран (1-да, 0-не)
  5. Број на прегледи во текот на последниот месец (цел број)
  6. Да се креира структура MaticenDoktor, која во себе содржи: (5 поени)
  7.  
  8. Име на докторот (низа од 100 знаци)
  9. Број на пациенти (цел број)
  10. Листа од пациенти (низа од максимум 200 елементи од структурата Pacient)
  11. Цена на преглед (децимален број)
  12. Да се креираат метода najuspesen_doktor, која прима низа од променливи од типот MaticenDoktor и нивниот број; и го печати името, заработената сума и бројот на прегледи на оној доктор кој заработил најголема сума од пациенти кои ги прегледувал приватно (не се здраствено осигурани) (10 поени). Доколку два или повеќе доктори имаат иста сума, тогаш се печати оној доктор кој има направено најголем број на прегледи вкупно во текот на последниот месец. (20 поени)
  13.  
  14. Функционалност (5 поени).*/
  15.  
  16.  
  17. #include<stdio.h>
  18. typedef struct Pacient{
  19. char ime[100];
  20. int zdravstveno,pregledi;
  21. }Pacient;
  22.  
  23. typedef struct MaticenDoktor{
  24.     char ime[100];
  25.     int br_pac,brpregledi;
  26.     Pacient niza[200];
  27.     float cena,zarabotka;
  28. }doktor;
  29.  
  30. void najuspesen_doktor(doktor a[],int n){
  31.     int i,j;
  32.  
  33.     for(i=0;i<n;i++){
  34.         for(j=0;j<a[i].br_pac;j++){
  35.             if(a[i].niza[j].zdravstveno==0){
  36.                 a[i].zarabotka+=a[i].cena*a[i].niza[j].pregledi;
  37.             }
  38.             a[i].brpregledi+=a[i].niza[j].pregledi;
  39.         }
  40.     }
  41.     doktor najdobar=a[0];
  42.     for(i=0;i<n;i++){
  43.         if(a[i].zarabotka==najdobar.zarabotka){
  44.             if(a[i].brpregledi>najdobar.brpregledi)
  45.                 najdobar=a[i];
  46.         }
  47.     }
  48.     printf("%s %.2f %d",najdobar.ime,najdobar.zarabotka,najdobar.brpregledi);
  49. }
  50.  
  51. int main()
  52. {
  53.     int i, j, n, broj;
  54.     doktor md[200];
  55.     scanf("%d", &n);
  56.     for (i = 0; i < n; i++){
  57.         //ime na doktor
  58.         scanf("%s", md[i].ime);
  59.         //broj na pacienti
  60.         scanf("%d", &md[i].br_pac);
  61.         //cena na pregled
  62.         scanf("%f", &md[i].cena);
  63.        
  64.         md[i].zarabotka=0,md[i].brpregledi=0;
  65.        
  66.         for (j = 0; j < md[i].br_pac; j++){
  67.             scanf("%s", md[i].niza[j].ime);
  68.             scanf("%d", &md[i].niza[j].zdravstveno);
  69.             scanf("%d", &md[i].niza[j].pregledi);
  70.         }
  71.     }
  72.     najuspesen_doktor(md, n);
  73.  
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement