Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h.>
- #include <stdlib.h>
- typedef enum{false, true}bool;
- typedef enum{medii, superioare, doctorat}Studii;
- typedef enum{econmic, tehnic}Doctorat;
- typedef struct{
- unsigned short zi, luna, an;
- }Date;
- typedef struct {
- char nume[15], prenume[15];
- Date data;
- double salar;
- Studii selector;
- union {
- struct
- {
- double mediaBac, mediaLiceu;
- }studMedi;
- double notaLicenta;
- Doctorat doctorat;
- };
- }angajat;
- int ReadAngajat(angajat *angajat) {
- int n = 0;
- FILE *f = fopen("in.txt","r");
- if (f == NULL)return false;
- while (!feof(f)) {
- if (7 != fscanf(f, "%s%s%hu%*c%hu%*c%hu%lf%d", angajat[n].nume, angajat[n].prenume, &angajat[n].data.zi, &angajat[n].data.luna, &angajat[n].data.an, &angajat[n].salar, &angajat[n].selector)) return n;
- switch (angajat[n].selector)
- {
- case 0:
- if (fscanf(f, "%lf%lf", &angajat[n].studMedi.mediaBac, &angajat[n].studMedi.mediaLiceu) != 2) return n;
- break;
- case 1:
- if (1 != fscanf(f, "%lf", &angajat[n].notaLicenta)) return n;
- break;
- case 2:
- if (1 != fscanf(f, "%d", &angajat[n].selector)) {
- printf("\nDate introuduse gresit programul s-a oprit la persoana %d", n + 1);
- return n;
- }
- break;
- default:
- printf("\nDate introuduse gresit programul s-a oprit la persoana %d", n + 1);
- return n;
- break;
- }
- n++;
- if (n == 20) return n;
- }
- return n;
- }
- void AfisareAngajat(angajat *angajat, int n) {
- int i;
- for (i = 0; i < n; i++) {
- printf("\nNume: %sPrenume: %sData Nasteri: %hu/%hu/%hu\nSalariu: %lf", angajat[n].nume, angajat[n].prenume, angajat[n].data.zi, angajat[n].data.luna, angajat[n].data.an, angajat[n].salar);
- switch (angajat[i].selector) {
- case 0:
- printf("\nAngajat cu studii medii:");
- printf("\nMedia Bac: %f\nMedia Liceu:%f", angajat[i].studMedi.mediaBac, angajat[i].studMedi.mediaLiceu);
- break;
- case 1:
- printf("\nAngajat cu studii superiare:");
- printf("Nota Licenta: %lf", angajat[i].notaLicenta);
- break;
- case 2:
- printf("\nAnjagat cu doctorat ");
- if (angajat[i].doctorat == 1)
- printf("tehnic");
- else
- printf("economic");
- break;
- }
- }
- }
- int main() {
- int n = 0;
- int opt;
- angajat angajat[20];
- do {
- printf("\n0.Iesire");
- printf("\n1.Citire date din fiser");
- printf("\n2.Afisare Date");
- printf("\nOptiunea dorita:");
- scanf("%d", &opt);
- switch (opt)
- {
- case 0: return 0;
- case 1:
- n = ReadAngajat(angajat);
- break;
- case 2:
- if (n) {
- AfisareAngajat(angajat, n);
- printf("\n In total sunt %d angajati", n);
- }
- else
- printf("\nNu sunt angajati in baza de date");
- break;
- default:
- break;
- }
- } while (1);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment