programe c++

25
// Program : Graful.cpp #include<iostream.h> #include<conio.h> class matrice {int p; public: int*matricea; matrice(int dim) {p=dim; matricea=new int[p*p]; } ~matrice(){delete[]matricea;} }; class punct {public: int nr_ordine; punct(){nr_ordine=0;} punct(int numar){nr_ordine=numar;} }; class arc:public punct {public: punct varf; arc(){varf.nr_ordine=0;} arc(int numar){varf.nr_ordine=numar;} }; class graf {int nr_arce; public: arc*graful; afisare(); graf(int numar) {nr_arce=numar; graful=new arc[numar]; } }; void main() {clrscr(); int nr; int exista; int nr_max_subramuri; int arc_crt; char tasta='a'; cout<<"Construirea unui arbore binar"; cout<<"\nDati numarul de noduri : ";cin>>nr; matrice mat(nr); graf gr(nr-1);

Upload: jasminaa1

Post on 23-Oct-2015

33 views

Category:

Documents


4 download

TRANSCRIPT

// Program : Graful.cpp

#include<iostream.h>#include<conio.h>

class matrice{int p;

public: int*matricea; matrice(int dim) {p=dim; matricea=new int[p*p]; } ~matrice(){delete[]matricea;} };

class punct{public:

int nr_ordine; punct(){nr_ordine=0;} punct(int numar){nr_ordine=numar;} };

class arc:public punct{public:

punct varf; arc(){varf.nr_ordine=0;} arc(int numar){varf.nr_ordine=numar;} };

class graf{int nr_arce;

public: arc*graful; afisare(); graf(int numar) {nr_arce=numar; graful=new arc[numar]; } };

void main(){clrscr();

int nr; int exista; int nr_max_subramuri; int arc_crt; char tasta='a'; cout<<"Construirea unui arbore binar"; cout<<"\nDati numarul de noduri : ";cin>>nr; matrice mat(nr); graf gr(nr-1); cout<<"\nArborele are "<<nr<<" noduri. Fiecare nod are cel mult 2 subramuri"; for(int f=1;f<=nr-1;f++) {cout<<"\nNodul "<<f<<" are ca succesor urmatorul nod ?"; nr_max_subramuri=2; for(int g=1;g<=f;g++) {mat.matricea[(f-1)*nr+f-1]=0; mat.matricea[(f-1)*nr+g-1]=mat.matricea[(g-1)*nr+f-1]; } for(int g=f+1;g<=nr;g++)

{if(nr_max_subramuri>0) {exista=0; for(int h=1;h<f;h++) {if(mat.matricea[(h-1)*nr+g-1]==1){exista=1;} } if(exista==0) {cout<<"\n - nodul (d-pentru 'da') :"<<g; cin>>tasta; if(tasta=='d'||tasta=='D') {mat.matricea[(f-1)*nr+g-1]=1; nr_max_subramuri--; } else{mat.matricea[(f-1)*nr+g-1]=0;} } else{mat.matricea[(f-1)*nr+g-1]=0;} }} } //construirea arborelui arc_crt=0; for(int f=1;f<=nr-1;f++) {for(int g=f+1;g<=nr;g++) {if(mat.matricea[(f-1)*nr+g-1]==1) {arc_crt++; gr.graful[arc_crt].nr_ordine=f; gr.graful[arc_crt].varf.nr_ordine=g; } } } cout<<"\n\n\nSe afiseaza arborele :"; for(int f=1;f<=arc_crt;f++) {cout<<"\n * "<<gr.graful[f].nr_ordine<<"->"<<gr.graful[f].varf.nr_ordine; } getch(); }

#include<iostream.h>#include<conio.h>

class punct{public:

float xo,yo; punct(){xo=0;yo=0;} };

class patrat:public punct{float xv,yv;

public: patrat(float xocrt,float yocrt,float lcrt){xo=xocrt;yo=yocrt;xv=xo+lcrt;yv=yo+lcrt;} float aria(){return (xv-xo)*(xv-xo);} };

class dreptunghi:public punct{public:

float xv,yv; dreptunghi(float xocrt,float yocrt,float Lcrt,float lcrt){xo=xocrt;yo=yocrt;xv=xo+Lcrt;yv=yo+lcrt;} float aria(){return (xv-xo)*(yv-yo);} };

class triunghi:public punct{public:

float xv,yv; triunghi(float xocrt,float yocrt,float xvcrt,float yvcrt){xo=xocrt;yo=yocrt;xv=xvcrt;yv=yvcrt;} float aria(){return (xv-xo)*(yv-yo);} };

void main(){clrscr();

float p1,p2,p3,p4; cout<<"\nPATRATUL\n"; cout<<"\nIntroduceti coordonatele punctului din stanga jos "; cout<<"(baza este paralela cu abscisa) :\n - abscisa : "; cin>>p1; cout<<"\n - ordonata : ";cin>>p2; cout<<"\nIntroduceti lungimea laturii : ";cin>>p3; patrat pt(p1,p2,p3); cout<<"\nCoordonatele punctelor sunt :"; cout<<"\nA("<<pt.xo<<","<<pt.yo<<");"; cout<<"\nB("<<(pt.xo+p3)<<","<<pt.yo<<");"; cout<<"\nC("<<(pt.xo+p3)<<","<<(pt.yo+p3)<<");"; cout<<"\nD("<<pt.xo<<","<<(pt.yo+p3)<<");"; cout<<"\nAria patratului este : "<<pt.aria(); cout<<"\n\n\nDREPTUNGHIUL"; cout<<"\nIntroduceti coordonatele punctului din stanga jos "; cout<<"(baza este paralela cu abscisa) :\n - abscisa : "; cin>>p1; cout<<"\n - ordonata : ";cin>>p2; cout<<"\nIntroduceti lungimea : ";cin>>p3; cout<<"\nIntroduceti latimea : ";cin>>p4; dreptunghi dr(p1,p2,p3,p4); cout<<"\nCoordonatele punctelor sunt :"; cout<<"\nA("<<dr.xo<<","<<dr.yo<<");"; cout<<"\nB("<<(dr.xo+p3)<<","<<dr.yo<<");"; cout<<"\nC("<<(dr.xo+p3)<<","<<(dr.yo+p4)<<");"; cout<<"\nD("<<dr.xo<<","<<(dr.yo+p4)<<");"; cout<<"\nAria dreptunghiului este : "<<dr.aria(); cout<<"\n\n\nTRIUNGHIUL ISOSCEL"; cout<<"\nIntroduceti coordonatele punctului din stanga jos ";

cout<<"(baza este paralela cu abscisa) :\n - abscisa : "; cin>>p1; cout<<"\n - ordonata : ";cin>>p2; cout<<"\nIntroduceti coordonatele varfului :\n - abscisa : ";cin>>p3; cout<<"\n - ordonata : ";cin>>p4; triunghi tr(p1,p2,p3,p4); cout<<"\nCoordonatele punctelor sunt :"; cout<<"\nA("<<tr.xo<<","<<tr.yo<<");"; cout<<"\nB("<<(tr.xo+2*(p3-tr.xo))<<","<<tr.yo<<");"; cout<<"\nC("<<(p3)<<","<<(p4)<<");"; cout<<"\nAria triunghiului este : "<<tr.aria(); getch(); }

#include<iostream.h>#include<conio.h>

class carti{char*denumire,*titlu;

int nr_exemplare,nr_ex_imprum; };

class informatica{carti infor;

informatica*inf_next; };

class dictionare{carti dictio;

dictionare*dic_next; };

class tehnica{carti tehno;

tehnica*teh_next; };

class beletristica{carti belet;

beletristica*bel_next; };

class biblioteca:public informatica,public dictionare,public tehnica,public beletristica{int total_carti,total_imprum;

};

void main(){clrscr();

getch(); }

// Program : Complex.cpp

#include<iostream.h>#include<conio.h>

class real{public:

float Real; real(){Real=0;} };

class imaginar{public:

float Imaginar; imaginar(){Imaginar=0;} };

class complex:public real,public imaginar{public:

void suma(complex&c2) {cout<<"\n\nSuma celor doua numere este :"; cout<<"\n("<<Real<<","<<Imaginar<<")+("<<c2.Real<<","<<c2.Imaginar; cout<<")=("<<(Real+c2.Real)<<","<<(Imaginar+c2.Imaginar)<<")"; } complex(float re,float im) {Real=re;Imaginar=im; } };

void main(){clrscr();

float re1,re2,im1,im2; cout<<"\nIntroduceti primul numar complex :"; cout<<"\n - partea reala : ";cin>>re1; cout<<"\n - partea imaginara : ";cin>>im1; cout<<"\nIntroduceti cel de-al doilea numar complex :"; cout<<"\n - partea reala : ";cin>>re2; cout<<"\n - partea imaginara : ";cin>>im2; complex numar1(re1,im1),numar2(re2,im2); numar1.suma(numar2); getch(); }

#include<iostream.h> // Mostenire#include<conio.h>#include<math.h>class punct {public: float xo,yo; // obiectul <punct> este definit de doua coordonate : xo,yo virtual float perimetrul(){return 0;} // se defineste o functie virtuala pentru perimetru virtual float aria(){return 0;} // se defineste o functie virtuala pentru arie punct(){xo=0;yo=0;} // constructor implicit punct(float x,float y){xo=x;yo=y;} //constructor care defineste punctul prin coordonatele date x si y };

class segment:public punct //clasa <segment> mosteneste clasa <punct>, deci xo si yo vor fi doua coordonate ale sale// din moment ce aceste coordonate sunt mostenite public si pot fi folosite direct si de segment, le vom considera coordonatele punctului de origine al segmentului {public: punct varf; // se defineste cel de-al doilea punct pentru segment (aici se apeleaza constructorul implicit din clasa punct) // clasa <segment> are in acest moment 3 coordonate : xo,yo,varf, unde varf este un punct si poate fi apelat prin coordonatele sale varf.xo si varf.yo float perimetrul(){return sqrt((varf.xo-xo)*(varf.xo-xo)+(varf.yo-yo)*(varf.yo-yo));} // functia virtuala perimetru redefinita intoarce lungimea segmentului float aria(){return 0;} // fuctia virtuala aria segment(){varf.xo=0;varf.yo=0;} segment(punct p1,punct p2){xo=p1.xo;yo=p1.yo;varf.xo=p2.xo;varf.yo=p2.yo;} // constructor care defineste un segment avand date doua puncte };

class patrat:public segment // clasa <patrat> mosteneste clasa <segment>, se considera ca patratul este determinat de 4 laturi egale ca lungime cu segmentul mostenit // patratul nu este definit prin punctele sale si nici prin laturile sale (aceste elemente nu sunt cunoscute), ci doar prin // lungimea laturilor sale care se considera egala cu lungimea segmentului mostenit // el mosteneste de la clasa <segment> coordonatele xo , yo si punctul varf, acestea fiind suficiente pentru a determina lungimea laturilor sale si astfel sa fie calculat perimetrul si aria patratului {public: float perimetrul(){return 4*sqrt((varf.xo-xo)*(varf.xo-xo)+(varf.yo-yo)*(varf.yo-yo));} // functia virtuala intorce de patru ori lungimea segmentului float aria(){return ((varf.xo-xo)*(varf.xo-xo)+(varf.yo-yo)*(varf.yo-yo));} // fara radical <sqrt> functia intoarce aria prin patratul lungimii segmentului patrat(segment s){xo=s.xo;yo=s.yo;varf.xo=s.varf.xo;varf.yo=s.varf.yo;} // constructor care defineste patratul printr-un segment dat };void main() {clrscr(); punct o(5,6),v(8,10); // se definesc doua puncte prin coordonatele sale segment s(o,v); // se defineste un segment prin doua puncte date patrat p(s); // se defineste un patrat printr-un segment dat punct*pp; // pointer la punct pp=&o; // pointerului i se da adresa unui punct asa ca : cout<<"\nPerimetrul punctului este : "<<pp->perimetrul(); // este apelata functia virtuala definita in clasa punct cout<<"\nAria punctului este : "<<pp->aria(); pp=&s; // pointerului i se da adresa unui segment, asa ca : cout<<"\n\nLungimea segmentului este : "<<pp->perimetrul(); // este apelata functia virtuala redefinita in clasa segment cout<<"\nAria segmentului este : "<<pp->aria(); pp=&p; // pointerului i se da adresa unui patrat, asa ca : cout<<"\n\nPerimetrul patratului este : "<<pp->perimetrul(); // este apelata functia virtuala redefinita in clasa patrat cout<<"\nAria patratului este : "<<pp->aria(); getch(); }

// Program : Fereastra.cpp#include<iostream.h>#include<conio.h>

class titlul{public:

char*titlu; virtual void Titlu()=0; };

class fereastra:public titlul{public:

int xo,yo,lungime,inaltime; void Titlu(); virtual void afisare(); void sterge(); fereastra() {xo=0;yo=0;lungime=0;inaltime=0; titlu=""; } fereastra(int x,int y,int lung,int inalt,char*title); };

fereastra::fereastra(int x,int y,int lung,int inalt,char*title){xo=x;

yo=y; lungime=lung; inaltime=inalt; titlu=new char[strlen(title)]; titlu=title; }

void fereastra::afisare(){gotoxy(xo,yo);

cout<<"+"; for(int i=1;i<=lungime;i++) {gotoxy(xo+i,yo); cout<<"-"; } gotoxy(xo+lungime+1,yo); cout<<"+"; for(int g=1;g<=inaltime;g++) {gotoxy(xo,yo+g); cout<<"|"; gotoxy(xo+lungime+1,yo+g); cout<<"|"; }

gotoxy(xo,yo+inaltime+1); cout<<"+"; for(int i=1;i<=lungime;i++) {gotoxy(xo+i,yo+inaltime+1); cout<<"-"; } gotoxy(xo+lungime+1,yo+inaltime+1); cout<<"+"; Titlu(); }

void fereastra::Titlu(){gotoxy(xo+(lungime-strlen(titlu)-2)/2,yo);

cout<<" "<<titlu<<" "; }

void fereastra::sterge(){for(int i=0;i<=inaltime+1;i++)

{for(int g=0;g<=lungime+1;g++) {gotoxy(xo+g,yo+i); cout<<" "; } } }

class deplasare:public fereastra{public:

int deplasare_orizontala,deplasare_verticala; void afisare(); deplasare(fereastra&fero,int orizontal,int vertical) {xo=fero.xo; yo=fero.yo; inaltime=fero.inaltime; lungime=fero.lungime; titlu=new char[strlen(fero.titlu)]; titlu=fero.titlu; deplasare_orizontala=orizontal; deplasare_verticala=vertical; } };

void deplasare::afisare(){sterge();

xo+=deplasare_orizontala; yo+=deplasare_verticala; fereastra::afisare(); }

class modificare:public fereastra{

la; fereastra::afisare(); }

void main(){clrscr();

fereastra fer(5,5,35,10,"Titlu"); fer.afisare(); getch(); fer.sterge(); getch(); fer.afisare(); getch(); deplasare fer1(fer,10,10); fer1.afisare(); getch(); deplasare fer2(fer1,-5,-8); fer2.afisare(); getch(); modificare fer3(fer2,5,10); fer3.afisare(); getch(); modificare fer4(fer3,-2,-5); fer4.afisare(); getch(); }

// Program : Figuri.cpp#include<iostream.h>#include<conio.h>#include<math.h>int figura=0;

class triunghi{public:

float latura1,aria1; void Initial1() {cout<<"\n\nIntroduceti latura triunghiului echlateral : "; cin>>latura1; aria1=latura1*latura1*(sin(M_PI/3))/2; } };

class patrat{public:

float latura2,aria2; void Initial2() {cout<<"\n\nIntroduceti lungimea laturii patratului : "; cin>>latura2; aria2=latura2*latura2; } };

class cerc{public:

float raza,aria3; void Initial3() {cout<<"\n\nIntroduceti raza cercului : "; cin>>raza; aria3=raza*raza*M_PI; } };

class fig_geom_plana:public triunghi,public patrat,public cerc{public:

float sectiune() {if(figura==1) {return aria1;} else {if(figura==2) {return aria2;} else

{return aria3;} } } };

class fig_geom_spatiu:public fig_geom_plana{public:

float inaltimea; };

class piramida:public fig_geom_spatiu{public:

piramida() {if(figura==1) {Initial1(); cout<<"\nFigura geometrica : tetraedru.\n\nIntroduceti inaltimea tetraedrului : "; cin>>inaltimea; cout<<"\nSectiunea triunghiului de baza : "<<sectiune(); cout<<"\nVolumul tetraedrului : "<<sectiune()*inaltimea/3; } else {if(figura==2) {Initial2(); cout<<"\nFigura geometrica : piramida patratica.\n\n";

cout<<"Introducetu inaltimea piramidei : "; cin>>inaltimea; cout<<"\nSectiunea patratului de baza :"<<sectiune(); cout<<"\nVolumul piramidei : "<<sectiune()*inaltimea/3; } else {if(figura==3) {Initial3(); cout<<"\nFigura geometrica : con.\n\nIntroduceti inaltimea conului : "; cin>>inaltimea; cout<<"\nSectiunea cercului de baza : "<<sectiune(); cout<<"\nVolumul conului : "<<sectiune()*inaltimea/3; } } } } };

class prisma:public fig_geom_spatiu{public:

prisma() {if(figura==1) {Initial1(); cout<<"\nFigura geometrica : prisma triunghiulara.\n\nIntroduceti inaltimea prismei : "; cin>>inaltimea; cout<<"\nSectiunea triunghiului de baza : "<<sectiune(); cout<<"\nVolumul prismei triunghiulare : "<<sectiune()*inaltimea; } else {if(figura==2) {Initial2(); cout<<"\nFigura geometrica : prisma patratica.\n\n"; cout<<"Introducetu inaltimea prismei : "; cin>>inaltimea; cout<<"\nSectiunea patratului de baza :"<<sectiune(); cout<<"\nVolumul prismei : "<<sectiune()*inaltimea; } else {if(figura==3) {Initial3(); cout<<"\nFigura geometrica : cilindru.\n\nIntroduceti inaltimea cilindrului : "; cin>>inaltimea; cout<<"\nSectiunea cercului de baza : "<<sectiune(); cout<<"\nVolumul cilindrului : "<<sectiune()*inaltimea; } } } } };

void main(){clrscr();

figura=1; piramida pir1; prisma pris1; figura=2; piramida pir2; prisma pris2; figura=3; piramida pir3; prisma pris3;

getch(); }

// Program : Gara.cpp

#include<iostream.h>#include<conio.h>#include<stdio.h>class ore

{public: int minut,ora; void diferenta_ore(ore ora1,ore ora2); void afis(); void Initializare(); ore() {ora=0;minut=0;} };void ore::Initializare()

{cout<<"\nIntroduceti ora : "; cin>>ora; cout<<"\nIntroduceti minutul : "; cin>>minut; while(minut<0) {minut+=60; ora+=1; } while(minut>60) {minut-=60; ora-=1; } while(ora<0) {ora+=24; } while(ora>24) {ora-=24; } cout<<"\nMemorat - "<<ora<<":"<<minut; }void ore::afis()

{if(ora<10) {cout<<" "<<ora;} else {cout<<ora;} cout<<":"; if(minut<10) {cout<<"0"<<minut;} else {cout<<minut;} }void ore::diferenta_ore(ore ora1,ore ora2) {if(ora1.ora>ora2.ora) {if(ora1.minut<ora2.minut) {minut=60+ora1.minut-ora2.minut; ora=ora1.ora-ora2.ora-1; } else {minut=ora1.minut-ora2.minut; ora=ora1.ora-ora2.ora; } } else {if(ora1.ora==ora2.ora) {if(ora1.minut>=ora2.minut) {if(ora1.minut<ora2.minut) {minut=60+ora1.minut-ora2.minut; ora=ora1.ora-ora2.ora-1; } else

{minut=ora1.minut-ora2.minut; ora=ora1.ora-ora2.ora; } } else {if(ora2.minut<ora1.minut) {minut=60+ora2.minut-ora1.minut; ora=ora2.ora-ora1.ora-1; } else {minut=ora2.minut-ora1.minut; ora=ora2.ora-ora1.ora; } } } else {if(ora2.minut<ora1.minut) {minut=60+ora2.minut-ora1.minut; ora=ora2.ora-ora1.ora-1; } else {minut=ora2.minut-ora1.minut; ora=ora2.ora-ora1.ora; } } } }

class tren{public:

int numar_tren; char*gara_plecare; char*gara_destinatie; char*tip_tren; };class orar:public tren

{public: ore ora_sosire,ora_plecare; ore plecare_gara_plecare; ore sosire_la_destinatie; orar(); };orar::orar()

{cout<<"\n\nNumarul trenului : "; cin>>numar_tren; tip_tren=new char[15]; cout<<"\nTipul trenului : "; cin>>tip_tren; gara_plecare=new char[20]; cout<<"\nGara de plecare : "; cin>>gara_plecare; cout<<"\nIntroduceti ora de plecare din gara de plecare :\n"; plecare_gara_plecare.Initializare(); gara_destinatie=new char[20]; cout<<"\nGara de destinatie : "; cin>>gara_destinatie; cout<<"\nIntroduceti ora de sosire in gara de destinatie :\n"; sosire_la_destinatie.Initializare(); cout<<"\nIntroduceti ora de sosire in gara :\n"; ora_sosire.Initializare(); cout<<"\nIntroduceti ora de plecare din gara :\n"; ora_plecare.Initializare();

}

void main(){clrscr();

ore ora_crt; char*nume_gara; nume_gara=new char[20]; cout<<"Introduceti numele garii : "; cin>>nume_gara; orar Tren[5]; getch(); clrscr(); gotoxy(37,1); cout<<nume_gara<<"\n"; cout<<"\nNumar|Tren |Gara plecare |Ora |Sosire|Plecare|Stationare"; cout<<"\n | |Destinatie |Ora |Durata| |"; cout<<"\n--------------------------------------------------------------------------"; for(int i=1;i<=5;i++) {gotoxy(1,i*3+3); cout<<Tren[i-1].numar_tren; gotoxy(6,i*3+3); cout<<"|"<<Tren[i-1].tip_tren; gotoxy(6,i*3+4); cout<<"|"; gotoxy(22,i*3+3); cout<<"|"<<Tren[i-1].gara_plecare; gotoxy(22,i*3+4); cout<<"|"<<Tren[i-1].gara_destinatie; gotoxy(43,i*3+3); cout<<"|"; ora_crt=Tren[i-1].plecare_gara_plecare; ora_crt.afis(); gotoxy(43,i*3+4); cout<<"|"; ora_crt=Tren[i-1].sosire_la_destinatie; ora_crt.afis(); gotoxy(49,i*3+3); cout<<"|"; ora_crt=Tren[i-1].ora_sosire; ora_crt.afis(); gotoxy(49,i*3+4); cout<<"|"; ora_crt.diferenta_ore(Tren[i-1].sosire_la_destinatie,Tren[i-1].plecare_gara_plecare); ora_crt.afis(); gotoxy(56,i*3+3); cout<<"|"; ora_crt=Tren[i-1].ora_plecare; ora_crt.afis(); gotoxy(56,i*3+4); cout<<"|"; gotoxy(64,i*3+3); cout<<"|"; ora_crt.diferenta_ore(Tren[i-1].ora_sosire,Tren[i-1].ora_plecare); ora_crt.afis(); gotoxy(64,i*3+4); cout<<"|"; } getch(); }

// Program : Normare.cpp#include<iostream.h>#include<conio.h>class Operatia

{public: char*denumire_operatie; char*unitate_masura; float volum; float normativ; float posturi_normate(float Volum,float Normativ) {return Volum/Normativ;} Operatia(); };Operatia::Operatia() {denumire_operatie=new char[25]; cout<<"\nIntroduceti denumirea operatiei : "; cin>>denumire_operatie; unitate_masura=new char[3]; cout<<"\nIntroduceti unitatea de masura : "; cin>>unitate_masura; cout<<"\nIntroduceti volumul : "; cin>>volum; cout<<"\nIntroduceti normativul : "; cin>>normativ; cout<<"\nPosturile normate sunt : "<<posturi_normate(volum,normativ)<<"\n"; }

class Foaie_acord_pregatiri{public:

char*denumire_lucrare; int numar_operatii; int numar_mediu_muncitori; int numar_zile_lucratoare; float salariu_mediu_post; int posturi_programate(int nr_muncitori,int nr_zile) {return nr_muncitori*nr_zile;} float total_posturi_normate(int nr_oper); virtual float tone_pe_fasie() {return 1;} float norma_acordata(float Posturi_normate_suma,float tone) {return tone/Posturi_normate_suma;} float tarif_foaie(float Salariu_med,float Norma_ac) {return Salariu_med/Norma_ac;} void Initializare(); virtual int tipul_lucrarii() {return 1;} };

float Foaie_acord_pregatiri::total_posturi_normate(int nr_oper){float Total_posturi_normate=0;

int i; for(i=1;i<=nr_oper;i++) { cout<<"\nIntroducerea datelor operatiei "<<(i)<<"\n"; Operatia oper_crt;

Total_posturi_normate=Total_posturi_normate+oper_crt.posturi_normate(oper_crt.volum,oper_crt.normativ); } return Total_posturi_normate; }

class Foaie_acord_abataje:public Foaie_acord_pregatiri{public:

float inaltime_abataj,lungime_abataj; float tone_pe_fasie() {cout<<"\nIntroduceti lungimea abatajului : ";

cin>>lungime_abataj; cout<<"\nIntroduceti inaltimea abatajului : "; cin>>inaltime_abataj; cout<<"\nDe pe o fasie se extrag "<<(inaltime_abataj*lungime_abataj*0.6*1.28)<<" to"; return inaltime_abataj*lungime_abataj*0.6*1.28; } int tipul_lucrarii() {return 2;} };

void Foaie_acord_pregatiri::Initializare(){int tip=tipul_lucrarii();

cout<<tip<<",,\n"; if(tip==1) {cout<<"\nSe calculeaza foaia de acord pentru pregatiri\n";} else {cout<<"\nSe calculeaza foaia de acord pentru abataje\n";} denumire_lucrare=new char[25]; cout<<"\nIntroduceti numele lucrarii pentru care se calculeaza foaia :\n"; cin>>denumire_lucrare; cout<<"\nIntroduceti numarul mediu de muncitori : "; cin>>numar_mediu_muncitori; cout<<"\nIntroduceti numarul de zile lucratoare : "; cin>>numar_zile_lucratoare; cout<<"\nNumarul de posturi planificate este : "<<posturi_programate(numar_mediu_muncitori,numar_zile_lucratoare); float Suma_tone=tone_pe_fasie(); cout<<"\n\nIntroduceti salariul mediu pe post : "; cin>>salariu_mediu_post; cout<<"\nIntroduceti numarul de operatii efectuate de brigada : "; cin>>numar_operatii; float p_norm=total_posturi_normate(numar_operatii); cout<<"\nSe definitiveaza foaia de acord\n"; cout<<"\nNumele lucrarii : "<<denumire_lucrare; cout<<"\nNumarul de posturi planificate : "<<posturi_programate(numar_mediu_muncitori,numar_zile_lucratoare); cout<<"\nNumarul total de posturi normate : "<<p_norm; cout<<"\nNorma acordata este : "<<norma_acordata(p_norm,Suma_tone); if(tip==1) {cout<<" ml/post";} else {cout<<" to/post";} cout<<"\nProductia planificata : "<<norma_acordata(p_norm,Suma_tone)*posturi_programate(numar_mediu_muncitori,numar_zile_lucratoare); if(tip==1) {cout<<" ml";} else {cout<<" to="<<norma_acordata(p_norm,Suma_tone)*posturi_programate(numar_mediu_muncitori,numar_zile_lucratoare)/(Suma_tone/0.6)<<" ml";} cout<<"\nTariful foii de acord : "<<salariu_mediu_post/norma_acordata(p_norm,Suma_tone); if(tip==1) {cout<<" lei/ml";} else {cout<<" lei/to";} getch(); }

void main(){clrscr();

Foaie_acord_pregatiri*fpreg; Foaie_acord_pregatiri foaia_preg; Foaie_acord_abataje foaia_ab; fpreg=&foaia_preg; fpreg->Initializare(); fpreg=&foaia_ab; fpreg->Initializare(); }

// Program patrulater.cpp#include<iostream.h>#include<conio.h>#include<math.h>// Se defineste clasa Punctclass Punct {

public:float x,y;

Punct(float xo=0,float yo=0) {x=xo;y=yo;} Punct(Punct&O) {x=O.x;y=O.y;} };

