Sunteți pe pagina 1din 11

Ministerul Educaţiei al Republicii Moldova

Universitatea Tehnică a Moldovei

RAPORT
Lucrarea de laborator Nr.1
La Programarea Orientata pe Obiecte

A efectuat: st. gr. AI-191

Tronciu Alexandru

A verificat: dr., conf.univ.

Lisnic Inga
23. Să se creeze tipul abstract de date (structura) – fişier, care are denumire, data şi timpul creării şi
dimensiunea. Să se definească funcţiile de setare, de modificare a datelor, de comparare. Pentru crearea
cîmpurilor textuale să se utilizeze operatorul new. Să se elibereze memoria. În main să se exemplifice
sortarea fişierelor după cîteva criterii.

Codul programului:
#include <iostream>
#include <new>
#include <cstdlib>
#include <string.h>

using namespace std;


struct fisier
{
char denumire[20];
char data[20];
char timpul[20];
int dimensiunea;
};

void create(int i, fisier a[20])


{
for (int j = 0; j < i; j++)
{
cout << "Denumirea fisierului :\n";
cin >> a[j].denumire;
cout << "data crearii :\n";
cin >> a[j].data;
cout << "timpul crearii :\n";
cin >> a[j].timpul;
cout << "dimensiune fisierului :\n";
cin >> a[j].dimensiunea;
}
}

int afisare(int i, fisier a[20])


{
for (int j = 0; j < i; j++)
{
cout << "Fisierul numarul ";
cout << j + 1;
cout << "\n";
cout << "Denumirea fisierului este:";
cout << a[j].denumire;
cout << "\n";
cout << "Data crearii fisierului este:";
cout << a[j].data;
cout << "\n";
cout << "Timpul crearii fisierului este:";
cout << a[j].timpul;
cout << "\n";
cout << "Dimensiunea fisierului este:";
cout << a[j].dimensiunea;
cout << "\n";
}
}

void sortare(fisier a[20], int n)


{
int schimbat, i;
fisier aux;
do
{
schimbat = 0;

for (i = 0; i < n - 1; i++)


{

if (a[i].dimensiunea > a[i + 1].dimensiunea)


{

aux = a[i];
a[i] = a[i + 1];
a[i + 1] = aux;
schimbat = 1;
}
}
} while (schimbat);
}
int cautare(int i, char s[20], fisier a[20], int n)
{
int f = 99;
if (i == 1)
{
for (int j = 0; j < n; j++)
{
if (strcmp(s, a[j].denumire) == 0)
{
f = j;
}
}
}
if (i == 2)
{
for (int j = 0; j < n; j++)
{
if (strcmp(s, a[j].timpul) == 0)
{
f = j;
}
}
}
if (f != 99)
{
return (f);
}
else
cout << "Nu s-a gasit asa fisier";
}

void modify(int i, fisier a[20])


{
int x = i;
int b;
cout << "Doriti sa schimbati denumirea fisierului?\n 1.Da 2.Nu\n";
cin >> b;
if (b == 1)
{
cout << "Dati noua denumire a fisier:";
cin >> a[x].denumire;
}
cout << "Doriti sa schimbati data crearii fisierului?\n 1.Da 2.Nu\n";
cin >> b;
if (b == 1)
{
cout << "Dati noua data a crearii fisierului:";
cin >> a[x].data;
}
cout << "Doriti sa schimbati timpul crearii fisierului?\n 1.Da 2.Nu\n";
cin >> b;
if (b == 1)
{
cout << "Dati noul timp a crearii fisierului:";
cin >> a[x].timpul;
}
cout << "Doriti sa schimbati dimensiunea fisierului?\n 1.Da 2.Nu\n";
cin >> b;
if (b == 1)
{
cout << "Dati noua dimensiune a fisierului:";
cin >> a[x].dimensiunea;
}
}

void compare(char s1[20], char s2[20], fisier a[20], int i)


{
int c1, c2;
for (int j = 0; j < i; j++)
{
if (strcmp(s1, a[j].denumire) == 0)
{
c1 = j;
}
if (strcmp(s2, a[j].denumire) == 0)
{
c2 = j;
}
}
if (a[c1].dimensiunea > a[c2].dimensiunea)
cout << "Fisierul " << s1 << " este mai mare decit fisierul " << s2 << "\n";
else
cout << "Fisierul " << s2 << " este mai mare decit fisierul " << s1 << "\n";
}

int main()
{
int com;
int i, n, x, k;
char s[20];
char s1[20], s2[20];
int den[20];
fisier *a;
com = 0;
while (com < 9)
{
cout << "Meniul programului:\n 0.Exit\n1)Crearea fisierilor\n 2)Afisarea fisierilor\n
3)Modificarea datelor unui fisier\n 4)Compararea fisierilor dupa dimensiune\n 5)Sortare
datelor\n6.Eliberare memory"<<endl;
cout << "Dati numarul comenzii >>> ";
cin >> com;
switch (com)
{
case 0:com=10;cout<<"Goodbye;"<<endl;break;
case 1:
cout << "Dati numarul de elemente :";
cin >> n;
a = new fisier[20];
create(n, a);
system("pause");
system("cls");
break;
case 2:
afisare(n, a);
system("pause");
system("cls");
break;
case 3:
cout << "Dati denumirea fisier:";
cin >> s;
x = cautare(1, s, a, n);
modify(x, a);
system("pause");
system("cls");
break;
case 4:
cout << "Lista fisierilor :\n";
for (int j = 0; j < n; j++)
{
cout << "| ";
cout << a[j].denumire;
cout << " |\n";
}
cout << "Dati fisierile care vor fi supuse compararii...\n";
cout << "Primul fisier : ";
cin >> s1;
cout << "A doilea fisier : ";
cin >> s2;
compare(s1, s2, a, n);
system("pause");
system("cls");
break;
case 5:
sortare(a, n);
cout << "Sortarea a fost executata cu succes, accesati functia 2;)" << endl;
system("PAUSE");
break;
case 6:
delete[] a;
cout << "Memoria a fost eliberata cu succes";
system("pause");
system("cls");
break;
}
}
}

Screenshoturi:

1)Functia de creare a fisierilor


2)Functia de afisare a fisierilor

3) Functia de modificare a fisierilor


4)Functia de comparare dupa dimensiune
5)Functia de sortare a fiserilor dupa dimensiune.

Raspunsuri la intrebari:

1) Un Tip Abstract de Date
(TAD) este o specificare a unui set de date de un anumit tip, împreună cu un set
de operaţii care pot fi executate cu aceste date. Acesta este o entitate matematică abstractă, cu existen
ţă independentă.

2) O structură reprezintă un grup de date grupate împreună sub același nume


3) O structura poate contine variabile cu tipuri de date diferite.

4) Se scrie denumirea structurii si apoi denumirea variabilei

5) Puntcul se utilizeaza la o variabila non pointer, iar sageata la variabila pointer.

6) Structura din limbajul C necesita de rescris denumirea structurii la sfarsitul acoladei.

7) Da.

8)Nu.

9)Da.

