Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.90 KB | None | 0 0
  1. // ConsoleApplication1.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. #include <conio.h>
  8.  
  9. #include "stdafx.h"
  10.  
  11. struct Client {
  12.     char nume_client[50], prenume_client[50], adresa_livrare[100], numar_telefon[13], adresa_email[50];
  13.     int id_client;
  14. }a[100];
  15.  
  16. struct Angajat {
  17.     char nume_angajat[50], prenume_angajat[50], departament_angajat[50];
  18.     //char lucrator;
  19.     int lucrator;
  20.     //asa cum ai structurat tu programul, lucrator este un int
  21.     int id_angajat;
  22.  
  23.     union
  24.     {
  25.         struct casier
  26.         {
  27.             int cod_casier;
  28.             char nume_casier[50], prenume_casier[50];
  29.         }casier;
  30.  
  31.         struct operator_calc
  32.         {
  33.             int cod_op_calc;
  34.             char nume_op[50], prenume_op[50];
  35.         }operator_calc;
  36.  
  37.         struct coordonator
  38.         {
  39.             int cod_coord;
  40.             char nume_coord[50], prenume_coord[50];
  41.         }coordonator;
  42.  
  43.         struct graphic_designer
  44.         {
  45.             int cod_designer;
  46.             char nume_designer[50], prenume_designer[50];
  47.  
  48.         }graphic_designer;
  49.  
  50.         struct op_comenzi_online
  51.         {
  52.             int cod_op_com;
  53.             char nume_op_com[50], prenume_op_com[50];
  54.         }op_comenzi;
  55.  
  56.         struct ofiter_suport_clienti
  57.         {
  58.             int cod_ofiter;
  59.             char nume_ofiter[50], prenume_ofiter[50];
  60.         }ofiter;
  61.  
  62.     }f;
  63.  
  64. }b[100];
  65.  
  66. struct Produs {
  67.     char nume_produs[150], categorie_produs[100];
  68.     float pret_produs;
  69.     int cod_produs, cantitate_produs;
  70. }c[100];
  71.  
  72. struct Magazin {
  73.     char adresa_magazin[150];
  74.     float profit_magazin;
  75.     int nr_angajati;
  76. }d[100];
  77.  
  78. struct Facturi_fiscale {
  79.     int nr_factura;
  80.     char serie_factura[50], nume_casier[50], prenume_casier[50], ziua_facturarii[50];
  81.     float total_plata;
  82. }e[100];
  83.  
  84.  
  85.  
  86. enum saptamana { luni, marti, miercuri, joi, vineri, sambata, duminica };
  87.  
  88. int main()
  89. {
  90.     int i, client, produs, magazin, factura_fiscala, angajat, n, lucrator, g;
  91.     int clearEndl; //fiecare scanf iti lasa un /n in urma necitit
  92.     // whileul ala se asigura ca nu ai niciun char de /n
  93.     //(linie noua, e "urma" lasata de enter, practic fiecare tasta iti lasa o "urma", chiar daca nu iti apare pe ecran)
  94.     // din cauza /n nu iti mergea primul gets, el citea /n si trecea la linie noua
  95.     // http://stackoverflow.com/questions/5546874/using-scanf-and-fgets-in-the-same-program
  96.     //also, nu imi compila cu gets() fiindca e prea deprecated, nu am stat sa caut sa-l fac sa mearga, foloseste fgets(),
  97.     //oricum gets() si scanf() nu se folosesc decat la facultate xD
  98.  
  99.     /*
  100.     g=angajat
  101.  
  102.     */
  103.  
  104.     printf("                                       ******************************\n\n");
  105.     printf("                                                  Pc fun\n");
  106.     printf("                                          Baza de date magazin IT\n\n");
  107.     printf("                                       ******************************\n\n");
  108.  
  109.     printf("Numar clienti=");
  110.     scanf("%d", &client);
  111.     printf("\n");
  112.     for (i = 1; i <= client; i++)
  113.     {
  114.         printf("Introduceti numele clientului: ");
  115.         scanf("%s", &a[i].nume_client);
  116.         printf("\nIntroduceti prenumele clientului: ");
  117.         scanf("%s", &a[i].prenume_client);
  118.         printf("\nIntroduceti id clientului: ");
  119.         scanf("%s", &a[i].id_client);
  120.         printf("\nIntroduceti numarul de telefon: ");
  121.         scanf("%s", &a[i].numar_telefon);
  122.         printf("\nIntroduceti adresa de email: ");
  123.         scanf("%s", &a[i].adresa_email);  
  124.         printf("\nIntroduceti adresa de livrare: ");
  125.         //gets(a[i].adresa_livrare);
  126.         //gets(a[i].adresa_livrare); de ce gets!?!?!? e deprecated
  127.        
  128.         while ((clearEndl = getchar()) != EOF && clearEndl != '\n')
  129.             //asta e whileul la care m-am referit la inceput
  130.             ;
  131.         fgets(a[i].adresa_livrare, sizeof(a[i].adresa_livrare), stdin);
  132.         //scanf("%s  %*c", &a[i].adresa_livrare);
  133.  
  134.         if (i < client)
  135.         {
  136.             printf("\n*********************\n");
  137.             printf("Urmatorul client");
  138.         }
  139.         printf("\n*********************\n\n");
  140.     }
  141.  
  142.     printf("Numarul de magazine= ");
  143.     scanf("%d", &magazin);
  144.     for (i = 1; i <= magazin; i++)
  145.     {
  146.         printf("\nIntroduceti adresa magazinului: ");
  147.         //gets(d[i].adresa_magazin);
  148.         //gets(d[i].adresa_magazin);
  149.        
  150.         while ((clearEndl = getchar()) != EOF && clearEndl != '\n')  //asta e whileul la care m-am referit la inceput
  151.             ;
  152.         fgets(d[i].adresa_magazin, sizeof(d[i].adresa_magazin), stdin);
  153.         //scanf("%s", &a[i].adresa_livrare);  ce era cu asta aici O_O ?
  154.         printf("\nIntroduceti profitul magazinului: ");
  155.         scanf("%f", &d[i].profit_magazin);
  156.  
  157.         if (i < magazin)
  158.         {
  159.             printf("\n********************\n");
  160.             printf("Urmatorul magazin");
  161.         }
  162.         printf("\n********************\n\n");
  163.     }
  164.  
  165.  
  166.     //iti trebuie ceva repetitiv aici, folosesti b[i].lucrator dar tu nu misti i-ul
  167.     int nrAngajati;
  168.     printf("Cati angajati avem, sau ceva ?");
  169.     scanf("%d", &nrAngajati);
  170.     for (i = 1; i <= nrAngajati; i++) {
  171.         printf("\nIntroduceti numarul de angajati situati pe acest post = ");  //care post ?
  172.         scanf("%d", &lucrator);
  173.         printf("Posturile angajatilor: \n\t[1] Casier\n\t[2] Operator calculator\n\t[3] Coordonator\n\t[4] Graphic Designer\n\t[5] Operator comenzi online\n\t[6] Ofiter suport clienti\n Introduceti una dintre cifrele de mai sus: ");
  174.         scanf("%d", &b[i].lucrator);  //nu-ti mergea pt ca %s e pt stringuri, tu vrei sa citesti un int
  175.         printf("\nPostul ales este: ");
  176.     }
  177.  
  178.     for (i = 1; i <= lucrator; i++)
  179.     {
  180.  
  181.         /* if(i < g)
  182.         {
  183.         printf ("\n**********************\n");
  184.         printf ("Urmatorul angajat");
  185.         }
  186.         printf ("\n**********************\n\n"); */
  187.  
  188.         switch (b[i].lucrator)
  189.         {
  190.         case 1:
  191.             printf("Casier");
  192.             printf("\nIntroduceti cod angajat: ");
  193.             scanf("%d", b[i].f.casier.cod_casier);
  194.             printf("\nIntroduceti numele angajatului: ");
  195.             scanf("%s", b[i].f.casier.nume_casier);
  196.             printf("\nIntroduceti prenumele angajatului: ");
  197.             scanf("%s", b[i].f.casier.prenume_casier);
  198.             printf("\n**********************\n\n");
  199.             break;
  200.  
  201.         case 2:
  202.             printf("Operator calculator");
  203.             printf("\nIntroduceti cod angajat: ");
  204.             scanf("%d", b[i].f.operator_calc.cod_op_calc);
  205.             printf("\nIntroduceti numele angajatului: ");
  206.             scanf("%s", b[i].f.operator_calc.nume_op);
  207.             printf("\nIntroduceti prenumele angajatului: ");
  208.             scanf("%s", b[i].f.operator_calc.prenume_op);
  209.             break;
  210.  
  211.         case 3:
  212.             printf("Coordonator");
  213.             printf("\nIntroduceti cod angajat: ");
  214.             scanf("%d", b[i].f.coordonator.cod_coord);
  215.             printf("\nIntroduceti numele angajatului: ");
  216.             scanf("%s", b[i].f.coordonator.nume_coord);
  217.             printf("\nIntroduceti prenumele angajatului: ");
  218.             scanf("%s", b[i].f.coordonator.prenume_coord);
  219.             break;
  220.  
  221.         case 4:
  222.             printf("Graphic designer");
  223.             printf("\nIntroduceti cod angajat: ");
  224.             scanf("%d", b[i].f.graphic_designer.cod_designer);
  225.             printf("\nIntroduceti numele angajatului: ");
  226.             scanf("%s", b[i].f.graphic_designer.nume_designer);
  227.             printf("\nIntroduceti prenumele angajatului: ");
  228.             scanf("%s", b[i].f.graphic_designer.prenume_designer);
  229.             break;
  230.  
  231.         case 5:
  232.             printf("Operator comenzi online");
  233.             printf("\nIntroduceti cod angajat: ");
  234.             scanf("%d", b[i].f.op_comenzi.cod_op_com);
  235.             printf("\nIntroduceti numele angajatului: ");
  236.             scanf("%s", b[i].f.op_comenzi.nume_op_com);
  237.             printf("\nIntroduceti prenumele angajatului: ");
  238.             scanf("%s", b[i].f.op_comenzi.prenume_op_com);
  239.             break;
  240.  
  241.         case 6:
  242.             printf("Ofiter suport clienti");
  243.             printf("\nIntroduceti cod angajat: ");
  244.             scanf("%d", b[i].f.ofiter.cod_ofiter);
  245.             printf("\nIntroduceti numele angajatului: ");
  246.             scanf("%s", b[i].f.ofiter.nume_ofiter);
  247.             printf("\nIntroduceti prenumele angajatului: ");
  248.             scanf("%s", b[i].f.ofiter.prenume_ofiter);
  249.             break;
  250.         default:
  251.             printf("Niciun post ales, ceva eroare!!");
  252.                 //obisnuieste-te sa pui si default la switch
  253.         }
  254.     }
  255.     /*
  256.     printf ("Introduceti datele despre angajati \n");
  257.     printf ("\nIntroduceti numarul de angajati= ");
  258.     scanf ("%d", &angajat);
  259.     for (i = 1; i <= angajat; i++)
  260.     {
  261.     printf ("\nIntroduceti id angajat: ");
  262.     scanf ("%s", &b[i].id_angajat);
  263.     printf ("\nIntroduceti numele angajatului: ");
  264.     scanf ("%s", &b[i].nume_angajat);
  265.     printf ("\nIntroduceti prenumele angajatului: ");
  266.     scanf ("%s", &b[i].prenume_angajat);
  267.     printf ("\nIntroduceti departamentul pe care este repartizat angajatul: ");
  268.     scanf ("%s", &b[i].departament_angajat);
  269.  
  270.     if(i<angajat)
  271.     {
  272.     printf ("\n**********************\n");
  273.     printf ("Urmatorul angajat");
  274.     }
  275.     printf ("\n**********************\n\n");
  276.     }
  277.  
  278.  
  279.     printf ("Cantitatea de produse vandute= ");
  280.     scanf ("%d", &produs);
  281.     for (i = 1; i <= produs; i++)
  282.     {
  283.     printf ("\nIntroduceti codul produsului: ");
  284.     scanf ("%d", &c[i].cod_produs);
  285.     printf ("\nIntroduceti numele produsului: ");
  286.     scanf ("%s", &c[i].nume_produs);
  287.     printf ("\nIntroduceti categoria produsului: ");
  288.     scanf ("%s", &c[i].categorie_produs);
  289.     printf ("\nIntroduceti pretul produsului ");
  290.     scanf ("%f", &c[i].pret_produs);
  291.     printf ("\nIntroduceti numarul de bucati al produsului: ");
  292.     scanf ("%d", &c[i].cantitate_produs);
  293.  
  294.     if(i<produs)
  295.     {
  296.     printf ("\n*****************\n");
  297.     printf ("Urmatorul produs");
  298.     }
  299.     printf ("\n*****************\n\n");
  300.     }
  301.  
  302.     */
  303.  
  304.     return 0;
  305. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement