[ Príspevkov: 5 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.09
Prihlásený: 09.05.09
Príspevky: 5
Témy: 2 | 2

Kód:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>


struct ucet
{
  int cislo;
  char typ;   // b - bezny, t - terminovany, s - sporiaci 
  char meno[20];
  char priezvisko[30];
  float zostatok;
  float poplatok;
  float urok; 
  ucet *dalsi;     
};


struct banka
{
  ucet *prvy;
  ucet *posledny;
  int pocet;
  int maxcislo;     
};




int hlavnemenu(void)
{
  system("cls");   
  printf("====== HLAVNE MENU ======\n");
  printf(" 1 - vytvor novy ucet    \n"); // OK
  printf(" 2 - nacitaj zo suboru   \n"); // OK
  printf(" 3 - uloz do suboru      \n"); // OK
  printf(" 4 - vklad na ucet       \n"); // OK
  printf(" 5 - vyber z uctu        \n"); // OK
  printf(" 6 - prevod medzi uctami \n"); // OK
  printf(" 7 - Vypis uctov         \n"); // OK
  printf(" 8 - Koniec programu     \n"); // OK   
  printf(" 9 - Zrusenie uctu       \n"); // OK
  printf("=========================\n");             
               
  int znak; 
  do
    {
      znak = 0;       
      znak = getch();
    }
  while (!((znak >='1') && (znak <= '9')));
 
  return znak;
}


int funkcia4(banka &bb)
{
   int cislouctu;
   printf("\nZadaj cislo uctu na ktory budu peniaze ulozene : \n");
   scanf("%d", &cislouctu);
   
   float suma;
   printf("\nZadaj sumu, ktoru chces vlozit :\n");
   scanf("%f", &suma);   
     
   ucet *pomocny = bb.prvy;
   printf("\n");
   while( pomocny != NULL)
     {
       if (pomocny->cislo == cislouctu)
         {
           pomocny->zostatok = pomocny->zostatok + suma;
           printf("\nSuma %f bola uspesne pripisana na ucet\n", suma);
           getch();           
           return 0;                 
         }
       pomocny = pomocny->dalsi;
     }
   
   printf("\nZvoleny ucet neexistuje\n");   
   char pom = getch(); 
   return -1;
}



// vyber z uctu
int funkcia5(banka &bb)
{
   int cislouctu;
   printf("\nZadaj cislo uctu z ktoreho budu peniaze vybrate : \n");
   scanf("%d", &cislouctu);
   
   float suma;
   printf("\nZadaj sumu, ktoru chces vybrat :\n");
   scanf("%f", &suma);
         
   ucet *pomocny = bb.prvy;
   printf("\n");
   while( pomocny != NULL)
     {
       if (pomocny->cislo == cislouctu)
         {
           if (suma > pomocny->zostatok)
             {
               printf("\nNa ucte nie je dostatok financii !\n");
               getch();

               return -1;
             }
           pomocny->zostatok = pomocny->zostatok - suma;
           printf("\nSuma %f bola uspesne vybrata z uctu\n", suma);
           getch();           
           return 0;                 
         }
       pomocny = pomocny->dalsi;
     }
   
   printf("\nZvoleny ucet neexistuje\n");   
   char pom = getch(); 
   return -1;
}



// pridanie noveho uctu
int funkcia1(banka &bb)
{
  char typuctu = ' ';                 
  do
    {             
      printf("\nVyber typ uctu ('t'=terminovany ; 'b'=bezny ; 's'=sporiaci)\n");           
      typuctu = getch();
    }
  while (!((typuctu == 't') || (typuctu == 's') || (typuctu == 'b')));
                 
  printf("Zadaj urokovu mieru: \n");             
  float nacitanyurok;
  scanf("%f", &nacitanyurok);
                   
  printf("\nZadaj poplatok: \n");             
  float nacitanypoplatok;
  scanf("%f", &nacitanypoplatok);

  char kmeno[20];           
  printf("\nZadaj krstne meno majitela uctu : \n");
  scanf("%s", kmeno);
  kmeno[19] = 0;
 
  char priezvisko[30];       
  printf("\nZadaj priezvisko majitela uctu : \n");
  scanf("%s", priezvisko);
  priezvisko[29] = 0;
                 
  ucet *pomocny = (ucet *) malloc(sizeof(ucet));
  if (pomocny == NULL)
    {
      printf("\nCHYBA, UCET NEBOL VYTVORENY\n");
      char ppp = getch();
      return -1;
    }
                 
  pomocny->urok = nacitanyurok;
  pomocny->poplatok = nacitanypoplatok;
  pomocny->zostatok = 0;
  strncpy(pomocny->meno, kmeno, 20);
  strncpy(pomocny->priezvisko, priezvisko, 30);
  pomocny->typ = typuctu;
  pomocny->dalsi = NULL;         
  pomocny->cislo = bb.maxcislo+1;
  bb.maxcislo++;
         
  // doteraz nebol v pamati ziadny ucet       
  if (bb.prvy == NULL)       
    {
      bb.prvy = bb.posledny = pomocny;
      bb.pocet = 1;                       
    }
  else
    {
      bb.posledny->dalsi = pomocny;
      bb.posledny = bb.posledny->dalsi;             
      bb.pocet++;                                       
    }   
           
  return 0;             
}


// zrusenie uctu
int funkcia9 (banka &bb)
{
  printf("\nZadaj cislo uctu, ktory sa ma zrusit\n");
  int cislouctu;
  scanf("%d", &cislouctu);
   
  ucet *pomocny = bb.prvy;
   
  if (bb.prvy == NULL)
    {
      printf("\nZvoleny ucet neexistuje !\n");
      getch();
      return -1;         
    }
     
  if (pomocny->cislo == cislouctu)
    {
      if (bb.posledny == bb.prvy)
        bb.posledny = bb.prvy->dalsi;
       
      bb.prvy = bb.prvy->dalsi;
      free(pomocny);
      printf("\nUcet bol uspesne zruseny\n");
      bb.pocet--;
      getch();
      return 0;
    }
       
  while( pomocny->dalsi != NULL)
    {

      if (pomocny->dalsi->cislo == cislouctu)
        {
          ucet *pomocny2 = pomocny->dalsi->dalsi;
          free(pomocny->dalsi);
          pomocny->dalsi = pomocny2;
          bb.pocet--;
          printf("\nUcet bol uspesne zruseny\n");
          getch();
          return 0;                     
        }
       
      pomocny = pomocny->dalsi;
    }
   
  printf("\nZvoleny ucet neexistuje !\n");
  getch();
  return -1;     
}


// nacitanie zo suboru
int funkcia2(banka &bb)
{
       
  // dealokovanie
  if (bb.prvy != NULL)
    {
      ucet *pom1, *pom2;
      pom1 = bb.prvy;
     
      do
        {
          pom2 = pom1->dalsi;
          free(pom1);
          pom1 = pom2;
        }
      while (!(pom1 == NULL));
     
      bb.prvy = bb.posledny = NULL;
      bb.pocet = 0;                         
      bb.maxcislo = 11111111;
    }
           
  printf("\nZadaj nazov suboru : \n");
  char suborik[60];
  scanf("%s", suborik);
   
  FILE *fsubor = fopen(suborik, "r+");
  if (fsubor == NULL)
    {
      printf("\nChyba, subor sa nepodarilo vytvorit !\n");
      return -1;
    };
       
  int pocetuctov = 0; 
  fscanf(fsubor, "%d\n", &pocetuctov);
 
  int maxcisielko = 0; 
  ucet hlp; 
  ucet *pomoc;
  for (int i = 0; i < pocetuctov; i++) 
    {
       fscanf(fsubor,"%d %s %s %c %f %f %f \n", &(hlp.cislo), hlp.meno,
         hlp.priezvisko, &(hlp.typ), &(hlp.zostatok), &(hlp.poplatok), &(hlp.urok));
         
       pomoc = (ucet *) malloc(sizeof(ucet));
       *pomoc = hlp;
       pomoc->dalsi = NULL;
       
       if (bb.pocet == 0)
         {
           bb.prvy = bb.posledny = pomoc;
           bb.pocet = 1;
           bb.maxcislo = bb.prvy->cislo;                   
         }
       else
         {
           bb.posledny->dalsi = pomoc;
           bb.posledny = bb.posledny->dalsi;
           bb.pocet++;                             
         }
                   
       if (bb.posledny->cislo > maxcisielko)         
         {
           maxcisielko = bb.posledny->cislo;                     
         };
    }
   
  bb.maxcislo = maxcisielko;   
  fclose(fsubor);
  printf("Nacitanie bolo uspesne !");
  char cc = getch();
  return 0;   
}


int funkcia6(banka &bb)
{
  int ucet1, ucet2;
  float suma = 0;
   
  printf("\nZadaj cislo uctu platitela : \n");
  scanf("%d", &ucet1);

  printf("\nZadaj cislo uctu prijemcu : \n");
  scanf("%d", &ucet2); 

  printf("\nZadaj sumu ktora sa ma previest : \n");
  scanf("%f", &suma);
 
  if (ucet1 == ucet2)
    {
      printf("\nChyba, zdrojovy ucet sa rovna cielovemu !\n");
      return -2;                   
    }       
 
  char najdeny1 = 0, najdeny2 = 0;   
  ucet *pomocny = bb.prvy;
 
  while(pomocny != NULL)
    {
      if (pomocny->cislo == ucet2)     
        najdeny2 = 1;                                 
      if ((pomocny->cislo == ucet1) && (pomocny->zostatok >= suma))
        najdeny1 = 1;                           
      pomocny = pomocny->dalsi;
    };
 
 
  if ((najdeny1) && (najdeny2))
    {             
      ucet *pomocny2 = bb.prvy; 
      while(pomocny2 != NULL)
        {
          if (pomocny2->cislo == ucet2)
            pomocny2->zostatok = pomocny2->zostatok + suma;       
          if (pomocny2->cislo == ucet1)
            pomocny2->zostatok = pomocny2->zostatok - suma;
          pomocny2 = pomocny2->dalsi;
        };               
    }
  else
    {
      printf("\nChyba, jeden z uctov nebol najdeny, alebo platitel nema dostatocny zostatok na platbu");
      getch();
      return -1;                           
    }
 
  printf("\nTransakcia bola uspesne zrealizovana\n");
  getch();                                     
  return 0;
}

// zapis do suboru
int funkcia3(banka &bb)
{
  printf("\nZadaj nazov suboru : \n");
  char suborik[60];
  scanf("%s", suborik);
   
  FILE *fsubor = fopen(suborik, "w+");
  if (fsubor == NULL)
    {
      printf("\nChyba, subor sa nepodarilo vytvorit !\n");
      return -1;
    };
   
  fprintf(fsubor, "%d\n", bb.pocet);
 
  ucet *pomocny = bb.prvy; 
  while(pomocny != NULL)
    {
      fprintf(fsubor, "%d %s %s %c %f %f %f \n", pomocny->cislo, pomocny->meno, pomocny->priezvisko, pomocny->typ, pomocny->zostatok, pomocny->poplatok, pomocny->urok);         
      pomocny = pomocny->dalsi;
    };
       
  fclose(fsubor);
  printf("\nZapis do suboru bol uspesny\n");
  char cc = getch();
  return 0; 
   
}

// vypis uctov
int funkcia7(banka &bb)
{
   ucet *pomocny = bb.prvy;
   printf("\n");
   while( pomocny != NULL)
     {
          printf("%d %s %s %c %f %f %f \n", pomocny->cislo, pomocny->meno, pomocny->priezvisko, pomocny->typ, pomocny->zostatok, pomocny->poplatok, pomocny->urok);         
          pomocny = pomocny->dalsi;
     }
   
   printf("\nPokracujte stlacenim lubovolneho klavesu \n");
   char pom = getch();
}


int main(void)
{
  banka slsp; 
  slsp.prvy = NULL;
  slsp.posledny = NULL;
  slsp.pocet = 0;
  slsp.maxcislo = 11111111;     
             
  int vstup = 0; 
  do
    {
      vstup = hlavnemenu();       
     
      // vytvorenie noveho uctu
      if (vstup == '1')
        funkcia1(slsp);                       
       
      // zapis do suboru
      if (vstup == '2')
        funkcia2(slsp);                       
       
      // zapis do suboru
      if (vstup == '3')
        funkcia3(slsp);                               

      if (vstup == '4')
        funkcia4(slsp);                               

      if (vstup == '5')
        funkcia5(slsp);                               

      if (vstup == '6')
        funkcia6(slsp);                               
                         
      // vypis       
      if (vstup == '7')       
        funkcia7(slsp);
       
      // zrusenie uctu
      if (vstup == '9')       
        funkcia9(slsp);
       
    }
  while (vstup != '8');
     
           
  // dealokovanie
  if (slsp.prvy != NULL)
    {
      ucet *pom1, *pom2;
      pom1 = slsp.prvy;
     
      do
        {
          pom2 = pom1->dalsi;
          free(pom1);
          pom1 = pom2;
        }
      while (!(pom1 == NULL));
     
      slsp.prvy = slsp.posledny = NULL;
      slsp.pocet = 0;                         
    }
       
  return 0;   
}


ako upravim to zadanie mi tam vyhodí same warningy


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.10.07
Prihlásený: 27.03.10
Príspevky: 16
Témy: 4 | 4

urcite tu este vypis tie warningy...a setky tie chyby pri kompilacii


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.09
Prihlásený: 09.05.09
Príspevky: 5
Témy: 2 | 2
Napísal autor témyOffline : 09.05.2009 19:40 | Zadanie v C++ aby fungovala v OS - Unix

17 C:\Dev-Cpp\zada.c syntax error before "ucet"
17 C:\Dev-Cpp\zada.c [Warning] no semicolon at end of struct or union
23 C:\Dev-Cpp\zada.c syntax error before "ucet"
23 C:\Dev-Cpp\zada.c [Warning] no semicolon at end of struct or union
24 C:\Dev-Cpp\zada.c [Warning] data definition has no type or storage class
27 C:\Dev-Cpp\zada.c syntax error before '}' token
59 C:\Dev-Cpp\zada.c syntax error before '&' token
C:\Dev-Cpp\zada.c In function `funkcia4':
69 C:\Dev-Cpp\zada.c `ucet' undeclared (first use in this function)
(Each undeclared identifier is reported only once
for each function it appears in.)
69 C:\Dev-Cpp\zada.c `pomocny' undeclared (first use in this function)
69 C:\Dev-Cpp\zada.c `bb' undeclared (first use in this function)
At top level:
91 C:\Dev-Cpp\zada.c syntax error before '&' token
C:\Dev-Cpp\zada.c In function `funkcia5':
101 C:\Dev-Cpp\zada.c `ucet' undeclared (first use in this function)
101 C:\Dev-Cpp\zada.c `pomocny' undeclared (first use in this function)
101 C:\Dev-Cpp\zada.c `bb' undeclared (first use in this function)
At top level:
130 C:\Dev-Cpp\zada.c syntax error before '&' token
C:\Dev-Cpp\zada.c In function `funkcia1':
158 C:\Dev-Cpp\zada.c `ucet' undeclared (first use in this function)
158 C:\Dev-Cpp\zada.c `pomocny' undeclared (first use in this function)
158 C:\Dev-Cpp\zada.c syntax error before ')' token
173 C:\Dev-Cpp\zada.c `bb' undeclared (first use in this function)
At top level:
194 C:\Dev-Cpp\zada.c syntax error before '&' token
C:\Dev-Cpp\zada.c In function `funkcia9':
200 C:\Dev-Cpp\zada.c `ucet' undeclared (first use in this function)
200 C:\Dev-Cpp\zada.c `pomocny' undeclared (first use in this function)
200 C:\Dev-Cpp\zada.c `bb' undeclared (first use in this function)
227 C:\Dev-Cpp\zada.c `pomocny2' undeclared (first use in this function)
At top level:
246 C:\Dev-Cpp\zada.c syntax error before '&' token
C:\Dev-Cpp\zada.c In function `funkcia2':
250 C:\Dev-Cpp\zada.c `bb' undeclared (first use in this function)
252 C:\Dev-Cpp\zada.c `ucet' undeclared (first use in this function)
252 C:\Dev-Cpp\zada.c `pom1' undeclared (first use in this function)
252 C:\Dev-Cpp\zada.c `pom2' undeclared (first use in this function)
283 C:\Dev-Cpp\zada.c syntax error before "hlp"
284 C:\Dev-Cpp\zada.c `pomoc' undeclared (first use in this function)
285 C:\Dev-Cpp\zada.c 'for' loop initial declaration used outside C99 mode
287 C:\Dev-Cpp\zada.c `hlp' undeclared (first use in this function) 290 C:\Dev- Cpp\zada.c syntax error before ')' token
290 C:\Dev-Cpp\zada.c syntax error before ')' token
At top level:
321 C:\Dev-Cpp\zada.c syntax error before '&' token C:\Dev-Cpp\zada.c In function `funkcia6':
342 C:\Dev-Cpp\zada.c `ucet' undeclared (first use in this function)
342 C:\Dev-Cpp\zada.c `pomocny' undeclared (first use in this function)
342 C:\Dev-Cpp\zada.c `bb' undeclared (first use in this function)
356 C:\Dev-Cpp\zada.c `pomocny2' undeclared (first use in this function)
At top level:
379 C:\Dev-Cpp\zada.c syntax error before '&' token
C:\Dev-Cpp\zada.c In function `funkcia3':
392 C:\Dev-Cpp\zada.c `bb' undeclared (first use in this function)
394 C:\Dev-Cpp\zada.c `ucet' undeclared (first use in this function)
394 C:\Dev-Cpp\zada.c `pomocny' undeclared (first use in this function)
At top level:
409 C:\Dev-Cpp\zada.c syntax error before '&' token
C:\Dev-Cpp\zada.c In function `funkcia7':
411 C:\Dev-Cpp\zada.c `ucet' undeclared (first use in this function)
411 C:\Dev-Cpp\zada.c `pomocny' undeclared (first use in this function)
411 C:\Dev-Cpp\zada.c `bb' undeclared (first use in this function)
C:\Dev-Cpp\zada.c In function `main':
426 C:\Dev-Cpp\zada.c `banka' undeclared (first use in this function)
426 C:\Dev-Cpp\zada.c syntax error before "slsp"
427 C:\Dev-Cpp\zada.c `slsp' undeclared (first use in this function)
473 C:\Dev-Cpp\zada.c `ucet' undeclared (first use in this function)
473 C:\Dev-Cpp\zada.c `pom1' undeclared (first use in this function)
473 C:\Dev-Cpp\zada.c `pom2' undeclared (first use in this function)
C:\Dev-Cpp\Makefile.win [Build Error] [zada.o] Error 1


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 09.05.09
Prihlásený: 09.05.09
Príspevky: 5
Témy: 2 | 2
Napísal autor témyOffline : 09.05.2009 19:41 | Zadanie v C++ aby fungovala v OS - Unix

proste v C++ to ide ale ked to dam iba do c tak tam toto vyhodí.....


Offline

Užívateľ
Užívateľ
Zadanie v C++ aby fungovala v OS - Unix

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46 | 46

a preco by to malo byt v C? podmienka je aby to islo v nix systemoch nie?
takze je tam par chyb kde mas toto }; a ma tam byt iba toto } (ale nie zas vsade!)
potom #include <conio.h> nahrad s #include <ncurses.h> lebo conio je kniznica pre dos a ncurses pre nix systemy a potom budes musiet aj prepisat vsetky getch() na getchar(), lebo getch() je iba v tom conio a v ncurses je getchar...
neviem ci to bude potom fungovat ale nebudu tam aspon errory :)


 [ Príspevkov: 5 ] 


Zadanie v C++ aby fungovala v OS - Unix



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Zadanie v C++ ale potrebujem aby to slo pod OS- Unix systemo

v Unix-like systémy

2

573

09.05.2009 18:59

ac.milan

V tomto fóre nie sú ďalšie neprečítané témy.

unix a C

v Backend

8

1067

07.12.2008 21:34

Logik

V tomto fóre nie sú ďalšie neprečítané témy.

C++ zadanie

v Backend

2

760

14.03.2017 16:27

void

V tomto fóre nie sú ďalšie neprečítané témy.

zadanie c++

v Backend

4

1102

06.06.2008 18:25

pccom

V tomto fóre nie sú ďalšie neprečítané témy.

Jazyk C, zadanie

v Kôš

0

22

05.12.2021 12:10

meechal

V tomto fóre nie sú ďalšie neprečítané témy.

Zaverecne zadanie z C++

v Backend

4

1506

14.06.2007 15:38

juho

V tomto fóre nie sú ďalšie neprečítané témy.

nokia c-5 zadanie hesla

v Smartfóny a tablety

2

568

06.11.2011 11:06

cyypo

V tomto fóre nie sú ďalšie neprečítané témy.

zadanie v C++ priklad na elektrotechniku, pomozte mi pliiis

v Backend

4

1675

09.06.2006 14:40

Harlequin

V tomto fóre nie sú ďalšie neprečítané témy.

fungovala by táto zostava komponentov ?

v PC zostavy

6

794

27.08.2019 22:03

D4rk1N0

V tomto fóre nie sú ďalšie neprečítané témy.

Nokia Lumia 920 sa vznietila. Uhasili ju a fungovala ďalej

v Novinky

7

583

13.09.2014 9:17

Semp

V tomto fóre nie sú ďalšie neprečítané témy.

IBM UNIX AIX

v Unix-like systémy

5

835

06.06.2008 22:39

FERDA23

V tomto fóre nie sú ďalšie neprečítané témy.

Najpouzivanejsi unix/linux

v Unix-like systémy

28

5029

08.01.2008 15:51

Wheeler

V tomto fóre nie sú ďalšie neprečítané témy.

Unix pre desktopy - DesktopBSD

v Unix-like systémy

10

1113

08.06.2006 0:26

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

Vypis argumentov - Csh - UNIX

v Backend

0

723

07.10.2007 16:32

SAmo

V tomto fóre nie sú ďalšie neprečítané témy.

UNIX - Pridanie vlákien do programu.

v Backend

1

374

22.04.2014 17:10

BX

V tomto fóre nie sú ďalšie neprečítané témy.

unix time na normalny cas

v Backend

1

803

10.03.2007 22:08

p360t



© 2005 - 2026 PCforum, edited by JanoF