Sunteți pe pagina 1din 6

Ministerul Educatiei al Republicii Moldova

Universitatea Tehnica a Moldovei


Catedra Microelectronica si Inginerie Biomedicala

RAPORT
Lucrarea de laborator Nr.1
la Programarea n C++
Tema: Structura mecanism de abstractizare

A efectuat:
A verificat:

st. gr. ISBM-131 Gutanu Adriana


lec.univ.

Chiinu, 2014

Balan Mihaela

Scopul lucrrii:
Studierea programrii prin abstractizarea datelor;
Studierea regulilor de definire i utilizare a structurilor de date;
Crearea variabilelor de tip structur, accesarea componentelor unei structuri.
Noiuni teoretice
Structura reprezint un tip abstract de date, un tip definit de utilizator prin utilizarea tipurilor
deja existente.
O structur poate fi definite n modul urmtor:
struct Date{
int day, month, year;
};
struct Student{
char *name;
Date birthDay;
float media;
};
Structura este o mulime de date grupate, conform unei ierarhii, de obicei de tipuri diferite.
Structura poate fi comparat cu tabloul, ns tabloul conine date de un acelai tip, iar elementele
tabloului se acceseaz cu ajutorul indicilor, pe cnd accesarea componentelor structurii are o form
specific.
Varianta 6
) S se creeze tipul abstract de date (structura) cas, care are denumirea firmei de construcie, adresa,
numrul etajelor i al apartamentelor. S se defineasc funciile de setare, de modificare a datelor, de
comparare a caselor. Pentru crearea cmpurilor textuale s se utilizeze operatorul new. S se elibereze
memoria. n main s se exemplifice sortarea caselor dup numrul de etaje+apartamente.
#include <iostream>
#include <process.h>
using namespace std;
void menu();
void afisare();
void citire();
void cautare();
void dlt();
int n,caut;
struct Home {
char *name;
int floor ;
int apartments;
char *address;
};
Home d[100];

void dlt () {
int i;
for (i=0; i<n; i++) {
delete [] d[i].name;
delete [] d[i].address;
}
}
void cautare() {
int etj,i,x=0;
system("cls");
if (caut==1) {
x=0;
cout<<"Introduceti numarul etajelor: ";
cin>>etj;
for (i=0; i<n; i++) {
if (etj==d[i].floor) {
x++;
cout<<"\tCasa nr."<<i+1;
cout<<"\nFirma de constructie: ";
cout<< d[i].name;
cout<<"\nNr. etajelor: ";
cout<<d[i].floor;
cout<<"\nNr. de apartamente: ";
cout<<d[i].apartments;
cout<<"\nAdresa: ";
cout<<d[i].address;
cout<<"\n\n";
}
}
if (x==0) cout<<"Nu este casa cu asa nr.de etaje!\n";
system("pause");
}
if (caut==2) {
x=0;
cout<<"Introduceti nr. de apartamente: ";
cin>>etj;
for (i=0; i<n; i++) {
if (etj==d[i].apartments) {
x++;
cout<<"\tCasa nr."<<i+1;
cout<<"\nFirma de constructie: ";
cout<< d[i].name;
cout<<"\nNr. etajelor: ";
cout<<d[i].floor;
cout<<"\nNr. de apartamente: ";
cout<<d[i].apartments;
cout<<"\nAdresa: ";
cout<<d[i].address;
cout<<"\n\n";

}
}
if (x==0) cout<<"Nu este casa cu asa nr. de apartamente!\n";
system("pause");
}
menu();
}
void afisare() {
int i;
system("cls");
for (i=0; i<n; i++) {
cout<<"\tCasa nr."<<i+1;
cout<<"\nFirma de constructie: ";
cout<< d[i].name;
cout<<"\nNr.etajelor: ";
cout<<d[i].floor;
cout<<"\nNr. de apartamente: ";
cout<<d[i].apartments;
cout<<"\nAdresa: ";
cout<<d[i].address;
cout<<"\n\n";
}
system("pause");
menu();
}

void menu() {
int x;
system("cls");
cout<<"\n\t1 - Afisarea datelor";
cout<<"\n\t2 - Cautare dupa nr.de etaje";
cout<<"\n\t3 - Cautare dupa nr.de apartamente";
//cout<<"\n\t2 - Compararea caselor";
cout<<"\n\t0 - Iesire\n";
cin>>x;
switch (x) {
case 1: {
afisare();
break;
}
case 2: {
//etaje
caut=1;
cautare();
break;
}
case 3: {
//apartamente

caut=2;
cautare();
break;
}
case 0: {
dlt();
break;
}
default: menu();
}
}
void citire () {
int i;
system("cls");
for (i=0; i<n; i++) {
cout<<"\tCase nr."<<i+1<<"\n";
cout<<"Firma de constructie : ";
d[i].name = new char[30];
cin>> d[i].name;
cout<<"Nr.de etaje: ";
cin>>d[i].floor;
cout<<"Nr. de apartamente: ";
cin>>d[i].apartments;
cout<<"Adresa: ";
d[i].address = new char[30];
cin>>d[i].address;
cout<<"\n";
}
menu();
}

int main () {
cout<<"Introduceti cite case pot fii?\n";
cin>>n;
citire();
return 0;
}

ntrebri de control:
1.Definii noiunea tip abstract de date.
Un tip definit de utilizator prin utilizarea zipurilor deja existente.

2.Cum se definete o structur?


Este o multime de date grupate ,conform unei ierrhii de obicei de date diferite

3.Cum se definete o variabil de tip structur?


Definirea unei variabile de tip structura se face utilizind numelei structurei cit si o componenta
respectiva.

4. Cnd se utilizeaz punctul, cnd - sgeata?


Prin sageata are loc o atribuire, adic variabilelor se transmit functilor prin parametri.
Prin punct are loc o referire.
1.

5. Care sunt deosebirile ntre structura din limbajul C i C++?


In C inaintea cuvintelor cheie struct uneori se adauga cuvintul cheiei tipedef .In C++ este suficent
utilizarea numelui de structura la felu ca tipuri predefinite.

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