// Se defineste clasa Patrulater convexclass Patrulater:public Punct {

public:Punct A,B,C,D;

float lungimeAB,lungimeBC,lungimeCD,lungimeDA; int unghiAB,unghiBC,unghiCD,unghiDA; Patrulater() {A.x=0;A.y=0;B.x=10;B.y=0;C.x=10;C.y=10;D.x=0;D.y=10;lungimeAB=lungimeBC=lungimeCD=lungimeDA=10;unghiAB=unghiCD=0;unghiCD=unghiDA=90;} Patrulater(float xo,float yo,float ABo,float BCo,float CDo,int uAB,int uBC,int uCD); void afiseaza();

};

Patrulater::Patrulater(float xo,float yo,float ABo,float BCo,float CDo,int uAB,int uBC,int uCD){A.x=xo;

A.y=yo; lungimeAB=ABo; unghiAB=uAB; B.x=A.x+lungimeAB*cos(M_PI/180*unghiAB); B.y=A.y+lungimeAB*sin(M_PI/180*unghiAB); lungimeBC=BCo; unghiBC=uBC; C.x=B.x+lungimeBC*cos(M_PI/180*unghiBC); C.y=B.y+lungimeBC*sin(M_PI/180*unghiBC); lungimeCD=CDo; unghiCD=uCD; D.x=C.x+lungimeCD*cos(M_PI/180*unghiCD); D.y=C.y+lungimeCD*sin(M_PI/180*unghiCD); lungimeDA=sqrt((A.x-D.x)*(A.x-D.x)+(A.y-D.y)*(A.y-D.y)); unghiDA=asin((D.y-A.y)/lungimeDA); cout<<"\nFigura : Patrulater\n"; }

