1_C++

7
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: st. gr. ISBM-131 Gutanu Adriana A verificat: lec.univ. Balan Mihaela

description

Totul despre C++

Transcript of 1_C++

Page 1: 1_C++

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: st. gr. ISBM-131 Gutanu Adriana

A verificat: lec.univ. Balan Mihaela

Chișinău, 2014

Page 2: 1_C++

Scopul lucrării: Studierea programării prin abstractizarea datelor; Studierea regulilor de definire şi utilizare a structurilor de date; Crearea variabilelor de tip structură, accesarea componentelor unei structuri.

Noțiuni teoreticeStructura reprezintă un tip abstract de date, un tip definit de utilizator prin utilizarea tipurilor

deja existente. O structură poate fi definite în modul următor:

struct Date{ int day, month, year;};struct Student{ char *name; Date birthDay; float media;};

Structura – este o mulţime de date grupate, conform unei ierarhii, de obicei de tipuri diferite. Structura poate fi comparată cu tabloul, însă tabloul conţine date de un acelaşi tip, iar elementele tabloului se accesează cu ajutorul indicilor, pe cînd accesarea componentelor structurii are o formă specifică.

Varianta 6а) Să se creeze tipul abstract de date (structura) – casă, care are denumirea firmei de construcţie, adresa, numărul etajelor şi al apartamentelor. Să se definească funcţiile de setare, de modificare a datelor, de comparare a caselor. Pentru crearea cîmpurilor textuale să se utilizeze operatorul new. Să se elibereze memoria. În main să se exemplifice sortarea caselor după numărul 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];

Page 3: 1_C++

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";

}

Page 4: 1_C++

}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: {

//etajecaut=1;cautare();break;

}case 3: {

//apartamentecaut=2;

Page 5: 1_C++

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;}

Page 6: 1_C++

Întrebări de control:

1.Definiţi noţiunea – tip abstract de date.Un tip definit de utilizator prin utilizarea zipurilor deja existente.

2.Cum se defineşte o structură?Este o multime de date grupate ,conform unei ierrhii de obicei de date diferite

3.Cum se defineşte o variabilă de tip structură?Definirea unei variabile de tip structura se face utilizind numelei structurei cit si o componenta respectiva.

4. Cînd se utilizează punctul, cînd - săgeata?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.