Sunteți pe pagina 1din 4

Universitatea Tehnică a Moldovei

Facultatea Calculatoare Informatică și Microelectronică


Departamentul Ingineria Software și Automatică

RAPORT
Lucrarea de laborator nr. 1

la Programarea Orientata Pe Obiecte

Tema: Structura, mecanism de abstractizare

A efectuat: Bogdan Dan

A verificat: Sergiu Scrob

Chişinău 2021
Sarcina propusa: Elaborati un program cu structuri de date. Datele sunt introduse de la
tastiera. Datele contine informatii despre student. In urma primei compilari, informatia se va
salva in fisierul creat de program, iar in urma compilarii II informatiile informatia trebuie sa
fie introdusa si afisata in structura din fisier.

Listingul programului:

#include <stdio.h>//Antetul stdio.h definește trei tipuri variabile, mai multe 
macrocomenzi și diverse funcții pentru efectuarea intrărilor și ieșirilor//
#include <string.h>//Antetul string.h definește un tip variabil, o macro și di
verse funcții pentru manipularea matricilor de caractere.//
#include <stdlib.h>//Antetul stdlib.h definește patru tipuri de variabile, mai 
multe macro-uri și diverse funcții pentru îndeplinirea funcțiilor generale.//
struct Student
{
    char numele[50];//Numele,prenumele studentului//
    int grupa, varsta, an_studii;
};
int main()
{
    FILE *fp; //Functia fopen pentru deschiderea fisierului, care v-a returna 
un FILE pointer//
    char c;
    int x = 1, y = 1, k = 0;
    struct Student info;
    info.grupa = 0;
    info.varsta = 0;
    info.an_studii = 0;
    fp = fopen("fisier.txt", "r");
    if (fp == NULL)
    {
        printf("Fisierul nu poate fi accesat \n");
        x = 0;
    }
    while (c != EOF)
    {
        c = fgetc(fp);

        if (c != '\n')
        {
            if (y == 1)
            {
                info.numele[k] = c;
                k++;
            }
            else if (y == 2)
            {
                info.grupa = info.grupa * 10 + (c - '0');
            }
            else if (y == 3)
            {
                info.varsta = info.varsta * 10 + (c - '0');
            }
            else if (y == 4)
            {
                info.an_studii = info.an_studii * 10 + (c - '0');
            }
        }
        else
        {
            y++;
        }
    }
    fclose(fp);
    if (x == 0)
    {
        printf("Introduceti numele si prenumele:");
        gets(info.numele);
        printf("Introduceti grupa:");
        scanf("%d", &info.grupa);
        printf("Introduceti varsta:");
        scanf("%d", &info.varsta);
        printf("Introduceti anul de studii:");
        scanf("%d", &info.an_studii);
        fp = fopen("fisier.txt", "w+");
        fprintf(fp, "%s\n", info.numele);
        fprintf(fp, "%d\n", info.grupa);
        fprintf(fp, "%d\n", info.varsta);
        fprintf(fp, "%d\n", info.an_studii);
        fclose(fp);//functie utilizata pentru inchiderea fisierului
    }
    else
    {
        for (int i = 0; i <= k - 1; i++)
        {
            printf("%c", info.numele[i]);
        }
        printf("\n");
        printf("%d\n", info.grupa);
        printf("%d\n", info.varsta);
        printf("%d\n", info.an_studii);
    }
    return 0;
}
Rezultatele programului:

S-ar putea să vă placă și