void Patrulater::afiseaza(){cout<<"\nVarfurile au coordonatele :\n";

cout<<"A: x="<<A.x; cout<<"\n y="<<A.y; cout<<"\n\nB: x="<<B.x; cout<<"\n y="<<B.y; cout<<"\n\nC: x="<<C.x; cout<<"\n y="<<C.y; cout<<"\n\nD: x="<<D.x; cout<<"\n y="<<D.y; cout<<"\n\nLaturile au lungimile :"; cout<<"\nAB="<<lungimeAB; cout<<"\nBC="<<lungimeBC; cout<<"\nCD="<<lungimeCD; cout<<"\nDA="<<lungimeDA;

cout<<"\n\nUnghiurile au masura :"; cout<<"\nAB="<<unghiAB; cout<<"\nBC="<<unghiBC; cout<<"\nCD="<<unghiCD; cout<<"\nDA="<<unghiDA; getch(); clrscr(); }

// Se defineste clasa derivata Paralelogram a clasei Patrulaterclass Paralelogram:public Patrulater {

public: Paralelogram() {A.x=0;A.y=0;B.x=10;B.y=0;C.x=10;C.y=10;D.x=0;D.y=10;lungimeAB=lungimeBC=lungimeCD=lungimeDA=10;unghiAB=unghiCD=0;unghiCD=unghiDA=90;}

Paralelogram(float xo,float yo,float ABo,float BCo,int uAB,int uBC);};

Paralelogram::Paralelogram(float xo,float yo,float ABo,float BCo,int uAB,int uBC){A.x=xo;

A.y=yo; lungimeAB=ABo; unghiAB=uAB; B.x=A.x+lungimeAB*cos(M_PI/180*unghiAB); B.y=A.y+lungimeAB*sin(M_PI/180*unghiAB); lungimeBC=BCo; unghiBC=uBC; C.x=B.x+lungimeBC*cos(M_PI/180*unghiBC); C.y=B.y+lungimeBC*sin(M_PI/180*unghiBC); lungimeCD=ABo; unghiCD=uAB+180; D.x=C.x+lungimeCD*cos(M_PI/180*unghiCD); D.y=C.y+lungimeCD*sin(M_PI/180*unghiCD); lungimeDA=lungimeBC; unghiDA=unghiBC+180; cout<<"\nFigura : Paralelogram\n"; }

// Se defineste clasa derivata Dreptunghi a clasei Paralelogramclass Dreptunghi:public Paralelogram {

public: Dreptunghi() {A.x=0;A.y=0;B.x=10;B.y=0;C.x=10;C.y=10;D.x=0;D.y=10;lungimeAB=lungimeBC=lungimeCD=lungimeDA=10;unghiAB=unghiCD=0;unghiCD=unghiDA=90;}

Dreptunghi(float xo,float yo,float ABo,float BCo,int uAB);};

Dreptunghi::Dreptunghi(float xo,float yo,float ABo,float BCo,int uAB){A.x=xo;

A.y=yo; lungimeAB=ABo; unghiAB=uAB; B.x=A.x+lungimeAB*cos(M_PI/180*unghiAB); B.y=A.y+lungimeAB*sin(M_PI/180*unghiAB); lungimeBC=BCo; unghiBC=uAB+90; C.x=B.x+lungimeBC*cos(M_PI/180*unghiBC); C.y=B.y+lungimeBC*sin(M_PI/180*unghiBC); lungimeCD=ABo; unghiCD=uAB+180; D.x=C.x+lungimeCD*cos(M_PI/180*unghiCD); D.y=C.y+lungimeCD*sin(M_PI/180*unghiCD);

lungimeDA=lungimeBC; unghiDA=unghiBC+180; cout<<"\nFigura : Dreptunghi\n"; }

// Se defineste clasa derivata Romb a clasei Paralelogramclass Romb:public Paralelogram{

public:Romb(float xo,float yo,float ABo,int uAB,int uBC);};

Romb::Romb(float xo,float yo,float ABo,int uAB,int uBC){A.x=xo;

A.y lor Dreptunghi si Rombclass Patrat:public Dreptunghi {

public:Patrat(float xo,float yo,float ABo,int uAB);};

Patrat::Patrat(float xo,float yo,float ABo,int uAB){A.x=xo;

A.y=yo; lungimeAB=ABo; unghiAB=uAB; B.x=A.x+lungimeAB*cos(M_PI/180*unghiAB); B.y=A.y+lungimeAB*sin(M_PI/180*unghiAB); lungimeBC=ABo; unghiBC=uAB+90; C.x=B.x+lungimeBC*cos(M_PI/180*unghiBC); C.y=B.y+lungimeBC*sin(M_PI/180*unghiBC); lungimeCD=ABo; unghiCD=uAB+180; D.x=C.x+lungimeCD*cos(M_PI/180*unghiCD); D.y=C.y+lungimeCD*sin(M_PI/180*unghiCD); lungimeDA=ABo; unghiDA=unghiBC+180; cout<<"\nFigura : Patrat\n"; }

void main(){clrscr();

Patrulater patr(15.0,15.0,10.0,10.0,10.0,90,0,90); patr.afiseaza(); Romb rombul(15,15,10,45,135); rombul.afiseaza(); Dreptunghi drept(15,15,20,10,0); drept.afiseaza(); Patrat caro(15.0,15.0,10.0,0); caro.afiseaza(); }

// Program : Raport.cpp

#include<iostream.h>#include<conio.h>#include<math.h>

class punct{public:

float xo,yo; punct(){xo=0;yo=0;} punct(float xcrt,float ycrt){xo=xcrt;yo=ycrt;} };

class segment:public punct{public:

punct varf,raport; float k; float unghi; float depl_oriz,depl_vert; segment(); void Raport(); void rotatie(float alfa); void translatie(float xt,float yt); };

segment::segment(){cout<<"\nIntroduceti coordonatele punctului de origine :";

cout<<"\n - abscisa : ";cin>>xo; cout<<"\n - ordonata : ";cin>>yo; cout<<"\n\n\nIntroduceti coordonatele varfului :"; cout<<"\n - abscisa : ";cin>>varf.xo; cout<<"\n - ordonata : ";cin>>varf.yo; raport.xo=xo;raport.yo=yo; }

void segment::Raport(){cout<<"\n\n\nSegmentul este determinat de punctele O("<<xo<<","<<yo<<") si

V("<<varf.xo<<","<<varf.yo<<")"; cout<<"\nFie M(x,y) un punct ce apartine segmentului OV care imparte segmenul\nintr-un raport dat k=|OM|/|MV|"; cout<<"\n\nIntroduceti raportul k : ";cin>>k; raport.xo=xo+(varf.xo*k-xo)/(1+k); raport.yo=yo+(varf.yo*k-yo)/(1+k); cout<<"Punctul M care satisface acest raport este M("<<raport.xo<<","<<raport.yo<<").\n"; }

void segment::rotatie(float alfa){float lungime;

lungime=sqrt((varf.xo-xo)*(varf.xo-xo)+(varf.yo-yo)*(varf.yo-yo)); unghi=asin((varf.yo-yo)/lungime); cout<<"\n\n\nSegmentul este determinat de punctele O("<<xo<<","<<yo<<") si V("<<varf.xo<<","<<varf.yo<<")"; cout<<"\nPrin rotatie cu unghiul "<<alfa<<" grade fata de punctul O se obtine segementul"; unghi=unghi+alfa*M_PI/180; varf.yo=yo+lungime*sin(unghi); varf.xo=xo+lungime*cos(unghi); cout<<"\nO("<<xo<<","<<yo<<") si V("<<varf.xo<<","<<varf.yo<<")"; }

void segment::translatie(float xt,float yt)

{cout<<"\n\n\nSegmentul este determinat de punctele O("<<xo<<","<<yo<<") si V("<<varf.xo<<","<<varf.yo<<")"; cout<<"\nPrin translatie cu x="<<xt<<" si y="<<yt<<" se obtine segementul"; xo+=xt;yo+=yt; varf.yo+=yt;varf.xo+=xt; cout<<"\nO("<<xo<<","<<yo<<") si V("<<varf.xo<<","<<varf.yo<<")"; }

void main(){clrscr();

segment s; s.Raport(); s.rotatie(30); s.translatie(8,4); getch(); }