10)    Apel prin referinţă se transmite adresa parametrului actual. În cazul apelului prin referinţă,
subprogramul, cunoscând adresa parametrului actual, acţionează direct asupra locaţiei de
memorie indicată de aceasta, modificândvaloarea parametrului actual.

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

  • Poo Lab1
    Poo Lab1
    Document4 pagini
    Poo Lab1
    Alex Tronciu
    Încă nu există evaluări
  • Lab 1 POO
    Lab 1 POO
    Document24 pagini
    Lab 1 POO
    Grosu Maxim
    Încă nu există evaluări
  • Laboratorul 2 POO
    Laboratorul 2 POO
    Document6 pagini
    Laboratorul 2 POO
    Alex Tronciu
    Încă nu există evaluări
  • Raport
    Raport
    Document32 pagini
    Raport
    braileanu
    Încă nu există evaluări
  • Lab 4
    Lab 4
    Document3 pagini
    Lab 4
    Igor Pascal
    Încă nu există evaluări
  • Lab 7 Cazacu POO
    Lab 7 Cazacu POO
    Document8 pagini
    Lab 7 Cazacu POO
    Iura Cazacu
    Încă nu există evaluări
  • Raport 1
    Raport 1
    Document14 pagini
    Raport 1
    Damean Alexandra
    Încă nu există evaluări
  • Bâcov Egor - Itemii 1,2,3,4,5,6
    Bâcov Egor - Itemii 1,2,3,4,5,6
    Document9 pagini
    Bâcov Egor - Itemii 1,2,3,4,5,6
    George Listru
    Încă nu există evaluări
  • Lucrarea de Laborator nr.1 POO
    Lucrarea de Laborator nr.1 POO
    Document27 pagini
    Lucrarea de Laborator nr.1 POO
    Mihai Marchitan
    Încă nu există evaluări
  • Curs 12
    Curs 12
    Document26 pagini
    Curs 12
    Daniel Popa
    Încă nu există evaluări
  • Laboratorul 4 Grosu Sergiu - PC
    Laboratorul 4 Grosu Sergiu - PC
    Document8 pagini
    Laboratorul 4 Grosu Sergiu - PC
    Sergiu Grosu
    Încă nu există evaluări
  • Lucru Individual NR 1
    Lucru Individual NR 1
    Document6 pagini
    Lucru Individual NR 1
    Maxim Ciorba
    Încă nu există evaluări
  • Raport 1
    Raport 1
    Document14 pagini
    Raport 1
    Dima Grigoras
    Încă nu există evaluări
  • An1 Lab07 Sem2 20-21
    An1 Lab07 Sem2 20-21
    Document8 pagini
    An1 Lab07 Sem2 20-21
    Ioana
    Încă nu există evaluări
  • Baloane de Tenis Legate Prin Cabluri
    Baloane de Tenis Legate Prin Cabluri
    Document6 pagini
    Baloane de Tenis Legate Prin Cabluri
    Alexandra Moldovan
    Încă nu există evaluări
  • Lab 4
    Lab 4
    Document6 pagini
    Lab 4
    ThomasMusa
    Încă nu există evaluări
  • Lucrarea de Laborator nr3 - C++
    Lucrarea de Laborator nr3 - C++
    Document9 pagini
    Lucrarea de Laborator nr3 - C++
    CapitanMD
    Încă nu există evaluări
  • Sda LP07 V05
    Sda LP07 V05
    Document13 pagini
    Sda LP07 V05
    Music NoCopyright
    Încă nu există evaluări
  • Lucrarea de Laborator NR 7 POO
    Lucrarea de Laborator NR 7 POO
    Document7 pagini
    Lucrarea de Laborator NR 7 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • ZinveliuIoana Cumulate Lab8 An1 Sem2
    ZinveliuIoana Cumulate Lab8 An1 Sem2
    Document12 pagini
    ZinveliuIoana Cumulate Lab8 An1 Sem2
    Ioana Zinveliu
    Încă nu există evaluări
  • POO Lab7
    POO Lab7
    Document6 pagini
    POO Lab7
    Dani Ela
    Încă nu există evaluări
  • Patrat PDF
    Patrat PDF
    Document2 pagini
    Patrat PDF
    Julia Varga
    Încă nu există evaluări
  • Lab07 Pointeri
    Lab07 Pointeri
    Document8 pagini
    Lab07 Pointeri
    Raifury
    Încă nu există evaluări
  • Pseudocod
    Pseudocod
    Document4 pagini
    Pseudocod
    hg612078
    Încă nu există evaluări
  • Lucrarea de Laborator NR 7 POO
    Lucrarea de Laborator NR 7 POO
    Document7 pagini
    Lucrarea de Laborator NR 7 POO
    Alexandru Burdeniuc
    Încă nu există evaluări
  • LL2 MIPI Cațer Cătălin
    LL2 MIPI Cațer Cătălin
    Document7 pagini
    LL2 MIPI Cațer Cătălin
    Cătălin Cațer
    Încă nu există evaluări
  • Lab.4 POO UD
    Lab.4 POO UD
    Document9 pagini
    Lab.4 POO UD
    Miroslava
    Încă nu există evaluări
  • C. M PC Lab 7
    C. M PC Lab 7
    Document11 pagini
    C. M PC Lab 7
    NeFe We
    Încă nu există evaluări
  • 1.sarcini Individuale
    1.sarcini Individuale
    Document13 pagini
    1.sarcini Individuale
    Maria
    Încă nu există evaluări
  • Programare UTCN An 1 Sem 2
    Programare UTCN An 1 Sem 2
    Document2 pagini
    Programare UTCN An 1 Sem 2
    AndreisYo
    Încă nu există evaluări
  • Laborator 1
    Laborator 1
    Document11 pagini
    Laborator 1
    Dinu Dogaru
    Încă nu există evaluări
  • Info at
    Info at
    Document28 pagini
    Info at
    Ababei
    Încă nu există evaluări
  • Java - Lab3r Algoritmului Bancherului
    Java - Lab3r Algoritmului Bancherului
    Document11 pagini
    Java - Lab3r Algoritmului Bancherului
    Octavian Macovetchi
    100% (1)
  • L1 - L2 Vectori-Matrici
    L1 - L2 Vectori-Matrici
    Document5 pagini
    L1 - L2 Vectori-Matrici
    mircica ilie
    Încă nu există evaluări
  • Teste 7
    Teste 7
    Document2 pagini
    Teste 7
    Luca Daniel Pahomi
    Încă nu există evaluări
  • MMC Lab2
    MMC Lab2
    Document6 pagini
    MMC Lab2
    Mihail Boran
    Încă nu există evaluări
  • Raport Lucrare de Laborator PC Nr.6
    Raport Lucrare de Laborator PC Nr.6
    Document16 pagini
    Raport Lucrare de Laborator PC Nr.6
    maxlab
    Încă nu există evaluări
  • Proiect Java Si Python
    Proiect Java Si Python
    Document15 pagini
    Proiect Java Si Python
    Loredana Gheorghe
    Încă nu există evaluări
  • Laborator 10
    Laborator 10
    Document5 pagini
    Laborator 10
    cristytrs787878
    Încă nu există evaluări
  • Curs FR - Unitatea de Invatare 18
    Curs FR - Unitatea de Invatare 18
    Document7 pagini
    Curs FR - Unitatea de Invatare 18
    Mitea Gabriel-Cristian
    Încă nu există evaluări
  • Subiecte Anii Trecuti Rezolvate
    Subiecte Anii Trecuti Rezolvate
    Document16 pagini
    Subiecte Anii Trecuti Rezolvate
    Raluca Prassa
    Încă nu există evaluări
  • Raport Lab1 Oop
    Raport Lab1 Oop
    Document6 pagini
    Raport Lab1 Oop
    Denis Goncearuc
    Încă nu există evaluări
  • Cursul02 ATP2022
    Cursul02 ATP2022
    Document51 pagini
    Cursul02 ATP2022
    Dejan Marius
    Încă nu există evaluări
  • ZinveliuIoana Cumulate Lab7 An1 Sem2
    ZinveliuIoana Cumulate Lab7 An1 Sem2
    Document17 pagini
    ZinveliuIoana Cumulate Lab7 An1 Sem2
    Ioana Zinveliu
    Încă nu există evaluări
  • Raport 2 SDA
    Raport 2 SDA
    Document11 pagini
    Raport 2 SDA
    ПётрЧервак
    Încă nu există evaluări
  • Lab1 Poo
    Lab1 Poo
    Document15 pagini
    Lab1 Poo
    ciumac andrian
    100% (1)
  • Lab 3raport
    Lab 3raport
    Document14 pagini
    Lab 3raport
    Tabureanu Marian
    Încă nu există evaluări
  • Tema 1
    Tema 1
    Document14 pagini
    Tema 1
    tevomil811
    Încă nu există evaluări
  • LL2 PAM ECiobanu
    LL2 PAM ECiobanu
    Document19 pagini
    LL2 PAM ECiobanu
    Ecaterina Ciobanu
    Încă nu există evaluări
  • Sda 5
    Sda 5
    Document6 pagini
    Sda 5
    666mr.graf666
    Încă nu există evaluări
  • Kis Alexandru Lab 5
    Kis Alexandru Lab 5
    Document10 pagini
    Kis Alexandru Lab 5
    Sabine Crihan
    100% (1)
  • Rezolvari Bilete A Toate
    Rezolvari Bilete A Toate
    Document2 pagini
    Rezolvari Bilete A Toate
    Anele
    Încă nu există evaluări
  • Subiecte Atestat Programare - Rezolvări 2022-2023
    Subiecte Atestat Programare - Rezolvări 2022-2023
    Document22 pagini
    Subiecte Atestat Programare - Rezolvări 2022-2023
    Black Erron
    Încă nu există evaluări
  • Lab 1 C
    Lab 1 C
    Document4 pagini
    Lab 1 C
    uohikjb jbjkbkj
    Încă nu există evaluări
  • Lab 1 C
    Lab 1 C
    Document4 pagini
    Lab 1 C
    uohikjb jbjkbkj
    Încă nu există evaluări
  • PCLP2 Laboratorul4
    PCLP2 Laboratorul4
    Document4 pagini
    PCLP2 Laboratorul4
    nikelton12
    Încă nu există evaluări
  • Lab 1 C++
    Lab 1 C++
    Document13 pagini
    Lab 1 C++
    Maxim Tincu
    Încă nu există evaluări
  • Milnicenco Carolin v6 Laborator-1
    Milnicenco Carolin v6 Laborator-1
    Document12 pagini
    Milnicenco Carolin v6 Laborator-1
    trfetr4frfrf
    Încă nu există evaluări
  • Lab 2 C
    Lab 2 C
    Document12 pagini
    Lab 2 C
    Belîi Daniela
    Încă nu există evaluări
  • Lab3Rom 1
    Lab3Rom 1
    Document4 pagini
    Lab3Rom 1
    trfetr4frfrf
    Încă nu există evaluări
  • GL Lab Soo
    GL Lab Soo
    Document11 pagini
    GL Lab Soo
    trfetr4frfrf
    Încă nu există evaluări
  • Lab3Rom 1
    Lab3Rom 1
    Document4 pagini
    Lab3Rom 1
    trfetr4frfrf
    Încă nu există evaluări
  • Lab 1 Rom
    Lab 1 Rom
    Document6 pagini
    Lab 1 Rom
    Carolin
    Încă nu există evaluări
  • Lab 4 Rom
    Lab 4 Rom
    Document4 pagini
    Lab 4 Rom
    trfetr4frfrf
    Încă nu există evaluări
  • Lab 1
    Lab 1
    Document8 pagini
    Lab 1
    trfetr4frfrf
    Încă nu există evaluări