Created
December 4, 2014 14:17
-
-
Save savaryna/a284105d39cfac637fb5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <conio.h> | |
#include <stdio.h> | |
int i,j,tot,n; | |
struct lucratori{ | |
char nume[20]; | |
char prenume[20]; | |
char functie[20]; | |
char stagiu[20]; | |
char localitate[20]; | |
int salariu; | |
}a[20]; | |
void meniu(){ | |
system("cls"); | |
printf("���������������������� MENIU ���������������������ͻ\n"); | |
printf("� Creaza baza de date -------------------------- 1 �\n"); | |
printf("� Adauga date ---------------------------------- 2 �\n"); | |
printf("� Modifica date -------------------------------- 3 �\n"); | |
printf("� Elimina date --------------------------------- 4 �\n"); | |
printf("� Afiseaza continutul bazei de date ------------ 5 �\n"); | |
printf("� Angajatii cu salariul <= 1200 ---------------- 6 �\n"); | |
printf("� Iesi ----------------------------------------- 0 �\n"); | |
printf("��������������������������������������������������ͼ\n"); | |
printf("Introduceti cifra corespunzatoare comenzii dorite: "); | |
} | |
void total(){ | |
tot=0; | |
for (i=0; a[i].salariu>0; i++){tot++;} | |
} | |
void b_menu(){ | |
printf("\nApasa (ENTER) pentru meniul principal! "); | |
getch (); | |
} | |
void cit_ad_mod(){ | |
printf("Introduceti datele despre angajatul nr.%d\n",i+1); | |
printf("\tNumele: "); | |
scanf("%s", &a[i].nume); | |
printf("\tPrenumele: "); | |
scanf("%s", &a[i].prenume); | |
printf("\tFunctia: "); | |
scanf("%s", &a[i].functie); | |
printf("\tStagiul: "); | |
scanf("%s", &a[i].stagiu); | |
printf("\tLocalitatea: "); | |
scanf("%s", &a[i].localitate); | |
printf("\tSalariul: "); | |
scanf("%d", &a[i].salariu); | |
printf("\n"); | |
} | |
void afisare(){ | |
printf("Angajatul nr.%d:\n",i+1); | |
printf("\tNumele: %s\n",a[i].nume); | |
printf("\tPrenumele: %s\n",a[i].prenume); | |
printf("\tFunctia: %s\n",a[i].functie); | |
printf("\tStagiul: %s\n",a[i].stagiu); | |
printf("\tLocalitatea: %s\n",a[i].localitate); | |
printf("\tSalariul: %d\n\n",a[i].salariu); | |
} | |
void alegere(){ | |
int adg=0,edit,elim=0,optiune; | |
do { | |
total(); | |
meniu(); | |
scanf("%d",&optiune); | |
switch(optiune){ | |
case 1: if (tot >= 1){ system("cls"); printf("Baza de date deja existenta!\n"); b_menu();} | |
else | |
{ | |
system("cls"); printf("Dati numarul de angajati: "); | |
do | |
{ | |
scanf("%d", &n); | |
if (n > 20) | |
{ | |
printf("Introduceti un numar mai mic de 20: "); | |
} | |
else | |
{ | |
for(i=0; i<n; i++){cit_ad_mod();} | |
} | |
}while(n > 20); | |
b_menu(); | |
break; | |
case 2: system("cls"); printf("Citi angajati doriti sa adaugati?: "); | |
do | |
{ | |
scanf("%d", &adg); | |
if (adg <= 0 || adg > 20) | |
{ | |
printf("Introduceti un numar mai mare ca 0 si mai mic ca 20: "); | |
} | |
else | |
{ | |
if (a[i].salariu == 0) | |
{ | |
j=i; | |
for(i=j; i<j+adg; i++){cit_ad_mod();} | |
} | |
} | |
}while(adg <= 0 || adg > 20-tot); | |
b_menu(); | |
} | |
break; | |
case 3: system("cls"); printf("Introduceti nr. angajatului care urmeaza a fi EDITAT: "); | |
do { | |
scanf("%d", &edit); | |
if (edit > tot || edit == 0){ | |
system("cls"); | |
printf("Angajatul nr.%d nu exista! Introduceti alt nr.: ", edit); | |
} | |
}while(edit > tot || edit == 0); | |
for(i=edit-1; i<edit; i++){cit_ad_mod();} | |
b_menu(); | |
break; | |
case 4: system("cls"); printf("Introduceti nr. angajatului care urmeaza a fi ELIMINAT: "); | |
do | |
{ | |
scanf("%d", &elim); | |
if (elim > tot || elim == 0) | |
{ | |
system("cls"); | |
printf("Angajatul nr.%d nu exista, introduceti alt nr.: ", elim); | |
} | |
else | |
{ | |
i=elim-1; | |
do { | |
a[i]=a[i+1]; | |
i++; | |
}while(a[i].salariu>0); | |
} | |
}while(elim > tot || elim == 0); | |
printf("\nAngajatul a fost eliminat cu succes!\n\n"); | |
b_menu(); | |
break; | |
case 5: system("cls"); | |
if (tot <= 0) | |
{ | |
printf("Nu a fost gasit nici un angajat!\n\n"); | |
b_menu(); | |
} | |
else | |
{ | |
for(i=0; a[i].salariu>0; i++){afisare();} printf("\n\tTotal:%8d\n\n", tot); | |
b_menu(); | |
} | |
break; | |
case 6: system("cls"); tot=0; | |
for(i=0; a[i].salariu>0; i++){if (a[i].salariu<=1200){tot++; afisare();}} | |
printf("\n\tTotal:%8d\n\n", tot); | |
b_menu(); | |
break; | |
} | |
} | |
while(optiune!=0); | |
} | |
void main(){ | |
alegere(); | |
getch(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment