Situatie
Sa se citeasca de la tastatura informatiile specifice cartilor dintr-o librarie: denumire carte, autorul principal, al doilea autor, numarul de pagini si pretul. Prin intermediul unei clase, carte, care descrie datele despre o carte, proprietatile (denumire carte, autorul principal, al doilea autor, numarul de pagini si pretul) si metodele de prelucrare (initializarea si afisarea unei carti) sa se afiseze pe ecran informatiile despre orice carte tratata.
Solutie
Pasi de urmat
// definirea clasei carte
#include<iostream.h>
#include<string.h>
#include<stdio.h>
class carte
{
public:
char nume[40];
char autor1[40];
char autor2[40];
int nrpag;
double pret;
void citeste_carte(char *numecarte,char *autorcarte1,char *autorcarte2,int *np,double *p);
void afiseaza_carte();
};
// descrirea functiei de citire carte
void carte::citeste_carte(char *numecarte,char *numeautor1,
char *numeautor2,int *np,double *p)
{
strcpy(nume,numecarte);
strcpy(autor1,numeautor1);
strcpy(autor2,numeautor2);
nrpag=*np;
pret=*p;
}
void carte::afiseaza_carte()
{
cout<<“\n cartea nr.”<<i<<“:”<<nume<<endl;
cout<<“\n primul autor:”<<autor1<<endl;
cout<<“\n al doilea autor:”<<autor2<<endl;
cout<<“\n nr pagini:”<<nrpag<<endl;
cout<<“\n pretul:”<<pret<<endl;
}
int i=0;
void main()
{
carte carteacitita;
char wnume[40],wautor1[40],wautor2[40];
int wnrpag;
double wpret;
char r=’d’;
while(r==’d’)
{
printf(“\n denumirea cartii:”);
gets(wnume);
printf(“\n primul autor:”);
gets(wautor1);
printf(“\n al doilea autor:”);
gets(wautor2);
cout<<“\n nr. pagini:”;
cin>>wnrpag;
cout<<“\n pret:”;
cin>>wpret;
carteacitita.citeste_carte(wnume,wautor1,wautor2,&wnrpag,&wpret);
carteacitita.afiseaza_carte();
cout<<“\n continuati?(d/n):”;
cin>>r;
}
}
In urma executarii programului anterior s-au obtinut urmatoarele rezultate, care arata cum se declara o clasa, un obiect al acestei clase si modul in care se apeleaza membrii acestei clase, prin intermediul unei instante a acestei clase.
denumirea cartii:Trecea o moara pe Siret
primul autor:Mihail Sadoveanu
al doilea autor: —
- pagini:200
pret:30
cartea nr.0:Trecea o moara pe Siret
primul autor:Mihail Sadoveanu
al doilea autor: —
nr pagini:200
pretul:30
continuati?(d/n):d
denumirea cartii:O noapte furtunoasa
primul autor:Ion Luca Caragiale
al doilea autor: —
- pagini:50
pret:25
continuati?(d/n):n
Leave A Comment?